1. Overview

Introducing MikuMikuCapture

MikuMikuCapture (MMC) is a tool for creating 3D models's motion using capture devices. It's designed as the supplementary tool of MikuMikuDance developped by Mr. Higuchi. Therefore MMC has similar features to MikuMikuDance such as drawing models and accessaries, playing motions, motion capture by Kinect, and drawing the effects for MikuMikuEffect developped by Mr. BuryokuKainyuP.

Before you install MMC, please read this document especially "Notes" in the following sections, "Copyright", "Terms of Use", and "Disclaimer".

System Requirements

OS Windows XP/Vista/7 
video card shader 2.0 or newer

- I tested MMC on Windows XP / Windows 7 64-bit (Japanese), and Windows 7 32-bit (English).
- Self-shadowing is available only with the video card supporting 32-bit floating texture.
- The effect files for MikuMikuEffect are available only with the video card supporting sharder 3.0.


1) Supported File Formats

MMC supports the following file formats that MikuMikuDance can handle.

.pmd .pmx (partially-supported)
motion .vmd (only model, camera, and light motion)
.bvh (only exporting capture motion)
accessory .x 
effect .fx .emd
audio .wav 
image .bmp .jpg .png .tga .dds .dib .pfm .hdr
video .avi (.asf/.wmv are also available, but play speed doesn't work)
pose .vpd 

MMC also supports the original file formats designed for itself.

config .mmc (including all the settings of MMC)
action .act (only button settings of Wii remote)
capture model .cmx (the settings of extensive bone control)
effect .mmcfx (compiled .fx file)

- MMC follows the folder structure of MikuMikuDance. If you put MMC in the same folder as MikuMikuDance, You can access these files in a similar way.
- If "MMCFile", "Action", "CaptureModel", and "Settings" folders don't exist, MMC creates them automatically when you open related files.

2) Drawing Models and Accessories

MMC can draw .pmd/.pmx models and .x accessories. You can change their position and rotation, and attach an accessory to a model's bone.

- MMC doesn't support the following features of .pmx model

additional uv uv1-4 
bone mark direction, axis restriction, local axis, external parent
material sub texture
morph additinal uv

- The blending result of SDEF quaternion skinning is different from MikuMikuDance. In addition, MMC uses BDEF linear skinning instead of SDEF skinning under specific conditions.

3) Playing Motions

MMC can play .vmd motions for model, camera, and light. You can load more than one motions and play them with physics simulation.

- If you load the motion without zero frame, MMC outputs the same motion from 0 to the first frame.
- If you allocate more than one motions including the same bones and faces (morphs) to a model, MMC plays down-ordered motion in priority to up-ordered one.
-MMC emulates the IK behavior of MikuMikuDance to take the checkmark of "Keep the rotation of IK target" off. If model's uncle is rotated badly in playing, you can take it on to reduce the rotation.
- The updating order of the specific bones of PMX model is different from MikuMikuDance.

4) Drawing Effects

MMC can draw .fx effects for MikuMikuEffect associated with models or accessories. In addition, it can also mix two or more post-processing effects.

- MMC doesn't support the following features of MikuMikuEffect.

effect settings Default effect, Applying to subsets

- You can enable the compilation feature from "Settings - File settings". If you enabled it, MMC outputs the "(file name).mmcfx" file in first loading. It takes more time than MMC loads the .fx file.
- MMC automatically loads the .mmcfx file corresponding to a .fx file.
- The feature of drawing model's outline is enabled after compilation. When the compilation fails, the outline is not drawn. This feature is not stable, so the outline is not always drawn after compilation succeeded.
- MMC produces a different result from MikuMikuDance when 'VertexShader' or 'PixelShader' of effect-pass desctiption .
- The drawing order of ground shadow, coordinate axis and effect is different from MikuMikuDance.
- The way to check the content of effect file on MMC is different from MikuMikuDance. MMC may show the error message "'(file name) has syntax errors. You need to modify the following items with 'error'" in loading an effect.

5) Motion Capture

MMC can create motion data from the input of capture devices. You can adjust capture motion to change various parameters, then save it in .vmd and .bvh format.
MMC supports the following capture devices.

Microsoft Xbox 360 Kinect Sensor you can capture user's movement of head, body, arm, and legs.
Microsoft Kinect for Windows Sensor it is intended to be used with the Kinect for Windows Commercial SDK.
Nintendo Wii Remote Plus you can capture twisting of user's wrist. In addition you can change face and pose, move a model and control camera by Wii remote's buttons.

