본문 바로가기

블로그 / 아트

오래 버티면 해가 진다: AvoidNow 낮·노을·밤·화산 분위기 전환

AvoidNow에서 시간이 지나면 바닥 색이 노을, 밤, 화산으로 바뀌는 연출을 어떻게 만들었는지 정리했다. 곱하기 색 한 겹, 6초 전환, 반딧불과 불티.

Salmonholic ·· 4분 읽기

같은 아레나가 낮, 노을, 밤, 화산 분위기로 바뀐 네 장면을 모은 이미지

AvoidNow의 아레나는 한 화면에 고정되어 있다. 카메라가 움직이지 않고, 배경도 흙바닥 한 장이다. 2분을 버텨도 처음과 같은 바닥을 보고 있으면 판이 얼마나 길어졌는지 몸으로 느끼기 어렵다. 그래서 시간이 지나면 해가 지게 했다. 9월 26일 밤 커밋 a69870f에 이벤트, 점수, 박자와 함께 들어간 “moods”가 이것이다.

네 단계와 전환 시각

분위기는 네 단계다. 각 단계에는 시작 시각과 “곱하기 색” 하나가 있다.

단계 시작 곱하기 색 (R, G, B) 추가 효과
낮 0초 1.0, 1.0, 1.0 없음
노을 45초 1.0, 0.8, 0.66 없음
밤 90초 0.5, 0.56, 0.82 반딧불
화산 140초 0.9, 0.55, 0.48 불티, 붉은 맥동

곱하기 색은 바닥 픽셀의 색에 그대로 곱해진다. 흰색(1, 1, 1)이면 아무 변화가 없고, 노을 색은 파랑을 34% 줄여 바닥을 주황빛으로 만든다. 밤은 빨강을 절반으로 줄이고 파랑을 가장 많이 남겨서 푸른 어둠이 된다. 한 단계에서 다음 단계로는 6초 동안 부드럽게 섞인다. 45초에 노을이 시작되면 51초쯤 완전히 노을이 된다.

화산 단계만 색이 가만히 있지 않는다. 기본 색을 붉은색(1.0, 0.45, 0.35) 쪽으로 12%에서 20% 사이를 오가게 섞는다. 사인파로 약 3초 주기다. 바닥이 천천히 숨 쉬듯 붉어졌다 돌아온다.

밤 구간의 아레나 90초 이후의 밤. 바닥은 푸르게 어두워지지만 캐릭터와 바위, 빨간 경고는 원래 색 그대로다.

색을 한 겹만 덮는 이유: 경고는 어두워지면 안 된다

이 연출은 새 그림 없이 색 한 겹으로 만들었다. 화면 크기만 한 사각형 하나를 그리고, 그 사각형의 합성 방식을 “곱하기”로 설정했다. 이 사각형이 어느 층에 있는지가 중요하다.

AvoidNow는 바닥 레이어와 캐릭터 레이어를 나눠서 그린다. 바닥에는 흙바닥, 발이 찍힌 뒤 남는 움푹한 자국, 발자국 경고 같은 장판이 깔리고, 그 위에 캐릭터와 공룡이 앞뒤 순서대로 선다. 분위기 레이어는 바닥과 자국 바로 위에만 덮는다. 캐릭터, 공룡, 장판 경고는 그보다 위에 그려진다.

밤이 되어 화면 전체가 어두워지면 가장 먼저 안 보이게 되는 게 빨간 경고다. 빨강에 0.5를 곱하면 거의 갈색이 된다. 경고를 못 보고 맞으면 분위기 연출 때문에 게임이 불공정해진다. 그래서 어두워지는 건 배경뿐이고, 피해야 할 것과 내 캐릭터는 밤에도 낮과 같은 색으로 보인다. 오히려 배경이 어두워지니 빨간 경고가 더 잘 보인다.

반딧불과 불티

밤과 화산에는 작은 입자가 날린다. 한 번에 최대 40개이고, 화면의 보이는 영역 아무 곳에서 생겨 2~4초 뒤 사라진다.

  • 밤의 반딧불: 가로 ±15px/s, 세로 ±12px/s로 이리저리 떠다닌다.
  • 화산의 불티: 가로 ±15px/s에 위로 10~40px/s씩 올라간다.

입자가 생기는 범위는 게임 월드 크기가 아니라 실제로 보이는 화면 크기다. 폰에서는 화면 비율에 따라 월드 바깥까지 바닥이 더 보이는데, 그 부분에도 반딧불이 날아야 어색하지 않다. 곱하기 사각형도 같은 이유로 보이는 화면 전체를 덮는다. 화면 비율 이야기는 모바일 조작과 세로 화면에 따로 썼다.

화산 단계의 아레나 140초 이후의 화산 단계. 바닥 전체가 붉어지고 꼬리와 발자국 경고가 그 위에 선명하게 남는다.

소리도 같이 짙어진다

화면과 함께 소리도 판이 길어질수록 무거워진다. BGM 위에 겹친 타악기 레이어가 20초부터 90초까지 점점 커지고, 30초마다 오는 이벤트 동안은 최대가 된다. 20초를 넘기면 북소리가 작게 깔리기 시작하고, 밤이 되는 90초에 최대 음량에 닿는다. 해가 지는 것과 북소리가 커지는 것이 같은 구간에서 일어난다. 타악기 레이어는 BGM 박자 이야기에 자세히 적었다.

네 단계의 시각은 이벤트와도 맞물린다. 봇 데모 녹화를 보면 첫 이벤트 공룡 떼는 한낮, 두 번째 티라노 떼는 노을, 세 번째 운석우는 밤, 네 번째 거대 발 연타는 밤이 끝나 갈 무렵에 온다. 그 직후 140초에 화산이 시작된다. 화면 색만 봐도 지금이 판의 어디쯤인지 알 수 있다.

남은 아쉬움

분위기 색은 바닥에만 걸리기 때문에, 밤인데 캐릭터가 한낮처럼 밝게 보이는 어색함이 조금 있다. 캐릭터까지 어둡게 하면 이 글에서 말한 이유로 경고와 캐릭터가 덜 보이게 된다. 보이는 게 우선이라 지금 구조를 유지하고 있다. 화산 다음 단계는 없다. 140초 이후로는 계속 화산이다. 거기까지 가 보려면 AvoidNow 게임 페이지에서 2분 20초를 버티면 된다.

#AvoidNow#연출#아트#Godot#셰이더

함께 읽으면 좋은 글

전체 글 →