【发布时间】:2018-10-04 11:09:12
【问题描述】:
我正在尝试通过更改微调器的值来旋转我的 3ds max 场景中的助手。当前更改微调器的值确实会驱动助手旋转,并且旋转助手会更新微调器上的值。我的脚本仍有一些行为问题需要帮助解决。
1) 我希望助手的旋转仅发生在助手的局部欧拉 Z 轴上,但是目前它的旋转是不稳定的并且发生在多个轴上。
2) 我想将助手的旋转限制在 -90 到 90 度的范围内,目前它的旋转范围远不止于此。
我目前的代码如下。
Spin_R_Custom_attribute = attributes custom_Attributes
(
rollout SpinRollout "Helper Controls"
(
Spinner TheSpinner "The Spinner" range:[-10,10,0] controller: $Helper_R_Spin.rotation.z_rotation.controller \
on TheSpinner changed spin do
(
try (in coordsys local $Helper_R_Spin.rotation.z_rotation = spin) catch ()
)
)
)
任何帮助将不胜感激。
【问题讨论】:
-
如果您完全删除
on TheSpinner changed子句,您的代码实际上似乎运行良好。正如您设置的那样,微调器已经通过其控制器链接到旋转。而且,我相信通过直接设置旋转控制器值,旋转应该始终在本地空间中,因为原始控制器值本质上是本地的。如果即使在视口中进行操作时也要防止移动超过 +-90 度,则可能必须应用动画约束或脚本控制器。 -
@MichaelsonBritt:如果它是像列表控制器这样的嵌套控制器,则控制器值保证是本地的。