[유나이트 서울 2018 발표자 소개] 스노우의 김대욱 개발자는 캐릭터 제작 프로그램 '제페토(Zepeto)'를 담당하고 있다. 스노우는 카메라 어플리케이션 '스노우', 'B612', 'Foodie', 캐릭터 제작 어플리케이션 및 플랫폼인 '제페토' 등을 선보인 바 있으며, 자신을 표현하는 다양한 방법과 소셜 네트워킹 서비스를 제공하고 있다.

나를 닮았지만 조금 더 예쁜 나. 스노우나 B612 등 요즘은 다양한 필터로 더욱 나은 자신의 이미지를 남길 수 있다. 전혀 다른 사람처럼 인공적으로 이미지를 합성하는 것이 아니라, 본인의 이미지를 남기면서 조금씩 수정을 가하는 것이다. 개발사 스노우의 캐릭터 제작 어플리케이션인 '제페토' 또한 이와 같은 목표를 가지고 있다.

나를 닮았지만 좀 더 예쁜 캐릭터를 만드는 것. 그리고 이를 이용해 다양한 콘텐츠를 '나'로서 즐기는 것.

'유나이트 서울 2018'에서 스노우의 김대욱 개발자는 캐릭터 제작 서비스인 '제페토'를 소개하고, 어떻게 활용할 수 있는지 그리고 제페토 캐릭터를 통해 어떤 느낌의 게임을 제작할 수 있는지에 대해서 소개했다. 이날 강연은 사진을 촬영해 머신 러닝을 통해 구현되는 '제페토'의 캐릭터 구현 방식에 대한 자세한 설명에 이어 플랫폼으로서의 '제페토'의 다양한 활용 분야, 그리고 캐릭터를 어떻게 게임에 적용할 수 있는지에 대한 소개로 이루어졌다.



금손이 아니어도 가능, '제페토'가 캐릭터를 만드는 법


김대욱 개발자
“디테일한 커스터마이징이 가능하다고 하더라도 대부분의 유저분들은 ‘전 금손이 아니라서, 어차피 예쁘게 못 만들어요’라고 말씀하신다. 하지만 제페토는 조금 다른 방식으로 진행됩니다.”


제페토는 캐릭터를 만들어주는 서비스로, 유저가 사진을 찍으면 머신 러닝으로 이미지를 분석하고, 닮은 캐릭터를 자동으로 만들어준다. 자동으로 생성된 캐릭터는 디테일하게 조절이 가능하며, 옷을 고르고 헤어스타일을 바꾸는 간단한 기능에서부터 얼굴형, 속눈썹까지 재현하는 등 자세한 커스터마이징이 가능하다. 나와 닮았지만, 좀 더 예쁘고 귀여운 캐릭터를 만드는 것이 제페토의 목적이다.


대부분의 캐릭터 아바타 서비스에서는 개성을 담은 캐릭터를 만들기 위해서 수많은 리소스를 제작한다. 눈을 표현하고 싶으면 눈 모양만 100개를 만들고, 코를 100개 만들어 물량으로 다양성을 담는 것이다. 하지만 리소스를 다양하게 만든다고 하더라도 선택의 종류는 한정되어있기 때문에 결국 캐릭터들은 비슷한 느낌으로 흘러갈 수밖에 없으며, 개발 시간도 오래 걸린다.

그럼 리소스를 재활용하면서도 캐릭터의 개성을 살릴 수 있는 방법은 없을까? 제페토에서는 캐릭터 커스터마이징의 부분을 베이스 모델, 커스터마이징 파트, 메이크업 파트, 얼굴 표정까지 네 가지로 나누어 기본 리소스를 만들고, 이를 조합하고 혼합하는 방식으로 캐릭터를 생성한다.

▲베이스 모델 17개, 커스터마이징 팩 80개, 메이크업 파트 10개, 그리고 표정은 51개의 기본 리소스를 사용한다.

예를 들어 얼굴형 및 기본 골격을 의미하는 베이스 모델에서는 17개의 기본 인상을 가지고 조합, 혼합한다. 둥근 얼굴, 뾰족한 얼굴, 네모난 얼굴 중의 하나를 골라서 적용하는 것이 아니라 두 가지 모형을 조합하여 둥글면서도 뾰족한 특징을 가진 얼굴을 만들 수 있다. 조합할 때는 조합할 수 있는 모양의 개수나 섞는 비율이 정해져 있지 않아서, 둥근 얼굴 20%+네모난 얼굴 40%+뾰족한 얼굴 40% 와 같이 다양한 베리에이션으로 조합이 가능하다.

