기술 블로그

2026년 9월 3일

레트로 애니메이션에서 영감을 받은 게임 속으로: Orbitals의 렌더링 살펴보기

안녕하세요! 저는 도쿄의 셰이프팜(Shapefarm)에서 근무하는 어소시에이트 아트 디렉터 요하네스 바르메달(Johannes Varmedal)이며, 오비탈스(Orbitals)의 리드 환경 및 테크 아티스트를 맡고 있습니다.

오비탈스는 2026년 9월 3일 Nintendo Switch 2로 출시되는 2인 협동 우주 어드벤처 게임입니다. 지난 3년간 언리얼 엔진 5를 활용해 이 게임만의 레트로 애니메이션의 미학을 구현하는 데 심혈을 기울였습니다.

오비탈스의 독창적인 세계는 크리에이티브 디렉터 마르코스 라모스(Marcos Ramos)가 구상했으며, 뛰어난 역량을 갖춘 아트 팀 리드이자 아트 디렉터인 캐스퍼 베르무트(Casper Wermuth)가 구현했습니다. 오비탈스의 아트 스타일에는 1980~1990년대 애니메이션에 대한 깊은 애정이 담겨 있습니다. 저희는 아티스트로서 큰 영향을 받았고 하나의 스튜디오로 모이는 계기가 되기도 한 그 시절 애니메이션의 분위기를 담아내고자 했습니다.
언리얼 엔진은 소스 코드 액세스와 높은 유연성을 제공하여, 기본 렌더링 파이프라인을 커스터마이징하고 레트로 애니메이션 아트 스타일을 구현할 수 있게 해주었습니다. 이 스타일을 구현하는 것은 프로젝트에서 가장 큰 기술적 과제 중 하나였습니다. 사전 제작 단계에서는 테크니컬 아티스트 토마스 쇠데르룬드(Thomas Söderlund)와 콘셉트 아티스트 토니 홀름스텐(Tony Holmsten)이 이 스타일을 구현하기 위한 기반 연구 개발을 진행했습니다.
 
당시 애니메이션을 연구하며 특히 주목한 부분은 아날로그 제작 방식의 제약과 그로 인해 나타나는 특유의 아티팩트였습니다.
  • 당시에는 장면마다 흰 종이에 포스터 컬러로 배경을 그렸습니다. 배경 자체의 원근은 고정되어 있었기 때문에 움직임은 주로 그림을 좌우나 상하로 이동시키는 패닝 방식으로 표현했습니다.
  • 캐릭터, 상호작용 오브젝트, VFX처럼 움직이는 요소는 보통 초당 24프레임을 기준으로 한 장의 그림을 2프레임당 한 컷씩 보여주는 방식으로 움직임을 표현했습니다. 또한 미리 윤곽선이 그려진 셀의 뒷면을 손으로 채색했기 때문에 프레임이 바뀔 때마다 명암이 미세하게 흔들리거나 어긋나는 현상이 나타났습니다.
  • 합성할 때는 배경 앞에 셀을 여러 겹으로 쌓고 정면에서 조명을 비췄습니다. 이때 셀을 고정한 유리판 사이의 간격으로 인해 레이어가 미세하게 분리되어 보이거나 그림자가 생겼습니다.
  • 이미시브 라이트 효과는 배경이나 셀에 구멍을 뚫고 뒤에서 조명을 비춰 빛이 통과하도록 하는 방식으로 구현하는 경우가 많았습니다. 이렇게 투과된 빛은 채색하지 않은 흰 종이보다 더 밝밝은 빛을 낼 수 있었습니다.
  • 각 프레임은 최종적으로 필름에 촬영되었기 때문에 그레인, 할레이션, 색수차, 보케, 블룸을 비롯한 필름 매체 특유의 자연스러운 아티팩트들을 포함습니다.
 저희의 과제는 원활한 게임플레이와 몰입감을 우선하면서, 앞서 살펴본 아날로그 애니메이션의 특징을 언리얼 엔진의 실시간 렌더링으로 최대한 충실하게 재현하는 것이었습니다.

목표한 비주얼에 도달하기 해 개발 과정에서 커스텀 셰이딩 모델을 제작하고 자체 렌더 버퍼를 추가했으며, 기존 렌더 버퍼도 수정했고, 포스트 프로세싱을 적극적으로 활용했습니다.

