我正在尝试通过更改微调器的值来旋转3ds max场景中的辅助对象。当前更改微调器的值确实会驱动辅助器上的旋转,并且旋转辅助器会更新微调器上的值。我的脚本仍有一些行为问题需要帮助解决。
1)我希望助手上的旋转仅在助手的局部euler 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 ()
)
)
)
非常感谢任何帮助。
答案 0 :(得分:0)
要让控制器在本地空间中工作,您需要使用列表控制器的子控制器(就像冻结旋转/转换时创建的那样)。这样,您也不需要更改的处理程序(以及try-catch和可以更改的$ Helper_R_Spin路径名等),因为控制器将被实例化到微调控制器。有关范围的限制,请参阅float_limit。
答案 1 :(得分:0)
以这种方式连接参数的推荐技术是参数接线。
con.connect(function(err) {
if (err) context.done(err);
context.done(null, "connected");
});
实际上是一对从旋转值转换为微调器的方程式,反之亦然。如果你想以不同的单位显示微调器,你可以在这里输入其他数学。示例:
"z_rotation" "cust_z"