适用于Maya和其他3D应用的Python版本
我有几个小项目想用来学习Python。如果我以后想用Python来写Maya、Blender等软件的脚本,我应该用哪个版本呢?另外,有哪些资源可以帮助我学习这些软件的脚本编写呢?
3 个回答
我想说,Python的版本之间其实没有太大区别。就像其他人提到的,ThE_JacO并没有涉及到流行的3D应用程序。像Maya、皮克斯的RenderMan、Houdini、Blender、Realflow等等,都是使用Python 2.x的。对于Python 2.4、2.5和2.6,功能接口之间几乎没有什么差别。你可以完全忽略这个问题。
在我们工作室,我们编写Python脚本来兼容2.4、2.5和2.6,因为我们在不同的动画项目中使用不同版本的3D应用程序。有一些代码片段需要稍微调整一下才能正常工作,但这些问题真的很小。
根据这篇帖子,Maya 2011使用的是Python 2.6.4。当然,早期版本的Maya可能会使用更早的Python版本,反过来,后来的Maya版本(目前我所知还不存在)也可能会使用更新的Python。
这个页面(我现在无法访问,可能是blender.org
网站出现问题)显示Windows版的Blender 2.49b是用Python 2.6构建的,而Linux、Irix和Solaris的版本没有说明,MacOSX的PowerPC版本需要Python 2.3,MacOSX的Intel版本则需要2.3或2.5。
如果你想尝试Blender 2.5.4的测试版,可以查看这个链接,不过没有提到Python的版本。
"etc"并不是我听说过的任何“3D应用”的名字。
换句话说,答案会根据你想使用的3D程序的版本而有所不同!Python 2.5在相对较新的Maya和Blender中是比较稳定的(除了Blender 2.49b在MacOSC的PowerPC版本只能使用Python 2.3);Python 2的后续版本努力保持与早期版本的高度兼容,所以即使你使用的是基于Python 2.6的3D应用,只要你会使用Python 2.5并坚持使用它,应该也没问题(但反过来就不行了——如果你只会使用Python 2.6,当你需要在2.5或更早版本中做某些事情时,可能会遇到麻烦;-)。
如果你在使用Maya 2011,这个软件已经自带了py 2.6.4,你不需要单独安装Python,连pyMEL也不需要。
如果你想先学习Python,然后再把这些知识用到3D软件上,实际上任何2.x版本的Python都可以用,版本特定的功能在你刚开始学习的时候并不会太重要。不过,2.6.4这个版本当然是个不错的选择,因为它和你在Maya和Softimage中用的版本是对得上的。
现在先别碰py3k,因为在我们这个领域,大家普遍还没有开始使用它。
关于学习资源,Python和Maya结合的资料几乎没有,但我看到的大多数编程相关的材料,要么不怎么样,要么就是很业余,只有少数几个例外,比如Gould的资料,算是比较好的。
你最好找一本不错的入门书,不要假设读者是个傻瓜(我个人非常推荐O'Reilly的《学习Python》),还有像StackOverflow这样的网站来解决具体问题,多练习和浏览资料,帮助你理解Maya脚本API的细节。
早点看看pyMEL也没坏处,因为它现在已经捆绑在一起了。默认的老版Maya命令和mel包装模块真的是糟糕透了,和Python的风格相差甚远。而pyMEL虽然还不是完美的,但它的面向对象设计更强,读起来不像是一群猴子突然开始用打字机。