简介:
maya中其实所有的内容都是用mayamel写的,平时用的时候记录的历史,也都是mel语言
mel语言是区分大小写的
脚本编辑器
这两个框内都可以右键鼠标,比如编辑框,“选项卡”就相当于一个源文件
这里是打开文件、保存、删除、运行之类的
如果想完整的跟踪堆栈需要在‘历史’里面‘显示堆栈跟踪’
如何学习mel
比如说你想要知道怎么用mel给一个物体更改名字,可以实际操作之后看历史记录
但是!你又发现,你看不懂select后面为什么有个-r(这种有个-的其实是参数缩写)
没关系!maya提供了快速帮助,选中函数名字之后,选择快速帮助,就可以显示所有的参数
数据类型
这里我就默认大家有语言基础了哈~
创建变量
所有的变量名都以$开头
1.int
例1:
polySphere;//创建一个球体
int $q=rand(-10,10);//一个随机的整型,范围是-10~10 取的到-10,取不到10!!!
setAttr "pSphere1.translateY" $q;//将这个变量赋予给pSphere1.translateY属性
2.float
3.vector
vector是向量,所有有三个值,三个参数可以是整数也可以是浮点数
例2:
vector $v=<<2.3,6,5>>; //声明一个向量变量
print($v.x); //输出$v的第一个值 三个值分别为x,y,z 这样就可以单独使用一个向量里面的某个值了
vector很适合给颜色赋值
polyCube;
vector $rgb=<<rand(0,1),rand(0,1),rand(0,1)>>
xxxxxx=$rgb; //这里的xxxx代表某个物体的color属性
4.string
用mel输出hello world
string $s="hello world";
同cpp一样,mel也可以进行字符串的加法
例4:
string $s="hello world";
string $s2="plus plus";
string $s3=$s+$s2;
print($s3);
使用字符串可以做到随机选择物体的效果
例5:
string $name="pSphere"+int(rand(1,4));
select -r $name; //选择小球1、2、3 注意这里是选不到4的
5.array
两种使用方式
- 自己定义一个组,然后提取组中的不同内容
- 通过mel的返回值进行数组的整合或者提取或者赋值
例6:自己定义一个组,然后提取组中的不同内容
//定义
int $i[]={1,3,56,9,-8}; //一个int数组 声明的类型与cpp非常相似
float $f[]={2.6,6.3,3.56};
string $s[]={"sdas","asfsw","grg"};
//使用
print($s[0]); //mel的数组也是从0开始的
//数组长度
size($s); //数组里面有几个值
print(size($s)-1); //取出最后一个值
//同样可以用来随机抽取
string $sname[]={"pSphere1","pCube2","pSphere3"};
select -r $sname[int(rand(0,3))];
这句代码很重要!
string $sel[]=`ls-sl`; //列出选择 并且把选择的物体名称全部假如$sel[]
零碎的知识点
1.除非清空数据库,不然变量不可以反复定义
2.rand()函数
返回值为一个float,可以int()强制转换
比如rand(1,3),返回值是一点几,二点几,不可能返回3,所以此时如果转换为int,只能得到数值1,2