6.3 KiB (Stored with Git LFS)

원격 모션캡쳐 시스템 (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를 참조하세요.

🛠️ 기술 스택

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. 저장소 클론

    git clone https://github.com/yourrepo/RemoteMotionCapture.git
    cd RemoteMotionCapture
    
  2. Unity 프로젝트 열기

    • Unity Hub에서 Unity/ 폴더 열기
    • MotionCaptureStudio.unity 씬 로드
  3. 웹 클라이언트 실행

    • WebClient/index.html 파일을 브라우저에서 열기
    • 또는 로컬 서버 실행:
    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를 참조하세요.

🤝 기여하기

  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

🙏 감사의 말

  • EasyMotionRecorder 개발팀
  • Three.js 커뮤니티
  • Unity Technologies

원격 모션캡쳐의 새로운 가능성을 함께 열어가요! 🚀