Motion Controllers

From iPi Docs
Revision as of 07:13, 22 March 2019 by Vmaslov (Talk | contribs)

Jump to: navigation, search

iPi Motion Capture allows to use motion controllers in addition to cameras for improved tracking of smaller details.

  • Wrist rotations can be tracked only with motion controllers due to low resolution of video.
  • Though head can be tracked with camera, using a motion controller for that purpose greatly reduces the processing time and may provide better accuracy.

Essentially, a motion controller provides 3D orientation value which can be used to track rotations of a single bone it is attached to.


iPi Recorder supports these models of motion controllers:

Model Bluetooth Spec Advantages Disadvantages Comments
PlayStation Move


Bluetooth 2.1 EDR
Not sure of CECH-ZCM2x
  • Has magnetometer in older makes of CECH-ZCM1x which prevents drift of orientation around vertical axis
  • Lighting sphere can be used for scene calibration with the light marker technique
  • Most bulky dimensions
  • USB cable is required for charging and pairing (mini-USB for CECH-ZCM1x and micro-USB for CECH-ZCM2x)
Nintendo Joy-Con


Bluetooth 3.0
  • Most compact dimensions
  • Switch console or Joy-Con Grip is required for charging
Wii Remote with Motion Plus

Wii Remote Plus (with Motion Plus integrated)

WiiRemote.jpgWii remote plus.jpg
Bluetooth 2.1 EDR
  • Needs to be paired on each usage
  • Powered by common AA batteries

Your PC should be equipped with a Bluetooth radio module to connect with motion controllers. If you do not have a built-in one, you'll need an USB Bluetooth adapter.

Important! For PS Move and Wii Remote, it is required that Bluetooth adapter supports specification Bluetooth 2.1 with EDR. However, more modern adapters which support Bluetooth 3.0 or 4.0 are not guaranteed to work with PS Move or Wii Remote. To be on the safe side, use adapter capable of exactly BT 2.1 EDR, not greater.
Important! For Nintendo Joy-Con, Bluetooth adapter should support Bluetooth 3.0 specification. Bluetooth 4.0 adapters (downwards compatible with 3.0) usually work as well.
Tip: Prefer Class 1 adapters as they have extended range of operation (up to 100m).

iPi Recorder does not limit the number of connected motion controllers. However, the hardware does. Most Bluetooth adapters can handle up to 4 PS Move controllers (sometimes more). iPi Software supports up to 3 controllers for each actor. Thus, additional Bluetooth adapter(s) would be required. Unfortunately, standard Windows Bluetooth drivers do not support multiple adapters. We used to recommend Motion in Joy drivers that allowed support for multiple adapters, but these drivers are now out of support and thus not available anymore. However, if you use Distributed Recording, you can use multiple adapters (one adapter per computer).

Barcodes of different makes of PS Move
Tip: There are several makes of PS Move featuring different IMU chips. The oldest CECH-ZCM1x have a magnetometer, the newer CECH-ZCM1x and CECH-ZCM2x do not. From our experience, CECH-ZCM1x without magnetometer features substantial drift around vertical axis, while CECH-ZCM2x has good enough measurement. So we recommend either an older CECH-ZCM1x or CECH-ZCM2x. To distinguish between the makes, first look at the model number in the top right. For model CECH-ZCM1x (mini-USB connector) look at the barcode. If it starts with the digit 4 then most likely it does not have a magnetometer. Barcodes of CECH-ZCM1x having magnetometer can start, for instance, with GS3 or 1.


To get your motion controller in the list of devices, it must be connected to a PC via Bluetooth. But before it can connect to your Bluetooth adapter, the controller must be paired with it. For that, press the Add Device button in the toolbar, select device type you have, and then follow the instructions specific for this device.


For PS Move, pairing is one-time process unless you reconnect motion controller to another PC or gaming console. Each time you connect controller to another host, it should be paired. After pairing, the Bluetooth connection is established automatically each time you power on the motion controller. To power on PS Move, press the PS button. To power off, hold down the PS button for a long time (about 10 seconds).

Tip: When pairing newer PS Move model CECH-ZCM2x (with micro-USB connector) you'll see a notification from Windows about adding a new device.

Notification on Windows 10

Click on it to bring up a system dialog and allow connection.

Pair dialog on Windows 10

For Wii Remote, pairing should be done each time after Bluetooth connection is lost, powering off either the motion controller or the PC. This is another disadvantage of Wii Remote. To power off Wii Remote, hold down the Power button for a couple of seconds.

Note: The recent revisions of Wii Remote Plus controllers may not work properly using the standard Bluetooth drivers. For them, you can use Toshiba Bluetooth stack.

After you have successfully paired the controllers with Bluetooth adapter, they should be visible in device list. Select them in addition to cameras and press the Record Video button. Motion controller is visualized as a rotating blue "brick" showing its orientation in space. Hover mouse on the controller's screen and you'll see some useful controls like battery indicator and view selection.


When controller is being used for the first time (or have not been used for a long period) a message is displayed over it saying it is not calibrated. Calibration of a motion controller (not confuse with calibration of cameras) is needed for more accurate measurements, so it is highly recommended to get through it every time you see this message. To run calibration process, just click on the message or press the CALIBRATE button in the on-screen controls.

After a motion controller is calibrated, you can use it in recording action videos.

Tip: You can use motion controller to start/stop recording (including background evaluation). Just hold PS Move's Start button, or Wiimote's A button for a few seconds, until you feel a vibration.
Tip: Generally, there is no need to enable motion controllers when recording calibration videos, because their data will not be used in the calibration process. However, you can use PS Move's light sphere as a light marker for calibration.
You can light it with different colors using on-screen controls for PS Move or by pressing corresponding buttons on PS Move itself. Buttons work even if PS Move is not selected for recording. White color usually works best for the calibration.
It is not recommended to light PS Move when recording action videos as it can lead to more tracking errors.
Buttons Color
Select + Circle
Select + Square
Select + Triangle
Select + Cross
Select + Move
Select + Start
Select + T(rigger)
Select + PS Off

