“ 感知CG · 感触创意 · 感受艺术 · 感悟心灵 ”
中国很有影响力影视特效CG动画领域自媒体
本文转自公号:ThePoly
Hello . 大家好
今天给大家带来的是MAYA中的代码学习小套路
我是劲爆羊厂长
分享一小段小小的心得给想学代码的新人,不说让大家入门吧,至少让大家知道入口在哪,对吧。
B站也有视频:https://space.bilibili.com/49096802
CG技术讨论群(群共享有大宝贝)
二群:825463034
前提条件:
1、零代码基础;
2、会用maya;
3、看到英文懂得尝试用翻译工具;
4、有查百度谷歌的意识与习惯;
案例说明:很简单,用代码生成1个球和5个方块,用不同的三种方式。
1、入门,打开maya官方文档和maya脚本编辑器,从mel入手。
原因:mel命令较少,但针对性较强,都是针对maya的操作过程,配合手动操作过程中的实时反馈,辅助理解,且文档清晰,通俗易懂;
成果:能辅助绝大多数的maya操作,省时省力,效率提高早下班,这个时候你可以给自己提升至少70%的工作效率;
要点:这个过程的本质就是把手动操作时返回的代码转换成你自己的代码,此阶段你暂时还不需要去了解什么是面向过程和面向对象;
例(mel):
============================
polySphere -n "QiuQiu" -r 1 -sx 20 -sy 20 -ax 0 1 0 -cuv 2 -ch 1;
for($i=1;$i<6;$i++)
{
string $cube[] = `polyCube -n ("FangKuai_"+$i) -w 1 -h $i -d 1`;
setAttr ($cube[0]+".tx") $i;
setAttr ($cube[0]+".ty") ($i*0.5);
setAttr ($cube[0]+".tz") ($i*2);
}
============================
2、懵懂,打开maya官方文档,找到python的相关页面,用python对比上面学习的mel,一对一进行比对学习,主要是通过对比,学会简单的python语法规则。
原因:由于熟悉了mel,只要按照文档上一对一的套路转成python的格式来写,会加深两种语言的书写格式的理解;
成果:和小众语言mel不同,由于python现成的公共库更多(虽然你暂时还用不上),现成的东西也许更好用,更省力,这个时候你大概明白了什么是面向过程;
要点:1-2阶段最容易遇到的就是书写格式错误,如【Error: Line 1.1: Syntax error】 以及 【Error: invalid syntax】;
例(python):
============================
import maya.cmds as cmds
cmds.polySphere(n="QiuQiu",r=1,sx=20,sy=20,ax=(0,1,0),cuv=2,ch=True)
for i in xrange(1,6):
cube = cmds.polyCube(n="FangKuai_"+str(i),w=1,h=i,d=1)
cmds.setAttr(cube[0]+".tx",i)
cmds.setAttr(cube[0]+".ty",i*0.5)
cmds.setAttr(cube[0]+".tz",i*2)
============================
3、进阶,打开maya的pymel的官方文档,用你学到的python的基础,用pymel代替你的mel,所有的需求都用pymel来练、来写。
原因:pymel,是maya中的很好用的python模块,抛开执行速度不谈,它在便利性方面,是真的香;
成果:三两行就能搞定以前几十行才能搞定的功能(这个例子很简单体现不出来差距);
要点:用pymel的目的之一是省代码,但目的之二才是最重要的,就是潜移默化地从“面向过程”完成到“面向对象”的思维转变,并理解python的真正思维;
例(pymel,本质也是python):
============================
import pymel.core as pmc # 此行可以开始搭配搜索“python的模块导入”的相关概念教程进行理解
pmc.polySphere(n="QiuQiu",r=1,sx=20,sy=20,ax=(0,1,0),cuv=2,ch=True)
for i in xrange(1,6):
cube = pmc.polyCube(n="FangKuai_"+str(i),w=1,h=i,d=1) # 此行可以开始搭配搜索“python的实例化”的相关概念教程进行理解
cube[0].tx.set(i) # 此行可以开始搭配搜索“python的对象、属性与方法”的相关概念教程进行理解
cube[0].ty.set(i*0.5)
cube[0].tz.set(i*2)
4、学成,再跳出maya这个辣鸡软件,去搜python的教程,学习所有python的相关知识,谷歌无数的资料等着你去查。
原因:已经没有什么东西能够拦得住你了,星辰大海就在前面!
成果:落得一个涨工资的悲惨下场;
要点:python现成的库中,只有你想不到的库,没有不存在的库,搜索的关键字大概归纳为“python的类、实例化、继承、对象、属性及方法”;
例(python):
print("Hello world!! Show me the money!!")
----------劲爆羊厂长寄语,希望此视频和文章可以让新手自行拨开第一层迷雾
热门跟贴