[name]

A animation helper for MMD resources.

[name] handles animation of MMD assets loaded by [page:MMDLoader] with MMD special features as IK, Grant, and Physics. It uses [page:CCDIKSolver] and [page:MMDPhysics] inside.

Example

// Instantiate a helper var helper = new v3d.MMDAnimationHelper(); // Load MMD resources and add to helper new v3d.MMDLoader().loadWithAnimation( 'models/mmd/miku.pmd', 'models/mmd/dance.vmd', function(mmd) { helper.add(mmd.mesh, { animation: mmd.animation, physics: true }); scene.add(mmd.mesh); new v3d.AudioLoader().load( 'audios/mmd/song.mp3', function(buffer) { var listener = new v3d.AudioListener(); var audio = new v3d.Audio(listener) .setBuffer(buffer); listener.position.z = 1; scene.add(audio); scene.add(listener); } ); } ); function render() { helper.update(clock.getDelta()); renderer.render(scene, camera); } [example:webgl_loader_mmd]
[example:webgl_loader_mmd_pose]
[example:webgl_loader_mmd_audio]


Constructor

[name]([param:Object params])

[page:Object params] — (optional)

Creates a new [name].

Properties

[property:Audio audio]

An [page:Audio] added to helper.

[property:Camera camera]

An [page:Camera] added to helper.

[property:Array meshes]

An array of [page:SkinnedMesh] added to helper.

[property:WeakMap objects]

A [page:WeakMap] which holds animation stuffs used in helper for objects added to helper. For example, you can access [page:AnimationMixer] for an added [page:SkinnedMesh] with "helper.objects.get(mesh).mixer"

[property:function onBeforePhysics]

An optional callback that is executed immediately before the physicis calculation for an [page:SkinnedMesh]. This function is called with the [page:SkinnedMesh].

Methods

[method:MMDAnimationHelper add]([param:Object3D object], [param:Object params])

[page:Object3D object] — [page:SkinnedMesh], [page:Camera], or [page:Audio]
[page:Object params] — (optional)

Add an [page:SkinnedMesh], [page:Camera], or [page:Audio] to helper and setup animation. The anmation durations of added objects are synched. If camera/audio has already been added, it'll be replaced with a new one.

[method:MMDAnimationHelper enable]([param:string key], [param:Boolean enabled])

[page:string key] — Allowed strings are 'animation', 'ik', 'grant', 'physics', and 'cameraAnimation'.
[page:Boolean enabled] — true is enable, false is disable

Enable/Disable an animation feature

[method:MMDAnimationHelper pose]([param:SkinnedMesh mesh], [param:Object vpd], [param:Object params])

[page:SkinnedMesh mesh] — [page:SkinnedMesh] which changes the posing. It doesn't need to be added to helper.
[page:Object vpd] — VPD content obtained by [page:MMDLoader].loadVPD
[page:Object params] — (optional)

Changes the posing of [page:SkinnedMesh] as VPD content specifies.

[method:MMDAnimationHelper remove]([param:Object3D object])

[page:Object3D object] — [page:SkinnedMesh], [page:Camera], or [page:Audio]

Remove an [page:SkinnedMesh], [page:Camera], or [page:Audio] from helper.

[method:MMDAnimationHelper update]([param:Nummber delta])

[page:Number delta] — number in second

Advance mixer time and update the animations of objects added to helper

[sourceHint]