Artoke

애니 논문: Robust Motion In-betweening: 키프레임 사이를 신경망이 채운다

키프레임 사이를 신경망이 채운다 — Robust Motion In-betweening 해부

애니메이터가 캐릭터의 동작을 만들 때 모든 프레임을 손으로 찍지는 않는다. 중요한 순간의 포즈, 즉 키프레임을 먼저 잡고 그 사이를 채우는 것이 전통적인 작업 방식이다. 이 "사이 채우기(in-betweening)"는 오랫동안 스플라인 보간 같은 수학적 도구가 담당해 왔지만, 보간은 두 포즈를 부드럽게 잇기만 할 뿐 사람처럼 움직이게 하지는 못한다. 걷다가 돌아서는 동작이라면 무게 중심이 쏠리고, 발이 지면을 딛고, 팔이 반동으로 흔들려야 하는데, 보간은 그런 물리적·양식적 뉘앙스를 전혀 모른다.

Ubisoft La Forge의 Harvey 등이 SIGGRAPH 2020에 발표한 이 논문은 그 빈칸을 순환 신경망(RNN)이 채우게 한다. 입력은 두 가지다. 과거 문맥이 되는 시작 포즈 몇 프레임(논문에서는 10프레임), 그리고 도달해야 할 목표 키프레임 하나. 출력은 그 사이의 전이 구간 전체다. 핵심 난제는 전이 길이가 매번 다르다는 것이다. 5프레임짜리 짧은 전이도, 30프레임이 넘는 긴 전이도 하나의 모델이 처리해야 하고, 마지막 프레임에서는 목표 포즈에 정확히 "착지"해야 한다. 이 논문의 두 가지 핵심 장치 — 도착까지 남은 시간을 알려주는 시간 인코딩과, 스케줄된 타깃 노이즈 — 가 바로 이 문제를 푼다.

기본 구조: 세 개의 인코더와 LSTM

모델의 뼈대는 저자들의 이전 작업인 Recurrent Transition Network를 따른다. 매 시각 마다 네트워크는 세 종류의 정보를 각각 별도의 인코더로 압축한다.

  • 상태 인코더: 현재 캐릭터 상태 . 루트(골반)의 전역 위치와 각 관절의 로컬 회전(쿼터니언)으로 이루어진다.
  • 오프셋 인코더: 현재 상태에서 목표 키프레임까지의 차이 . "앞으로 얼마나 더 가야 하는가"를 담는다.
  • 타깃 인코더: 목표 키프레임의 포즈 자체.

세 임베딩을 이어 붙여 LSTM에 넣고, 디코더가 다음 프레임의 상태 변화량 를 예측한다. 예측된 프레임은 다시 다음 스텝의 입력이 되는 자기회귀(autoregressive) 방식이다. 즉 네트워크는 한 프레임씩 앞으로 걸어가면서, 매 순간 "지금 내 자세"와 "목표까지 남은 거리"를 보고 다음 자세를 만든다.

애니 논문: 논문 — Robust Motion In-betweening: 키프레임 사이를 신경망이 채운다 도식

장치 1: 도착까지 남은 시간을 새기는 인코딩

순수한 자기회귀 RNN에게 "정확히 20프레임 뒤에 목표 포즈에 도착하라"는 요구는 어렵다. 네트워크는 지금이 전이의 초반인지 막바지인지 알 길이 없기 때문이다. 저자들은 Transformer의 위치 인코딩을 빌려와 이 문제를 푼다. 다만 시퀀스 내 절대 위치가 아니라 도착까지 남은 프레임 수 (time-to-arrival)를 인코딩한다는 점이 다르다.

기호를 풀면 이렇다. 는 현재 프레임에서 목표 키프레임까지 남은 프레임 수로, 매 스텝 1씩 줄어든다. 는 임베딩 벡터의 차원이고, 는 그 벡터의 성분 인덱스다. 인덱스가 커질수록 분모 가 커져서 사인·코사인의 주기가 길어진다. 즉 는 빠르게 도는 시계와 느리게 도는 시계를 겹쳐 놓은 벡터로, 남은 시간을 여러 스케일에서 동시에 표현한다. 이 벡터를 세 인코더의 출력 임베딩에 더해서 LSTM에 넣으면, 네트워크의 내부 표현 자체가 "지금 얼마나 급한가"에 따라 연속적으로 변조된다. 도착 직전에는 목표에 맞춰 착지하는 표현으로, 멀리 있을 때는 자연스러운 동작을 이어가는 표현으로 부드럽게 전환되는 셈이다.

한 가지 실용적인 디테일이 있다. 남은 시간이 아주 클 때는 를 상한 에서 잘라(clamp) 고정한다. 덕분에 학습 때 본 적 없는 아주 긴 전이를 요구받아도, 초반에는 "아직 여유가 많다"는 동일한 상태로 동작을 이어가다가 이내로 들어오면 착지 모드로 전환한다. 하나의 모델이 5프레임부터 훨씬 긴 전이까지 견디는 이유 중 하나다.

