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:
- PlayStation Move
- Wii Remote with MotionPlus
- Wii Remote Plus, which has MotionPlus integrated
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.
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).
For PS Move, an USB to mini-USB (model CECH-ZCM1x) or micro-USB (model CECH-ZCM2x) cable is also required to charge your motion controller and for pairing (see next section).
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 Controller 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).
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.
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.
|Select + Circle|| |
|Select + Square|| |
|Select + Triangle|| |
|Select + Cross|| |
|Select + Move|| |
|Select + Start|| |
|Select + T(rigger)|| |
|Select + PS||Off|
Tips on action video
There are two main requirements:
- 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.
- 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.
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.
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.
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:
- Perform Tracking.
- Perform Manual Clean-up if necessary.
- Align controllers to the scene and Apply motion data
- Perform Refine
- Perform Jitter Removal
- Apply motion data
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
- A great sample of hand tracking from Seed Crystal Games studio:
- PS3 Move Gloves for Hand by CManson:
- DIY solutions for attaching PS Move to a head:
- Video of pairing procedure for PS Move: