Maya Templates

Maya每个节点都会带有一个Attribute属性界面。这个界面的定义在 maya安装目录下的 scripts\AETemplates 。

属性界面操作常用命令:
editorTemplate、setParent、frameLayout、connectAttr等等。

属性界面的基本原理:
1.Maya启动时,不加载任何属性界面。
2.若选择一个节点,并且调出了属性编辑器。
3.读取AEnodenameTemplate对应的mel文件,把方法加载到内存中。
4.给新的属性界面分配布局位置。一般为MayaWindow|MainFormLayout|....之类的。
5.把布局位置分配给当前Template。
6.执行已经分配到内存里的AEnodenameTemplate方法。
7.执行mel文件里的布局程序,并且立刻执行布局时需要调用的-callCustom参数对应的new方法。
8.更新完成后,每次属性的更改、每次切换节点等都会触发-callCustom参数对应的modifier方法。

需要注意的事项:
1.因为每个节点加载到内存中只有一次机会创建属性布局,所以一旦分配好布局位置这个节点就不会变。
  从这个意义上讲,如果获得了布局位置,那么就可以任何时间内无限次动态修改一个节点的属性界面。
  因为没有简便方法能够获得每个节点所在的布局位置(有方法,不过较为麻烦),所以较难修改其他的属性界面。
  内部集成化,可以有效减少误操作。但有个坏处,就是一旦系统分配的属性界面被改坏了,就需要重启Maya。
  (当然,这个问题可以使用重刷布局的方法刷回来。反正Maya系统里布局的位置只是映射了一堆字符串而已。)
2.-callCustom后的方法为什么都是global的?因为在创建控件的时候,它必然先调new方法,给控件占位。
  方便接着后面的布局操作。而如果是非global的函数,则有可能调用非global才能调用方法、事件。
  而为了使得控件能够高效地加载,Maya选择了减少数据调用层次+消耗内存的方法来实现。
  (其实这个问题对于喜欢写冗余程序的人来说,根本不算一个限制。)
3.modifier方法仅仅是为了刷新,那么它里面的内容有时会跟new是重复的,但更多的是new的精简版。
4.Maya的Template一开始是没有任何加载的。同样都是global函数,调用另一个未加载的界面布局内的其他函数是会报错。
5.layout的查询是根据每个layout的不同类型分别查询的。否则就不出结果。

制作了三天Maya的Template界面,还是小有收获。又找到了编程的感觉。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值