Unity + MediaPipe + Sentis를 활용한 실시간 모션 트래킹
🎯 세션 주제 요약
이번 세션에서는 Unity에서 카메라 기반 실시간 AI 트래킹을 어떻게 구현할 수 있는지에 대해 다뤘습니다.
특히 Google의 MediaPipe 모델을 활용해 얼굴, 바디, 손의 움직임을 실시간으로 추론하고
이를 Unity 캐릭터에 반영하는 방법을 자세히 소개했습니다.
🧠 모션 트래킹 기술 발전 흐름
- 2010년 이전: 마커 기반 트래킹 (Wii, XSense 등)
- 2010년대 초: RGB 카메라 기반 (Kinect, Leap Motion)
- 2015년 이후: 딥러닝 기반 추론 (OpenPose, MediaPipe)
- 현재: 모바일, XR 기기 기반의 AI 트래킹
- 미래: 스마트 글래스 + 상대방 포즈 분석 시대 도래
🎥 얼굴 트래킹 (Face Tracking)
적용 흐름
- RGB 이미지 입력
- BlazeFace로 얼굴 영역 추출
- FaceMesh로 478개의 3D 랜드마크 추출
- 146개 좌표를 바탕으로 52개 Blendshape 값 생성
- 캐릭터 얼굴 표정에 적용
💡 iPhone 전용으로만 가능하던 Blendshape 트래킹을
이제 안드로이드나 PC에서도 Unity로 구현할 수 있습니다.
🕺 포즈 트래킹 (Pose Tracking)
적용 흐름
- RGB 이미지 입력
- Pose Detector로 바디 영역 추출
- GHUM 3D 모델로 33개 3D 포인트 추출
- Unity Humanoid 구조에 맞게 리타겟팅(Retargeting)
- 다양한 캐릭터에 실시간 적용
Unity에서 사용하는 휴머노이드 본 구조에 자동 매핑되므로,
Mixamo, VRM, VRChat 캐릭터 등 다양한 모델에 쉽게 적용 가능합니다.
✋ 손 트래킹 & 제스처 분류
- 21개 손 관절 추출
- 추출된 키포인트를 128차원 임베딩 벡터로 압축
- 사용자가 직접 수어(예: "I Love Unity 6")나 제스처를 학습
- MLP 기반 제스처 분류 모델 생성 및 적용
💡 손쉽게 커스텀 제스처를 만들 수 있어 미디어 아트, XR 콘텐츠에 효과적입니다.
🔁 리타겟팅 & Inverse Kinematics (IK)
- MediaPipe 포즈의 33포인트를 Unity Humanoid 본에 매핑
- IK 연산을 통해 각 본(Bone)의 실제 위치 자동 계산
- 다양한 캐릭터 리소스에 한 번 세팅하면 재사용 가능
📱 Unity Sentis 적용 팁 (모바일 기준)
항목설명
백엔드 선택 | GPU가 항상 빠르지 않음. 상황에 따라 CPU가 더 효율적일 수 있음 |
Async 추론 | Unity 6의 await 기반 비동기 추론 기능으로 끊김 방지 |
Interval 조절 | ScheduleInterval 설정으로 프레임 간 추론 간격 조절 가능 |
🕶️ XR (Meta Quest) 적용 사례
- 3포인트 바디 트래킹: HMD + 양손 컨트롤러
- IOBT: 카메라 기반 풀 바디 추론
- Generative Legs: 하반신 추정 기술로 자연스러운 캐릭터 움직임 구현
- Passthrough API: 상대방을 인식하고 그에 맞게 트래킹 가능
📚 주요 참고 링크
🔍 정리하며
- MediaPipe 모델을 활용하면 얼굴, 포즈, 손 트래킹을 단일 카메라만으로 실시간 처리 가능
- Unity Sentis 덕분에 외부 서버 없이도 모바일·XR 디바이스에서 직접 추론
- 포즈 데이터를 다양한 캐릭터에 맵핑하는 리타겟팅 기술까지 쉽게 구현 가능
🎯 단순한 기술 데모를 넘어서,
상업적 XR 콘텐츠나 미디어 아트, 장애인 보조 인터페이스로도 확장 가능한 잠재력을 직접 확인할 수 있는 유익한 세션이었습니다.
'외부 활동🚀 > Unity Unite Seoul 2025' 카테고리의 다른 글
Unity Unite 2025에서 만난 세 분의 Unity 전문가 (0) | 2025.05.02 |
---|---|
Unity 퍼포먼스 최적화, 어디서부터 시작해야 할까? (0) | 2025.04.30 |
유니티와 ComfyUI를 활용한 간단한 AI 포토 부스 만들기 (0) | 2025.04.30 |