是否可以在 threejs 中命名 rotations/joints 以及如何设置它们?

Is it possible to name rotations/joints in threejs and how is it possible to set them?

我正在用 threejs 做一些工作。现在只是想知道是否可以命名旋转或关节。

因此似乎可以编写如下代码:

arm.rotateZ( 180 ).name="ARM_ANGLE";

但随后如何访问和设置相同的旋转?

我知道在 x3d 中可以做到这一点,所以我认为在 threejs 中也可以做到这一点。在 x3d 中,可以将引用定义为:

<Transform DEF="ArmAngle" rotation="0 0 1 3.19">

然后定义一个路由来引用它,例如:

<ROUTE fromNode='spinarm' fromField='value_changed' toNode='ArmAngle' toField='set_rotation'></ROUTE>

您所描述的听起来像是动画关键帧或变换关键帧。

您可以在 Blender 等建模器中定义它们并导出它们或以编程方式生成它们。

但一般来说,如果您真的想要那种界面风格,您从 x3d 描述的内容必须是建立在三层之上的层,但老实说,使用场景图风格的操作非常简单。即找到一个对象并设置其位置和旋转。或者在建模器中定义动画然后调用该动画。使用动画的好处是你可以在它们之间混合。

您可以将对象命名为三个.. 例如,您可以命名您的手臂.. 然后使用 scene.getObjectByName("arm") 找到它。 getObjectByName是所有Object3D的一个方法。