Friedrich-M/UniMate — [SIGGRAPH Asia 2026] UniMate: One Unified Model to Animate Diverse Skeletons
UniMate: 다양한 스켈레톤을 애니메이션하는 단일 모델
UniMate는 텍스트 프롬프트와 3D 리그를 입력받아 스켈레톤별 재학습 없이 관절 동작을 생성하는 모델입니다. 연구진은 7종의 골격 구조를 포함한 13,006개 텍스트-동작 쌍 데이터셋 UniML3D와 학습·추론 코드를 공개했습니다.
- 주제
AI 요약
UniMate는 서로 다른 관절 구조를 가진 3D 리그에 텍스트로 동작을 지정하면 애니메이션을 생성하는 모델입니다. 리그마다 별도로 학습하거나 추론 시 최적화하지 않고, 실시간 생성을 목표로 합니다. 연구진은 이 연구를 SIGGRAPH Asia 2026에 발표하며 학습 코드와 추론 코드, 데이터 처리 파이프라인, 체크포인트를 공개했습니다.
UniML3D 데이터셋
UniML3D는 텍스트와 짝을 이룬 동작 시퀀스 13,006개로 구성됩니다. 이족보행, 사족보행, 조류, 해양 생물, 곤충, 뱀 형태의 골격과 관절형 강체까지 폭넓게 포함합니다. 서로 다른 리그를 공통 표현으로 다루도록 정규화했으며, 데이터 처리 과정은 원본 자산 다운로드, 내보내기, 렌더링, 캡션 생성, 관절 주석, 특징 추출 순서로 진행합니다.
원본 자산은 Mixamo, Objaverse-XL, Truebones ZOO에서 가져옵니다. Truebones 동작 데이터는 상용 자산이며 재배포할 수 없습니다. 저장소는 프롬프트와 메타데이터, 렌더만 제공하고, 사용자는 Truebones에서 자산을 별도로 구매해야 합니다. 각 데이터 원본의 이용 조건도 따로 확인해야 합니다.
모델 구성과 학습
저장소에는 데이터 조합별, 모델 변형별로 총 8개 설정 파일이 제공됩니다. 모든 설정은 클립 길이를 60프레임으로 맞춥니다. 모델 변형은 그래프 기반 attention과 전체 cross-attention으로 나뉩니다. 그래프 방식은 프레임 안의 공간 관계와 관절별 시간 관계를 나눠 처리하며, 그래프 거리와 간선 유형, 깊이를 편향값으로 반영합니다. 캡션은 adaptive layer normalization(adaLN) 조절값에 넣습니다. 전체 cross-attention 방식은 관절과 시간 축을 펼친 토큰에 한 번에 attention을 적용하고, 캡션을 각 블록의 key와 value로 전달합니다. attention 방식과 텍스트 조건 방식은 서로 독립적으로 조합할 수 있지만, 공개 설정은 논문에서 비교한 두 조합을 사용합니다.
학습 데이터 크기에 따라 배치 크기, 학습 단계 수, 레이어 수, 허용할 최대 관절 수를 조정합니다. 단일 Truebones 또는 Mixamo 데이터에는 6개 레이어, Objaverse에는 8개, 전체 혼합 데이터에는 10개를 사용합니다. 관절 수 상한은 데이터 조합에 따라 60 또는 100이며, 하한은 모두 5입니다. 범위를 벗어난 객체 유형은 제외되고, 살아남은 스켈레톤에 맞춰 관절 축 패딩 크기를 정합니다. Mixamo는 단일 스켈레톤이므로 객체 유형 균형 샘플링을 끄고, 선택에 따라 토폴로지 증강도 적용하지 않습니다.
학습 샘플은 설정에 따라 객체 유형별 클립 수를 균형 있게 반영합니다. 표본이 n개인 유형의 선택 비율은 n^(1−sampler_alpha)에 비례합니다. 기본값인 sampler_alpha=0.5에서는 클립이 100개인 유형이 1개인 유형보다 100배가 아니라 10배 자주 선택됩니다. 관절 추가, 말단 관절 제거, 체인 풀링, 뼈 길이 변형도 적용해 학습 중 다양한 토폴로지를 만듭니다. 관절과 시간 축에 패딩을 넣되 마스크를 함께 사용해 패딩 영역은 attention과 손실 계산에서 제외합니다.
목표 함수는 flow matching입니다. 노이즈와 실제 동작 사이 선형 보간의 속도를 모델이 예측하고, 마스크를 적용한 L2 손실을 계산합니다. 복원한 동작에는 측지선 회전 손실과 속도 평활화 손실을 추가합니다. 조건을 일정 확률로 제거해 하나의 가중치로 조건부·무조건부 생성을 지원하며, 추론에서는 classifier-free guidance로 두 결과를 조정합니다. 최적화에는 AdamW, warmup을 포함한 cosine 스케줄, 그래디언트 클리핑, EMA 가중치를 사용합니다. 추론은 기본적으로 EMA 가중치를 불러옵니다.
생성과 편집 기능
추론은 학습 실행 디렉터리의 설정 파일과 정규화 통계, 체크포인트를 읽습니다. 대상 리그의 T-pose와 토폴로지 조건은 학습 데이터에 저장된 정보를 사용하므로 해당 데이터 디렉터리도 필요합니다. 입력 프롬프트마다 여러 결과를 만들고, 생성 동작을 NPY 파일로 저장하거나 골격 애니메이션을 MP4로 렌더링할 수 있습니다. 생성된 동작을 데이터 파이프라인의 마지막 단계에 전달하면 원본 메시가 포함된 GLB와 FBX 애니메이션도 내보냅니다.
같은 모델로 추가 학습 없이 세 가지 작업을 수행합니다. 인비트위닝은 지정한 키프레임을 고정하고 사이 동작을 생성합니다. 모션 편집은 선택한 관절의 기존 동작을 유지한 채 나머지 관절을 새 프롬프트에 맞춰 다시 생성합니다. 모션 확장은 여러 프롬프트에 따라 동작을 이어 붙이며, 다음 구간의 첫 프레임 일부를 앞 구간 끝에 맞춰 연결합니다. 이 작업들은 흐름 ODE의 각 단계에서 지정 신호를 고정하므로 조건을 손실 함수로 유도하는 대신 정확히 유지합니다. 세 기능은 classifier-free guidance scale이 1보다 커야 하며 동시에 실행할 수 없습니다.
데이터 품질과 한계
연구진은 UniMate를 초기 단계의 범용 텍스트-애니메이션 모델로 설명하며, 여전히 실패하는 동작과 스켈레톤이 많다고 밝힙니다. 특히 Objaverse-XL에는 바닥에 눕거나 회전·뒤집힌 휴식 자세, 서로 무관한 동작이 이어 붙은 클립이 포함될 수 있습니다. 이런 데이터는 학습을 불안정하게 만들거나 붕괴시킬 수 있습니다. 문제가 생기면 먼저 Truebones와 Mixamo만으로 학습해 Objaverse 데이터가 원인인지 확인하고, 의심되는 유형의 스켈레톤 미리보기 영상을 살펴본 뒤 문제가 있는 리그와 클립을 제외 목록에 추가하도록 안내합니다.
원문: GitHub / 번역·요약: Trawling