오비탈스의 셀 셰이더 

 
저희가 제작한 셰이딩 모델은 앞서 설명한 제약을 반영하여 각각 분리된 형태로 구성되었습니다. 전통적인 애니메이션 합성 방식의 '정면' 레이어는 저희의 셀 셰이딩 모델로 구현했습니다. 셀 셰이딩은 게임에서 자주 사용되는 기법으로, 명암을 제한된 수의 값, 일반적으로 세 단계로 나누어 표현합니다. 저희의 경우 세 단계의 명암을 에셋별로 지정한 색상에 따라 설정하고, 추가 렌더 버퍼를 활용해 셰이딩을 아트 측면에서 완전히 제어할 수 있도록 했습니다.
  
리드 애니메이터 탈리에산 아놀드(Taliesan Arnold)는 단계적인 프레임 방식으로 구현된 캐릭터 움직임의 시각적 표현과 느낌을 다듬는 데 많은 시간과 노력을 기울였습니다. VFX와 움직이는 셀 요소와 같은 애니메이션이 구현된 스켈레탈 메시가 아닌 요소에도 셰이더를 통해 이와 유사한 프레임 단계화 방식을 적용했습니다. 게임 카메라의 렌더링은 최소 초당 30프레임으로 유지하면서, 해당 요소의 움직임은 초당 12프레임으로 제한했으며 효과에 따라 초당 6프레임까지 낮추기도 했습니다.
내부 선 렌더링은 표면 인덱스 필드로 정의하고, 이를 커스텀 버퍼 중 하나로 읽어 들였습니다. 그런 다음 선을 생성할 때 일반적으로 사용하는 UV 오프셋 컨볼루션 방식에서 뎁스 버퍼와 함께 샘플링하여 내부 선과 외곽선을 모두 마스크 형태로 추출했습니다. 선 마스크를 추가로 블러 처리한 뒤 알파값을 침식시키는 정도를 달리하여 선 굵기에 변화를 주거나 노이즈를 감산해 일부 선이 끊겨 보이도록 만들었습니다.
 
애니메이션 아티스트가 셀 시트를 직접 채색할 때 음영 경계의 곡선과 선의 정밀도가 프레임마다 미세하게 달라지는 현상을 재현하기 위해, 셀 셰이딩과 선 결과물에 노이즈 기반의 왜곡을 적용했습니다.
게임 내에서 선의 흔들림과 끊김은 셀 액터나 카메라가 움직일 때만 업데이트됩니다. 저희는 이를 전통적인 애니메이션의 프레임 제작 과정에서 셀을 '다시 그리는' 것과 같은 개념으로 보았습니다.

레퍼런스 작품의 아날로그 손그림 특성을 구현하는 데 중점을 두었기 때문에, 이러한 미세한 불완전함이 게임의 시각적 표현과 전반적인 느낌을 완성하는 데 중요하다고 판단했습니다.
   
또한 당시의 셀에서 흔히 볼 수 있었던 채색 기법을 재현하기 위해 셀 셰이딩의 그림자 단계에 하이라이트를 추가했습니다.
전통적인 셀 레이어를 앞에서 조명해 합성할 때 흔히 나타나는 미세한 그림자 아티팩트를 추가하여 셀 렌더링을 마무리했습니다.
셀 셰이딩이 적용된 액터로 인해 배경 환경에 연산된 그림자가 생기지 않도록 했습니다. 이는 ‘정면’의 셀과 ‘후면’의 배경 환경을 구분하여 렌더링하는 방식에 어긋나기 때문입니다.
 
이를 제어하기 위해 셀 셰이딩이 적용된 액터에 라이팅할 때는 셀 전용 라이팅 채널을 사용했습니다. 이를 활용하여 베이킹된 볼류메트릭 라이트맵을 활용하는 셀 전용 라이트 액터를 통해 라이팅이 적용되도록 했습니다.
 
캐릭터와 바닥에 인접한 셀 메시가 지면에 자연스럽게 자리 잡은 것처럼 보이도록, 추상적인 형태의 셀 셰이딩 그림자 데칼을 사용했습니다.

