[유나이트 서울 2018 강연자 소개] 김형일 개발자는 게임/영상회사 캐릭터 모델러로서 10년 이상 근무했으며, 퇴사 후에 1인 개발자로 활동하고 있다. 전 넥슨지티에서 서든어택 캐릭터팀 팀장으로 근무했으며, 청강문화산업대학교에서 2018년 1학기 모델링 강의를 진행하기도 했다.

일부를 제외하고, 다수의 게임은 캐릭터를 통해서 진행하게 되어있다. 캐릭터가 등장하는 게임들의 구도를 잘 살펴보면 주인공 캐릭터를 조작하거나, 적 캐릭터를 무찌르거나, 동료 캐릭터를 모으거나 하는 등 캐릭터가 게임의 많은 부분에 연관되어있음을 알 수 있다.

이렇듯 캐릭터는 게임에서 중요한 역할을 차지한다. 심지어 일부 장르에서는 캐릭터가 전부라고 할 정도로 캐릭터 의존도가 높다. 그만큼 유저들은 캐릭터에 대해서 관심을 갖고 지켜보는데, 그들이 보았을 때 아름답다고 느낄 수 있는 캐릭터는 어떻게 만들 수 있을까?

김형일 개발자는 이번 유나이트 서울 2018 강연에서 유니티를 활용해 아름다운 캐릭터를 만드는 방법에 대해 소개한다. 또한 캐릭터를 만드는 과정에서 흔히 겪는 실수에 대처하는 방법에 대해서도 설명했다.

김형일 개발자는 우선 '아름다운 캐릭터'의 기준은 다양하다는 점을 지적했다. 아름답다, 예쁘다는 개념은 주관적이기 때문에 이를 충족시키는 것은 어려운 일이었다. 그렇지만 어떤 캐릭터를 기존보다 좀 더 아름답게 보이게 하는 방법은 있다고 그는 설명했다.

이를 느낀 것은 그가 서든어택 캐릭터팀 팀장으로 재직했을 때였다. 서든어택은 연예인 캐릭터를 주력으로 출시하는 만큼, 연예인을 직접 만나고 촬영할 기회가 많았다. 처음에 그는 기본적인 캐릭터 모델링에 활용하기 위해서 무표정한 사진을 위주로 촬영했고, 그 사진을 베이스로 캐릭터를 만들었다. 그렇게 만들어낸 캐릭터는 원본인 연예인이 예쁜 만큼 어느 정도 퀄리티는 나왔지만, 무언가 부족하다는 느낌이 들었다. 캐릭터에 표정을 넣지 않았기 때문에 굳어있는 듯한 느낌이 들었던 것이다.


그래서 김형일 개발자는 캐릭터에 표정을 넣기로 결정하고, 모델이 된 연예인에게도 다양한 표정을 주문했다. 그렇게 해서 찍어낸 사진과 캐릭터는 이전에 무표정한 결과물들보다 더 좋았다. 실제로 어느 한 사람이 예쁘다고 느낄 때는 그 사람이 웃거나, 즐거워하는 표정을 지을 때다. 대상을 한 층 더 아름답게 하기 위해서는 그런 요소도 고려해야 했던 것이다.

▲ 웃는 표정은 아름다움을 배가해주는 요소다

그는 현재 터치걸즈 프로젝트라는 모바일 연애시뮬레이션 게임을 제작 중이다. 주머니 속의 여자친구라는 기획으로 만들어진 이 게임은 자연히 여자 캐릭터를 더 자연스럽고, 아름답게 연출하는 데에 집중해야 했다. 또한 캐릭터가 움직이거나 할 때, 유저가 그것을 보면서 어색하다고 느끼지 않도록 하는 것도 중요했다.

▲ 김형일 개발자가 제작 중인 '터치 걸스'

프로젝트 시작에 앞서서 그는 과연 어떤 스타일의 캐릭터를 만들어야 하는지 고민했다고 밝혔다. 일본의 게이트박스라는 기기에서 영감을 얻었지만, 그것에서 홀로그램으로 등장하는 캐릭터는 애니메이션풍 캐릭터였다. 이런 캐릭터는 분명 일부층의 수요가 있지만, 반발도 있는 스타일이었다. 그래서 그는 좀 더 보편적으로 어필할 수 있는 스타일을 찾아야 했다.

