넥슨이 자사가 개발 중인 온라인 게임 신작 A1을 최초로 공개하며 이를 위해 쌓아온 노하우를 공개했다.
26일 넥슨 기현우 리드 그래픽 프로그래머는 ‘프로젝트 A1의 AAA급 캐릭터 랜더링 기술’이라는 주제로 성남시 판교 넥슨 사옥에서 열린 넥슨 개발자 컨퍼런스 2016(NDC16)에서 발표했다.
이번 발표는 넥슨의 신작 온라인 게임 A1을 처음으로 공개하는 자리로 현재 개발 중인 캐릭터 랜더링에 대한 내용을 주로 발표했다.
이 게임은 경쟁 게임과 차별화된 고품질 그래픽을 강점으로 내세우고 있으며 이를 위해 언리얼 4를 최대한 활용하고 새로운 애니메이션 효과 등을 구현하고 있다.
기 프로그래머는 주로 캐릭터를 사실적으로 표현하기 위한 불투명 효과를 어떻게 적용했는지에 대해 소개했다.
A1은 캐릭터의 사실적인 피부를 구현하기 위해 언리얼엔진4가 지원하는 멀티플 스케터링(다중 산란)툴인 SSSS를 사용하고 있다. 다만 SSSS는 투과 현상이 없어 귀 등 신체의 얇은 부분에 빛이 통과되는 효과를 표현할 수 없다.
이에 싱글 스케터링을 사용해 투과 현상을 표현해 귀에 투과 효과가 생기고 눈 밑, 코, 입술 등이 더 밝게 표현됐다.
머리카락은 어려 겹의 카드 메시와 텍스처 알파로 표현하고 있으며 머리카락의 끝부분 등은 별도의 메시로 처리했다.
머리 표현은 카드 메시 레이어가 많아 픽셀 오버드로우가 발생한다. 이를 UAV를 사용한 단일 패스 오패시티로 최적화했다. 알파블렌딩은 머리카락이 투명하게 비치기 위함이 아니라 가는 머리카락을 깨끗하게 표현하기 위해 사용한다. 또한 머리카락 안쪽은 화면에 보이지 않기 때문에 불투명 픽셀로 오버드로우를 줄이고 겉에는 모두 표현하는 식으로 구현했다.
이를 통해 5~10%의 속도가 향상하고 15%의 메모리를 절약할 수 있었다고 기현우 프로그래머는 설명했다.
기 프로그래머는 머리카락의 반투명한 효과를 표현하기 위해 포워드 라이팅을 했다고 설명했다. 이는 반투명 메터리얼 픽셀 단위 라이틍을 위한 것으로 유리나 플라스틱 등 캐릭터 장비에도 쓰일 수 있을 것으로 예상되고 있다.
다만 포워드 라이팅을 이용할 경우 한 번에 많은 라이팅이 들어오면 일일이 섀도우 맵을 할당해야 하기 때문에 사양이 높아질 수 있다.
그래서 A1은 가장 앞면의 픽셀에만 섀도우 계산을 하고 이를 기반으로 사용하는 방법을 사용했다. 머리카락의 끝부분이 아니면 투명부분이 높지 않아서 앞면만 사용해도 큰 문제가 없을 것으로 판단했기 때문이다..
머리카락 표현은 헤어프로파일 에셋을 통해 재질의 속성을 정의할 수 있어 머리카락의 반사와 투과 효과까지 모두 적용했다.
A1은 실시간으로 시간이 바뀌는 배경을 가지고 있기 때문에 시간의 변화에 따라 그림자도 달라지게 된다. 또한 그림자 안에 캐릭터가 있어도 어색하지 않도록 별도의 그림자가 표현되는 스크린 스페이스 이너 섀도우 기술을 적용했다.
관련기사
- [NDC16]"無비용 게임 마케팅 방법…'몸빵!'"2016.04.26
- '넥슨 NDC2016' 26일 개막…100여개 세션2016.04.26
- 넥슨 'NDC2016', 게임 노하우 보따리 푼다2016.04.26
- 넥슨 개발자 컨퍼런스(NDC) 16, 참관자 모집2016.04.26
또한 캐릭터 애니메이션도 사실적인 표현을 위한 다양한 시도가 이뤄지고 있다. 캐릭터의 움직임에 따라 쓰고 있는 후드가 펄럭거리고 캐릭터가 걸을 때마다 엉덩이와 허벅지가 겹쳐지는 부분이 흔들리는 표현도 구현했다.
기현우 리드 프로그래머는 “넥슨의 새로운 IP 게임을 NDC를 통해 처음으로 공개하게 됐다. 다른 게임들과 차별화되는 AAA급 그래픽 품질을 목표로 최신 그래픽 기술을 도입하고 개발해 제작하고 있다”며 “아직 알려지지 않았는데 이번 발표를 통해 같이 일할 분들이 많이 지원해주길 바라고 출시 전까지 많은 응원 부탁드린다”벼 발표를 마쳤다.