iPhone의 TrueDepth 카메라로 얼굴 52개 블렌드셰이프 + 헤드 포즈를 실시간 UDP JSON으로 스트리밍하는 iOS 앱.
- iPhone X 이상 (TrueDepth 전면 카메라 필수)
- iOS 17.0+
- Xcode 15+
- 같은 Wi-Fi 네트워크
FaceTracker/FaceTracker.xcodeprojXcode에서 열기- Signing & Capabilities → Team 선택
PRODUCT_BUNDLE_IDENTIFIER변경 (com.yourname.FaceTracker)- iPhone 연결 후 Run
- 앱 실행 → 카메라 권한 허용
- 톱니바퀴(⚙) → IP 주소/포트 입력 (수신 PC의 IP)
- 중앙 안테나 버튼 → 스트리밍 시작
- 얼굴을 카메라 앞에 두면 전송 시작
{
"timestamp": 1712345678.123,
"blendshapes": {
"eyeBlinkLeft": 0.02,
"eyeBlinkRight": 0.01,
"jawOpen": 0.45,
"mouthSmileLeft": 0.23,
...
},
"headRotation": {
"pitch": -0.12,
"yaw": 0.05,
"roll": 0.01
},
"headTranslation": {
"x": 0.001,
"y": 0.02,
"z": -0.45
}
}- 블렌드셰이프: 52개, 범위
[0.0, 1.0] - headRotation: Euler angles (라디안)
- headTranslation: 미터 단위, ARKit 카메라 좌표계
python receiver_example.pyFaceTracker/
├── FaceTracker.xcodeproj/
└── FaceTracker/
├── FaceTrackerApp.swift # 앱 진입점
├── ContentView.swift # 메인 UI (SwiftUI)
├── ARViewContainer.swift # ARSCNView 래퍼 (얼굴 메시 시각화)
├── ARFaceSessionManager.swift # ARKit 세션 + 델리게이트
├── UDPSender.swift # Network.framework UDP 전송
├── BlendshapePayload.swift # 데이터 모델 + ARFaceAnchor 변환
├── SettingsView.swift # IP/포트 설정 UI
└── Info.plist
receiver_example.py # Python 수신 테스트 스크립트