프리렌더 스프라이트
프리렌더 스프라이트는 3D 모델을 미리 렌더링해 만든 2D 이미지입니다. 게임은 모델이 아니라 그림을 그립니다.
무엇인가
스프라이트는 게임이 화면에 그리는 2D 이미지입니다. 보통 아티스트가 그립니다. 프리렌더 스프라이트는 대신 게임을 플레이하기 전에 고정된 카메라로 3D 모델을 한 프레임씩 렌더링해 만듭니다. 게임에는 이미지만 들어갑니다.
캐릭터라면 게임에 필요한 모든 방향에서 모든 애니메이션을 렌더링하고, 프레임을 스프라이트 시트에 담는다는 뜻입니다.
짧은 역사
Donkey Kong Country(1994)가 유명한 초기 사례입니다. Rare는 Silicon Graphics 워크스테이션에서 모델을 렌더링해 슈퍼 닌텐도 스프라이트로 줄였습니다. 90년대 후반에는 Diablo, Fallout, StarCraft, Age of Empires 같은 PC 게임이 프리렌더링한 유닛과 캐릭터를 써서 여러 방향을 현실적으로 만들었습니다. Dead Cells(2018)는 이 아이디어를 픽셀 아트로 가져와, 캐릭터를 3D로 애니메이션한 뒤 작은 픽셀 아트 프레임으로 렌더링했습니다.
게임에서 쓰는 이유
- 방향. 모델은 어떤 각도로든 돌릴 수 있습니다. 8방향도 1방향보다 더 그릴 필요가 없습니다.
- 일관성. 수백 프레임에 걸쳐 비율과 부피가 그대로 유지됩니다.
- 반복 작업. 다시 그리는 대신 색이나 크기를 바꾸고 다시 렌더링하세요.
- 애니메이션 재사용. 걷기 사이클 하나를 같은 리그를 쓰는 여러 캐릭터에 적용할 수 있습니다.
흔한 문제
그냥 렌더링하면 픽셀 아트처럼 보이지 않습니다. 흔한 문제는 다음과 같습니다.
- 안티에일리어싱으로 인한 부드럽고 흐린 가장자리.
- 뚜렷한 램프 대신 비슷한 수백 가지 색.
- 평평한 명암 띠 대신 매끄러운 그러데이션.
- 떠도는 외톨이 픽셀과 지저분한 디테일.
- 깜빡임. 모델이 거의 움직이지 않는데 픽셀과 선이 매 프레임 바뀝니다.
- 프레임 사이에 움직이는 피벗. 게임에서 스프라이트가 흔들립니다.
- 배율이 서로 다른 스프라이트. 픽셀이 맞지 않습니다(믹셀).
손으로 하기
일반 3D 프로그램으로는 보통 이렇게 합니다. 방향마다 직교 카메라를 설치하고, 안티에일리어싱 없이 작게 렌더링하고, 팔레트로 줄이고, 외곽선을 그리거나 고치고, 프레임마다 떠도는 픽셀을 지우고, 시트로 묶습니다. 시간 대부분이 마지막 몇 단계에 들어가며, 룩 대부분도 거기서 정해집니다.
Pixor의 방식
Pixor는 바로 이 일을 위해 만들어졌습니다. glTF와 GLB, FBX(Mixamo 포함), OBJ, MagicaVoxel 파일을 읽습니다. 방향 하나가 카메라 하나이며, 4대, 8대, 16대의 링이나 원하는 각도로 둡니다. 색, 노멀, 깊이, 파츠 id의 G-버퍼를 렌더링한 다음, 깜박이지 않게 안정적으로 유지되는 명암 띠로 음영을 넣고, 색조 이동 램프에 대응시키고, 1픽셀 선택적 외곽선을 그리고, 떠도는 픽셀과 한 프레임짜리 선을 정리합니다. 미터당 픽셀 배율 하나와 한 픽셀에 고정된 피벗이 모든 스프라이트를 일관되게 유지합니다. 시트, Aseprite 파일, Godot SpriteFrames, GIF, APNG로 내보냅니다.
결과는 깔끔하고 일관된 바탕입니다. 대부분의 아티스트는 중요한 프레임을 여전히 손으로 마무리합니다.
관련 항목
질문
프리렌더 스프라이트를 쓴 게임은?
Donkey Kong Country(1994), Diablo(1996), Fallout, StarCraft, Age of Empires가 잘 알려진 예입니다. Dead Cells(2018)는 3D 애니메이션을 픽셀 아트 프레임으로 렌더링했습니다.
프리렌더 스프라이트는 반칙인가요?
아니요. 사진 자료 위에 그리는 것과 같은 제작 방식입니다. 많은 아티스트가 바탕을 렌더링하고 키 프레임을 손으로 마무리합니다.