우리는 오래전부터 끝없는 픽셀 아트 캐릭터 커스터마이징을 원한다고 결정했습니다

지금까지 출시된 수많은 픽셀 아트 게임들이 캐릭터 커스터마이징 기능을 도입해 왔지만, 지난 10년 동안 3D 게임들이 보여준 것처럼 애니메이션과 캐릭터 커스터마이징의 한계를 이만큼까지 넓혀낸 게임은 없다고 생각했습니다. 다른 게임들의 캐릭터 커스터마이징 옵션이 매우 풍부한 것은 주로 게임 엔진과 아티스트를 위한 도구가 점점 더 강력해졌기 때문입니다.
문제는 2D 픽셀 아트의 경우, 3D에서처럼 메쉬를 교체해 같은 리깅된 오브젝트에 적용할 수 없다는 점입니다. 모든 프레임이 수작업으로 그려지기 때문입니다. 그래서 우리는 다음 방법을 찾아내야 했습니다:
- 우리만의 해골 캐릭터가 달리고, 대기하고, 공격하는 애니메이션을 만들어 봅시다.
- 각 기어 부품마다 골격 구조에 맞춰 프레임을 일일이 손으로 그릴 수 있는 방법을 모색하여, 수백 개의 기어 세트를 일관성 있게 그릴 수 있도록 해야 합니다.
- 어떤 조합이든 모든 장비 외형 아이템이 올바르게 중첩되도록 하세요.
- 모든 화장품이 팔레트에 들어갈 수 있도록 하세요.
- 모든 기어 세트가 각 대기 상태나 걷기/공격 동작에 대해 동일한 프레임 수를 갖도록 하십시오.
참으로 큰일이다.
저희는 플레이어들이 능력치 걱정 없이 원하는 대로 옷을 입을 수 있도록 진정한 외형 커스터마이징을 제공하고 싶었습니다. 2D 픽셀 아트 게임에서 이는 상당한 작업량입니다. 하지만 4년 반 전, 저희는 이 부분이 절대 양보할 수 없는 부분이라고 결심했습니다. MMO를 개발한다면, 플레이어들은 서로 다른 모습을 보여야 합니다. 플레이어들은 자신이 입은 아이템을 통해 개성을 표현하고 싶어 하죠. 따라서 우리는 현명하게 접근하여, 우리가 즐겨 하는 게임들에서 볼 수 있는 수준의 고품질 코스메틱 아이템 세트를 어떻게 구현할지 고민해야 했습니다.
우리가 이 문제를 어떻게 해결하기로 했는지
레이어링
우선, 레이어링 시스템이 필요했습니다. 우리는 다음 내용부터 시작했습니다
- 머리
- 가슴
- 다리
- 등 부분
- 무기, 그리고 나중에는 다양한 종류의 무기.
각각 별도의 레이어로 렌더링되어 캐릭터 위에 합성됩니다.
우리는 기본 애니메이션인 ‘달리기 사이클’부터 시작했습니다. 이 작업에만 몇 주를 쏟아부었는데, 일단 확정되면 절대 수정할 수 없기 때문이었습니다. 앞으로 제작할 모든 장비 부품은 그 뼈대 구조와 프레임 수, 비율에 맞춰야만 했습니다. 기본 설정이 잘못되면 그 이후의 모든 작업을 다시 만들어야 하기 때문입니다.

런의 구성이 확정되자, 우리는 새로운 장비 세트를 그 위에 중첩할 수 있도록 기본 시스템을 구축했습니다. 그런 다음 이 모든 것을 관리하기 위해 중첩 엔진을 개발했습니다. 중첩 순서는 캐릭터의 방향과 장착한 무기에 따라 달라집니다. 예를 들어, 검은 대검과는 다른 가슴 방어구가 필요합니다.

그러다 우리는 더 다양한 무기 종류가 필요하다고 결심했죠…


