[name]

用于 MMD 资源的动画助手.

[name] 处理由 [page:MMDLoader]加载的MMD资产,其中MMD 特殊功能为 IK, Grant, and Physics. 它使用在内部使用 [page:CCDIKSolver] 和 [page:MMDPhysics].

Example

// Instantiate a helper var helper = new THREE.MMDAnimationHelper(); // Load MMD resources and add to helper new THREE.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 THREE.AudioLoader().load( 'audios/mmd/song.mp3', function ( buffer ) { var listener = new THREE.AudioListener(); var audio = new THREE.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] — (可选的)

新建一个 [name].

Properties(属性)

[property:Audio audio]

添加到助手的 [page:Audio]

[property:Camera camera]

添加到助手的 [page:Camera]

[property:Array meshes]

添加到助手的 [page:SkinnedMesh] 数组

[property:WeakMap objects]

一个[page:WeakMap],它存储添加到助手的对象及其动画内容. 例如, 你可以用 "helper.objects.get( mesh ).mixer"访问 [page:AnimationMixer] 用以添加 [page:SkinnedMesh]

[property:function onBeforePhysics]

在[page:SkinnedMesh]的物理计算之前立即执行的可选回调。 使用[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] — (可选的)

添加 [page:SkinnedMesh], [page:Camera], 或者 [page:Audio] 到助手并且设置动画. 添加的对象的动画时间是同步的. 如果已经添加了摄像机/音频,它将被替换为新的。

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

[page:string key] — 允许的字符串是 'animation', 'ik', 'grant', 'physics', and 'cameraAnimation'.
[page:Boolean enabled] — true 启用, false 禁用

启用/禁用某项动画功能

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

[page:SkinnedMesh mesh] — 会变姿势的[page:SkinnedMesh] . 不必加入助手
[page:Object vpd] — VPD内容由 [page:MMDLoader].loadVPD获取
[page:Object params] — (可选的)

在VPD内容指定时更改[page:SkinnedMesh]的姿势 .

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

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

从助手移除一个[page:SkinnedMesh], [page:Camera], 或 [page:Audio] .

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

[page:Number delta] — 一秒钟数值

提前调整时间并更新添加到助手的动画

Source(来源)

[link:https://github.com/mrdoob/three.js/blob/master/examples/js/animation/MMDAnimationHelper.js examples/js/animation/MMDAnimationHelper.js]