# 원격 모션캡쳐 시스템 (Remote Motion Capture System) > 모션캡쳐 스튜디오의 공간적 제약을 해결하는 혁신적인 원격 모션캡쳐 솔루션 ## 🎯 프로젝트 개요 이 프로젝트는 물리적 모션캡쳐 스튜디오에 직접 방문하지 않고도 실시간으로 모션캡쳐 데이터를 관찰하고 녹화할 수 있는 웹 기반 시스템입니다. ### 핵심 아이디어 - **스튜디오**: 모션캡쳐 장비 + Unity 서버 - **웹사이트**: 실시간 3D 아바타 뷰어 + 녹화 제어 - **결과물**: 웹에서 직접 모션 파일 다운로드 (BVH, FBX, JSON) ## ✨ 주요 기능 - 🎭 **실시간 3D 아바타 스트리밍**: Unity에서 웹으로 실시간 모션 데이터 전송 - ⏺️ **원격 녹화 제어**: 웹에서 모션캡쳐 녹화 시작/정지 - 📁 **즉시 파일 출력**: 녹화 완료 후 즉시 모션 파일 다운로드 - 🎬 **모션 미리보기**: 녹화된 모션을 웹에서 바로 재생 - 🌐 **크로스 플랫폼**: 웹 브라우저만 있으면 어디서든 접근 가능 ## 🏗️ 시스템 구조 ``` [모션캡쳐 스튜디오] → [Unity 서버] → [WebSocket] → [웹 클라이언트] ↓ ↓ ↓ 실제 모션 수집 실시간 스트리밍 3D 뷰어 + 제어 UI ↓ ↓ EasyMotionRecorder 모션 파일 생성 ``` ## 📋 개발 로드맵 | Phase | 기능 | 기간 | 상태 | |-------|------|------|------| | **Phase 1** | Unity-Web 연결 | 2-3주 | 📋 계획 중 | | **Phase 2** | 3D 뷰어 + UI | 3-4주 | 📋 계획 중 | | **Phase 3** | 파일 출력 시스템 | 2-3주 | 📋 계획 중 | | **Phase 4** | Unity 원격 제어 | 2-3주 | 📋 계획 중 | 자세한 로드맵은 [`Documentation/PROJECT_ROADMAP.md`](Documentation/PROJECT_ROADMAP.md)를 참조하세요. ## 🛠️ 기술 스택 ### Unity (서버) - **언어**: C# - **네트워킹**: WebSocketSharp - **모션캡쳐**: EasyMotionRecorder - **버전**: Unity 2022.3 LTS ### Web (클라이언트) - **프론트엔드**: HTML5, CSS3, JavaScript (ES6+) - **3D 렌더링**: Three.js - **네트워킹**: WebSocket API - **저장소**: IndexedDB ## 📁 프로젝트 구조 ``` RemoteMotionCapture/ ├── Unity/ # Unity 프로젝트 │ ├── Scripts/ # Unity C# 스크립트 │ │ ├── WebSocketServer.cs │ │ ├── RemoteMotionAPI.cs │ │ └── MotionDataStreamer.cs │ └── Scenes/ │ └── MotionCaptureStudio.unity │ ├── WebClient/ # 웹 클라이언트 │ ├── index.html # 메인 웹페이지 │ ├── css/ │ │ └── style.css # 스타일시트 │ ├── js/ # JavaScript 모듈 │ │ ├── main.js # 메인 앱 로직 │ │ ├── motionViewer.js # 3D 렌더링 │ │ ├── motionExporter.js # 파일 출력 │ │ └── websocketClient.js # 통신 관리 │ └── assets/ │ └── models/ # 3D 모델 파일 │ ├── Documentation/ # 프로젝트 문서 │ ├── PROJECT_ROADMAP.md # 개발 로드맵 │ ├── TECHNICAL_SPECIFICATIONS.md # 기술 사양서 │ └── SETUP_GUIDE.md # 설치 가이드 (예정) │ └── Assets/ # 공용 리소스 ├── Models/ # 아바타 모델 ├── Animations/ # 테스트 애니메이션 └── TestData/ # 테스트 데이터 ``` ## 🚀 빠른 시작 ### 필요 조건 - Unity 2022.3 LTS 이상 - 모던 웹 브라우저 (Chrome, Firefox, Safari, Edge) - 모션캡쳐 장비 (Kinect, OptiTrack 등) ### 설치 및 실행 1. **저장소 클론** ```bash git clone https://github.com/yourrepo/RemoteMotionCapture.git cd RemoteMotionCapture ``` 2. **Unity 프로젝트 열기** - Unity Hub에서 `Unity/` 폴더 열기 - `MotionCaptureStudio.unity` 씬 로드 3. **웹 클라이언트 실행** - `WebClient/index.html` 파일을 브라우저에서 열기 - 또는 로컬 서버 실행: ```bash cd WebClient python -m http.server 8000 # Python 3 # 브라우저에서 http://localhost:8000 접속 ``` 4. **연결 확인** - Unity에서 Play 버튼 클릭 - 웹 페이지에서 연결 상태 확인 - 실시간 아바타 움직임 확인 ## 📖 사용법 ### 기본 워크플로우 1. **연결**: 웹 브라우저에서 Unity 서버에 접속 2. **관찰**: 실시간 3D 아바타로 모션 확인 3. **녹화**: 웹에서 녹화 시작/정지 버튼 클릭 4. **다운로드**: 녹화 완료 후 원하는 포맷으로 파일 다운로드 ### 지원 파일 포맷 - **BVH**: 범용 모션캡쳐 포맷 - **FBX**: Unity, Maya, Blender 등에서 사용 - **JSON**: 커스텀 데이터 분석용 ## 🔧 개발 가이드 ### Unity 개발 - `Scripts/` 폴더의 스크립트 수정 - EasyMotionRecorder와의 연동 확인 - WebSocket 통신 테스트 ### 웹 클라이언트 개발 - `js/` 폴더의 모듈별 개발 - Three.js 3D 렌더링 최적화 - 파일 출력 형식 추가 자세한 개발 가이드는 [`Documentation/TECHNICAL_SPECIFICATIONS.md`](Documentation/TECHNICAL_SPECIFICATIONS.md)를 참조하세요. ## 🤝 기여하기 1. Fork the Project 2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) 3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) 4. Push to the Branch (`git push origin feature/AmazingFeature`) 5. Open a Pull Request ## 📄 라이선스 이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 `LICENSE` 파일을 참조하세요. ## 📞 연락처 프로젝트 관련 문의: [이메일 주소] 프로젝트 링크: [https://github.com/yourrepo/RemoteMotionCapture](https://github.com/yourrepo/RemoteMotionCapture) ## 🙏 감사의 말 - EasyMotionRecorder 개발팀 - Three.js 커뮤니티 - Unity Technologies --- *원격 모션캡쳐의 새로운 가능성을 함께 열어가요! 🚀*