Maxscript replaceInstances referenceReplace instanceReplace 的区别

Posted trykle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maxscript replaceInstances referenceReplace instanceReplace 的区别相关的知识,希望对你有一定的参考价值。

replaceInstances <old_MAXWrapper> <new_MAXWrapper> transferCAs:
用新的MAXWrapper替换旧的MAXWrapper的所有实例。新旧MAXWrapper必须具有相同的超类。
如果 transferCAs为 true,则如果发生至少一次转移引用,则old_MAXWrapper上的所有自定义属性都将转移到new_MAXWrapper上。
不会为MAXWrapper值传输参考。
警告:
最少的错误检查,请格外小心。


instanceReplace <dest_node> <src_node> -- mapped
referenceReplace <dest_node> <src_node> -- mapped
使您可以将现有节点转换为实例以及对其他节点的引用。例如,您可以使用它们将一个节点的几何结构替换为另一个节点,也许用于实现自定义的详细程度工具。

所述 <dest_node>变成一个实例或参考 <src_node> 。作为一个新实例,现有的几何图形和修改器将被删除并由<src_node>代替 ,但所有与节点相关的属性都将保留,例如材质,变换,可见性,名称等。作为新参考,<dest_node>的基础对象成为 <src_node>的世界状态,因此对 src_node的任何更改都会影响 <dest_node>,但是对<dest_node>的更改 是本地的。

通过临时更改当前场景中一个节点的名称,并与另一个命名节点合并,使第一个节点成为一个节点,可以使用这些功能和mergeMAXFile()函数开发File / Replace函数的自定义脚本版本。 使用instanceReplace()合并的新节点的 实例,删除新合并的节点,然后再次将旧节点重命名。

这两个函数都是集合映射的,因此您可以选择对象(所有实例)或引用相同的对象。
例如:

instanceReplace $foo* $baz
--makes all the foo* objects be instances of baz‘s geometry
--and modifier stack.











以上是关于Maxscript replaceInstances referenceReplace instanceReplace 的区别的主要内容,如果未能解决你的问题,请参考以下文章

MaxScript重启3dsMax的重新思考

转MaxScript.Net接收本地端口的消息执行

maxscript 文件存在问题

MaxScript 计算执行时间差

Maxscript Protector 2.1 解密思路

MaxScript 一些结构的记录