▲마음대로 혼합할 인상의 개수, 그리고 혼합 비율을 정할 수 있다.

이 메커니즘을 통해 훨씬 다양한 얼굴을 제작할 수 있어 필요한 리소스의 수는 줄었지만, 유저가 어떤 모형의 캐릭터를 만들지 예측할 수 없기 때문에 추가 에셋과 관련된 문제가 발생했다. 캐릭터에 적용될 안경이나 의상이 맞지 않는 경우가 있기 때문이다. 예를 들어 안경은 캐릭터의 두상에 맞춰져야 하는데 얼굴 모양이 제각각인 만큼 안경다리가 얼굴을 뚫고 나오거나 눈에 맞지 않게 위치하는 경우가 발생한 것이다.

김대욱 개발자
“대부분은 장착할 수 있는 에셋을 재사용하기 위해서 캐릭터의 볼살 정도는 커스터마이징 가능하더라도 골격은 정해버리는 경우가 있는데, 이렇게 되면 제페토가 가진 개성을 잃어버릴 것이라고 생각했다. 따라서 추가적인 기술이 필요했다.”


제페토에서는 이를 해결하기 위해서 ‘Flexible Assets’ 기능을 사용한다. 캐릭터의 모양에 맞춰 에셋이 변형되어 적용되는 기능으로, 의상을 체형에 맞춰 적용해주거나 안경을 두상의 모양과 눈의 위치에 맞춰 구현시켜준다. 특히 의상의 경우 안경이나 헤어스타일과는 다르게 애니메이션이 추가로 필요하다. 애니메이션을 구현하기 위해서는 추가적인 리깅 작업이 필요한데 모든 의상마다 리깅작업을 하지 않고도 자동화해주는 오토리깅을 통해 빠르게 에셋 제작을 할 수 있다. 따라서 캐릭터에 맞는 모델링만 작업하고 입혔을 때 어떤 애니메이션이 재생된다고 하더라도 그래픽이 튀지 않고 자연스럽게 애니메이션이 이루어진다.






제페토, 유저를 위한 어플리케이션과 개발자를 위한 플랫폼

▲제페토 어플리케이션. 캐릭터를 제작하고 다양한 표정으로 이모티콘을 만들 수 있다.

제페토는 어플리케이션과 플랫폼으로 나누어져 있다.

일반 사용자가 다운받아서 사용할 수 있는 제페토 앱은 기본적으로 사진을 찍고 아바타를 제작하는 기능을 담고 있다. 아바타를 만드는 메이커로써의 기능을 중점적으로 다루고 있다. 현재 앱에서는 체형은 조정할 수 없게 되어있는데 추후 업데이트될 예정이다.

어플리케이션에서는 캐릭터 제작뿐만 아니라 내 아바타를 가지고 카카오톡 및 라인에서 쓸 수 있는 이모티콘 제작 기능을 지원하고 있다. 기본 표정 템플릿으로 바로 적용해서 이모티콘을 만들 수 있을 뿐만 아니라 직접 표정을 짓거나 다양한 효과를 적용해 커스텀 이모티콘 제작도 가능하다.

여기서 만들어진 커스텀 캐릭터는 제페토 연동 어플에서 사용 가능하다. 게임 속에 자신의 캐릭터를 등장시키거나 미러기능을 통해 자신의 표정을 따라 하도록 만들 수 있다.

▲사용자, 개발자, 크리에이터, 콘텐츠를 연결하는 플랫폼, 제페토

제페토 플랫폼은 게임을 제작하는 개발자나 디자이너들을 위한 플랫폼이다. 사용자, 개발자, 크리에이터, 그리고 콘텐츠를 연결해주는 플랫폼으로, 페이스북 계정을 통해 연동된 서비스를 가입 없이 이용할 수 있는 것처럼 사용할 수 있도록 구성되어있다. 사용자는 제페토의 캐릭터를 생성해 게임이나 카메라, AR, 동화 등 다양한 콘텐츠에서 자신이 주인공이 되어 플레이할 수 있으며, 개발자는 SDK를 이용해 제페토 캐릭터로 콘텐츠를 제작할 수 있다.

현재 제페토 SDK는 파트너사를 한정 클로즈 베타로 제공되고 있으나 추후 인디 개발자나 디자이너들도 사용할 수 있도록 제공될 예정이다. 한편, 유니티를 기반으로 하고 있어서 유니티 사용 플랫폼에서 자유롭게 사용할 수 있으며, 기존 메카님을 사용하고 있는 게임은 쉽게 연동해 게임개발이 가능하다.