오비탈스의 환경 셰이더 

 
애니메이션에서 고정된 원근법으로 그린 배경 그림에 해당하는 '배경 레이어'는 저희가 '페인트 셰이더'라고 정의한 셰이더로 구현했습니다. 플레이어가 조작하는 카메라 특성상, 원근법을 하나의 시점으로 고정하는 제약은 구현할 수 없었습니다. 대신 페인트 셰이더가 적용된 컴포넌트와 해당 컴포넌트의 라이팅은 절대 움직이지 않는다는 규칙을 정했습니다. 여기서 저희가 의도한 시각적 환상은 셀 오브젝트에 적용한 단계적인 움직임과 같은 맥락이었습니다. 즉, 플레이어가 마치 포스터 컬러로 그린 그림 속에 직접 들어가, 게임 카메라를 통해 애니메이션 프레임의 내부를 탐험하는 듯한 느낌을 주고자 했습니다.
 
앞서 셀 셰이딩 오브젝트의 라이팅과 관련하여 설명했듯이, 움직이는 그림자를 생성할 필요가 없었으므로 모든 라이트를 굽는 방식을 선택했습니다. 실시간 라이팅 솔루션보다 이 방식이 저희 프로젝트의 렌더링 요구사항과 성능 효율에 더 적합했기 때문입니다.
 
표면에 빛이 적용되는 방식을 완전히 제어할 수 있도록 페인트 셰이더를 구성했습니다. 여기에 가장 크게 기여한 모디파이어는 브러시 스트로크 텍스처를 활용하여 빛의 분산을 조절하는 기능이었습니다.
DCC 소스 에셋 설정 툴에서 버텍스 컬러를 사용하여 에셋의 가장자리와 모서리에 나타나는 하이라이트를 정의했습니다. 에디터에서는 가상의 스페큘러 광원 로케이터를 사용해 이러한 하이라이트를 제어했습니다. 이 로케이터는 자체 에디터 툴에서 액터별로 조정할 수 있었습니다.

위에서 설명한 요소들은 다른 여러 조정 기능과 함께 아트 팀의 에셋 제작 파이프라인 툴세트에 포함되었습니다. 이를 활용하여 3D 환경에서도 손으로 그린 듯한 '2D' 느낌을 구현했습니다. 저희의 모토는 '디지털의 완벽함'에 맞서는 것으로 요소를 의도적으로 중심에서 벗어나게 배치하고, 반복과 대칭을 피하도록 디테일 사이의 간격을 불규칙하게 설정했으며, 완벽하게 직선이거나 둥근 실루엣도 의도적으로 왜곡했습니다.

오비탈스의 필름 효과


언리얼 엔진은 커스터마이징이 유연하여 자체 포스트 프로세스 필터를 사용할 수 있었습니다. 이를 통해 저희 파이프라인에서 셀과 배경 환경을 분리하여 렌더링하는 방식을 완전히 제어할 수 있었습니다.

블룸에도 이와 비슷한 방식을 적용했습니다. 블룸에 마스크를 적용하여 발광하는 표면 자체에는 셀 셰이딩이나 페인트 셰이딩이 그대로 유지되고, 블룸 효과는 해당 표면의 주변에만 나타나도록 했습니다.
렌더링의 마지막 레이어에는 필름 포스트 프로세스 필터를 적용했습니다. 필름 그레인, 할레이션, 색수차, 블러 등의 효과를 사용하여 게임의 각 프레임을 실제 필름으로 촬영한 듯한 느낌을 재현했습니다.
저희의 파이프라인은 언리얼 엔진의 강점, 특히 유연한 커스터마이징 기능을 기반으로 구축되었습니다. 셰이딩 모델과 렌더 버퍼를 변경한 것 외에도, 머티리얼 에디터를 활용하여 대부분의 셰이더를 에디터에서 직접 개발하고 반복적으로 향상했습니다. 이를 통해 아트 측면의 의도가 최종 결과물에 긴밀하게 반영되도록 했습니다.

이 파이프라인은 저희가 정한 스타일의 제약 안에서도 아트 팀이 최대한 자유롭게 표현할 수 있도록 구축되었습니다. 저희 팀은 이전 프로젝트를 통해 이미 언리얼 엔진에 매우 익숙했습니다. 덕분에 기존에 확립된 워크플로를 유지하면서도 오비탈스의 비주얼 방향성을 구현하는 데 필요한 부분은 확장할 수 있었습니다.

오비탈스에 대해 자세히 알아보려면 게임 공식 웹사이트를 방문하세요.