논문 링크: Text-to-Any-Skeleton Motion Generation Without Retargeting
요약
최근 Diffusion, LLM 기술의 발전에 힘입어 Text-to-Motion 분야도 빠르게 성장하고 있습니다. 하지만 기존 기술들은 대부분 표준화된 스켈레톤(Standard Skeleton) 상에서만 동작한다는 한계가 있었습니다. 만약 새로운 캐릭터 골격에 이 모션을 적용하려면 번거롭고 전문 지식이 필요한 리타게팅(Retargeting) 과정을 거쳐야만 했고 이는 초보자들에게 큰 진입 장벽이었습니다.

이 논문의 저자들은 이러한 2단계(생성 → 리타게팅) 방식의 비효율성을 해결하고자, OmniSkel이라는 새로운 프레임워크를 제안합니다. OmniSkel은 리타게팅 과정 없이, 텍스트와 타겟 캐릭터 스켈레톤을 입력받아 곧바로 해당 캐릭터에 딱 맞는 모션을 생성하는 Single-Stage 솔루션입니다.
논문의 최종 목표는 텍스트 (c, context) 와 스켈레톤 (S, skeleton) 을 반영한 모션 시퀀스(M_1:t, motion)을 만들어 내는 것입니다.
이를 위해서 저자들은 두가지의 핵심 구성 요소 SR-VAE와 Masked, Residual Transformer를 제안합니다. 이 구성요소들을 소개하기 전에, 이를 학습시키기 위한 데이터를 어떻게 표현하고 구성했는지 소개하겠습니다.
SkeleMotion-3D Dataset
저자들은 HumanML3D와 AMASS, HumanAct12를 합쳐서 다양한 스켈레톤-모션 쌍을 구성했다고 밝혔습니다. 이 과정에서 모션 시퀀스를 T x J x Dm 차원으로 표현하게 되며 각각 프레임수, 관절 수, 관절의 특징 차원 수를 의미입니다. D_m은 다음과 같은 요소들로 구성되어 있습니다.
F_{motion} = [F_{topo}, F_{root}, F_{xyz}, F_{rot}, F_{vel}]
각각 스켈레톤 토폴로지(연결구조), 루트 관절, 상대위치, 6D 회전, 그리고 속도입니다
모션 말고 스켈레톤도 봐야겠죠. 스켈레톤은 다음과 같이 표현됩니다
F_{skel} = [F_{topo}, F_{static}]
각각 스켈레톤 토폴로지(연결구조)와 정적인 스켈레톤 특징(예: 뼈 길이)들을 담고 있습니다.
Skeleton-aware Residual VAE
모델의 핵심 구성요소 첫번째 SR-VAE 입니다

기존의 VQ-VAE나 RVQ-VAE 기반 방법론들은 소스 모션을 동일한 스켈레톤 구조로 복원하는 데 초점을 맞추어져 있습니다.
하지만 이 프레임워크의 목표는 '임의의 스켈레톤(Any Skeleton)'에 모션을 입히는 것입니다.
이를 위해 저자들은 비대칭(asymmetric) VAE 아키텍쳐, 인코더와 디코더가 서로 다른 정보를 처리하도록 설계된 VAE를 제안했습니다.
이 모델에선 인코더는 모션 시퀀스와 스켈레톤을 입력받아 스켈레톤에 상관없는 (skeleton-invariant) latent feature를 추출할 수 있도록 학습됩니다. 출력은 MoMask 등에서 사용된 Residual Quantization 과정을 거쳐서 이산적인 코드 시퀀스로 변형됩니다. 디코더는 이 코드 시퀀스와 함께 타겟 스켈레톤을 입력받아 motion latent feature가 타겟 스켈레톤에 맞춰진 모션을 생성할 수 있도록 학습됩니다.
위와 같은 과정들에서 스켈레톤 정보를 분리해서 모션을 학습시키기 위해 저자들은 K-GCA라는 모듈을 활용했습니다.
K-GCA