그래서 참고자료로 수집한 연예인 사진들을 보면서 그는 모델링을 할 때 유의해야 할 점을 다시 떠올렸다고 술회했다. 모델링을 하다가 얼굴 모델링에 카메라를 극단적으로 클로즈업하면 심하게 왜곡되는 현상이 종종 발생한다. 이런 현상이 생길 때 하나하나 수정해야했기 때문에 다양한 각도의 사진은 필수였다. 단순히 망원렌즈로 땡겨서 찍은 샷뿐만 아니라 클로즈업샷으로 인물을 다각도에서 관찰하고, 다각도에서 모델링을 다듬어야지만 왜곡되지 않고 자연스러운 모델링을 구현할 수 있기 때문이다.

▲ 모델링에 앞서 다각도에서 찍은 사진들을 참고자료로 활용했다

그렇게 해서 만든 다음에도 계속 수정 작업은 필요했다. 특히나 표정의 경우 다듬어도 일부 어색한 부분들이 계속 보이기도 한다. 그런 부분을 볼 때마다 계속 수정하는 작업을 거쳐야지만 비로소 자연스럽고, 아름다운 캐릭터가 만들어진다고 김형일 개발자는 강조했다.

모델링의 경우는 모델의 이미지를 참고하고, 하나하나 다듬어가는 과정으로 아름답게 만들어갈 수 있다. 하지만 모델링만으로 캐릭터 제작은 끝나지 않는다. 텍스처를 입히고, 쉐이더를 입히는 작업까지 거쳐야 한다. 이 부분에서 초보자들이 많이 어려움을 느낀다. 사람의 얼굴만 해도 헤어 쉐이더, 스킨 쉐이더, 아이 쉐이더 등 세 종류 이상의 쉐이더가 필요하다. 뿐만 아니라 사람은 자신의 얼굴뿐만 아니라 타인의 얼굴에 굉장히 많은 신경을 쓴다. 즉 표정이 살짝 이상하거나 쉐이더가 이상해도, 이질감을 느끼기 쉽다는 것이다.

어떤 대상에서 이질감이 느껴지는 순간, 사람은 그것을 아름답고 느끼지 않게 된다. 따라서 아름다운 캐릭터를 만들기 위해서는 이런 이질감, 흔히 말하는 '불편한 골짜기'를 없애는 것이 무엇보다도 중요하다고 강조했다.

현재 게임 기술로도 자본과 시간, 인력이 주어지면 실사에 가까울 정도로 자연스럽게 인체를 묘사할 수 있다. 그렇지만 대다수의 경우에는 이런 조건이 갖춰지지 않는다. 따라서 실사에 완벽히 부합하는 인체 모델링을 하기는 어렵다. 그렇다고 보았을 때, 결국 유저들에게 캐릭터의 아름다움을 어필하기 위해서는 부자연스러운 부분을 최대한 줄여서 불쾌감을 없애는 것이 더 중요해지는 것이다.

▲ 흔히 말하는 불편한 골짜기를 없애는 것이 관건이다

김형일 개발자는 3D 캐릭터 모델링 과정에서 불편한 골짜기가 발생하는 5가지 이유를 들었다. 첫 번째로는 해부학에서 벗어난 인체비례다. 그 중 많은 사람이 처음에 범하는 오류는, "눈이 크면 아름답다"라는 것이다. 분명 미인상에도 눈이 큰 미인도 있고, 2D 캐릭터로는 눈이 크고 예쁜 캐릭터들이 있다. 그렇지만 그 비율을 3D로 구현한다고 가정했을 때, 해부학적으로 불가능하다. 그만한 크기의 눈을 보유했다고 가정하면, 때로는 안구가 얼굴뼈 안쪽의 대부분의 공간을 차지하는 경우도 발생한다.

물론 사람이 반드시 해부학적 지식을 갖고 인체를 바라보는 건 아니지만, 오랜 경험으로 쌓인 지식과 다른 것이 보이면 무의식적으로 거부감을 보이게 된다. 그 외에도 해부학을 모르고 캐릭터를 만들거나 커스터마이징하게 되면, 부자연스러운 부분 때문에 눈에 거슬리게 된다고 김형일 개발자는 설명했다.

부자연스러운 표정과 시선처리 문제도 모델링을 처음할 때 자주 겪게 되는 문제라고 강조했다. 특히나 표정의 경우는 부자연스러움을 느낄 때마다 보통 수정해나가지만, 시선에 대해서는 간과하는 경향이 있다고 덧붙였다. 시선처리가 이상해서 사시가 되거나, 혹은 삼백안이 되거나 하면 캐릭터가 이질적으로 변한다. 또한 사람은 특정한 경우가 아니면 눈을 깜빡거리는데, 이런 것을 구현하지 않으면 마치 로봇과 대화하는 듯한 이질감을 느끼게 된다. 따라서 이런 사소한 부분도 신경을 써야 캐릭터가 자연스럽게 느껴진다고 김형일 개발자는 재차 강조했다.