- For using Kinect, DxOpenNI library (MikuMikuDance's plug-in) or DxMsNui4Win.dll, DxMsNui4WinNoVin.dll, DxMsKinectFusion and DxOpenNI2.dll in "MMCResource\Plugins" are required.
- DxMsNui4Win.dll, DxMsNui4WinNoVin.dll and DxMsKinectFusion.dll in "MMCResource\Plugins" folder are the libraries for Kinect for Windows Sensor. DxMsNui4Win.dll and DxMsKinectFusion.dll also have video-in feature in addition to this caputre feature. They are developped with Kinect for Windows SDK. You can use this SDK with an existing Kinect for Xbox 360 for your own, personal development purposes.- You can not use DxMsNui4Win.dll,DxMsNui4WinNoVin.dll and DxMsKinectFusion.dll for MikuMikuDance.
- MMC supports the folowing functions of MoggDxOpenNI developped by Mr. Mogg.

supported neck, wrist, waist
unsupported  ankle, shoulder, face front

- MMC can only save the capture motion of model by Kinect to .bvh file.
- MMC puts the following skeltal structure to .bvh file.

ROOT node Hip
JOINT node UpperBody, LowerBody
Neck, Head
Shoulder, Arm, Elbow, Wrist
Leg, Knee, Ankle

- If Kinect lost user's joints in capturing, you can use "Interpolate capture motion" function to interpolate lost joints smoothly. This function is only for OpenNI, because Kinect SDK interpolates them before reporting them to MMC. If you want to use this function for MoggDxOpenNI, Check "Default" in "Bone lost behavior" on it's config tool.
- When connecting with Kinect, MMC requires a user to face front to get user's joints to capture user's motion with great accuracy. You can changes the time by [Capture settings -> Misc. -> Capturing delay time] value.
- MMC checks the position of toes, shoulders, and neck for front face. Make sure user's whole body is fitted inside the Kinect's range of detection. MMC can detect the position of toes more easily by standing with user's feet shoulder-width apart.
- "Recalibration Kinect joints" is the function to get user's joints faced front with keeping connection with Kinect.
- Camera capture under "perspective" off has a problem about camera's distance.
- Kinect SDK 1.5 is necessary for face tracking, near mode and seated mode. These features are available only for "MMCResource\Plugins\DxMsNui4Win.dll".
- You can setup near mode and seated mode from [Capture settings -> Miss. Kinect DxOpenNI library Setup].
- Face tracking feature requires the camera images (RGB image and depth image) of Kinect. That doesn't work enough  without light on user's face.
- For using Wii remote, you need to prerare the computer with Bluetooth interface or USB bluetooth adapter.
- Twisting of wrist function uses the accelerometers and gyros in Wii remote. The gyros is used in a nearly-vertical position, the accelerometers is used in other position.
- The accelerometers are sensitive to movements and the gyros are susceptible to rotation gap. So I recommend you to twist Wii remote slowly keeping in a nearly-holizontal position.
- MMC doesn't save camera-switch operation by Wii remote at "save capture motion".
- You can also adjust capture motion in play partially. Note that move action of Wii remote is not adjustable differently from other actions.
- Maximum capture time is 10 minutes

6) Video-in

MMC can display the image coming from video capture device.
MMC supports the following video capture devices.

 Microsoft Xbox 360 Kinect Sensor
 Microsoft Kinect for Windows Sensor
 USB camera

- For using video-in, The appropriate library file in "MMCResource\Plugins" folder is required. You need to set up it on "Capture Settings - Video-in library" according to your operating environment.

Kinect + OpenNI DxOpenNICamera.dll (640x 480 30fps)
Kinect + Kinect SDK DxMsNui4Win.dll (640x 480 30fps)
DxMsKinectFusion.dll (640x 480 30fps)
Kinect + OpenNI2 DxOpenNI2Camera.dll (640x 480 30fps)
USB camera GeneralCamera.dll

- DxMsNui4Win.dll (DxMsKinectFusion.dll) has both skeletal tracking (camera tracking) and video-in features. For using it, you must set up the same name on "Capture Settings - Kinect library". If not, the video-in feature does not work correctly or MMC suddenly crashes.
- "Video-in settings" is for USB camera. You can not use it for Kinect sensor.
- DxOpenNICamera.dll is developped on "OpenNI for Windows". If the previous version is installed on your PC. it may not work correctly.

7) Video-out

MMC can output the display screen image like USB camera to distribute it via internet.

- You need to register the video capture filter of MMC on windows to use the video-out feature. Click [Settings - Video-out settings], then register it once. Be sure to run MMC as administrator before the registration.

 Windows 7  Right-click MMC icon and select [Run as administrator].
 Windows XP  Log-in Windows as administrator and run MMC.

- If you installed anti-virus software in your PC, it might show warning message. But it's no problem to continue the registration.
- The resolution of video-out image is only 640x480.
- MMC doesn't distribute audio data (WAVE sound).
- MMC doesn't output text messages like capture information.