关于问一个maya API 的问题

2024-12-17 12:13:13
推荐回答(3个)
回答1:

现在来讲的话,maya的API包括两种:C++和Python,前者是强大复杂的编程语言,后者是强大简单的“脚本”语言,这里加个引号是因为python的功能已经很强大了,超过了一般脚本语言,他的特点就是接近自然书写,因此开发周期短(这点很好理解吧 好比比划下蓝图或者 伪代码 )。
maya的插件实际上就是一个编译好的动态链接库(*.dll),maya中为*.mll,这些都是用C++编译出来的,win平台下就是VS(maya2013对应于VS2010了,mac的Xcode和linux的gcc ),因为除了maya提供的所有库之外,用户还可以自由调用其它库甚至自己实现算法,因此,在maya允许的范围之内,C++的Api功能基本上是无穷的了,只要你能想能写。相比之下Python开发显得非常“easy”,前提是你有清晰的思路以及算法逻辑,当然,最重要的还是对maya那几个模块的熟悉程度 ,Python开发的maya插件叫做scripted plugin,即脚本插件,因为python的全能,maya中脚本和插件的概念 已经被模糊了:在一个脚本模块(插件 )中,用户既可以自己创建命令或者建立节点,也可以调用mayaCmds(也就是mel做的那些事情 )。
C++或者python创建的插件中的节点或者命令,都可以由mel或者python交互调用。如果说,mel和python中的maya.cmds是maya开发者们为用户提供的命令集,那么API就是用户按照自己的需要,开发相应的功能(命令和DG节点 )。
mel不会被取代,至少短期内不会,原因很简单,现在python在maya中的集成程度还没有很透彻,很多地方用python简直就是在用mel,很不像python,包括api,api的2.0版本从maya2012就放出了,但是依然没有把所有的类 都用python地地道道的实现,依然使用了SWIG方法从C++产生。
至于那些商用的插件 基本是都是用C++编译的mll,因为这就是一个软件工程了,虽然是插件,但是界面什么的都五脏俱全。

回答2:

mayaapi和mel不是一回事 基本上不是一个级别的 mel不涉及maya的算法 所以他和mayac++api并没有可比性
maya的脚本编辑器只是一个扩展功能 并不能改变maya自身的核心算法 比如动力学刚体柔体还有粒子场的动力学算法都是maya开发人员用c++写好的核心算法 mel写出的脚本或者插件都是在其基础上运作的 当然你可以用c++自己编写一套算法自定义节点来实现一些比较特殊的效果 虽然可能用mel也一样能实现 但是基于原理不同 你改变的是maya的算法 所以效果上来说c++写的节点计算会非常的快速 因为很直接 Python和mel一样 maya2011版本之后更注重Python的拓展开发 mel可能很快会被其取代
maya 的 c++pai 是maya的一种内部数据 通过maya API提供的函数集可以访问maya内容的数据 他们以MFn开头 叫做Maya Object 比如MFnNurbsSurface
这些东西比较生涩 很难说得清楚 想有更深的了解就去学习一下这方面的知识

回答3:

你好。。。API的概念:

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。API除了有应用“应用程序接口”的意思外,还特指 API的说明文档

我是学 程序的。。

我们的API 通常是指 windows API 的各种函数。