Tips on action video

Aiming at a camera
Standard grip

There are two main requirements:

  1. At some moment during the record (for example, at the beginning), you should aim with (each) motion controller at one of the cameras. This is needed to correctly orient the motion controller within the scene coordinate space in iPi Mocap Studio.
  2. For correct orientation of prop models in iPi Mocap Studio, hold the controller as if its side with buttons is a back side of a prop in a "standard" position — i.e. facing the actor's face when the arm with prop is stretched forward. Of course, you can use a non-"standard" grip of the controller if such a grip for a prop is implied by the scenario of the action.

Now, the tips:

  • For a more natural movement of hands you can attach motion controllers to outer side of hands with tape instead of holding.
  • The recommended location for a motion controller on the head is at the top, with controller's top (light sphere for PS Move) looking forward.
  • To aim at camera with on-head controller (which you can't see), move the head slowly within a reasonable range from assumed direction to a camera. Then you'll select a frame with the most appropriate direction in iPi Mocap Studio.
  • Write down which motion controller corresponds to which body part, by their order in iPi Recorder.
  • You can use special accessories for motion controllers like shooting attachments. In that case, the relative position of the controller to the prop is good known, so you just hold it as needed by the scenario (i.e. the requirement #2 is not relevant for this case).
  • You can change the grip of the motion controller during the action. The iPi Mocap Studio allows you to process every frame range with the same grip independently.


There is a tab in iPi Mocap Studio named Motion Controllers. It is visible only when open project contains data from one or more motion controllers. Numbering of controllers correspond to their order in iPi Recorder when a video was recorded.


When a project with motion data is first created, you will see this data as one or more colored "bricks" floating somewhere under the actor's model. The color is used to differentiate motion controllers in the scene. You can change the color of each controller on the Motion Controllers tab.

Aligning to the scene

To give more sense to this picture, for each controller you should specify a bone it is attached to. See the Attach to combobox. It contains LHand, RHand and Head bones. When attached, the controller's "brick" is displayed near the corresponding bone of actor's model. For a nicer look, you have an option to replace the default brick with several prop models like sword and pistol.


To make some use of motion controller's data, it first needs to be matched with the scene coordinate space. Assuming that scene's ground plane is horizontal, controller's pitch and bank angles already correspond to the scene. However, heading angle of controller's orientation is measured from some "arbitrary" origin direction (in terms of the scene). For PlayStation Move it's always the North direction, for Wii Remote — a direction it was oriented to when recording started. To match coordinates, knowing the scene coordinates for some reference orientation of the controller is needed. That is where aiming at a camera helps.

Tip: When using a motion controller for the head, do not forget to disable head tracking when doing the main tracking process of the body. This will save you much time on processing.

So you've done with the body tracking, and have attached the controller to a corresponding bone. Now find some frame where the actor is aiming with this controller at some camera. Ensure the body position has been tracked in this frame. Select the target camera as the default, pressing corresponding toolbar button. Pressing the Match with Camera #N button does matching. After matching, the prop model for the controller should be oriented perfectly as it was intended in the video. Unless the actor did not pay attention to a proper grip of the controller, especially regarding it's bank rotation.

Also you can manually edit position and rotation of the controller with the Move tool. Activate the tool, click on the controller's model in the scene, and then move and rotate the model to correspond to a position and orientation of an actual controller in the video. This may be used instead of aiming and automatic matching with camera, but is usually less accurate.

Tip: If an actor did not aim controller at any camera specifically, look thoroughly through all the frames — it is very likely that at some point the actor aimed at some camera by accident, at least in horizontal direction (this is sufficient).
Tip: If you have attached a controller to the head far from the default "top" location (say, at head's side above the ear), then you may adjust its position before pressing Match with camera to improve matching accuracy.
Important! Alignment to the scene is required only once per project and motion controller. That is, you don't need to align again before each application of motion data. However, for better results it may be needed to re-align controller for different regions of a video because of the drifting of motion data with time.

Applying motion data

And finally — applying the motion controller's data to the bone rotation. This makes sense only after the tracking of the body is complete. In case of several controllers, data from each of the controllers is processed separately in any convenient order.

First, determine your region of interest. Ensure that within this region of frames the actor maintains a fixed grip of the controller. Frames with different grip should be processed separately. Next, select some frame within the region where the orientation of actor's bone is well visible on video. Edit the orientation of model's bone with the Rotate tool to correspond to the video. When ready, press the Apply Motion Data button — and in all frames within ROI, the bone's orientation will be set automatically according to relative orientation of bone and controller in the current frame.

Recommended Workflow

Basically, motion controllers' data should be applied after Tracking / Refine / Jitter Removal stages are performed. However, starting from Version 4.0.3, motion controllers' data can also be used to improve Refine stage quality. If you apply motion controllers' data before Refine stage, hands and / or head orientations obtained from motion controllers will be used during Refine thus allowing to match model with video more accurately. The recommended workflow is thus the following:

  1. Perform Tracking.
  2. Perform Manual Clean-up if necessary.
  3. Align controllers to the scene and Apply motion data
  4. Perform Refine
  5. Perform Jitter Removal
  6. Apply motion data

Head Rotation

By default on-head controller's rotation is applied to Head joint only. Select Distribute rotation between Head and Neck option to distribute rotation between Head and Neck joints. Head / Neck distribution setting slider will show. Bigger value means bigger part of rotation goes to Head.


Tutorials and demos