MotionBuilder guide

Connect with the OSC Camera Tracker device

Stream camera transform and lens data from the Android app into Autodesk MotionBuilder, bind it to a camera, and record the incoming movement as animation keys.

Download the MotionBuilder plugin →

View source code and build instructions on GitHub

OSCMotionBuilder deviceLive recording

What you need

Match the plugin to MotionBuilder

Releases include binaries for multiple MotionBuilder versions. Choose the build that matches your installed version, or use the installer to place compatible builds into the selected MotionBuilder installations.

Install the plugin

Open GitHub Releases to download the installer or plugin binary →

  1. Open the latest entry on the GitHub Releases page and expand its Assets list.
  2. Download Setup_TechStoryOSCCamera_MoBu.exe for the guided installation, or the matching device_oscCamera.dll for a manual installation.
  3. Run Setup_TechStoryOSCCamera_MoBu.exe and select the MotionBuilder versions where the device should be installed. Administrator permission is required for the standard Program Files location.
  4. For a manual installation, copy device_oscCamera.dll into the bin\x64\plugins folder of the matching MotionBuilder installation.
  5. Restart MotionBuilder after installation.
The binary must match the MotionBuilder SDK version

If the device does not appear after a manual copy, confirm that the DLL was built for that MotionBuilder release and architecture.

Add the OSC Camera Tracker device

  1. In the Asset Browser, open Templates → Devices.
  2. Drag OSC Camera Tracker Device into the scene.
  3. Select the device under Navigator → Devices.
  4. On the General tab, set Sampling Rate to the rate used by the Android app. The read-only Receive Rate (Hz) property shows the measured incoming rate once streaming begins.
OSC Camera Tracker Device in the MotionBuilder Asset Browser
Drag OSC Camera Tracker Device from Templates → Devices into the scene.
General settings for the OSC Camera Tracker Device in MotionBuilder
Match the device sampling rate to the stream rate used by the phone.

Configure the phone and UDP port

Use the setup wizard

The app can fill in the recommended MotionBuilder streaming settings for you. Run the setup wizard when the app first opens, or start it again later with the wand button.

  1. Select MotionBuilder when the wizard asks where you are streaming.
  2. Enter the MotionBuilder workstation's local IP address and the UDP port used by the plugin. The default port is 4000.
  3. Continue through the wizard to apply OSC, Unicast, Default axis mapping, and the recommended space scale automatically.
6DoF Camera Tracker setup wizard start screen
Run the setup wizard to let the app configure the tracker for you.
MotionBuilder selected in the 6DoF Camera Tracker setup wizard
Select MotionBuilder, then enter the workstation IP address and matching UDP port.

Or configure it manually

Open the device's Communication tab and choose a UDP port. The default is 4000. Use the same value as the app's Target Port.

App settingRecommended valueMatching device setting
ProtocolOSCThe device accepts the app's OSC pose, lens, and diagnostics messages.
Target IPMotionBuilder workstation's local IPv4 addressThe device listens on the workstation.
Target Port4000, or another unused UDP portCommunication → UDP Port must match.
Send modeUnicastSends directly to the MotionBuilder workstation.
Axis mappingDefaultThe plugin converts X-right, Y-forward, Z-up into MotionBuilder coordinates.
Space scale1Use device Space Scale 100 to convert metres to centimetres.
Stream rateYour intended scene or capture rateSet the same General → Sampling Rate.
6DoF Camera Tracker Stream settings with OSC and Unicast selected
Set the MotionBuilder workstation address and matching UDP port, then select OSC and Unicast.
Communication settings for the OSC Camera Tracker Device
The device binds the port when it goes Online. Toggle it offline and online after changing the port.

If you prefer the app's Space scale set to 100, set the device's Space Scale to 1 instead. Apply the centimetre conversion in one place only.

Put the device online and bind a camera

  1. Start the OSC stream in 6DoF Camera Tracker.
  2. Enable Online on the MotionBuilder device. Its status changes from Listening on UDP port… to Receiving data when valid poses arrive.
  3. Open Model binding on the device.
  4. Create or select a camera and bind it to the device's Camera template.
  5. Press Zero pose in the app at the intended origin and verify the camera follows the phone.
OSC Camera Tracker Device online and receiving data in MotionBuilder
The online device drives the bound camera transform and connects supported lens channels automatically.
Coordinate conversion is built in

With the app's Default axis mapping, the device converts the right-handed tracker frame into MotionBuilder's X-forward, Y-up, Z-right frame. Use Position Sign or Rotation Sign only when a custom mapping needs a per-axis correction.

Use lens data and depth of field

Calibrate lens encoders in the app

Open Lens & encoders in 6DoF Camera Tracker to convert raw encoder readings into physical lens values before they are sent to MotionBuilder.

  1. Enter the encoder's Min, Max, and Step values for each connected lens control.
  2. Enable Calibrate for zoom and enter the lens's minimum and maximum focal length in millimetres.
  3. Set the corresponding calibration values for focus and iris when those channels are in use.
  4. Move each control through its range and confirm that the values reported by the app match the physical lens.

Adjust lens values from the Lens panel

While tracking or streaming, open the Lens tab on the main screen to control the virtual lens directly from the phone.

  • Zoom adjusts focal length in millimetres.
  • Focus adjusts focus distance in metres.
  • Iris adjusts the lens aperture as an f-number.

The displayed values use the calibration ranges configured in Lens & encoders and are included in the live OSC stream.

Lens encoder and zoom calibration settings in 6DoF Camera Tracker
Map each encoder range to the physical zoom, focus, or iris values of the lens.
Zoom, focus, and iris controls on the 6DoF Camera Tracker Lens panel
Adjust the calibrated zoom, focus, and iris values from the Lens panel while streaming.

Use the calibrated values in MotionBuilder

Zoom, focus, and iris channels calibrated in the app arrive as physical values. Uncalibrated channels can be remapped with the device's Raw Range and Output Range properties.

  1. Enable Use Depth of Field in the MotionBuilder camera's Render Options.
  2. The device drives camera focal length, Specific distance, and Focus angle.
  3. Adjust Focus Angle Scale if the calculated focus cone needs scene-specific tuning.
  4. Use the separate Iris output in a relation constraint when another effect needs the incoming f-number.

Open the device's properties to inspect the incoming focal length, focus distance, iris, and focus angle. The same panel provides raw and output ranges for channels that are not calibrated in the phone app.

OSC Camera Tracker Device properties in MotionBuilder
Review connection, scale, channel mapping, and live lens values in the device properties.
MotionBuilder camera depth of field driven by the OSC Camera Tracker Device
The camera's depth-of-field distance and focus angle can follow the calibrated lens stream.

View MotionBuilder on the phone

You can use the phone as a wireless return viewfinder while it continues driving the MotionBuilder camera. The two connections work independently:

  • OSC sends tracking and lens data from 6DoF Camera Tracker to MotionBuilder.
  • OBS Studio captures the MotionBuilder viewport and sends the resulting program view back to the phone.
  1. In OBS Studio, add a Window Capture or Display Capture source containing the MotionBuilder viewport.
  2. Frame that source in the OBS program output at the resolution and frame rate you want on the phone.
  3. Send the OBS program output to 6DoF Camera Tracker using native WHIP or NDI through the DistroAV plugin.
  4. On the phone, select the OBS or NDI viewfinder mode while leaving the OSC tracking stream active.
Tracking and preview remain separate

If the OBS return picture disconnects, the OSC camera stream can continue driving MotionBuilder. This also lets you choose WHIP for a simple setup or NDI when lower preview latency is more important.

Follow the OBS WHIP and NDI setup guide →

Record a tracked take

Record live in MotionBuilder

  1. Confirm the device shows Receiving data and the camera moves correctly.
  2. Enable Recording on the device.
  3. Arm the camera animation nodes you want to capture and use MotionBuilder's normal transport recording controls.
  4. Stop recording, take the device offline if you want to review without live input, and play back the take.

The device records incoming poses as animation keys, so the result can be edited with the normal MotionBuilder animation workflow.

Record on the phone and export FBX

For a take that does not depend on live network delivery, record the tracked motion directly in 6DoF Camera Tracker. The app stores the tracking samples locally on the phone, and you can export the completed take as an FBX file for use in MotionBuilder.

  1. Start a local recording in 6DoF Camera Tracker before performing the camera move.
  2. Stop and review the take on the phone.
  3. Export the recording as FBX and transfer the file to the workstation.
  4. Import the FBX into MotionBuilder and use the recorded camera animation in the scene.
Avoid network packet loss

Local recording captures the motion on the phone before any OSC packets are sent. This makes FBX export the better workflow for important takes where every recorded sample should be preserved, while live OSC remains useful for monitoring and immediate feedback.

Troubleshooting

SymptomCheck
Device is missing from TemplatesConfirm the DLL is in the correct version's bin\x64\plugins folder and restart MotionBuilder. A DLL built for another SDK version may not load.
Status stays on “Listening” or “No data”Confirm the workstation IP, matching UDP port, active app stream, and Windows Firewall permission. Restart Online after changing the port.
Receive Rate is lower than expectedMatch the app stream rate and device Sampling Rate, then check Wi-Fi quality. Enable Stream diagnostics in the app to populate Lost Packets.
Camera movement has the wrong scaleUse app Space scale 1 with device Space Scale 100, or app 100 with device 1. Do not convert in both places.
An axis moves in the wrong directionReturn the app to Default mapping first, then use the device Position Sign or Rotation Sign for a deliberate per-axis flip.
Lens response is incorrectCalibrate the physical channel in the app or configure the matching Raw Range and Output Range on the device.

Download installers and prebuilt binaries from GitHub Releases. For source code, build instructions, and issue reporting, visit the mobu-device-camera-plugin repository.