返回介绍

手册

参考

示例

开发者参考

MMDPhysics

发布于 2021-07-10 14:14:19 字数 3054 浏览 1206 评论 0 收藏 0

A Physics handler for MMD resources.

MMDPhysics calculates Physics for model loaded by MMDLoader with ammo.js (Bullet-based JavaScript Physics engine).

代码示例

const 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 );
}

例子

webgl_loader_mmd
webgl_loader_mmd_audio

Constructor

MMDPhysics( mesh : SkinnedMesh, rigidBodyParams : Array, constraintParams : Array, params : Object )

meshSkinnedMesh for which MMDPhysics calculates Physics.
rigidBodyParams — An array of Object specifying Rigid Body parameters.
constraintParams — (optional) An array of Object specifying Constraint parameters.
params — (optional)

Creates a new MMDPhysics.

Properties

.mesh : Array

SkinnedMesh passed to the constructor.

Methods

.createHelper () : MMDPhysicsHelper

Return MMDPhysicsHelper. You can visualize Rigid bodies by adding the helper to scene.

.reset () : CCDIKSolver

Resets Rigid bodies transorm to current bone's.

.setGravity ( gravity : Vector3 ) : CCDIKSolver

gravity — Direction and volume of gravity.

Set gravity.

.update ( delta : Number ) : CCDIKSolver

delta — Time in second.

Advance Physics calculation and updates bones.

.warmup ( cycles : Integer ) : CCDIKSolver

delta — Time in second.

Warm up Rigid bodies. Calculates cycles steps.

Source

examples/jsm/animation/MMDPhysics.js

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文