모델러들이 자주 고민하는 또 다른 문제는, 리깅을 할 때 모델링이 깨지거나 뒤틀리는 현상이다. 이는 관절 부위, 특히 어깨나 팔꿈치에서 많이 발생한다. 보통 이런 현상은 팔꿈치를 접거나, 팔을 머리 위로 들어 올리는 동작에서 많이 발생하며, 이 부분을 처리하기 위해서는 모델링을 한 이후에 후처리가 중요하다.

▲ 특히 이런 현상은 어깨와 팔꿈치 쪽에서 많이 발생한다

이런 것들이 잘 갖춰져도, 쉐이더를 입히는 과정에서 이상하게 적용되면 캐릭터가 이질적으로 구현된다. 앞서 말했듯 얼굴만 해도 헤어 쉐이더, 스킨 쉐이더, 아이 쉐이더가 들어가고, 적용되는 스펙트럼이나 쉐이더 옵션도 다 다르다. 그리고 일반적으로 생각하는 것보다, 더 섬세하게 쉐이더를 조절할 필요가 있다. 예를 들어서 눈을 구현할 때 사람들이 자주 착각하는 것 중 하나가 눈동자에 음영을 넣지 않는 것이다. 머리카락이 눈가까지 흘러내리지 않으면 그림자가 안 생긴다고 생각하지만, 실제로 눈동자를 덮는 눈꺼풀 등 그림자가 생길 또 다른 요인들이 존재한다. 이것이 보통 때에는 크게 드러나지 않기 때문에 잘 인식하지는 않지만, 이를 부드러운 음영을 통해 표현했을 때와 음영을 표현하지 않았을 때 느낌이 확연히 다르다는 것을 알 수 있다.

▲ 모델링이 잘 되더라도 쉐이더를 잘못 쓰면 이질감이 느껴진다.

아름다움에 대한 기준과 집착의 정도는 사람마다 다 다르다. 따라서 아름다운 캐릭터가 무엇인가에 대해서 처음부터 접근하는 것은 굉장히 모호하고, 비효율적이라고 김형일 개발자는 강조했다. 일단은 사람들이 어떤 점에서 불쾌함을 느끼는지 먼저 파악하고, 이를 하나하나 수정해나가면서 아름다운 캐릭터의 조건을 갖춰갈 수 있다는 것이다.

아름다운 캐릭터를 만들기 위해 주의할 점을 설명한 뒤, 그는 모바일 게임을 위한 최적화 방법에 대해서도 언급했다. 모바일 디바이스가 분명 좋아지긴 했지만, PC보다는 한계가 있는 플랫폼인 만큼 최적화 과정은 필수적이기 때문이었다.

본격적으로 최적화 과정에 설명하기에 앞서서 김형일 개발자는 최적화를 위해선 수작업이 필수불가결하다고 강조했다. 다만 많은 이들이 생각하는 것처럼, 폴리곤을 줄이기 위한 수작업의 비중은 생각보다 높지 않았다고 언급했다. 폴리곤을 줄이면 분명 모델링을 렌더링하는 시간이 줄어들지만, 와이어프레임을 너무 줄이면 표정과 동작을 구현하기가 어렵기 때문에 단순히 폴리곤을 줄이는 것만으로는 캐릭터를 살리는 최적화를 할 수 없었던 것이다.

오히려 그가 수동으로 최적화할 때 신경썼던 부분은 맵핑 과정이었다. 흔히 하는 식으로 필과 프로젝션 이후 UV맵을 펴는 방식으로 맵핑을 하게 되면 UV맵의 공간이 낭비가 된다. 뿐만 아니라 눈, 코, 입 부분이 찌그러지는 현상도 발생할 수 있다. 이렇게 찌그러진 부분을 신경쓰면서 맵핑하는 작업에는 더 많은 노력이 들어갈 수밖에 없고, 이를 고려하면서 맵핑하는 것도 어려운 작업이다. 이런 부분을 프로젝션으로 한 번 편 뒤에 디테일한 부분을 하나하나 수작업으로 피면서 UV를 최적화하면 1024맵에서도 디테일한 질감을 표현할 수 있다는 것이다.

▲ 수동으로 맵핑을 하고 적용하면 더 섬세하게 질감을 표현할 수 있다

