※ 해당 게시글은 CEDEC 2016에서 cygames 개발진이 강연한 내용의 번역입니다.
출처 : http://www.4gamer.net/games/307/G030796/20160829088/
2편 - 3D 캐릭터 모델링으로 이어집니다.
────────────────────────────
본 레포트는 CEDEC 2016에서 있었던 ‘아이돌마스터 신데렐라 걸즈 스타라이트 스테이지 제작 – 테크니컬 편, 다양한 기종의 스마트폰에서 5명의 아이돌이 활약하는 라이브의 뒷모습 (60fps 리듬게임 개발 비화) –의 강연을 서술하였다.
기술적인 내용이 많아 3D 그래픽의 기본적인 지식을 습득한 상태가 아니면 이해하기 조금 어려울 수 있지만, 데레스테 개발진의 노하우가 엿보이는 내용이므로 부디 읽어줬으면 한다.
◆ 게임 엔진으로 Unity를 선택한 이유는?
한 가지 예를 들면, ‘(본편에서 사용되는) 이미지 이펙트들은 그 1개월 안에 만들어진 것들이 대부분’이라고.
게다가 개발에서 ‘그래픽에서 아이돌이라는 매력을 느낄 수 있도록’이라는 목표를 설정하고, ‘고스펙의 스마트폰에서는 성능에 걸맞는 고품질의 그래픽을 표현하자’는 목표를 처음부터 세웠다고 한다.
만에 하나를 위해 설명해두자면, 블룸 효과라는 것은 빛이 넘쳐흐르듯이 보이게 만드는 효과이며, 피사계 심도(Depth of Field)는 초점이 맞지 않는 부분이 흐릿하게 보이게 만드는 효과이다.
그리고 무엇보다 결과물의 상태가 Unity 쪽이 더욱 높았다는 게 결정적인 요인으로 작용하였다.
◆ 60fps를 유지하기 위한 최적화 노력
카나이 엔지니어는 서멀 스로틀링에 대하여 ‘구체적인 해결책을 갖고 있는 사람은 없지 않느냐’는 생각과 동시에, ‘적절한 비주얼을 적절한 타이밍에 터뜨려주는 게 최선의 해결책일 것이다.’라는 견해를 보였다.
이렇게 Unity를 사용하여 개발이 진행된 데레스테는 스마트폰에서 60fps를 유지하기 위하여, 저성능의 스마트폰에서도 즐길 수 있도록 이펙트를 간소화시킨 ‘3D 경량’과, 하이엔드 스마트폰을 위한 고품질 설정인 ‘3D 표준’을 준비하여 세분화한 것이 특징이다.
iPhone 시리즈의 경우 기기 가짓 수도 적을 뿐더러 성능도 기종에 따라 명확하게 차이가 나므로, iPhone 5 이전의 제품들은 3D 경량으로, iPhone 6 이후는 3D 표준으로 체크되도록 설정되어 있다.
한편, 기종도 많고 성능도 제각각인 안드로이드의 경우, 그렇게 단순히 설정하기란 너무 어려웠다. 그리하여 앱에서 SoC를 자체적으로 판단한 기준으로 성능을 조절하는 방식을 택하였다. 다만, 유저가 직접적인 조작을 하지 않는 MV 모드에서는 ‘프레임 영향을 주는 것들이 대거 사라지므로, 성능이 비교적 낮은 기종이라도 3D 표준으로 즐길 수 있게끔 하였다.’고 언급하였다.
3D 경량과 3D 표준의 구분. iPhone에서는 기종별로 판별할 수 있지만,
안드로이드는 SoC로 판별하여 3D 그래픽의 품질 설정을 구분한다.
그럼 여기서 카나이 엔지니어가 특별히 신경썼던 이펙트를 짚고 넘어가보자.
아래에 게재된 2장의 슬라이드는 이펙트의 차이를 표시한 샘플이며, 왼쪽이 3D 경량이고 오른쪽이 3D 표준이다. 같은 부분이지만 왼쪽은 피사계 심도와 블룸이 제거되어 있고, 오른쪽은 충실히 재현되어 있다. 자세히 설명하자면, 스테이지 바로 앞측(이미지에선 아랫쪽)의 바닥과 계단이 만나는 곳을 보면 알아차리기 쉽다.
3D 경량(왼쪽)과 3D 표준(오른쪽)의 이펙트 차이를 표시한 슬라이드. 이미지의 왼쪽 아래를 확대해보면 차이가 두드러진다.
3D 표준은 피사계 심도를 사용하여 약간 흐릿하게 보이는 것이 특징.
이것을 어떻게 구현하였는가. 먼저 1프레임을 1/4로 축소시켜 뿌옇게 만든 것과 Depth Texture를 사용하여, 사진에서 광도를 추출한 것과 합성을 시키면 위 그림과 같이 나온다고 하였다.
3D 경량에서는 이펙트 처리를 할 수 없는 이유도 여기에 있다. Unity에서는 Depth Texture를 생성하기 위해 1패스 분의 렌더링 처리가 필요한데, 이것이 저성능 SoC에서는 과부하의 원인이 된다는 것.
더욱이, 이 블룸 효과는 스테이지 뒤쪽 모니터 영상에도 사용되고 있다.
피사계 심도와 블룸 효과가 표현되는 과정. 방법 자체는 일반적으로 쓰이는 것.
Depth Texture를 얻기 위해 1패스 분의 처리가 필요하기 때문에 3D 경량에선 이펙트를 생략.
라이팅은 리얼 타임으로 구현되는 것은 아니라고 하며, 환경광(Ambient Light)을 ‘타임라인 툴’이라는 툴로 제어하고 있을 뿐이라고 한다. 타임라인 툴로 미세하게 조정함으로써 마치 스포트라이트 같은 효과도 표현할 수 있었다고.
또한, 캐릭터 아웃라인(외곽선)은 culling면을 반전시켜 구현한다는 툰 렌더링의 고전적인 방법을 사용하고 있다. 그리고 아웃라인의 색과 폭은 정점 컬러로 제어하고 있다고 밝혔다.
라이팅은 비교적 간단하게, 아웃라인 표현은 고전적인 방법으로 성능 부하를 최소화.
실제로 표현된 라이팅과 아웃라인의 예시.
효율성은 낮을지 몰라도 캐릭터를 매력적으로 표현하였기 때문에 신경쓰면 진다.
그러나, 캐릭터 아래에 표현되는 그림자는 페이크, 즉 라이팅을 반영하여 산출한 결과물이 아니라 모의적인 계산으로 나타난 것을 채용한 모양이다. 카나이 엔지니어는 이에 대해 두 가지의 이유를 들어 설명하였다. 하나는 쉐도우 맵핑 방식으로는 Depth Texture가 필요하므로 3D 경량에서는 구현을 못한다는 것. 때문에 ‘그림자가 없으면 입체감이 떨어진다’는 생각에, 3D 경량이라도 그림자는 나오게끔 일부러 그랬다고.
또 하나는, 스테이지 위에서는 조명이 수도 없이 많기 때문에 쉐도우 맵핑으로는 정확한 재현이 불가능하기 때문.
그림자는 3D 경량, 3D 표준에서 모두 페이크로 처리.
쉐도우 맵핑은 사용하지 않는다.
이외에도 60fps를 구현하기 위해서 경량화를 위한 노력과 시간이 상당 부분 투자되었다.
카나이 엔지니어는 ‘드로우 콜(DrawCall)’를 삭제하는 것이 CPU 부하와 직접적인 연관성이 있다는 점에 ‘꽂혔다’고 강조하였다. Unity에 기본적으로 탑재된 드로우 콜 삭제기능인 ‘드로우 콜 배칭(Static batching과 Dynamic batching)’을 사용함으로써, 결과적으로 드로우 콜의 수를 대폭 삭감하는 것이 가능했다고 한다.
드로우 콜 삭감 효과를 표시한 슬라이드. 드로우 콜 배칭으로 40%의 드로우 콜을 감소시켰다.
또한, 3D 표준에서 3D 경량으로 바꾸는 것만으로도 30%를 줄일 수 있다.
◆ 캐릭터 움직임은 의도적으로 흐트러지게 만들어서 리얼리티를 강조
데레스테에서 가장 중요한 부분 중의 하나인 캐릭터 모션은 모두 다 알지도 모르겠지만, 모션캡처를 통하여 제작되었다. 그런데, 실제로 움직일 때에는 IK(Inverse Kinematics, 역운동학)을 사용하지 않고 애니메이션을 전부 로테이션으로 하고 있다고 한다.
로테이션에 따른 흔들림(노이즈)는 투명 오브젝트 설치로 눈속임을 하였다고 한다.
로테이션에서는 캐릭터의 움직임 끝에 흔들림이 발생할 수 있다. 예를 들자면 뻗은 손이 뻣뻣하게 움직일 수 있다는 것. 이에 대해 마이크 스탠드처럼 스테이지에 고정된 투명 오브젝트를 배치하여 여기에 손을 닿게 하여 모션의 불안정성을 완화하였다.
리얼리티를 연출하기 위해 모션에는 일부러 흐트러짐을 추가.
다음 사항인 모션에서는 캐릭터마다 랜덤으로 신체의 흔들림을 추가하였다고 한다. 댄스에 맞춰 움직임을 살짝 흐트리는 것으로 마치 인간이 춤추는 듯한 현실감을 연출하려는 방법을 취했다고. 이로 인해 유저가 MV 재생 도중에 일시정지를 하여도 캐릭터의 포즈가 모두 똑같이 않고 미묘하게 다른 것을 보여줄 수 있다는 것이다.
의상 시뮬레이션은 연산 자체가 힘들어서 네이티브 코드로 구현.
그리고 모션 관련으로 하나 더 포인트로써 언급된 것이 의상의 물리 연산 처리다.
데레스테에서는 그리 구체적이지는 않아도 간단한 물리 효과가 구현되어 있는데, 최소한이지만 컬리전(접촉) 판정을 설정. 다만, C#으로 그걸 전부 처리하기엔 부하가 심하게 걸리기 때문에 연산 과정에 네이티브 코드를 사용하고 있다고 한다. 덕분에 10~20% 정도는 CPU 부하를 최소화시킬 수 있었다고.
그리고 꽃가루나 콘서트 라이트에 관한 설명도 있었으나, 전반적으로 전세대의 거치형 게임기에 활용된 그래픽 기술을 설명하는 인상이 강하였다. 현재의 스마트폰은 전세대의 거치형 게임기에 필적하는 3D 성능을 가지고 있어, 전세대의 그래픽 기술이 사용되는 것은 어찌보면 당연한 것일지도 모르겠다.
(IP보기클릭)211.44.***.***
아트편 다룬 기사만 봐서 테크니컬편 내용도 궁금했었는데 번역 감사합니다.
(IP보기클릭)211.44.***.***
아트편 다룬 기사만 봐서 테크니컬편 내용도 궁금했었는데 번역 감사합니다.
(IP보기클릭)211.36.***.***
(IP보기클릭)118.36.***.***