MAYA建模游戏设计(3)

2019-02-15 00:39

??

Attractive(At,Bt,?,oAt,oBv);//计算函数 ?? }

上述代码的算法非常简单,功能效果也略显单调,但只要开发者融入自己的思想,就可以开发出个性化功能。

(4)更新节点的当前输出属性数据

通过计算,新的数据已经产生了,需要将这些数据传递给当前输出属性,以实现数据更新。同输入属性数据的获取一样,需先通过MDataBlock类的out-putValue函数获取节点的输出属性的MDataHandle类对象,该对象不可读,只可写。如,MDataHandle datoutAt=data.outputValue(attraction::outAt,&returnStatus);然后,调用MDataHandle类set()函数进行数据更新,当然更新数据的类型必须与输出属性数据一致或兼容。如,datoutAt.set(oAt);最后,还要清除plug标记,即说明属性已被重新计算,如,data.setClean(outAt);

3.5节点的初始化定义

initialize()函数定义了节点属性的初始化设置,分为三步操作。

(1)属性创建和设置。在C++API中,一个属性的创建和编辑是通过MAttribute类及其派生类完成的,有MFnNumericAttribute、MFnUnitAttribute、MFnType-dAttribute等等。其中MFnNumericAttribute类是最常用的,在该类中定义了两种create()函数来实现节点属性的创建。如:

MFnNumericAttribute

nAttr;frame=nAttr.create(\其参数依次是\长名\短名\数据类型,默认值为1,状态返回(缺省);

inAt=nAttr.create(\其参数依次是\长名\短名\子属性

1,子属性2,子属性3,状态返回(缺省)。

上述代码将实现属性frame和inAt的创建,其中子属性inAtx是inAt的x分量,也是节点的属性,需在节点类的成员变量中事先声明。

(2)属性添加。属性创建和设置完之后,所有的属性需调用MPxNode类的addAttribute()函数添加到节点中去。如,addAttribute(inAt);addAttribute(frame);

(3)属性影响。属性虽然已经添加到了自定义的节点中去了,但该节点仍然不能正常工作,还需定义属性之间的影响,确定输入属性与输出属性的关系。

建立属性影响需调用MPxNode类的attributeAffects()函数。如,attributeAffects(inAt,outAt);attributeAffects(frame,outAt); 这样,输出属性outAt就受到输入属性inAt和frame的影响,当inAt和frame变化时,outAt就需要更新计算。

3.6编译链接和节点加载

完成上述步骤,则节点类已被创建,随后调试程序,并编译链接生成动态链接文件,如attraction.mll,该文件名称由VC.net在新建工程组时,利用Maya Plug-in Wizard插件向导自定义的,默认文件名myCmd.mll。

这些mll文件类似于Windows的dll文件,区别在于mll文件只能由Maya调用。

进入Maya总菜单栏的Windows→Setting/Preference→Plug-in Manager,打开Plug-in Manager对话框,选择browse将attraction.mll导入,则在Plug-in Manager对话框的Other Registered Plugins项目中可以找到attraction.mll,并在loaded上打勾,即说明节点被加载。现在就可以在Maya的command line或script editor中键入\attraction;\命令来创建一个节点实例,默认的新建节点名为attraction1。卸载节点也非常方便,只要去除loaded上的勾即可。

3.7场景属性与节点属性的关联

本文采用并极力推荐制作简单脚本完成属性关联,一来便于场景重建,二来减少C++程序的许多复杂操作。虽说是脚本,实际上由Maya命令组成。假设场景中存在一物体球A,要求每一帧调用节点的computer(),将球A位置信息按照实际算法更新成新的值,实现球A的运动,如图5。

其中,connectAttr是Maya用来关联属性的命令关键字,A.t为场景中球A的位置信息,inA_position是节点attraction1的输入属性inAt的长名,outA_position是输出属性outAt的长名。这样,一个Maya自定义节点就创建完成了,用户或开发者可以自由调用和修改该节点,也可以按照自己的创作思想创建新的节点。

参考文献

[1]http://www.alias.com

[2]郭新新,徐帆.Maya 5.0使用培训教程[M].北京:清华大学出版社.2004 [3]匡天君,滕远道等.基于MFC和OpenGL三维图形的开发[J].微计算机信息(测控仪表自动化).2004

[4]Mark R. Wilkins, Chris Kazmier, Stephan Oster burg. MEL Scripting for Maya Animators[M].Beijing: Publishing House of

Electronics Industry,2004

[5]David A.D. Gould. Complete MAYA Programming[M].Beijing: Publishing House of Electronics Industry, 2004


MAYA建模游戏设计(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:17—18学年上学期高一第二次月考(12月)物理试题(附答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: