포스트

캐릭터의 표정과 감정의 물리적 파라미터를 감정 단어로부터 생성해내는 것에 대한 생각 정리

우연히 캐릭터의 여러 얼굴 표정을 조작하는 영상을 보았습니다. 얼굴의 특정 부분의 위치와 움직임이 감정을 품고 전달한다는 것이 세삼스레 놀랍게 느껴졌습니다.

[영상]

얼굴 부분 부분의 여러 물리적(위치[x], 길이[x-x'], 면적[(x-x')^2]볼륨[(x-x')^3] 파라미터를 변경하니 그에 따라 움직이는 얼굴을 바라보는 제가 해석하는 감정도 시시각각 변합니다. 어떤 조합의 변화에서는 어떠한 감정이 두드러지지 않아 특정 감정이다라고 말하기엔 모호하게도 느껴졌지만, 그래도 줄 세우듯 느껴지는 감정의 크기를 나열할 수는 있는 것 같습니다. 마치 우리들의 머리와 마음 속에 수많은 감정이 이미 표정과 함께 학습되어 있고 한 표정을 보고 한 감정으로 맞출 때 가장 높은 확률 순으로 나열할 수 있는 것 처럼 말이죠.

그런데 위 영상에서 신기했던 점은, 웃는 눈을 보고 '기쁜' 감정으로 해석되다가도, 입이 점차 비뚤어지면 '비웃는,경멸'의 감정으로 해석이 변하는 것입니다. 각 얼굴 부분의 물리적 파라미터 값의 변화 벡터는 한 감정에서 다른 감정으로의 변화와 상관관계가 있다고 할 수 있을까요? 예를 들어 [입과 관련된 한 상태값]에서 [행복30%, 불행50%, 분노20%, 경멸10%, 놀람10%, 두려움20%]의 확률을 가진다고 말이죠.

실제 사람의 얼굴은 많은 미세 근육으로 이루어져있고, 각 근육의 움직임도 상호 독립적이지 않아서 한 근육이 다른 근육에 영향을 주고, 매우 복잡할 것 같습니다. 디지털 캐릭터는 그보다는 단순할테지만, 그럼에도 디지털 캐릭터도 얼굴 메쉬의 파라미터 세트 탬플릿은 디자이너마다 다르게 만들 수 있는데요, 위 영상과 같이 아주 단순화해서 파라미터의 개수가 비교적 적고 각 파라미터가 상호 독립적인 부분의 움직임을 담당하는 경우라면 AI가 비교적 다른 복잡한 탬플릿보다는 학습하는 것이 비교적 쉬울 것 같습니다.

그리고 표정에서 감정으로 매핑되는 데이터 쌍을 별도 생성네트워크에 학습하면 감정을 지시해서 그에 어울리는 그럴듯한 표정의 파라미터 세트 값들을 생성해낼 수 있을 것 같습니다. 이를 위해선 기존의 '얼굴감정인식용으로 훈련된 인공지능 가중치'를 애니메이션 혹은 이 캐릭터의 스타일로 튜닝하는 방법이 있을 겁니다.

주워듣고 본 건 조금 있어서 이렇게 하면 될 것 같긴 한데, 선뜻 어떻게 시작할 지 잡히지 않는 건 아직은 제 경험이나 지식 내공이 부족하기 때문입니다. 실제로 해보기에 어렵지 않다면 저도 해보고 싶습니다.

이렇게 글을 마무리하려고 합니다. (사실 이 글의 두 배를 더 썼는데, 정리되지 않은 생각인걸 깨닫고는 지웠습니다.ㅠㅠ)

저의 글을 시간내어 읽어주셔서 감사합니다.

sticker


그리고 제가 지난 주에 유니티의 새로운 인공지능 툴의 베타 테스터 신청을 통과받았습니다. Sentis는 기존의 유니티 머신러닝(ML)의 툴을 업그레이드 한 새로운 인공지능 훈련 툴인데요, 이제는 게임의 화면 픽셀들까지도 실시간으로 훈련 데이터로 사용할 수 있도록 좀더 최적화되도록 만들었나봅니다. 개인적으로 요새 멀티플레이와 온프로미스서버, 플러터에 관심이 많아서 인공지능쪽으로는 시간을 못 들이고 있습니다. 게다가 아직은 저도 다루기가 어려울 것 같은데 잘 사용하게 되는 기회가 어서 오면 좋겠네요.

sticker

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.