1. 환경 세팅

Unity에서 외부 수치 연산 라이브러리를 사용하기 위해 NuGetForUnity를 Package Manager에 git URL 방식으로 설치했고, 이를 통해 NumSharp 0.30.0을 프로젝트에 추가했습니다. 설치 과정에서 System.Runtime.CompilerServices.Unsafe 의존성 충돌이 발생했고, 해당 패키지를 추가 설치하여 해결했습니다.


2. AMASS 데이터 구조 파악

AMASS 데이터가 어떤 키와 타입으로 구성되어 있는지 파악하기 위해 CMU 서브셋의 01_05_poses.npz 파일을 로드하고 키 목록을 순회했습니다. 그 결과 poses, trans, betas, dmpls 등 6개의 키로 구성되어 있으며, NpzDictionary에서 키 접근 시 .npy 확장자가 필수임을 확인했습니다. 또한 데이터 타입이 float이 아닌 double로 저장되어 있어 ToArray<double>()을 사용해야 함을 알게 되었습니다.


3. Joint 값 추출 및 확인

실제 포즈 데이터가 정상적으로 읽히는지 확인하기 위해 첫 번째 프레임의 joint 값을 콘솔에 출력했습니다. poses(4376, 156) shape으로 4376프레임 × 52관절 × 3축(axis-angle) 구조임을 확인했고, 루트 관절(골반)의 X축 값이 약 1.5725(≈ π/2, 90도)로 T-포즈 상태임을 파악했습니다. 이를 통해 AMASS 데이터가 Unity Y-up 좌표계와 맞추기 위한 좌표 변환이 필요할 것임을 예상할 수 있었습니다.


4. 다음 단계 계획

추출한 axis-angle 값을 Unity의 Quaternion으로 변환하고, 이를 실제 오브젝트의 관절에 적용하여 프레임별 애니메이션을 재생하는 것을 목표로 합니다.