| 首页 | IT动态 | 硬件 | 应用 | 互联网 | 网络 | 网站 | 黑客 | 编程 | 数码 | 视频教程 | 游戏 | 休闲 | 软件 | 视频 | IT认证 | 动漫图片 | IT杂谈 | 论坛 | 
Google
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
  • Maya4.0界面介绍(1)

  • 自定义Maya4.0界面

  • Maya4.0的新增功能

  • Maya简介

  • Maya4.0常用功能-标记菜单

  • Maya4.0常用功能-热键箱

  • Maya4.0界面介绍(2)

  • Maya4.0常用功能-工具架(2)

  • Maya4.0常用功能-快捷键

  • Maya4.0常用功能-层的运用

  • 广 告 位 置
    广告位置
    Q
    您现在的位置: 无忧IT人 >> 应用 >> 多媒体 >> Maya >> 教程正文
    MayaMel基础教程(8)           
    MayaMel基础教程(8)
    作者:51iter 文章来源:www.51iter.com 点击数: 更新时间:2007-10-13
    [ 字体:缩小 正常 放大 | 双击自动滚屏 ]
    请选择合适的字体颜色:
    MayaMel基础教程
    阵列

    你可以声明一个int,float,string或vector类型的阵列。阵列的第一个序号为0

    string$array[3]={"first\n","second\n","third\n"};
    print($array[0]);//显示"first\n"
    print($array[1]);//显示"second\n"
    print($array[2]);//显示"third\n"

    阵列尺寸可以自动地增加。

    int$scores[];//声明为一个0元素阵列
    $scores[150]=3;//现在是151元素阵列
    $scores[200]=5;//现在是201元素阵列但最好不要声明过大的没用的阵列,因为它要占内存

    int$bigBoy[];
    $bigBoy[123456789]=2;//危险

    要除去一个阵列的所有元素可使用clear**能。要查看阵列的尺寸可使用size。

    string$hats[3]={"blue","red","black"};
    print("Therewere" size($hats) "hats.\n");
    clear($hats);
    print("Butnowthereare" size($hats) ".\n");

    以上指令的输出是:

    Therewere3hats.
    Butnowthereare0.

    矩阵

    可以把一个矩阵想象为一个浮点阵列的阵列,或是一个浮点数据的二维阵列。矩阵产生后,它的尺寸不能改变。
    企图寻址一个矩阵的不存在的元素将会出现错误。在产生矩阵时必须定义它的尺寸。

    matrix$a1[][]=<<1;4>>;//错误:没有说明尺寸
    matrix$a2[][];//错误:没有说明尺寸
    matrix$a3[2][1];//有效:产生<<0;0>>;
    $a3[0][1]=7;//错误:元素不存在
    $a3[1][0]=9;//有效

    声明而未标注值的矩阵,其所有元素都为0。

    matrix$a4[2][4]=<<-3.4,6,201,0.7;4,2,9.3,1001>>;

    如果矩阵表示一个二维阵列,则第一个索引表示列;地二个索引表示行:

    matrix$a4[2][4]column0column1column2column3
    row0-3.462010.7row1429.31001

    如果你把矩阵设想为一个身列的阵列,则第一个索引表示阵列,第二个索引该阵列里的索引:

    matrix$a4[2][4]index0index1index2index3
    floatarray0-3.462010.7floatarray1429.31001

    物体属性

    属性是场景中的物体的特征或参数。在Maya中可以用许多方法建立属性-属性编辑器、MEL程序、工具盒工具或表达式。
    你可以设立属性去控制在工作空间中看到的虚拟的事情。
    如,一个NURBS球具有属性scaleX,scaleY,scaleZ,rotateX,等等。

    物体属性名

    物体属性名具有如下格式:

    objectName.attributeName

    其中objectName是物体的名字,attributeName是该物体的属性名。属性名中不要使用空格或特殊字符,可以用下划线。

    产生一个名字为Brawl的球:

    sphere-nameBrawl;

    可以获取它的属性的一个值:

    float$yScale=`getAttrBrawl.scaleY`;

    Brawl.scaleY是Brawl物体的scaleY属性的全名。

    路径

    如果两个物体具有不同的父物体,它们可以有相同的名字。当说明有相同名字的物体时必须使用路径:

    pathname|objectname

    其中pathname物体的父物体。管道字符(|)用于区分路径。

    sphere-namedoughnutHole;
    group-nameGroupA;
    sphere-p300-namedoughnutHole;

    现在我们有两个叫做doughnutHole的物体,但一个有父物体GroupA,另一个没有父物体。以?*噶畈桓龃砦螅?br/>因为Maya不知道哪个doughnutHole物体要设立scaleY属性:

    setAttrdoughnutHole.scaleY3.3;//ERROR:哪个?

    你必须输入属性的路径:

    setAttrGroupA|doughnutHole.scaleY3.3;
    setAttr|doughnutHole.scaleY0.3;

    你可以说明物体的所有路径,用管道符进行区分:

    group-nameGroupBGroupA;

    setAttr|GroupB|GroupA|doughnutHole.scaleY1;

    物体属性的可能的数据类型

    每个属性有特定的数据类型。几何体,粒子物体,Maya中的其他项都具有这些数据类型的属性:

    数据类型意义属性例数据例

    浮点小数numbersBall.translateX2.6,7.0,-9.1int
    整数(...-1,0,1,2...)BallShape.spansU-289,33,0
    boolean0或1Ball.visibilityon,off,yes,no,1,0,true,false

    考虑一个由以?*噶畈慕凶鯢ire的粒子物体:

    particle-nameFire-position707;

    它可以具有以下另外的数据类型:

    数据类型意义属性例数据例

    vectorarray矢量阵列FireShape.position
    {<<3.2,?7.7,?9.1>>,<<7,?10,?2.2>>}
    doublearray浮点阵列numbersFireShape.lifespan1.3331.666

    你可以使用getParticleAttr和setParticleAttr指令设立矢量的元素或一个粒子系统的双阵列。

    float$Tmp[]=
    `getParticleAttr-atpositionFireShape.pt[0]`;
    vector$particlePosition=<<$Tmp[0],$Tmp[1],$Tmp[2]>>;
    (完)

    [1]

    教程录入:51iter    责任编辑:51iter 
  • 上一篇教程:

  • 下一篇教程:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 关于我们 | 友情链接 | 版权申明 |