feat: ActorCore 모션 배치 import 자동화 추가
- MotionBatch_20260424에 Motion* 후보 FBX 10개를 import하고 Humanoid 리그를 정리 - Blender 기반 ActorCore 101본 정규화 스크립트와 Unity manifest 적용 메뉴 추가 - orc-stomp 단일 애셋의 extra root 리그를 정규화하고 사용 문서와 manifest를 보강 - Unity 컴파일, ApplyManifest 실제 실행, 콘솔 경고/오류 없음으로 검증
This commit is contained in:
69
Docs/ActorCoreMotionBatchImport.md
Normal file
69
Docs/ActorCoreMotionBatchImport.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# ActorCore Motion Batch Import
|
||||
|
||||
`/home/dal4segno/다운로드/Motion*`처럼 외부에서 받은 ActorCore 계열 FBX를 프로젝트에 일괄 import하기 위한 절차입니다.
|
||||
|
||||
## 목적
|
||||
|
||||
- 정상 ActorCore 101본 구조는 기존 `ActorCoreAvatar`를 `Copy From Other Avatar`로 적용합니다.
|
||||
- `RootNode_0`, `CC_Base_BoneRoot`, `RL_BoneRoot` 같은 extra root/보조 본이 섞인 FBX는 Blender에서 정상 ActorCore 101본 구조로 정규화합니다.
|
||||
- Unity에서는 정규화된 FBX를 `Create From This Model`로 import해 유효한 Humanoid Avatar와 `humanMotion` 클립을 생성합니다.
|
||||
- 0프레임 `T-Pose` take는 제외하고 실제 모션 클립만 남깁니다.
|
||||
|
||||
## 1. Blender 정규화와 manifest 생성
|
||||
|
||||
Unity 프로젝트 루트에서 실행합니다.
|
||||
|
||||
```bash
|
||||
python3 Tools/Blender/actorcore_motion_batch_import.py \
|
||||
--source-glob "/home/dal4segno/다운로드/Motion*/**/*.fbx"
|
||||
```
|
||||
|
||||
기본 출력 위치는 `Assets/External/Animations/ActorCore/MotionBatch_YYYYMMDD`입니다. 같은 이름의 폴더가 이미 있으면 `_1`, `_2` suffix가 붙습니다.
|
||||
|
||||
필요하면 batch 이름을 직접 지정할 수 있습니다.
|
||||
|
||||
```bash
|
||||
python3 Tools/Blender/actorcore_motion_batch_import.py \
|
||||
--source-glob "/home/dal4segno/다운로드/Motion*/**/*.fbx" \
|
||||
--batch-name MotionBatch_DrogCandidates
|
||||
```
|
||||
|
||||
변환 없이 계획만 확인하려면 다음처럼 실행합니다.
|
||||
|
||||
```bash
|
||||
python3 Tools/Blender/actorcore_motion_batch_import.py \
|
||||
--source-glob "/home/dal4segno/다운로드/Motion*/**/*.fbx" \
|
||||
--dry-run
|
||||
```
|
||||
|
||||
스크립트가 생성하는 manifest는 `_actorcore_motion_import_manifest.json`입니다. 이 파일에는 원본 경로, 복사된 asset 경로, sha256, 처리 방식(`copy` 또는 `create`), 제거된 본 목록이 기록됩니다.
|
||||
|
||||
## 2. Unity import 설정 적용
|
||||
|
||||
1. Unity Editor에서 play mode가 꺼져 있는지 확인합니다.
|
||||
2. Project 창에서 생성된 `_actorcore_motion_import_manifest.json`을 선택합니다.
|
||||
3. 메뉴 `Tools/Animation/Apply ActorCore Motion Batch Import Settings`를 실행합니다.
|
||||
4. 완료 후 Unity Console에 오류/경고가 없는지 확인합니다.
|
||||
|
||||
메뉴는 manifest의 `unityImportMode`를 기준으로 다음을 적용합니다.
|
||||
|
||||
- `copy`: `Humanoid / Copy From Other Avatar / ActorCoreAvatar`
|
||||
- `create`: `Humanoid / Create From This Model`
|
||||
|
||||
`copy` 적용 후 Unity가 유효한 `humanMotion` 클립을 만들지 못하면 자동으로 `Create From This Model`로 fallback합니다.
|
||||
|
||||
## 검증 기준
|
||||
|
||||
성공 조건은 다음과 같습니다.
|
||||
|
||||
- `Armature` extra transform이 없습니다.
|
||||
- `root`가 FBX 루트 오브젝트 바로 아래에 있습니다.
|
||||
- `AnimationClip.humanMotion == true`인 실제 모션 클립이 1개 이상 있습니다.
|
||||
- `create` 모드 파일은 valid + human Avatar를 자체 sub-asset으로 가집니다.
|
||||
- Unity Console에 import warning/error가 없습니다.
|
||||
|
||||
## 주의
|
||||
|
||||
- 이 도구는 원본 다운로드 폴더의 FBX를 수정하지 않고, 프로젝트 하위 새 batch 폴더에 복사한 파일만 정규화합니다.
|
||||
- 기준 rest skeleton은 기본적으로 `Assets/External/Animations/ActorCore/orc-jog.fbx`를 사용합니다.
|
||||
- ActorCore와 다른 본 이름 체계를 가진 FBX는 자동 정규화가 실패할 수 있습니다. manifest에서 `unityImportMode: skip`과 오류 메시지를 확인하세요.
|
||||
Reference in New Issue
Block a user