“ 感知CG · 感触创意 · 感受艺术 · 感悟心灵 ”

中国很有影响力影视特效CG动画领域自媒体

本文转自公号:ThePoly

Hello . 大家好

今天给大家带来的是MAYA中的代码学习小套路

我是劲爆羊厂长

 MAYA中的代码学习小套路(萌新向)
打开网易新闻 查看更多视频
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!!")

----------劲爆羊厂长寄语,希望此视频和文章可以让新手自行拨开第一层迷雾