브랜드 마스코트를 만들었는데 표정이 어딘가 기계 같고 외계인처럼 보인다면, 눈 색을 바꾸기 전에 각막 반사(캐치라이트)가 있는지 먼저 보십시오. 저희 커피콩 로봇이 정확히 그 문제였고, 고치고 나니 남아 있던 어색함은 디자인이 아니라 학습 데이터 쪽이었습니다.

무엇이 달라졌나

마스코트 눈 재설계 전후 왼쪽이 이전, 오른쪽이 새로 설계한 눈입니다.

왼쪽 눈은 어두운 갈색 위에 얹힌 시안색 원판입니다. 홍채도 동공도 흰자도 없고, 무엇보다 표면에 반사광이 없습니다. 오른쪽은 앰버색 홍채에 결이 들어가고 검은 동공과 밝은 흰자가 생겼으며, 렌즈 좌상단에 반사 하이라이트가 하나 있습니다. 눈꺼풀 능선과 입도 함께 들어갔습니다.

빛나는 눈이 문제가 아니었습니다

처음에는 “발광하는 눈이 로봇 같아서 그렇다”고 생각했는데, 조사해 보니 반례가 분명했습니다. 월-E와 베이맥스는 렌즈 눈만으로 웬만한 CG 캐릭터보다 많은 감정을 전달합니다. 발광 자체가 원인이 아니라는 뜻입니다.

진짜 원인은 순수 발광이 각막 반사를 지운다는 데 있었습니다. 픽사는 각막을 볼록하게, 홍채를 오목하게 만들어 하이라이트가 두 번 생기게 합니다. 이 이중 하이라이트가 눈에 깊이를 만듭니다. 자체 발광 재질은 빛을 반사하지 않으므로 이 구조가 통째로 사라지고, 캐치라이트가 없는 얼굴은 죽어 보인다는 것이 언캐니 밸리 연구에서 반복적으로 지적되는 지점입니다.

저희 v1은 다섯 가지 함정을 전부 밟고 있었습니다. 순수 발광, 캐치라이트 없음, 완벽한 좌우 대칭, 눈꺼풀 없음, 그리고 어두운 바탕 위의 과채도 시안. 마지막 조합이 “외계인 같다”의 정체입니다. 어두운 톤에 날카로운 윤곽과 채도 높은 발광이 겹치면 그건 친근함이 아니라 위협 신호로 읽힙니다.

그래서 눈을 커피 톤과 같은 온도의 앰버로 낮추고, 반투명 렌즈 안에서 은은히 빛나되 표면은 빛을 반사하도록 바꿨습니다. 눈꺼풀 곡선은 눈썹이 없는 캐릭터에서 눈썹 역할을 대신합니다. 놀라면 둥글게 열리고 편안하면 살짝 처지는 축이 하나 생긴 셈입니다.

남은 두 가지 어색함은 디자인이 아니었습니다

표정이 단조롭고 걸음걸이가 미끄러진다는 문제가 남아 있었는데, 이건 그리는 문제가 아니었습니다.

레퍼런스 여섯 장을 다시 보니 전부 같은 웃는 얼굴이었습니다. 어댑터 입장에서는 이 캐릭터의 표정이 하나뿐인 셈이고, 그래서 하나만 배웠습니다. 학습 클립도 열두 개가 전부 “즐겁게 움직인다”는 한 가지 동작이었습니다. 본 적 없는 걸음 사이클을 만들어낼 수는 없습니다.

새 레퍼런스 시트 같은 여섯 장을 표정과 포즈로 나눴습니다. 중립, 미소와 손인사, 놀람, 생각, 걷기, 3/4 시점입니다.

걷기 컷은 세 번 만에 나왔습니다. 첫 번째는 캐릭터는 맞는데 두 팔이 같은 방향으로 나갔습니다. 자연스러운 걸음은 팔이 다리와 반대로 흔들려야 회전 모멘텀이 상쇄되는데, 이 카운터스윙이 없으면 정확히 “미끄러지는” 느낌이 납니다. 두 번째는 포즈는 맞았지만 몸이 매끈한 플라스틱이 되고 관절이 드러난 다른 로봇이 됐습니다. 재질과 실루엣을 명시하고 나서야 포즈와 정체성이 같이 잡혔습니다.

포즈와 정체성을 동시에 잡기 어렵다는 것 자체가, 레퍼런스를 주고 생성하는 방식이 존재하는 이유입니다.

그래서 학습 데이터를 다시 만들고 있습니다

배경 쪽에서는 이미 답을 확인했습니다. 열두 클립을 전부 같은 스튜디오 배경에서 찍었더니 어댑터가 배경까지 캐릭터의 일부로 외웠고, 배경만 열두 곳으로 바꿔 다시 학습하자 그 문제가 사라졌습니다. 마스코트를 잃지도 않았습니다.

동작 축에서 같은 일이 일어나는지가 지금 돌리고 있는 실험입니다. 학습셋 두 벌을 만들었는데 배경도 시드도 레퍼런스도 같고 동작만 다릅니다. 한쪽은 같은 동사 열두 번, 다른 쪽은 걷기, 손 흔들기, 점프, 앉기, 돌아보기, 가리키기, 박수, 기지개, 끄덕임, 어깨 으쓱, 줍기, 춤입니다.

동작 열두 종 학습셋 동작 열두 종을 요청해 만든 학습 클립입니다. 손을 들거나 팔을 벌리거나 몸을 숙인 컷은 확실히 다르지만, 서 있는 자세로 수렴한 컷도 여럿입니다.

여기서 솔직하게 적어둘 것이 있습니다. 열두 가지 동작을 요청했지만 생성기가 전부 다르게 그려주지는 않았습니다. 확연히 구분되는 것은 서넛이고 나머지는 서 있는 자세의 변형에 가깝습니다. 이 정도 다양성으로 어댑터가 배우는 것이 달라지는지가 바로 실험이 답할 질문입니다.

판정은 학습에 없던 동작으로만 합니다. 달리기, 웅크리기, 회전, 절하기처럼 열두 종을 따로 빼뒀습니다. 배운 동작을 다시 재생하는 것은 일반화가 아니기 때문입니다.

지금까지 배운 것

작은 학습셋에서는 클립들이 우연히 공유하는 것이 그대로 캐릭터의 일부가 됩니다. 배경을 한 곳에서 찍으면 그 배경이, 표정을 하나로 고르면 그 표정이 캐릭터에 들러붙습니다. 편의로 내린 선택이 모델에게는 규칙으로 전달됩니다.

그리고 어색함의 원인을 디자인과 데이터로 나눠 보는 것이 생각보다 중요했습니다. 눈은 아무리 학습해도 고쳐지지 않고, 걸음걸이는 아무리 다시 그려도 학습 데이터가 그대로면 돌아옵니다.

ThakiCloud 관점

캐릭터 설계부터 레퍼런스 생성, 학습셋 구성, 어댑터 학습, 평가까지 전부 사내 GPU 안에서 닫혔습니다. 브랜드 자산인 캐릭터가 외부 API로 나간 적이 없습니다. 학습이 필요한 국면은 Maxis가, 생성과 서빙은 Metis가 맡습니다.

무엇보다 값어치를 하는 것은 가설을 자기 데이터로 직접 재볼 수 있다는 점입니다. 배경 가설은 재봤더니 맞았고, 동작 가설은 지금 재고 있습니다. 결과가 나오면 그대로 공개하겠습니다.

이 글의 이미지와 영상은 전부 사내 GPU에서 생성한 것입니다.

태그: character-consistency, character-design, reference-conditioning, video-generation, wan2

카테고리:

업데이트: