MAYA 脚本语言 MEL教程
Maya螺旋曲线MEL

Maya MEL 教程之 mel 打造螺旋曲线了解Maya的人都知道Maya本身不能够创建螺旋曲线,这给我们在建模电话线、弹簧等具有螺旋结构的模型时带来了很多不便。
那么怎样解决这个问题呢?就目前来看,主流的解决方法是采用外部插件,但由于需要到国外网站上下载,普通中国用户很难发掘到;而通过手动创建螺旋曲线的方法不仅方法笨拙,效率低下,而且在很多时候也很难满足我们的工作要求。
今天小编就通过一个简单MEL程序来达到我们的要求,也希望借此抛砖引玉。
熟悉Maya的人都知道,Maya的任何一条命令都是一个MEL口令,例如我们在Maya 中创建一条样条曲线,在Maya的脚本编辑器中就会显示这样的一条MEL口令:“curve -d 3 -p -6.121508 0 6.545092 -p -6.084318 0 -1.667924 -p -1.898864 0 6.298442 -p 0.172602 0 -1.310417 -p 2.51464 0 6.576429 -k 0 -k 0 -k 0 -k 1 -k 2 -k 2 -k 2 ;”而我们创建螺旋曲线的思路也正基于此。
首先看代码:string $command="curve -d 3";for($i=1;$i<=100;$i++){float $x=5*sin($i);float $z=5*cos($i);float $y=$i;$command+=" -p "+$x+" "+$y+" "+$z;};eval $command;解释:第一行—— Maya的mel语言规定,变量前必须添加符号$。
curve是mel命令,即创建曲线;-d定义曲线精度为3;该行的含义就是定义字符串变量“$command”。
第二行——执行for循环语句。
定义整数$i,自增100次,其实就是表示有100个CV点。
arnold mel语法

Arnold Mel语法简介Arnold Mel语法是一种用于Maya软件的脚本语言,它是用来自动化和扩展Maya功能的重要工具。
在Maya中,Arnold Mel语法被广泛应用于渲染、动画和建模等方面,为艺术家和技术人员提供了更高效和灵活的工作方式。
本文将深入探讨Arnold Mel语法的基本概念、常见用法以及一些实际示例。
基本概念在了解和使用Arnold Mel语法之前,首先需要了解几个基本概念。
1. MayaMaya是一款三维计算机图形软件,被广泛用于电影、电视、游戏和动画制作等领域。
它提供了丰富的3D建模、动画、渲染和效果制作工具,并支持Arnold渲染器。
2. Arnold渲染器Arnold渲染器是一款基于物理的渲染器,由Solid Angle公司开发。
它是Maya的默认渲染器,提供了高质量的渲染效果,并支持广泛的光线追踪和全局照明算法。
3. Mel脚本语言Mel(Maya Embedded Language)是Maya中的脚本语言,用于自动化和扩展Maya功能。
Arnold Mel语法是在Mel语言的基础上进行扩展和优化的,以实现与Arnold渲染器的高度集成。
常见用法Arnold Mel语法提供了丰富的功能和命令,可以帮助艺术家和技术人员更好地掌握Maya和Arnold渲染器。
以下是一些常见的Arnold Mel语法用法的介绍。
1. 渲染设置在Arnold渲染器中,可以使用Arnold Mel语法来设置渲染参数和选项,以获得所需的渲染效果。
例如,可以使用ArnoldRenderOptions命令设置渲染器的全局设置,如场景单位、帧范围、采样率等。
1. ArnoldRenderOptions -un -videoMode 2;2. ArnoldRenderOptions -p -h 720 -w 1280;2. 材质和着色Arnold Mel语法可以用于创建和管理材质,以及为物体进行着色。
MAYA MEL

1楼MEL (Maya埋入式语言)为Maya提供了基础。
Maya界面的几乎每一个要点都是在MEL指令和脚本程序上建立的。
由于Maya给出了对于MEL自身的完全的访问,你可以扩展和定制Maya。
通过MEL,你可以进一步开发Maya使它成为你和你的项目的独特而创新的环境。
为有效地使用Maya,你并不非得精通MEL。
但是,熟悉MEL可以加深你使用Maya的专业能力。
使用MEL的许多方面可以由只有很少编程经验或者没有经验者所使用。
喜欢ME L并不非得喜欢编程。
有一些方法,它们可以使你获得MEL的好处而不必考虑编程的细节。
一旦当你进行了产生MEL脚本语言的尝试,你会发现MEL可以给你提供可以想象到的最先进的数字化画图的方法。
为了获得Maya的输出,大部分可以使用MEL来做。
这里是你可以使用MEL来工作的一些例子:•使用MEL指令脱开Maya的用户界面,快速地产生热键,访问更深的要点。
•给属性输入准确的值,脱开由界面强制引起的拘谨的限制。
•对特定的场景自定义界面,对一个特定的项目改变缺省设置。
•产生MEL程序和执行用户建模、动画、动态和渲染任务的脚本程序。
如何使用本教程本教程叙述如何学习和使用Maya埋入式语言(MEL)。
如果你初次接触MEL,本教材帮助你在使用MEL指令和脚本程序方面开始起步。
一旦当你开始开发 MEL程序的时候,本教材将继续帮助你,讲解如何能够使你获得用MEL产生的更多的指令、宏、程序和用户界面元素的输出。
本教材假定你对Maya已经有了基本的了解。
如果你完全是新开始学习Maya,请看一下学习Maya的教材,并对在Using Maya documentation set中描述的要点进行开发。
应该熟悉Maya的在线文件(见Online documentation)。
特别是应该使你自己熟悉MEL Command Refer ence和DG Node Reference。
本教材的各处都有许多有关的MEL指令和程序码的例子。
浅谈MAYA骨骼设置中IK与FK无缝转换的实现

浅谈MAYA骨骼设置中IK与FK无缝转换的实现作者:马跃来源:《电脑知识与技术》2012年第09期摘要:三维动画制作中,存在着正向动力学与反向动力学两种控制方式,这两种控制方式各有特点,在实际项目制作时更是相辅相成,不可缺少,甚至很多时候,需要二者不断转换从而达到制作目的。
该文通过对Maya骨骼设置中正向动力学与反向动力学的分析,总结了正向动力学与反向动力学各自的特点,并指出正向动力学与反向动力学在Maya中相互转换的难点所在,最后论述如何通过表达式实现无缝转换的制作思路。
关键词:三维动画;骨骼设置;IK;FK中图分类号:TP37文献标识码:A文章编号:1009-3044(2012)09-2141-031正向动力学与反向动力学在三维软件中,角色动画的控制方式有两种,即正向动力学(Forward Kinematics,简称“FK”)与反向动力学(Inverse kinematics,简称“IK”)。
其中正向动力学是遵循父子关系的层级,用父层级物体带动子层级的物体;反向动力学一般运用在骨骼物体上,是通过先确定末端子骨骼的位置,然后反求推导出其所在骨骼链上n级父骨骼的旋转角度,从而确定整条骨骼链形态的方法。
正向动力学与反向动力学各自有其特点,正向动力学计算简单,运算速度快,动画时需从父关节到子关节逐一指定每个关节的角度;反向动力学求解方程组需要耗费相对较多的计算机资源,但随着计算机硬件性能的不断升级,这个问题并不明显。
事实上,正向动力学与反向动力学,本身没有优劣之分,我们需要结合实际制作项目,具体问题具体分析。
例如,人在走路时,手臂进行摆动,这时肩关节带动大臂带动小臂带动手腕进行曲线运动,这时更符合正向动力学的运动方式;如果使用反向动力学,就会造成更多的关键帧去控制末端骨骼以便精确算出其父关节的运动角度。
再如,人在做俯卧撑运动时手臂末端关节保持在地上,这时运用反向动力学,反向求出大臂和小臂的骨骼角度更加方便,而这时如果运用正向动力学,通过大臂和小臂的角度变化实现手保持在底面上的效果就会非常困难。
基础mel学习第三课

string $s[] = polyCube("-sh",5,"-n","box");
另外在跟大家说一下在mel中的注释。我们在执行一段非常长的mel的时候可能会写几百行或者上千行的语句,如果我们需要对语句进行修改的话,我们每行去找的话想对就比较麻烦,我们可以在写完一个mel段之后为这个mel段加入一个注释,说明此段是做什么的,能起到什么效果。注释常用的方法有两种第一种是//在mel中遇见//mel就会忽略//后面到整个行尾的语句,我们可以在//后面填写此段mel是做什么用的起到什么效果,方便我们查询。另外一种方法是/*注释内容 */这种注释方法的好处是可跨行,在表达式编辑器里面不可以使用此种方法。
print $s;
}
则打印我们所选择的物体的名字为 a b c 这个也根据我们选择物体的先后有关,在maya中是讲究选择物体的先后顺序的,如我在场景中选择的物体顺序依次为 c a b 我们在执行上面的语句后会发现打印的$s的内容 则为 c a b 。
下面我在为大家介绍一下命令的三种模式
我们同样以polyCube为例我们在在mel编辑器中输入 help polyCube 显示polyCube的参数,在polyCube的参数里面我们看到了-e和-q 他们后面没有跟参数类型。他们其实是命令三种模式的其中两种,分别是编辑edit模式和查询模式query,另外还有一种是命令默认的模式是创建模式crate。
mel命令的通用格式
命令的名称 空格 第一个参数 空格 参数的内容 空格 第二个参数 空格 参数的内容 以此类推,最后跟分号;这就是mel的通用格式,一个命令可能有几十个参数,有些参数是不需要更改的我们只需要其保留默认值就可以,这样我们就不用把他们都写在上面我们要更改哪个参数,我们就写那些参数进行设置和更改就可以了。
Maya角色动画教学中IK—FK无缝切换技术的教学法探究

