开发公约
# 3dsMax 开发者公约
这只是个人简单的开发声明和平时制作脚本工具时的一些细节,只是想在对 max 文件做出某些数据修改时尽量能避免和其他开发者的数据发生冲突。
如果你是新人,建议和我一起来,在行业保持一致的默契规则,方便他人也是方便自己。
如果你是老人,请教教我!!!
# GUID - AppData : -81259732468513268
id_ranges = -81259732468513268
id_path = -9125973246851326
getAppData rootnode id_ranges
1
2
3
4
5
2
3
4
5
如上,场景 rootnode
上 有两个,被书签插件占用,保存有动画片段。
# GUID - AppData : 1001
3dsMax 中并没有直接给 物体 object 分配 GUID ,但是 很多情况下我们需要一个全局唯一又是可以被保存的 ID 来识别标记 object 。
这里推荐使用 AppData
的 1001
数据通道保存GUID。
fn set_node_guid node_obj =
(
id = getAppData node_obj 1001
if id == undefined do (id = genGUID())
setAppData node_obj 1001 id
id
)
1
2
3
4
5
6
7
2
3
4
5
6
7
目前 1001
这个数据通到只有 天晴动作工具组 里的 骨骼镜像工具 用到,用来标记骨骼的配对的镜像骨骼。该工具 目前占用 1001, 1002, 1003
三个数据通道, 而其的历史版本有用到数据通道 100
保存镜像数据。
# Name - AppData : 5
相信很多人都有使用过 getNodebyName ,按名字查对物体的 这个函数,个人是十分不建议大量使用该函数,因为物体名字有被改的风险。
但是又有些情况下,我们不得不使用该函数,比如从外部导入 数据,只有一个物体名字特征, 而数据来源的格式我们也无法控制。
当后期在次更新数据时,也只能硬头皮按名字查找物体,但是又不想出现物体被改名,重名而无法正确查找的情况。
这里推荐使用 AppData
的数据通道 5
来保存 Name 名字。
# render hidden - AppData : 813
渣渣渲屏,在隐藏无需渲染物体时 标记,用于事后恢复状态.