资源的物理处理程序 `MMD`。
[name] 使用 [link:https://github.com/kripken/ammo.js/ ammo.js] (基于 Bullet 的 JavaScript 物理引擎)为 [page:MMDLoader]
计算加载模型的物理量。
[name] 是一个附加组件,必须显式导入。请参阅 [link:#manual/introduction/Installation Installation / Addons]。
import { MMDPhysics } from 'three/addons/animation/MMDPhysics.js';
let physics;
// Load MMD resources and instantiate MMDPhysics
new MMDLoader().load(
'models/mmd/miku.pmd',
function ( mesh ) {
physics = new MMDPhysics( mesh )
scene.add( mesh );
}
);
function render() {
const delta = clock.getDelta();
animate( delta ); // update bones
if ( physics !== undefined ) physics.update( delta );
renderer.render( scene, camera );
}
[example:webgl_loader_mmd]
[example:webgl_loader_mmd_audio]
[page:SkinnedMesh mesh] — [page:SkinnedMesh], [name] 为其计算物理。
[page:Array rigidBodyParams] — 指定刚体参数的 [page:Object] 数组。
[page:Array constraintParams] — 可选)指定约束参数的 [page:Object] 数组。
[page:Object params] — (可选)
创建一个新的 [name]。
[page:SkinnedMesh] 传递给构造函数。
返回 [page:MMDPhysicsHelper]。您可以通过将辅助对象添加到场景来可视化刚体。
重置刚体变换为当前骨骼的刚体。
[page:Vector3 gravity] — 重力的方向和体积。
设置重力。
[page:Number delta] — 时间(以秒为单位)
高级物理计算和更新骨骼。
[page:Number delta] — 时间(以秒为单位)
热身刚体。计算循环步数。
[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/animation/MMDPhysics.js examples/jsm/animation/MMDPhysics.js]