⏱ 1 min read
스테이트 모션 클립 자동 교체 툴

새 스킨 코드가 부여된 AnimationClip을 AnimatorController에 자동으로 재연결하는 Unity 에디터 툴
Problem
쿠키 캐릭터는 스킨마다 별도 AnimationClip을 가진다. 기존 스킨(A001)으로 제작된 AnimatorController에 새 스킨(VR001) 클립을 연결하려면, State Machine의 모든 State를 열어 Motion을 하나씩 교체해야 한다.
State 수가 많아질수록 작업 시간이 선형으로 증가하고, 누락·오연결 실수가 생기는 반복 수작업 문제.
Implementation
- 01
매칭 키: 스킨리스 이름 (SkinlessName)
클립 이름에서 스킨 코드 파트(
parts[2])를 제거한 문자열을 키로 사용.새 스킨 폴더의 클립들로 같은 방식으로 키를 만들어 Dictionary를 구성, AnimatorController의 각 State의 Motion을 키로 조회해 교체.
안전 처리
케이스 처리 Clip_접두사 클립보존 (특수 클립 — 교체 제외) 키 중복 (Ambiguous) 교체 건너뜀, 경고 로그 매칭 없음 (Missing) Clear If MissingON이면 null, OFF면 기존 유지이미 연결된 클립 Overwrite ExistingON/OFF로 제어서브 모듈: Category Suffix 매칭
스킨리스 이름 매칭이 안 되는 경우를 위한 보조 매처.
In_/Out_/Emotion_/BattlePose_카테고리 키워드 이후 suffix로 매칭. - 02
StateMachine 재귀 순회
중첩 Sub-StateMachine까지 완전히 탐색하는 재귀 WalkStates.
Conclusion
- Controller + 새 스킨 클립 폴더 지정 → Execute Relink 1회로 전체 State 자동 교체
- 결과 요약: Changed / Missing / Ambiguous 카운트 + 상세 로그
Clip_보존 처리로 오연결 사고 방지