# 원격 모션캡쳐 시스템 개발 로드맵 ## 🎯 프로젝트 개요 **목표**: 모션캡쳐 스튜디오의 공간적 제약을 해결하는 원격 모션캡쳐 시스템 구축 **핵심 아이디어**: - 모션캡쳐 스튜디오 → Unity 서버 → 웹사이트 실시간 스트리밍 - 웹에서 3D 아바타 관찰 및 모션 레코딩 제어 - 1:1 시스템으로 단순하고 효율적인 구조 ## 📋 개발 단계별 로드맵 ### **Phase 1: Unity-Web 직접 연결** ⏱️ 예상 기간: 2-3주 #### 목표 Unity에서 웹으로 실시간 모션 데이터 스트리밍 기반 구축 #### 세부 작업 1. **Unity WebSocket 서버 구축** - Unity에서 WebSocket 서버 구현 (C#) - 모션캡쳐 데이터 수집 및 전처리 - Transform 데이터 JSON 직렬화 - 실시간 데이터 브로드캐스트 2. **웹 클라이언트 기본 연결** - HTML/JavaScript WebSocket 클라이언트 - Unity 서버 연결 및 데이터 수신 - 기본 연결 상태 UI - 데이터 수신 로그 출력 3. **데이터 프로토콜 설계** ```json { "type": "motion_data", "timestamp": 1234567890, "bones": [ { "name": "Hips", "position": {"x": 0, "y": 1, "z": 0}, "rotation": {"x": 0, "y": 0, "z": 0, "w": 1} } ] } ``` 4. **성능 최적화** - 전송 주기 조절 (30-60fps) - 데이터 압축 및 최적화 - 연결 안정성 보장 #### 완료 기준 - [ ] Unity에서 웹으로 실시간 아바타 데이터 전송 - [ ] 웹에서 데이터 수신 및 로그 확인 - [ ] 안정적인 연결 유지 (최소 30분) --- ### **Phase 2: 웹 3D 뷰어 + 레코딩 UI** ⏱️ 예상 기간: 3-4주 #### 목표 웹에서 실시간 3D 아바타 렌더링 및 레코딩 제어 인터페이스 구축 #### 세부 작업 1. **Three.js 3D 렌더링 엔진** - Three.js 기본 씬 설정 - 3D 아바타 모델 로드 (FBX/GLTF) - 실시간 본 애니메이션 적용 - 카메라 컨트롤 (회전, 줌, 팬) 2. **레코딩 UI 컴포넌트** ```html
00:00:00
대기 중...
``` 3. **모션 데이터 저장소** - 클라이언트 사이드 모션 데이터 버퍼 - IndexedDB 활용한 대용량 데이터 저장 - 메모리 효율적인 데이터 구조 4. **실시간 피드백** - 녹화 상태 실시간 표시 - 녹화 시간 타이머 - 데이터 수신율 모니터링 - 연결 상태 인디케이터 #### 완료 기준 - [ ] 웹에서 실시간 3D 아바타 렌더링 - [ ] 녹화 시작/정지 기능 동작 - [ ] 모션 데이터 클라이언트 저장 - [ ] 직관적인 사용자 인터페이스 --- ### **Phase 3: 웹에서 모션 파일 직접 출력** ⏱️ 예상 기간: 2-3주 #### 목표 웹에서 수집한 모션 데이터를 표준 모션 파일 포맷으로 변환 및 다운로드 #### 세부 작업 1. **모션 파일 포맷 지원** - BVH (Biovision Hierarchy) 파일 생성 - FBX 파일 기본 지원 (Three.js FBXExporter) - JSON 포맷 모션 데이터 export 2. **JavaScript 기반 파일 생성기** ```javascript class MotionExporter { exportToBVH(motionData) { /* BVH 포맷 변환 */ } exportToFBX(motionData) { /* FBX 포맷 변환 */ } exportToJSON(motionData) { /* JSON 포맷 변환 */ } } ``` 3. **다운로드 시스템** - Blob 기반 파일 생성 - 브라우저 다운로드 트리거 - 파일명 자동 생성 (날짜/시간 포함) 4. **모션 미리보기** - 녹화된 모션 재생 기능 - 구간별 재생/정지 - 프레임별 이동 슬라이더 #### 완료 기준 - [ ] BVH 파일 생성 및 다운로드 - [ ] Unity 호환 가능한 파일 포맷 - [ ] 모션 미리보기 재생 기능 - [ ] 파일 품질 검증 완료 --- ### **Phase 4: Unity 원격 제어 API** ⏱️ 예상 기간: 2-3주 #### 목표 EasyMotionRecorder와 웹 완전 연동으로 양방향 제어 시스템 구축 #### 세부 작업 1. **Unity 원격 제어 API** ```csharp public class RemoteMotionAPI : MonoBehaviour { public void StartRecording(string filename); public void StopRecording(); public RecordingStatus GetStatus(); public void SetRecordingSettings(RecordingSettings settings); } ``` 2. **EasyMotionRecorder 연동** - 기존 EasyMotionRecorder 스크립트 래핑 - 웹 명령을 Unity API 호출로 변환 - 실시간 녹화 상태 동기화 - 에러 처리 및 예외 상황 대응 3. **양방향 통신 프로토콜** ```json // 웹 → Unity { "command": "start_recording", "parameters": { "filename": "motion_001", "format": "fbx", "framerate": 30 } } // Unity → 웹 { "status": "recording", "filename": "motion_001.fbx", "duration": 120.5, "frameCount": 3615 } ``` 4. **파일 동기화** - Unity 측 파일과 웹 측 파일 동시 생성 - 백업 및 검증 시스템 - 파일 무결성 체크 #### 완료 기준 - [ ] 웹에서 Unity 녹화 원격 제어 - [ ] 실시간 상태 동기화 - [ ] 양쪽 파일 생성 확인 - [ ] 에러 처리 완료 --- ## 🛠️ 기술 스택 ### Unity Side - **언어**: C# - **네트워킹**: WebSocketSharp 또는 Mirror Networking - **모션캡쳐**: EasyMotionRecorder (기존 시스템) - **파일 출력**: Unity Timeline, Animation Recorder ### Web Side - **프론트엔드**: HTML5, CSS3, JavaScript (ES6+) - **3D 렌더링**: Three.js - **네트워킹**: WebSocket API - **저장소**: IndexedDB - **파일 처리**: File API, Blob ### 개발 도구 - **에디터**: Unity 2022.3 LTS, VS Code - **버전 관리**: Git - **테스팅**: Unity Test Framework, Jest (웹) ## 📁 프로젝트 구조 ``` RemoteMotionCapture/ ├── Unity/ # Unity 프로젝트 │ ├── Scripts/ │ │ ├── WebSocketServer.cs │ │ ├── RemoteMotionAPI.cs │ │ └── MotionDataStreamer.cs │ └── Scenes/ │ └── MotionCaptureStudio.unity │ ├── WebClient/ # 웹 클라이언트 │ ├── index.html │ ├── css/ │ │ └── style.css │ ├── js/ │ │ ├── main.js │ │ ├── motionViewer.js │ │ ├── motionExporter.js │ │ └── websocketClient.js │ └── assets/ │ └── models/ │ ├── Documentation/ # 문서 │ ├── PROJECT_ROADMAP.md │ ├── API_REFERENCE.md │ └── SETUP_GUIDE.md │ └── Assets/ # 공용 리소스 ├── Models/ ├── Animations/ └── TestData/ ``` ## 🎯 완료 후 기대 효과 1. **접근성 향상**: 물리적 스튜디오 방문 없이 모션캡쳐 가능 2. **비용 절감**: 스튜디오 임대료 및 이동비용 절약 3. **효율성 증대**: 실시간 피드백으로 재촬영 횟수 감소 4. **협업 강화**: 원격 디렉팅 및 실시간 의사소통 가능 ## ⚠️ 주요 고려사항 1. **네트워크 지연**: 지연시간 최소화를 위한 최적화 필요 2. **데이터 품질**: 압축으로 인한 데이터 손실 최소화 3. **보안**: 모션 데이터 암호화 및 접근 제어 4. **호환성**: 다양한 모션캡쳐 시스템과의 호환성 확보 --- *이 로드맵은 개발 진행에 따라 지속적으로 업데이트됩니다.*