장치 2: 스케줄된 타깃 노이즈

두 번째 장치는 목표 정보에 일부러 노이즈를 섞는 것이다. 시퀀스마다 가우시안에서 노이즈 벡터를 하나 뽑아, 타깃·오프셋 임베딩에 더한다. 중요한 것은 노이즈의 세기를 남은 시간에 따라 조절하는 스케줄이다.

여기서 는 노이즈에 곱해지는 스케일이고, 는 노이즈를 완전히 끄는 시점(논문에서는 5프레임), 는 노이즈가 0에서 최대로 올라가는 구간의 길이(30프레임)다. 읽어 보면 의도가 분명하다. 목표가 아직 멀 때(가 클 때)는 노이즈가 최대라서 네트워크는 목표를 흐릿하게만 보고, 대신 그럴듯한 동작을 만드는 데 집중한다. 목표가 5프레임 이내로 다가오면 노이즈가 0이 되어 정확한 목표를 보고 착지한다.

이 설계는 두 마리 토끼를 잡는다. 첫째, 학습 중 목표 정보가 흔들리는 상황을 겪었기 때문에, 실행 시 목표가 다소 이상한 위치에 있어도 모델이 무너지지 않는 강건함을 얻는다. 둘째, 같은 시작 포즈와 같은 목표를 주더라도 노이즈 샘플에 따라 서로 다른 전이가 나오는 다양성을 얻는다. 애니메이터 입장에서는 마음에 드는 결과가 나올 때까지 여러 변형을 뽑아볼 수 있다는 뜻이다.

학습: 재구성 손실과 두 개의 판별자

학습 데이터는 실제 모션 캡처 시퀀스에서 잘라낸 구간이다. 앞 10프레임과 마지막 프레임을 입력으로 주고, 그 사이를 모델이 생성하게 한 뒤 원본과 비교한다. 재구성 손실은 각 요소에 대한 L1 거리로 구성된다.

는 시각 에 예측된 전체 관절의 쿼터니언 벡터, 는 정답, 는 전이 길이다. 여기에 루트 위치에 대한 같은 형태의 손실과, 순기구학(FK)으로 계산한 전역 관절 위치에 대한 손실 가 더해진다. FK 손실이 중요한 이유는 오차의 무게를 뼈대 구조에 맞게 재분배하기 때문이다. 골반 회전의 작은 오차는 손끝에서 큰 위치 오차가 되는데, 관절 각도만 비교하면 이 차이가 무시된다.

그런데 L1/L2류 손실만으로 학습하면 결과가 흐릿하고 밋밋해진다. 가능한 여러 미래 동작의 "평균"을 내는 것이 손실을 최소화하는 길이기 때문이다. 그래서 저자들은 LSGAN 방식의 적대적 학습을 얹는다. 판별자는 두 개다. 짧은 창(2프레임)을 보는 판별자는 프레임 간 속도가 자연스러운지, 즉 순간적인 움직임의 질감을 감시하고, 긴 창(10프레임)을 보는 판별자는 동작의 전체적인 흐름이 그럴듯한지 감시한다. 생성자는 재구성 손실과 적대적 손실을 함께 최소화하며, 그 결과 정답에 가까우면서도 뭉개지지 않은 생생한 동작이 나온다.

결과와 의미

저자들은 평가를 위해 대규모 고품질 모캡 데이터셋 LaFAN1을 공개하고, 쿼터니언 거리(L2Q), 전역 위치 거리(L2P), 스펙트럼 기반 지표(NPSS)로 비교했다. 단순 보간이나 이전의 RTN보다 모든 전이 길이에서 일관되게 좋은 수치를 보였고, 특히 전이가 길어질수록 격차가 벌어진다. 보간은 긴 구간에서 발이 미끄러지는 유령 같은 움직임을 만들지만, 이 모델은 걸음을 실제로 "걸어서" 목표에 도달한다.

절제 실험(ablation)도 설계의 정당성을 뒷받침한다. 를 빼면 목표 도착의 정확도가 무너지고, 타깃 노이즈를 빼면 다양성과 강건함이 사라진다. 두 장치는 장식이 아니라 가변 길이 인비트윈이라는 문제 정의 자체를 감당하는 구조적 해법이다.

이 논문이 게임 업계에서 나왔다는 점도 눈여겨볼 만하다. 게임 애니메이션 파이프라인에서는 수천 개의 전이 클립을 손으로 만들거나 모캡으로 채워야 하는데, 키프레임만 지정하면 사이를 채워 주는 모델은 그 비용을 직접 줄인다. 이후 Transformer 기반 인비트윈 연구들이 이 논문의 문제 설정과 LaFAN1 벤치마크 위에서 전개되었다는 점에서, 이 작업은 "신경망 인비트윈"이라는 분야의 출발점 역할을 했다고 말할 수 있다.

출처

광고

리깅 파이프라인 자동화 도구

반복 작업은 스크립트에게. 현업에서 쓰는 리깅 툴 모음.

리깅 도구 보기