Maya ASCII 编码文件的组织
Maya 保存的 ma文件 主要可以分成 8 个部分:
- Header
- (Non-Procedural) File references
- Requirements
- Units
- File references
- Nodes, attributes, and parenting
- Script nodes
- Disconnections
- Connections
.ma 文件中使用的所有命令均为 MEL命令,因此如果需要了解具体的用法,可以通过查阅文档获得。
Header 头
.ma 文件的头 是注释,定义了文件在合适何地被创建,以及编码和创建的Maya版本。在 .ma文件读取时,这个部分会被自动忽略。
- 但是开头的六个字符必须是
//Maya
//Maya ASCII 2019 scene
//Name: maya_test.ma
//Last modified: Tue, Nov 10, 2020 04:41:28 PM
//Codeset: UTF-8
File references 文件引用
这个部分定义了所有的非程序化的文件引用。对于每一个被引用的文件都会用一条单独的file
命令去进行读取。
// file command 的格式
file -r -rpr prefixString fileName;
// 或者
file -r -ns nameSpace fileName
命令中的标记-r
代表了这个文件是被引用的。
使用标记-dr
可以延后导入文件引用
file -rdi 1 -ns "_start" -rfn "_startRN" -op "VERS|2019|UVER|undef|MADE|undef|CHNG|Tue, Oct 20, 2020 01:49:18 PM|ICON|undef|INFO|undef|OBJN|684|INCL|undef(|LUNI|cm|TUNI|film|AUNI|deg|TDUR|141120000|"
-typ "mayaBinary" "/linux_home/01_start.mb";
file -r -ns "_start" -dr 1 -rfn "_startRN" -op "VERS|2019|UVER|undef|MADE|undef|CHNG|Tue, Oct 20, 2020 01:49:18 PM|ICON|undef|INFO|undef|OBJN|684|INCL|undef(|LUNI|cm|TUNI|film|AUNI|deg|TDUR|141120000|"
-typ "mayaBinary" "/linux_home/01_start.mb";
Requirements 依赖
这个部分会告诉Maya如果想要完整的打开这个ma文件所需要的 maya版本 以及 相应的插件
声明的格式如下:
requires productName version
例子:
requires maya "2019";
requires "mtoa" "3.3.0.2";
requires "stereoCamera" "10.0";
requires "stereoCamera" "10.0";
Units 单位
这是一条单行命令,定义了当前 .ma 文件所使用的单位
例子:
currentUnit -l centimeter -a degree -t film;
标记-l
设置当前的线性单位 为 厘米。
标记-a
设置当前的角度单位 为 度。
标记-t
设置当前的时间单位 为 film。
File Information 文件信息
文件信息的前 5 行是由Maya自动定义的。
fileInfo "application" "maya"; // 应用的名字
fileInfo "product" "Maya 2019"; // 产品化,完整或受限
fileInfo "version" "2019"; // 版本号
fileInfo "cutIdentifier" "201907021615-48e59968a3";//剪切标识符
fileInfo "osv" "Linux 3.10.04";//操作系统信息
每次保存文件之后,Maya都会自动更新这五条信息。
在加载文件时发现的或在Maya会话期间发出的任何其他fileInfo语句(或二进制等效项)都将在会话期间保留下来,并与文件一起保存回来
Nodes, attributes, and parenting 节点、属性和父子层级
包含了Maya场景中节点的创建和属性的设置。
创建节点的命令格式
createNode nodeType -n nodeName;
createNode nodeType -n nodeName -p parentNodeName;
设置属性的命令格式
setAttr attributeName value;
setAttr attributeName -type typeName value;
Script Node 脚本节点
脚本节点把Maya 的 Mel 作为 Ma 文件的一部分保存下来。
脚本节点将MEL代码作为场景文件的一部分保存。还可以将它们设置为(可能)从文件加载之后,关闭文件之前或删除节点之前执行。加载文件时将执行“之前”脚本。如果关闭文件或删除节点,则执行“之后”脚本。如果场景包含多个脚本节点,则无法保证执行顺序,并且脚本不应依赖于特定的执行顺序。
Disconnections 断链
断开两个节点的属性之间的链接
disconnectAttr sourceAttributeName destinationAttributeName;
disconnectAttr "sphere.tx" "cone.ry";
Connections 链接
链接两个节点的属性
connectAttr sourceAttributeName destinationAttributeName;
connectAttr "sphere.tx" "cone.ry";
connectAttr "sphere.squish" "sphere.sz";