제페토의 캐릭터는 앱을 통해 불러오거나 소셜 계정, 캐릭터 코드, 이메일로도 쉽게 불러올 수 있다. 주인공 외 제3캐릭터 또한 메타데이터를 사용해 캐릭터를 제작하고 불러오는 것이 가능하다. 앞서 언급된 Flexible Asset을 위한 컨버터를 포함하고 있어 직접 게임 개발에 필요한 리소스를 추가할 수 있다.

▲아래 주소에서 설문을 작성하면 무료로 이용할 수 있다.




간단하게 게임에 적용할 수 있는 제페토 캐릭터, 사용 사례는?


이어 김대욱 개발자는 기존 프로젝트에 제페토 캐릭터를 적용하는 방법을 소개했다. 유니티에서 제페토 캐릭터를 불러오는 방법에는 두 가지가 있다. Scene에서 게임 오브젝트를 생성하고 위치를 잡아준 후에 컴포넌트를 추가해 불러올 수 있으며, 또는 베이스 모델을 사용해 캐릭터 컴포넌트를 붙이면 된다. 베이스 모델을 사용할 때에는 캐릭터가 가지고 있는 기본 골격 및 조인트가 포함되어 손에 무기를 올리거나 하는 로직을 구현할 때 사용하면 좋다. 이때, inplace를 체크해 선택된 베이스 모델을 그 자리에서 변형해 불러올 수 있다.


이어 데모 프로젝트에서 제페토 캐릭터를 불러와 기본 동작을 구현하는 시연이 이루어졌다. 이때는 베이스 모델을 추가해 기존 캐릭터가 가지고 있던 속성을 복사, 붙여 넣기 해주면 된다. 애니메이션 파일을 추가하고 그 외에 다른 컴포넌트를 복사 및 붙여 넣기를 통해 간단히 구현 가능하며 기본적으로 기존 캐릭터와 제페토 캐릭터를 똑같은 상태로 만들어주는 식으로 진행된다.

좀 더 복잡한 애니메이션도 그대로 적용이 가능하다. 예를 들어, 컨테이너 박스로 올라가는 캐릭터 모션이 있다면 이를 제페토 캐릭터로 바꿔주면 캐릭터가 똑같은 행동을 하는 모습을 확인할 수 있으며, 크기나 체형을 수정해도 모션이 무리 없이 진행된다.


의상이나 악세서리를 작업하는 크리에이터들은 보다 간단하게 작업이 가능하다. SDK와 함께 제공되는 베이스 모델을 유니티로 불러온 후 Convert Cloth를 누르면 변환이 되며, 캐릭터에 적용하면 자동으로 적합한 의상으로 만들어진다.


그럼 제페토 캐릭터는 어떻게 사용될 수 있을까? 김대욱 개발자는 다양한 사용 사례를 소개하며 제페토의 활용 분야에 대해서 소개했다.

먼저 개발된 게임을 제페토 캐릭터로 변환해 적용할 수 있다. 같은 러너 게임이나 다트 게임에서 캐릭터만 제페토 캐릭터로 변환해 플레이가 가능하며, 유저는 제페토 어플리케이션으로 만든 자신의 커스텀 캐릭터를 사용해 게임 플레이를 즐길 수 있다. 기존 게임 템플릿을 그대로 사용하기 때문에 별다른 수정이 필요하지 않다는 장점이 있다.


▲같은 게임을 캐릭터만 바꿔서 플레이할 수 있다.

게임뿐만 아니라 간단한 SNS 콘텐츠 또한 제페토 캐릭터를 활용해 새롭게 만들 수 있으며, 이모티콘을 제작하거나 스토리 어플리케이션에서 본인을 닮은 캐릭터로 직접 플레이가 가능하다. 똑같은 장면이더라도 각각 다른 얼굴의 주인공으로 연출될 수 있다.

김대욱 개발자는 “제페토의 캐릭터가 다양한 환경에 적용하고 들어갈 수 있기를 바란다”며, 다양한 활용 가능성을 강조하면서 강연을 마무리했다.

▲SNS 콘텐츠를 자신의 캐릭터를 적용해 만들어볼 수 있으며,

▲제페토 어플리케이션에서도 간단하게 만들어볼 수 있는 이모티콘 제작,

▲인터렉티브 동화 어플리케이션에서도 사용할 수 있다.


▲직접 만들어보니, 정말 나보다 훨씬 예쁘지만 나라고 우길수 있는 캐릭터가 탄생했다.
원하는 표정으로 이모티콘도 만들었다!