> For the complete documentation index, see [llms.txt](https://docs.yanusstudio.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.yanusstudio.com/yanuslive-pro/function-guide/production-workflow-manual.md).

# Production Workflow Manual

YanusLIVE PRO supports real-time facial capture for head-mounted and multi-camera production. Use this workflow to prepare, capture, validate, deliver, and archive each session.

### Production sequence

1. Prepare the workstation.
2. Connect cameras and microphones.
3. Configure camera slots.
4. Position the head-mounted camera (HMC).
5. Verify tracking and run neutral calibration.
6. Connect Unreal Engine and tune filters.
7. Record and validate a test.
8. Record the production take.
9. Select and deliver the final track.
10. Archive the complete session.

### 1. Prepare the system

#### Recommended hardware

* Windows 10 or Windows 11, 64-bit
* NVIDIA RTX GPU with Compute Capability 7.5 or later
* NVIDIA R520 driver or later
* SSD storage for video and session recording
* Sufficient USB bandwidth for every camera
* A supported UVC or head-mounted camera
* One or more microphones

#### Capture environment

Use stable, even facial lighting. Avoid strong backlighting and eye reflections. Secure every camera mount. Use wired networking for remote Unreal Engine streaming.

{% hint style="warning" %}
High-resolution cameras use significant USB bandwidth. Do not connect all cameras through one unpowered hub.
{% endhint %}

#### Launch checks

Launch YanusLIVE PRO before opening the Unreal Engine project. On startup, verify GPU and driver compatibility, runtime libraries, Maxine models, cameras, microphones, and configuration.

The first launch on a GPU may build a TensorRT cache. Later launches use this cache.

Do not start production when tracking initialization fails.

### 2. Configure cameras and microphones

Each camera slot uses an independent camera and tracking pipeline.

| Slot     | Recommended role               |
| -------- | ------------------------------ |
| Camera 0 | Primary front-facing HMC       |
| Camera 1 | Left-side or backup camera     |
| Camera 2 | Right-side or backup camera    |
| Camera 3 | Reference or diagnostic camera |

#### HMC starting settings

Start supported UVC HMCs with these settings:

* Resolution: `1280 × 960`
* Frame rate: `60 fps`
* Format: `MJPG`
* Preferred backend: Media Foundation
* Fallback backend: DirectShow

Use `1024 × 768 @ 60 fps`, `1600 × 1200 @ 60 fps`, or `1280 × 960 @ 30 fps` when required.

#### Connect a camera

1. Connect the camera.
2. Open the **Camera Source Panel**.
3. Select the target camera slot and device.
4. Choose the camera profile, resolution, and frame rate.
5. Start the camera and confirm its live preview.
6. Verify the actual resolution and frame rate.

{% hint style="info" %}
The active camera mode may differ from the requested mode. Always verify the actual mode after opening the camera.
{% endhint %}

If a camera is missing, refresh devices, reconnect it, try another USB port, or restart YanusLIVE PRO. For black frames, change between Media Foundation and DirectShow. Close other applications using the device.

If frame rate is low, use MJPG, reduce resolution, and distribute cameras across USB controllers.

#### Configure microphones

Associate each camera with its microphone. Select a primary microphone for the main playback track.

1. Open the audio input panel.
2. Select each camera's mapped microphone.
3. Select the primary microphone.
4. Speak at normal performance volume.
5. Confirm active, non-clipping input levels.
6. Record a short audio test.

Additional mappings may record camera-specific WAV files.

### 3. Position and verify the HMC

Position the HMC about 15 cm from the performer's face. Frame both eyes, eyebrows, mouth, chin, jawline, and both sides of the face.

Avoid cropped eyebrows or chin, mouth obstruction, edge distortion, and changing camera distance. Illuminate both face sides. Keep lip boundaries visible. Lock exposure and white balance after establishing correct values.

#### Verify tracking

Confirm stable face detection, landmarks, pose, blink detection, mouth and jaw response, and acceptable latency. Then have the performer complete this test:

1. Hold neutral, then blink both eyes and each eye separately.
2. Raise eyebrows, smile, open the mouth, pucker, and puff cheeks.
3. Turn the head, then look up and down.

Do not calibrate until tracking is stable.

### 4. Run neutral calibration

Neutral calibration removes each performer's natural resting offsets. It prevents apparent open mouths, partial blinks, or smiles at rest.

Ask the performer to look forward with a relaxed jaw, naturally closed lips, relaxed brows, naturally open eyes, and no movement.

1. Select the camera slot.
2. Confirm the neutral pose.
3. Start **Neutral Calibration**.
4. Maintain the pose until calibration completes.
5. Verify the corrected output.
6. Repeat for other slots when needed.

Calibration typically captures about 60 neutral frames. In neutral, jaw open, smile, frown, blink, brow raise, mouth stretch, and cheek values should be near zero.

Recalibrate after a performer, camera position, camera distance, lighting, or camera profile change.

{% hint style="warning" %}
Do not calibrate while the performer speaks, smiles, blinks, or adjusts the HMC.
{% endhint %}

### 5. Connect Unreal Engine

YanusLIVE PRO streams through a Live Link-compatible workflow.

1. Open the Unreal Engine project.
2. Enable the required Live Link plugins.
3. Open the **Live Link** window.
4. Prepare the MetaHuman or ARKit-compatible character.
5. Enable streaming in YanusLIVE PRO.
6. Enter the destination IP address and port.
7. Start transmission and confirm the YanusLIVE subject.
8. Assign the subject and verify character response.

For separate workstations, use wired Ethernet on the same network. Allow both applications through Windows Firewall. Avoid Wi-Fi when latency matters.

Compare the performer, YanusLIVE PRO preview, and Unreal character. Verify neutral alignment, blinks, jaw range, smile symmetry, brows, lips, head rotation, and latency.

### 6. Tune tracking and filters

Stronger filtering improves stability but can increase latency. Weaker filtering improves responsiveness but can increase jitter.

For noisy animation, increase landmark or blendshape smoothing. Improve lighting, camera stability, and frame rate. Keep the face away from image edges.

For slow animation, reduce blendshape and pose smoothing. Use a responsive preset. Check for stacked filters, low camera frame rate, and network buffering.

If the mouth opens during head tilt, tune dynamic compensation for head pitch, jaw opening, mouth closing, and camera distance. Evaluate tuning while the performer speaks and moves naturally.

### 7. Test and record

#### Run a pre-capture test

Record a 10–20 second test with neutral expression, normal and fast speech, blinks, smiles, mouth opening, head rotation, pitch, and strong expressions.

Review video frame rate, audio, detection stability, blendshape response, latency, jaw confidence, jitter, hold rate, duplicate frames, and audio-video synchronization. Correct issues before production.

#### Record a take

1. Confirm active cameras and microphones.
2. Confirm Unreal Engine receives the stream.
3. Confirm calibration and free storage space.
4. Start recording and record a spoken or visual slate.
5. Hold neutral for one second before and after the performance.
6. Stop recording and wait for files to finalize.
7. Review the session immediately.

{% hint style="warning" %}
Do not disconnect cameras or microphones during recording.
{% endhint %}

### 8. Validate the session

A session directory may contain the following files:

```
recordings/
└── session_YYYYMMDD_HHMMSS/
    ├── animation_frames.csv
    ├── session.json
    ├── cam0.mp4
    ├── cam0.wav
    ├── cam0.csv
    └── cam0.metrics.csv
```

`animation_frames.csv` is the master facial animation track. `session.json` stores session metadata. `camN.mp4` provides source video. `camN.wav` provides mapped audio. `camN.csv` provides per-camera animation. `camN.metrics.csv` provides quality metrics.

Verify that the manifest, master CSV, primary WAV, camera CSVs, and metrics files exist. Confirm the WAV duration exceeds zero. Open each MP4. Confirm the session is not marked aborted.

Play the session in YanusLIVE PRO. Verify video, audio, animation, duration, synchronization, expression quality, and head pose. Review for frozen motion, spikes, excessive jaw jitter, unstable eyes, long holds, duplicate frames, drops, incorrect neutral pose, and latency.

### 9. Select the final track

Use `animation_frames.csv` when the master result is stable and fast delivery matters. Use `camN.csv` when one camera produces better eyes, mouth, or stability.

For every candidate camera, review source video, animation, and metrics. Compare jaw confidence, eye and mouth tracking, latency, and jitter. Advanced processing can combine channels from multiple camera tracks.

### 10. Deliver animation

#### Unreal Engine

Deliver the selected CSV, matching WAV, reference MP4 when needed, and `session.json`. Confirm sequence frame rate, CSV timecode, animation start frame, ARKit mapping, reference alignment, and final audio synchronization.

#### Maya and Blender

Deliver an ARKit-compatible CSV, matching WAV and MP4, plus session frame rate and timecode. Import the CSV into the facial rig scene. Set the frame rate. Align the first animation frame. Compare with the reference before curve cleanup and export.

### 11. Archive the complete session

Keep the master track, manifest, all camera videos, all WAV files, per-camera CSVs, metrics, calibration files, production notes, and performer and take identifiers.

Complete archives support reprocessing, camera comparison, curve rebuilds, diagnostics, quality reports, datasets, and reference reuse.

Use this naming pattern:

```
PROJECT_PERFORMER_SCENE_TAKE_DATE
```

Example:

```
ProjectA_Performer01_Scene012_Take003_20260722
```

### Production checklist

#### Before the session

* [ ] Verify GPU, driver, storage, cameras, microphones, and network.
* [ ] Confirm YanusLIVE PRO launches without compatibility errors.
* [ ] Prepare the Unreal Engine project.

#### Before recording

* [ ] Verify actual camera resolution and frame rate.
* [ ] Confirm stable framing, exposure, lighting, and HMC mounting.
* [ ] Complete and verify neutral calibration.
* [ ] Confirm audio mappings, primary microphone, and levels.
* [ ] Review a successful test recording.

#### After each take

* [ ] Confirm recording finalized normally.
* [ ] Verify files, audio duration, animation frames, and playable video.
* [ ] Review synchronization and performance quality.
* [ ] Approve the take or mark it for retake.

#### Before delivery

* [ ] Select the final animation track and matching media.
* [ ] Confirm frame rate, timecode, and DCC or Unreal import.
* [ ] Archive the complete original session.

### Troubleshooting

#### Tracking is unstable

Check lighting, focus, exposure, framing, HMC movement, frame rate, smoothing, and USB bandwidth.

#### Character is not neutral

Repeat calibration with a relaxed performer. Confirm the correct camera slot and character-side offsets.

#### Expressions are weak or noisy

Reduce excessive smoothing for weak output. Increase smoothing for noise. Check exposure, HMC vibration, tracking loss, and rig mapping.

#### Unreal Engine receives no data

Confirm destination IP, streaming status, firewall access, Live Link source, network, and port availability.

#### Audio has zero duration

Confirm microphone activity, camera mapping, primary microphone selection, and recording finalization. Record a new test.

#### Video frame rate is low

Use MJPG, reduce resolution or camera count, use separate USB controllers, and close other camera applications.
