- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MAYA建模游戏设计
MAYA建模游戏设计
Abstract: Modeling is the basis of animation, Maya software, it provides a majority of three-dimensional modeling software owned by the methods include: 1) NURBS role in the establishment, 2) the establishment of polygons role 3) sub-modeling; ) Sculpture modeling. Polygon model can be compared to dot-matrix image, NURBS model can be compared to vector graphics, modeling, mainly in their own proficiency and habits. Key words: modeling, polygon modeling; Game Design
绪 论
Maya是目前世界上最为优秀的三维动画和特效制作软件之一,被广泛使用于电影电视、游戏设计等领域。1998年以来,Maya开发工程师不断完善开发软件包,使其成为全球许多顶级动画工作室和制作公司首选的三维设计平台之一。与其他的开发平台不同,Maya应用平台采用开放式的框架体系结构,设有许多三维组件(对象、动画、动力学等等),可以重新设定这些组件的用途,以实现用户所需的特定功能,即开发Maya插件。开发Maya插件的编程方法有两种,一是MEL(Maya Embedded Language,Maya嵌入式语言)脚本,二是C++API(Application Programming Interface,应用程序编程接口)程序。Maya的C++API开发是Maya高级编程方法,与MEL脚本开发相比,C++API开发的Maya插件具有代码执行速度快和安全性高的优点,还可以方便的应用指针对内存进行访问和操作。但Maya的C++编程接口具有平台相关性,跨平台性能欠佳。本文应用的编程平台是目前较流行的Microsoft VC++.net。
Maya的节点(Node)是用户与底层Maya引擎DG(Dependency Graph)通信的特殊构件。把一系列节点链接在一起,进行数据传递,可以完成很多3D任务。Maya
自定义节点也是一种Maya插件,创建自定义节点最好的方法是利用Maya的C++API,并且这些自定义的节点可以直接集成到Maya中,与其他节点无缝链接。但通常情况下,开发Maya自定义节点比较繁琐, 不光要求开发者具备一定编程能力,而且必须深入理解Maya的底层结构。本文通过对Maya C++API的深入剖析的基础上,将整个开发过程的步骤简化,并用Maya比较简单的命令脚本和表达式来代替一些比较复杂的编程过程,从而提出了一种开发Maya自定义节点的简易方法,大大降低开发难度。节点开发是Maya插件开发的高级应用,因此该方法对其他Maya插件的开发也具有一定的借鉴意义。
第二章Maya建模
3改进的Maya自定义节点的创建方法
Uninitialize Plugin()函数用于节点的注册和注销,以及一些错误检查,保留其默认内容完全可以满足一般节点的要求。
Attraction Node.h中定义了以MPx Node为基类的节点类,如class attraction:public MPxNode。节点类的成员变量中包含了所有的节点属性(Node attribution),可根据节点的实际需求增加或修改。节点类在默认情况下,定义了三个的成员函数,缺一不可,一是creator()函数,用于创建节点时,实例化自身;二是compute()函数,用于节点计算的具体实现;三是initialize()函数,用于节点属性的初始化设置。这三个成员函数的函数体均在attractionNode.cpp中得到具体实现。在节点类中,除了computer()以外的所有成员变量和函数均是静态的,即所有实例对象共享这些数据。
3.3节点属性的增加和修改
一个节点可以有多个输入属性和多个输出属性,作为节点类的成员变量存在,如:
static MObject inAt,inAv,inBt,inBv,outAt,outAv,outBt,outBv,frame,id;输入/输出属性变量均是MObject的实例对象,对于C++API来说,输入/输出属性的数据都是具有Maya数据结构的,属性变量的输入/输出性由具体程序操作使用决定。程序从输入属性中获取数据,经过计算,将新的数据传给输出属性。所有Maya节点都具有唯一的标识号,MTy
文档评论(0)