【问题标题】:Three.js Skeletal animations, bons recalculateThree.js 骨骼动画,bons 重新计算
【发布时间】:2014-12-15 11:30:17
【问题描述】:

我有一些关于骨骼动画混合的问题。我有行走动画,我想在这个动画中改变手臂的位置。我认为我需要重新计算手臂在所有关键帧中的位置。这是一种常见的做法,还是有其他更常见、更简单的方法?

【问题讨论】:

    标签: three.js


    【解决方案1】:

    您无需在关键帧中更改手臂的位置。 应用动画,然后通过直接设置手臂骨骼来动态改变手臂的位置

    skinMesh.skeleton.bones[i].position.set(xPos, yPos, zPos);        // sets the position Vector3
    skinMesh.skeleton.bones[i].rotation.set(xRot, yRot, zRot, "XYZ"); // sets the rotation Euler
    

    其中“xPos,yPos,zPos”是手臂的新位置,“xRot,yRot,zRot”是新的旋转,“i”是骨骼的索引。

    请看这个问题,以及我对动态动画的回答:Dynamic bones animation in Three.js

    【讨论】:

    • 我运行动画并使用 skinMesh.skeleton.bones[6].rotation.set(0.903,0.248,-0.284) 更改手臂的旋转。但手臂不旋转
    • @Ivan 你忘记了“XYZ”:'skinMesh.skeleton.bones[6].rotation.set(0.903,0.248,-0.284, "XYZ")'
    • 但还是不行。当动画不播放时,我可以旋转骨骼,但是当动画播放时,骨骼变得与动画中相同。为什么?
    • @ivan 你在更新动画后添加了 XYZ 和代码行吗?它必须类似于“THREE.AnimationHandler.update(delta); skinMesh.skeleton.bones[6].rotation.set(0.903,0.248,-0.284, "XYZ");"。另外,您使用的是最新版本的three.js(r68)吗?
    • 对不起。这是我的失败=)加倍工作是一种好习惯吗?在动画期间旋转骨骼,然后使用代码 skinMesh.skeleton.bones[6].rotation.set(0.903,0.248,-0.284, "XYZ");
    猜你喜欢
    • 2014-10-16
    • 1970-01-01
    • 2013-12-24
    • 2016-09-13
    • 2013-09-22
    • 2021-08-03
    • 2013-11-03
    • 2023-03-23
    • 2012-10-17
    相关资源
    最近更新 更多