기존의 Graph Attention Network(GAT)를 확장한 Kinematic Graph Cross Attention(K-GCA)는 GAT와 달리 자기 자신에 대한 참조(모션-모션 참조)가 아닌, Cross-Modal Attention(모션-스켈레톤 참조)을 수행합니다. Attention은 다음과 같이 구성됩니다.
- Q : 모션 특징(X)를 투영하여 생성
- K, V : 스켈레톤 특징을 투영하여 생성
Q(모션)는 K(스켈레톤)와 상호작용하여 현재 움직임이 골격의 어떤 구조적 특징과 밀접하게 연관되어 있는지(Attention Score)를 계산하고, 이 점수를 바탕으로 V(실제 골격 정보)를 가중합하여 원래의 모션 특징에 더해줍니다. 즉, 단순히 움직임만 있는 정보에 '이 움직임은 이런 골격 구조 위에서 이루어진다'는 맥락을 주입하는 것입니다.
또한, 이 모든 과정에 스켈레톤의 인접 행렬(Adjacency Matrix, A)을 마스크로 씌워, 실제 신체 구조상 연결된 관절끼리의 관계만 물리적으로 타당하게 반영되도록 설계했습니다.
Masked, Residual Transformer

위의 SR-VAE를 학습한다면 이제 모션을 묘사하는 텍스트가 해당 모션이 인코딩 되었을때 나오는 토큰을 생성할 수 있도록 만들 모델이 필요합니다. 저자들은 다음과 같은 두 트랜스포머가 협력하는 구조를 제안합니다.
- Masked Transformer(Base Layer) : 기저 레이어 토큰을 생성하는 역할을 수행하면서 모션의 전역적인 일관성, 즉 큰 흐름을 먼저 만듭니다.
- Residual Transformer(Refinement) : 이후 텍스트와 토큰을 다시 입력으로 받아 Masked Transformer에서 생성하지 못한 디테일들을 점진적으로 예측해 나갑니다. 이름에 Residual, 잔차가 붙은 이유는 이 모델이 RVQ, Residual Vector Quantization 방식에 따라 앞선 레이어에서 표현하지 못한 잔차, 즉 섬세한 디테일을 입히도록 학습되기 때문입니다.
Motion Restoration Optimizer
생성된 모션이 타켓 스켈레톤의 구조에 정확히 맞춰짐을 보장하기 위해 저자들은 Motion Restoration Optimizer, MRO라고 명명된 모듈을 제안합니다.
기존의 모션 생성 방식은 크게 회전 기반 생성방식, 위치 기반 생성방식이 있었는데요, 각 생성 방식들은 다음과 같은 장단점을 지녔습니다
- 회전 기반 생성 방식은 뼈 길이를 보존할 수 있다는 장점이 있지만 관절별 오차가 누적될 시 FK의 계층 구조로 인해 떨림, Jittering 현상이 심하게 보이는 단점이 있습니다
- 위치 기반 생성 방식은 FK를 사용하지 않기 때문에 오차가 누적되지 않아 부드러운 움직임을 보여주지만 관절의 위치만을 각각 고려하기 때문에 뼈 길이가 보존되지 않는다는 단점이 있습니다.
저자들은 포지션 예측을 통해 부드러운 움직임을 우선 구현한 뒤, 다음 관절까지의 방향 벡터를 구해 뼈 길이를 곱해가며 모션을 생성하는 방식, 즉 MRO를 사용해 이 두가지 방식의 장점만을 취했습니다. 쉽게 표현하자면 위치 기반 예측에서 로테이션을 계산해낸 뒤 FK를 돌렸다고 보셔도 됩니다.
위와 같은 방식을 채택해, 지터링이 없는 부드러운 모션과, 모션 재구성 과정에서 정확히 맞춰진 뼈 길이를 통해 기존의 연구들에 비해 낮은 오류율을 달성할 수 있었다고 저자들은 주장합니다.
결론

최종적으로 다시 정리하자면 이 논문은 리타게팅 과정 없이 모션을 생성할 수 있는 방법론을 제시합니다. SR-VAE, K-GCA, MRO, Masked & Residual Transformer 와 같은 모듈들을 사용해 스켈레톤에 상관없이 모션을 학습하고, 타겟 스켈레톤에 맞춰진 모션을 생성할 수 있는 파이프라인을 통해 초보자들이 쉽게 원하는 캐릭터에 원하는 모션을 입힐 수 있는 기술을 구현했다고 주장합니다.
Full body animation study에서 알게된 논문입니다. 업무 과정에서 리타게팅이 항상 문제가 되는 경우가 많았는데 이런 방법론으로 리타게팅 단계를 스킵해보는 발상이 신박했던 것 같습니다