보통 자동 맵핑을 하게 되면 극단적인 클로즈업 샷에서 텍스쳐가 깨지는 현상이 발생한다. 그렇지만 수동 맵핑을 하면 그런 일이 발생하지 않는다. 심지어 모바일용으로 제작해서 압축된 맵핑에서도 클로즈업 샷에서 크랙이 발생하거나, 텍스쳐가 뭉개지는 현상이 발생하지 않는 만큼 최적화 과정에서 수동 맵핑은 필수적이라고 강조했다.

'터치 걸즈'에 등장하는 캐릭터의 폴리곤 수는 최대 3만 개로 잡았다. 표정과 동작 등의 요소를 고려했으며, 발가락 등 세부적인 파트를 어느 정도 사실적으로 구현하기 위해서 필요한 폴리곤의 최대치였다. 앞서 말했듯 일반적으로는 폴리곤 수가 최적화의 가장 큰 요인으로 생각한다. 하지만 3만 개의 폴리곤으로 구현해도 모바일 환경에서 캐릭터를 구현하는 데 지장은 없었고, 오히려 쉐이더나 라이팅, 쉐도우 등이 최적화에 큰 영향을 미쳤다. 따라서 이 부분에 대해서는 SS쉐이더나 포인트 라이트 등 비교적 가벼운 것들을 입혀서 최적화를 할 필요가 있었다고 강조했다.


표정을 구현할 때는 더 다양하고 예쁜 표정을 구현하기 위해서 본을 입히지 않고 블렌드 쉐이프로 표현했다. 이 과정은 일일이 수동으로 하나하나 만들고, 수정하고, 확인하는 과정을 거쳐야 한다. 자연스러운 관절 움직임을 위해서 관절에도 블렌드 쉐이프를 입혔는데, 이때는 관절의 움직임에 따라 형태를 보간하는 포즈 스페이스 디폼 기법을 활용했다. 기본 본으로 관절을 구현하면 관절을 접을 때 빨대처럼 접히는 현상이 벌어지지만, 여기에 블렌드 쉐이프를 걸고 포즈 스페이스 디폼 기법을 사용하면 이를 방지할 수 있다. 뿐만 아니라 관절을 접을 때 근육이 눌리는 효과 등도 구현할 수 있었다.


최적화를 고려해서 캐릭터를 만들었다면, 다음에는 유니티 엔진에 캐릭터를 적용해서 실제 게임에 캐릭터를 구현하는 단계를 거쳐야 한다. 김형일 개발자는 모바일 환경을 고려해서 디렉셔널 라이트는 한 개만 주고, 기기별로 안정적인 퍼포먼스를 내기 위해서는 하드 쉐도우를 입히고 포스트 이펙트에는 블룸과 칼라 그레이딩, 유저 룻 등 비교적 가벼운 툴을 활용했다고 밝혔다. 이는 필수 사항이 아니며, 쉐도우와 라이팅, 쉐이더 등 효과가 최적화에 큰 영향을 미친다는 것을 다시 한 번 강조하기 위한 것이라고 언급했다.

이 과정을 혼자 하기에는 한계가 있다고 느낄 수 있다. 실제로 김형일 개발자도 1인 개발 중이기 때문에 많은 부분에서 한계를 느꼈고, 그럴 때는 에셋 스토어에 올라온 것들을 적극 활용했다고 털어놓았다. 실제로 유니티 에셋 스토어에는 다양한 플러그인과 쉐이더가 존재하며, 그것들을 잘 활용하면 플러그인과 쉐이더 제작자가 의도치 않은 기능을 발견할 수 있다고 김형일 개발자는 자신의 경험을 예시로 들었다. 실제로 카툰풍 캐릭터를 구현하기 위해 주로 쓰이는 투니 컬러즈 프로2 같은 툴에는 보다 섬세하게 캐릭터 구현을 하기 위해 자체 쉐이더 제너레이터가 탑재되어있는데, 이를 응용하면 스킨쉐이더처럼 활용할 수 있었기 때문이다.


강연을 마무리하기 전, 김형일 개발자는 다시 한 번 아름다운 캐릭터 모델링에는 왕도가 없다고 강조했다. 아름다움에 대한 기준도 다를 뿐더러, 모델링 방식이나 모델링을 할 때 사용하는 툴이 등이 제각각 다르기 때문이다. 그렇지만 사람들이 불쾌함을 느끼는 포인트는 존재하는 만큼, 이를 줄이면서 다양하게 시도하는 것이 아름다운 캐릭터를 만들어갈 수 있는 좋은 방법 중 하나라고 김형일 개발자는 조언했다.