Maya角色动画教学中IK—FK无缝切换技术的教学法探究三维角色动作调节是影视动画、游戏动画和新媒体动画制作的核心内容,三维角色采用的骨骼装配和控制技术决定了角色动作调节的难易程度和动作质量,从而影响影视及游戏作品的质量。
在Maya角色动画教学中,IK-FK控制技术是最常用的骨骼装配和控制技术。
对于高职动漫专业学生而言,掌握Ik-FK技术有一定困难。
本文将结合笔者的教学实践,探究针对高职学生特点,采用科学的教学设计,使学生掌握这一技术难题的教学方法。
标签:Maya角色动画教学;IK-FK无缝切换技术;教学由于计算机软件技术与硬件技术的迅猛发展,在CG领域与动画制作技术中,三维动画技术应用范围越来越广泛。
三维动画技术由于生产成本更低,工作效率更高,艺术表现力更强,因此在动画制作技术中逐渐占据主导地位,而二维动画制作技术则在一些有特殊风格要求的动画领域中继续坚守。
在很多优秀的三维动画作品中,动画角色的动作真实自然,准确流畅,除了动画师具有较高艺术素养,对动画运动规律掌握较好,能够熟练运用之外,还与三维软件技术的发展与工具的熟悉程度有关。
现在高校动画专业中一般采用Maya作为动画制作的主要工作软件进行教学,这与业界主要采用Maya作为工作软件是一致的。
Maya在处理动画角色的运动控制时,一般都会采用IK-FK进行切换的技术,但学生在使用IK与FK技术时,经常出现角色动作跳动、不平顺的情况。
本文将主要对IK与FK技术进行介绍,讲解IK与FK切换的方法,IK与FK在进行切换时会出现角色动作跳动的原因、技术解决方法,以及笔者本人在教学实践中如何通过教学设计减少学生IK-FK控制错误。
1.IK-FK的定义IK是Inverse Kinematics的缩写,称为反向动力学,而FK是ForwardKinematics的缩写,称为前向动力学。
现实世界中的人或动物的骨骼是只能旋转而不能移动的,也就是说我们做任何一个动作,都是由一根或多根骨骼共同旋转完成的。
Maya从入门到精通教程
Maya从入门到精通教程2009-5-26 18:15:41 来源:网络作者:佚名会员评论 0条浏览第一招自制MAYA启动界面在安装目录下的BIN文件夹中的MayaRes.dll文件,用Resource Hacker打开。
在软件的目录树中找到“位图”下MAYASTARTUPIMAGE.XPM并保存。
图片分辨率要一致,然后选择替换位图,把自己修改的图片替换保存,即可。
第二招控制热盒的显示MAYA中的热盒可以按着空格键不放,就可以显示出来。
并且按下鼠标左键选择Hotbox Style中的Zones Only 可以不让热盒弹出。
如果选择Center Zone Only可以连AW的字样也不会出现。
完全恢复的快捷键是ALT+M第三招创建多彩的MAYA界面MAYA默认界面色彩是灰色的,如果你想尝试一下其他的色彩界面,可以自行修改。
方法是选择Windows/Settings/Preferences/Colors...第四招创建自己的工具架把自己最常用的工具放置在工具架的方法是,按下Ctrl+Shift的同时,点选命令,该命令就可以添加到当前的工具架上了第五招自定义工具架图标我们将一行MEL添加到工具架上的时候,图标出现MEL字样,不容易区分,此时可以选择Windows/Settings/Preferences/Shelves选择新添加的命令,单击Change Image按钮,选择要替换的图片,选择Save All Shelves按钮,就替换成功第六招自定义标记菜单执行Windows/Settings/Preferences/Marking Menus设置相关参数,然后在Settings下符合自己操作习惯来设置参数,最后单击Save即可第七招自定义物体属性如果想添加一个属性,并且把其他数据进行设置表达式或者驱动关键帧,就必须在属性对话框中点击Attributes/add...第八招选择并且拖动打开Windows/Settings/Preferences在Selection中,勾选Click Drag Select然后点击Save这样就可以了第九招界面元素隐藏或显示执行Display/UI Elements下的Show UI Elements或者Hide UI Elements可以对于全界面下元素显示或者隐藏第十招改变操纵器的显示大小与粗细打开Windows/Settings/Preferences在Manipulators中修改Line Size可以改变操纵器的显示粗细,按下小键盘的“+”“-”可以改变操纵器的显示大小第11招空选空选(Pick Nothing)是一个非常实用的选择命令,我们可以把空选定义到标记菜单或者连到快捷键上,这个在第六招中有介绍。
MayaMel大纲
Maya Mel第一部分:01.概念mel maya embed language !maya 嵌入式语言02.学习Mel01. Commands02. 先多看别人写的Mel 脚本03. 自己尝试写一些简单的Mel 脚本02 mel语言与表达式的区别mel脚本语言只是在执行的一瞬间有效,而表达式则是时刻执行有效。
02.常规结构01.Command –Flag Object ;命令参数操作对象02.Command Object -Flag ;命令对象参数03.Command -Flag ;命令参数03.命令的模式:Create 缩写 C 创建模式Query 缩写Q 查询模式(取得某种信息)Edit 缩写 E 编辑模式More 缩写M 可以多次使用的命令Maya 的默认模式是 C04.Mel 脚本的基本形式01. ;分号每句完整的命令后面一定要有分号.02. 参数名:分全称和简称03. 空格:用空格来区分不同的内容,参数与参数之间一定要有空格( 注:空格的三种形式:01.空格(单纯的空格)02.Tab (下一制表符)03.空行(一行都是空着的)在Maya 里面这里的空格形式可以去掉,机器能读,人就晕了,所以空格是给人看的)04. 大小写的区分约定:( 注: 在Mel 里面的规范第一个单词的第一个字母小写第二个单词的第一个字母大写第三个单词的第一个字母大写…………………………………….在你的变量名称里面也遵守这种约定在你命名的时候也要遵守这种约定在你保存文件的时候也要遵守这种约定)05. 注解( 注:注解符001. //002. /* ………………. */)06. 变量与常量常量就是固定的一个数值变量是用$ 来表示的变量的类型:001. float 浮点002. vector 矢量(这里面只能是数字,不是字母)003. int 整数004. boolean 布尔005. string 字符串006. matrix 矩阵07. 变量名规范:001.$ 以$开头002.变量名称不能含空格特殊字符003.变量名称里面只能有字母数字下划线004.不能以数字开头eg : $11_name $name_11eg:$name _t $name_t005.变量命名的原则(个人习惯)0001.前缀后缀eg:float $RT_Name 以你的脚本的名称来命名RT 代表retimer 0002.根据变量类型来定义eg:float $RT_F_Name08. 声明与隐含声明Eg01 :float $F_temp ;(注:声明了就一辈子不会变了)Eg02 :float $F_temp ;parint $F_tempV alue ;Eg03 :$F_temp = 0.5 ; (这个声明了一个float )$F_temp = 5 ; (这个声明了一个int )09. 赋值Eg01 :float $F_temp = 0.35 ;(注:= 就是赋值的过程是把= 号右边的东西赋给= 号左边的东西,变量一定在= 号的左边)Eg02 :float $F_temp = $F_tempV alue ;(这种情况是可以的那么maya 会申明另一个变量$F_tempV alue) eg : float $F_tempV alue = F_tempV alue + 0.3 ;float $F_tempV alue += 0.3 ; (缩写)10. 计算:Eg01 :float $F_temp = 0.35 + 1 ;(注:对于float 有加减乘除对于int 有加减乘除对于vector 只有加减没有乘除但是有特殊的乘叉乘点乘对于string 就只有加)Eg02 :string $temp = "myName" ;string $temp = "my Name" ;string $name = "WT \* \( temp \) \& Name" ;string $namedd = "WT * ( temp ) & Name" ;Eg03 :string $name = "gogo" ;string $nameTemp_01 = "HaHa" ;string $nameAll = $name + $nameTemp_01 ;Eg04 :string $name += “name_One” ;string $name ++ ;Eg05 :string $name = "name_" + "....\...." ;//print $name ;print ($name + "\n") ;(注:字符串赋值的过程一定要有引号“”字符串里面可以有空格这是安全的字符串里面要加入特殊符必须以反斜杠开头戴着\而且一个反斜杠只能带一个特殊符字符串里面有加但是++ 是错误的因为他没有这种运算)11. 智能的数据类型的转换:Eg01 :float $f_temp = 0.35 ;int $i_temp ;$i_temp = $f_temp ;Eg02 :string $n = "fff" ;float $f ;$f = $n ;Eg03 :string $n ;float $f = 0.5 ;$n = $f ;12.计算的优先:高( ) [ ]! ++ - - ( ! 非)* / % ^ (% 取余^ 次方)+ -< <= > >=== != ( ! = 不等于== 判断是否等于)&& (并)| | (或)= += - = *= / =低13. 数组与size 命令int $i_na[] = {1,2,3,4,5,6,7,8,9,0} ;size($i_na) ;int $i_na[] = {1,2,3,4,5,6,7,8,9,0} ;int $size = `size($i_na)` ;(注:[] 这就是数组的意思数字之间用逗号分隔, 外面用大括号{ } ) string $s_name[] = {0,2,3,name,A,B,C} ;( 数组里面如果是int 就全是整型数只能是同样的数据类型)14. 执行运算:01. ` `02. eval(command) ;03. command(flag)Eg :01string $selct[] = `ls -sl` ;int $size = size( $selct) ;Eg :02string $selct[] = eval("ls -sl") ;int $size = size( $selct) ;Eg :03string $selct[] = ls("-sl") ;int $size = size( $selct) ;Eg :04string $s_input = "sdsadegcdacddd" ;string $s_output[] ;tokenize $s_input "c" $s_output ;print $s_output ;Eg :05string $input_name = `getAttr SSSSS.fileTextureName` ;string $ouput_name[] ;tokenize $input_name "/" $ouput_name ;print $ouput_name ;(tokenize 这时在处理路径的时候就变得非常有用了)15. Mel 的语句:01. if 条件语句结构:if ( ) if ( condition )Eg :01float $ty = `getAttr nurbsSphere1.ty` ;if ($ty > 0)setAttr "lambert2.color" -type double3 1 0 0 ;02. if else 结构:if ( )elseEg :01float $ty = `getAttr nurbsSphere1.ty` ;if ($ty > 0)setAttr "lambert2.color" -type double3 1 0 0 ;elsesetAttr "lambert2.color" -type double3 0 0 1 ;03. if else if 结构 :if ()else if ()else if ()Eg :01float $ty = `getAttr nurbsSphere1.ty` ;if (($ty > 0) && ($ty < 4))setAttr "lambert2.color" -type double3 1 0 0 ;else if ($ty < 5)setAttr "lambert2.color" -type double3 0 0 1 ;else if ($ty == 10 )setAttr "lambert2.color" -type double3 0 1 0 ;02.for 循环语句:for 循环语句的结构:for ( start ; end ; iocream ){. . . . . . . . . . ;. . . . . . . . . . ;. . . . . . . . . . ;}在项目生产中大量的用到 for 循环,可以提高制作效率,方便快捷。
火星时代mel初级教程
本文主要是针对初学Maya的人,如果你已经学了一个月以上的Maya,那你就可以学习这篇mel教程了。
作者:七月冰儿由火星时代动画网整理我来写一点mel扫盲教程,主要是针对初学Maya的人,如果你已经学了一个月以上的Maya,那你就可以学习这篇mel教程了。
不一定要等到Maya掌握的非常熟练才去学mel,相反,如果你在初学Maya的时候就对mel有所了解,那对于将来更好的了解和掌握Maya 会起到事半功倍的效果。
当然首先要提到的是mel的基本概念,如下:mel是Maya Embedded Language(Maya内置语言)的缩写,是一种强大的命令和脚本语言,让你直接控制Maya的特征、进程和工作流程。
其次要提到的是应该抱怎样的态度:有许多人认为mel比较难,我的看法是并不比游戏攻关难,在网上经常看到有人为攻一关花掉一个月时间,学mel如果能达到这个境界一定会很了不起。
学mel的确可能会枯躁一些,因为找不到像CS那么多人给你去杀。
mel是个可大可小的东西,如果你不是搞程序开发的,应该尽可能的让mel给你节省时间,而不要在学习和编写mel程序上花太多时间,应尽量编写简单且实用的程序。
我的教程也是针对这一点写的,如果你已经做好了准备,就和我一起进入mel的世界吧。
今天要讲的是命令组合。
打开Maya,在命令行(Command Line)输入"cone"并按回车,视图中创建了一个圆锥。
如果你没有看到命令行,用Display->UI Elements->Command Line来显示它。
你也许会问用命令行创建圆锥跟用菜单创建有什么差别。
我来告诉你,只是形式上的差别,本质上菜单和命令行都是在执行mel命令,可以说你在Maya中的一举一动都是在执行mel命令。
现在打开mel编辑器(Script Editor),mel编辑器分两部分,上面是历史窗,下面是编辑窗。
历史窗显示你刚刚执行的命令和命令的结果或错误信息。
MAYA操作技巧大全
MAYA操作技巧大全第一招自制MAYA启动界面在安装目录下的BIN文件夹中的M ayaRe s.dll文件,用Resou rce 0 R* _6 ]& ^& m! s k0 v: E Hacker打开。
在软件的 6 n; W3 g8 H$ G H9 w* G+ w6 p/ b目录树中找到“位图”下的MAYA START UPIMA GE.XPM并保存。
图片分辨率要一致,然后* u8 ^/ ]& I$ J选择替换位图,把自己修改的图片替换保存,即可: a5 D$ t \" S0 O" |: Y' P/ w第二招控制热盒的显示 1 ?- A. K1 }3 h" ^" W# ?5 l& n: y2 \MAYA中的热盒可以按着空格键不放,就可以显示出来。
并且按下+ N1 P9 d1 d0 ~, c1 k5 O0 D* k 鼠标左键选择Hotbo xStyle中的Zone s Only可以不让热盒弹出。
如果选择Ce nterZone 7 p+ s7 z1 ^. |7 Y1 xOnly可以连AW的字样也不会出现。
完全恢复的快捷键是AL T+M ! [7 E& E% D' L3 K0 U' c8 Z- t8 g: H. @# n; b$ K% M8 X+ ?第三招创建多彩的M AYA界面MAYA默认界面色彩是灰色的,如果你想尝试一下其他的色彩界面6 O( p5 ~( R, c& k6 c! D,可以自行修改。
方法是选择Wi ndows/Settin gs/Prefer ences/Colors...% t3 C& f d/ [' i1 p# R第四招创建自己的工具架把自己最常用的工具放置在工具架的方法是,按下Ctrl+Shift8 @5 ?9 G( l" F6 _/ e的同时,点选命令,该 3 f& O# P3 d3 F& A命令就可以添加到当前的工具架上了$ E, ?1 }% [) j3 _& E第五招自定义工具架图标7 I8 p0 H" {- J我们将一行M EL添加到工具架上的时候,图标出现ME L字样,不容$ X3 `' P6 R) F+ p易区分,此时可以选择Windo ws/Settin gs/Prefer ences/Shelve s选择新添加的命令,单击Chan ge Image按钮,选择要替换的图片. ? d. ~0 w8 P' O9 m0 b, m# z ,选择Save All Shelve s按钮,就替换成功% B8 H4 y2 N# _& m2 b3 r7 D! w: q. D# p0 }7 J# C$ b w7 ~7 w第六招自定义标记菜单( M- u. _% K. Y' e; X' C* e执行Wind ows/Settin gs/Prefer ences/Markin g Menus设置相关参数,然后在Set tings下符合自己操作习惯来设置参数,最后单击Save即可第七招自定义物体属性如果想添加一个属性,并且把其他数据进行设置表达式或者驱动关键帧,就必须在属性对话框中点击Attr ibute s/add...第八招选择并且拖动打开Wind ows/Settin gs/Prefer ences在Sele ction中,勾选Clic kDrag Select然后点击S ave这样就可以了8 Q' |9 g/ T& ~7 C9 B/ p$ H, R% x第九招界面元素隐藏或显示: S/ s5 N j7 ?$ G执行Disp lay/UI Elemen ts下的S how UI Elemen ts或者H ide UI 7 {9 Q3 p" b8 }- \. t3 WElemen ts可以对于全界面下元素显示或者隐藏) f" p/ Q& ~7 v9 ^* [" j( c第十招改变操纵器的显示大小与粗细打开Wind ows/Settin gs/Prefer ences在Mani pulat ors中修改LineSize可以改变操纵器的显示粗细,按下小键盘的“+”“-”可以0 v7 q2 C2 q) d4 t1 A6 R) N7 x 改变操纵器的显示大小. ]- W8 B( _: [: ^第11招空选/ E9 p1 k9 i, H9 u, q3 [6 u空选(Pick Nothin g)是一个非常实用的选择命令,我们可以把空选定义到标记菜单或者连到快捷键上,这个在第六招中有介绍。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、了解MELMEL (Maya埋入式语言)为Maya提供了基础。
Maya界面的几乎每一个要点都是在MEL指令和脚本程序上建立的。
由于Maya给出了对于MEL自身的完全的访问,你可以扩展和定制Maya。
通过MEL,你可以进一步开发Maya使它成为你和你的项目的独特而创新的环境。
为有效地使用Maya,你并不非得精通MEL。
但是,熟悉MEL可以加深你使用Maya的专业能力。
使用MEL的许多方面可以由只有很少编程经验或者没有经验者所使用。
喜欢MEL并不非得喜欢编程。
有一些方法,它们可以使你获得MEL的好处而不必考虑编程的细节。
一旦当你进行了产生MEL脚本语言的尝试,你会发现MEL可以给你提供可以想象到的最先进的数字化画图的方法。
为了获得Maya的输出,大部分可以使用MEL来做。
这里是你可以使用MEL来工作的一些例子:·使用MEL指令脱开Maya的用户界面,快速地产生热键,访问更深的要点。
·给属性输入准确的值,脱开由界面强制引起的拘谨的限制。
·对特定的场景自定义界面,对一个特定的项目改变缺省设置。
·产生MEL程序和执行用户建模、动画、动态和渲染任务的脚本程序。
如何使用本教程本教程叙述如何学习和使用Maya埋入式语言(MEL)。
如果你初次接触MEL,本教材帮助你在使用MEL 指令和脚本程序方面开始起步。
一旦当你开始开发MEL程序的时候,本教材将继续帮助你,讲解如何能够使你获得用MEL产生的更多的指令、宏、程序和用户界面元素的输出。
本教材假定你对Maya已经有了基本的了解。
如果你完全是新开始学习Maya,请看一下学习Maya的教材,并对在Using Maya documentation set中描述的要点进行开发。
应该熟悉Maya的在线文件(见Online documentation)。
特别是应该使你自己熟悉MEL Command Reference和DG Node Reference。
本教材的各处都有许多有关的MEL指令和程序码的例子。
要运行例子程序,你可以把它们粘贴到Maya 的脚本语言编辑器(Script Editor)里,并选择Edit > Execute就可以了。
使自己进一步地熟悉脚本语言编辑器的要点,执行脚本程序,并把程序保存到Maya的script目录中的一个文件中,可以参考Maya 文件和用户指南中的适当章节。
如何学习更多的MEL内容为了学习更多的MEL内容,可以通过以下途径:·在线文件·训练课程·网站资源在线文件本教材提供了一个使用MEL指令、程序和脚本语言的总的概览。
有关特定的MEL指令的详细信息,请参阅MEL Command Reference。
当你学习MEL时,你会发现你需要学习更多的有关Maya的相关图节点(dependency graph node)的内容。
在线的DG Node Reference文件详细地描述了Maya的相关图节点。
训练课程为了学习更多的有关Maya和MEL的内容,请考虑学习Alias│Wavefront的训练课程。
这些课程向你介绍MEL指令和脚本语言程序,还可以向你提供最主要的内容的深层知识。
要学习更多有关MEL的内容,可以先从MEL基本教程开始。
在Alias│Wavefront的网站(Express Link to Training)中的课程安排和描述是有效的。
关于课程的有效性、价格和登录的最新的信息,可发Email给training-info@,电话是416-874-8760或1-877-927-7478 (option 4),或FAX 416-369-6131。
网站资源Alias│Wavefront的Assistant Online提供了许多有关Maya的教材,包括含有产生MEL脚本程序的教材。
更多信息可以访问Alias│Wavefront网站:。
另外,Highend3D的网站介绍了MEL 脚本程序并连接到更多的有关MEL和Maya的信息。
为了获得MEL和Maya的大部分的输出,请开发和利用这些训练课程和网站资源。
二、MEL要点--------------------------------------------------------------------------------使用MEL的要点包括了使用MEL指令和产生MEL程序。
本章包括以下内容:指令、程序、Maya Gems共三个部分。
本期介绍MAYA脚本语言MEL的指令。
分为以下三个部分:1、了解指令;2、MEL指令文件;3、使用指令。
--------------------------------------------------------------------------------1、了解指令MEL包括了涉及使用Maya的所有方面的全范围的指令。
使用MEL指令的一些典型的例子包括快速产生物体、精确移动物体和对物体进行更有效的控制。
如,可以使用下述的一个MEL指令产生一个半径准确的为27.5 单位的叫做bigBoy 的一个球体:sphere -radius 27.5 -name bigBoy;随后你还可以再输入一条MEL指令将bigBoy绕Z轴旋转90度:rotate -r 0 0 90 bigBoy;另一个例子,假定你在用结点工具产生一个结点,你想把这个结点沿着X轴方向移动5个单位。
你可以执行以下的MEL指令,而不需要打断结点的产生:move -r 5 0 0;--------------------------------------------------------------------------------2、MEL指令文件Maya的在线库(Online Library)描述了每一条指令,提供了用法、格式、返回值和例子的信息。
MEL的指令参考在线文件(Command Reference online documentation)提供了以字母顺序排列的指令,也以功能方式加以组织。
--------------------------------------------------------------------------------3、使用指令包括内容有:输入指令、使用指令行、获得指令返回值、指令模式和指令在表达式中。
⑴、输入指令Maya提供了一些输入MEL指令的方法;使用脚本语言编辑器(Script Editor)或者指令行(Command Line)是最常用的方法。
你也可以在脚本程序文件、Maya ASCII(.ma)文件、工具柜图标(shelf icons)、热键以及表达式中执行指令。
但是最常用的还是在脚本语言编辑器中输入指令。
无论如何输入指令,所有的MEL指令必须用一个分号结束。
以下是MEL 指令的一些例子:sphere -name roundy;setAttr roundy.translateX 7;whatIs ls;help ls;ls -typ nurbsSurface;⑵、使用指令行可以使用指令行输入MEL指令。
如果指令行没有出现,在MAYA主菜单中选择Options > Command Line 使指令行出现。
虽然在指令行和脚本语言编辑器中都可以输入指令,但两者之间有一些重要的区别:你可以从指令行,使用数字键盘或字符键盘的Enter键输入指令。
而脚本语言编辑器只能用数字键盘的Enter键。
指令行只有一行,执行一个MEL指令。
为了输入更多的MEL指令,指令之间可以?quot;;"分开。
指令行仅将结果的最后一行显示到右边。
而脚本语言编辑器显示所有的结果。
⑶、获得指令返回值Many MEL指令返回一个值。
为了抓取这个返回值,可以用单引号或者eval指令。
使用单引号获得指令返回值用单引号"`"将指令前后标注出来可以返回指令的输出。
随后你可以把这个输出赋给一个变量并在脚本语言编辑器中显示它。
例string $a[];$a = `particle -p 5 0 5 -name Sun`;print($a);第一条语句定义了一个名为$a的阵列。
第二条语句执行引号中的MEL指令,并把指令的输出赋给$a。
第三条指令把$a的内容显示给脚本语言编辑器,如下:SunSunShape可以对任何一个MEL指令保存和显示其结果。
返回值的类型是由你使用的指令决定的。
在以上例子中,粒子命令返回一个字符串阵列。
所以,等式左边的变量符号也须要是接受这个返回值的字符串阵列的类型。
使用eval指令获得指令返回值eval指令执行一个命令,也让你抓取返回值。
它比起单引号有一个优点,因为你可以从一个字符串建立一个指令。
象单引号方式那样,也可以把输出赋给一个变量并显示它。
例string $command = "sphere";eval($command + " -r 5");第一条语句把字符串sphere标注给变量$command。
第二条指令给字符串sphere添加-r 5,并执行完整的指令sphere -r 5。
它产生一个半径为5个格子单位的球体。
有关eval指令的更多的信息,见掌管指令的在线文件。
⑷、指令模式MEL指令选项典型地在以下一种或多种模式中起作用:query、编辑和产生。
Query模式是用于找出一些事件的值;编辑模式是用于改变一些事件的值;产生模式是产生一些事件。
在在线MEL指令参考中,指令选项的描述包括一个Q、E或C以指示query模式、编辑模式、产生模式。
⑸、指令在表达式中可以在一个表达式中执行MEL指令和序列。
但是,如果你执行以下的指令你的场景会产生故障:断开或连接属性删除或产生物体或者其他项在一个表达式中播放你的动画不会撤消MEL指令的执行。
例如,如果你的表达式执行MEL指令产生了一对球体,播放这段动画时并不删除原来的球体。
再次播放该场景时会产生另一对球体。
不过你可以通过选择Edit > Undo撤消MEL指令,但是如果你的场景有故障时,它将会不工作。
还要注意,你可以只撤消Queue尺寸的设置所允许的许多运算。
为设立Queue 尺寸,选择Options > General Preferences。
当你从指令行执行一个指令时,状态信息出现在脚本语言编辑器中和指令行的响应区域里。
当在一个表达式中执行指令时,不显示这个信息。
关于表达式的更多的内容,请参考Using Maya: Expressions。
三、概述MAYA脚本语言--------------------------------------------------------------------------------本章包括以下内容:1、了解脚本语言;2、设立脚本语言环境。