首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maxscript脚本化修饰符

Maxscript脚本化修饰符
EN

Stack Overflow用户
提问于 2014-07-31 19:45:33
回答 3查看 1.7K关注 0票数 0

我一直在尝试创建一个脚本化的修饰符。一切正常。唯一要做的就是在修改器中显示对象的当前Z位置。这将需要我在每次对象更新时更新修改器。有没有人可以指导我如何更新修改器的基础对象的移动?

示例代码:

代码语言:javascript
复制
plugin modifier accessBaseObject
name:"Access Details" classID:#(0x260e697e, 0x64b63822) replaceUI:true version:1
(
    parameters main rollout:params
    (
        enterValue type:#float animatable:true ui:spnEnterValue default:0.0
        on spnEnterValue set val do (print $.name)
    )
    rollout params "Modifier Parameters"
    (
        spinner spnEnterValue "Enter Value : "
    )

    on update do
    (
        print ($CAMERA.pos.Z)
    )
)

提前感谢,Videep

EN

回答 3

Stack Overflow用户

发布于 2014-08-02 00:26:20

修改器并不真正了解基础对象在世界中的位置。

从信息流的角度来考虑:

对象->修改器->世界

您不会收到有关世界的信息(您的Z位置,与对象不会收到有关修改器的信息相同。

通常,如果您发现自己需要的信息与流程背道而驰,那么您就有了一个可以用更好的方式解决的设计问题。一般来说,这是通过实现一个世界空间修饰符,但不幸的是,我不认为这在MaxScript中是可能的。

要解决这个问题,您可以找到您的节点并直接访问它。

theNode = refs.dependentNodes yourModifier firstOnly:on

但这不会在节点移动时更新,也不会处理实例化。我会考虑重构你的插件以使用不同的class - try脚本控制器,或者创建一个依赖于输入对象的脚本对象。

票数 1
EN

Stack Overflow用户

发布于 2014-10-31 09:58:29

Frozen很好地总结了这一点。对于这类事情,自定义属性通常会起到作用。您可以存储弱引用,并随心所欲地处理它们。欲了解更多信息,请访问保罗·尼尔的网站:http://www.paulneale.com/

对于脚本化控制器:http://www.paulneale.com/tutorials/Scripting/weakReferences/weakReferences.htm

票数 0
EN

Stack Overflow用户

发布于 2016-09-15 00:31:29

“脚本化修改器插件只能扩展现有修改器插件。”请看文档,这可能是它和$.pos通常正常的原因。

然而,如果你的相机被其他脚本动画移动,你仍然可以通过改变一些值来强制更新,并且在一些值改变时,在你的插件中调用你的函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25058118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档