우리는 다양한 무기, 즉 검, 대검, 중무기, 심지어 지팡이까지 구현하기로 결정했습니다. 각 무기마다 가슴 부위의 애니메이션 스타일이 서로 다릅니다. 지팡이의 경우, 중무기의 대기 및 달리기 애니메이션이 완벽하게 어울렸고, 경무기의 빠른 휘두르기 동작은 지팡이 공격에 적합했습니다. 우리 시스템 덕분에 기존 애니메이션 중 적절한 것을 선택해 새로운 애니메이션과 조합하여 사용할 수 있었습니다.
조합적 복잡성이 가장 큰 골칫거리였습니다. 무기 종류마다 그에 맞는 가슴 방어구 애니메이션이 필요하고, 시선 방향에 따라 레이어의 렌더링 순서가 달라질 수 있습니다. 이를 모든 장비 슬롯, 모든 무기 종류, 모든 방향에 적용하면, 수천 가지의 조합을 처리하면서도 화면이 어색해 보이지 않도록 해야 하는 시스템이 완성됩니다.
농사? 자, 이제 좀 앉아서 이야기해 봐야겠네요
달리기 동작을 넘어 더 다양한 기능을 구현하면서, 우리는 음료 마시기, 농사 짓기, 채집하기 등의 애니메이션을 작업하기 시작했습니다. 그러던 중 기존 기본 애니메이션의 프레임을 재배열하여 이러한 새로운 동작을 만들 수 있다는 사실을 발견했습니다. 이는 계획된 것이 아니었습니다. 단지 실험을 진행하던 중 시스템에서 자연스럽게 도출된 결과였죠. 동작을 더 많이 추가할수록 이 방법이 더욱 유용하다는 것을 알게 되었습니다.
단 몇 프레임만 더 추가해서 어떻게 게임에 ‘앉아 있는’ 동작을 구현했는지

달리기 동작을 넘어 더 다양한 기능을 구현하면서, 우리는 음료 마시기, 농사 짓기, 채집하기 등의 애니메이션을 작업하기 시작했습니다. 그러던 중 기존 기본 애니메이션의 프레임을 재배열하여 이러한 새로운 동작을 만들 수 있다는 사실을 발견했습니다. 이는 계획된 것이 아니었습니다. 단지 실험을 진행하던 중 시스템이 자연스럽게 만들어낸 결과였죠. 동작을 더 많이 추가할수록 이 방식은 더욱 유용해졌습니다. 우리가 구축한 시스템은 앞으로 스스로 발전해 나갈 수 있게 되었습니다.

‘앉기’ 동작을 추가할 때, 우리는 완전히 새로운 애니메이션 세트가 필요할 것이라고 예상했습니다. 하지만 실제로는 다리 부분만 몇 프레임 더 추가해 수정하면 되는 것으로 드러났습니다. 시간이 좀 걸리긴 했지만, 충분히 해낼 수 있는 작업이었습니다. 이것이 이제 우리의 패턴이 되었습니다. 엄청난 노력이 필요할 것 같은 작업도 결국에는 한두 개의 레이어 슬롯만 수정하면 해결되는 경우가 많습니다. 이 시스템은 우리가 예상했던 것보다 훨씬 확장성이 뛰어나며, 우리는 계속해서 이를 활용할 새로운 방법을 찾아내고 있습니다.
그 결과 오늘날 우리는 어떤 상황에 처해 있는가

플레이어는 머리, 가슴, 다리, 등, 무기 슬롯에 장비를 장착할 수 있습니다. 각 장비는 별도의 애니메이션 레이어로 렌더링됩니다. 무기 종류를 변경하면 가슴 방어구도 자동으로 그에 맞춰 변경됩니다. 외형 변환(Transmog) 기능은 능력치와 외형을 분리하므로, 원하는 대로 캐릭터의 외관을 꾸밀 수 있습니다. 이 시스템은 모든 방향 전환을 처리하며, 레이어 순서는 실시간으로 조정됩니다. 이 기능은 달리기, 앉기, 음료 마시기, 사냥, 채집 애니메이션 전반에 걸쳐 작동하며, 이 모든 애니메이션은 수년 전 확정된 기본 달리기 애니메이션을 기반으로 제작되었습니다.
다음은 무엇일까요?

우리는 여전히 애니메이션 시스템을 확장하고 있습니다. 새로운 동작을 추가할 때마다 스켈레톤 시스템의 한계가 어디까지인지 더 잘 파악할 수 있게 됩니다. 아직 구현하고 싶은 기능이 더 많지만, 기반 시스템은 견고하게 버텨주고 있으며 앞으로 계획된 작업들을 충분히 감당할 수 있습니다.