UDN
Search public documentation:

ActorXMayaTutorialCH
English Translation
日本語訳
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

如何使用ActorX与Maya导出动画

文档摘要:有关如何使用Maya 的ActorX导出动画的指南。

文档修改日志:最近的更新由Erik de Neve(Epic)完成,主要是关于材质slot设置方面的注释。最初由Vito Miliano(UdnStaff?)创建。

本文档假设您已经创建角色(actor)并为其装备就绪,仅就使用ActorX导出工具将模型及动画从Maya导入Unreal的方法提供指南。同时,假定您已经阅读了UDN站点上的ActorX文档并且从概念上理解.PSK 文件与.PSA 文件的关系。

安装插件

  1. 下载Maya的ActorX插件并将其复制到插件目录中。
  2. 运行Maya,然后通过选中“loaded”复选框激活该插件(进入 Settings(设置)->Plug-In Manager(插件管理器))。如果您希望在每次运行Maya时该插件能自动加载,则选中“auto load”。

plug-in-manager.gif

设置场景

该插件将识别常规多边形,有纹理的几何图形以及蒙皮(skin)簇。其主要要求网格物体由通过关节互相连接在一起的单一多级结构组成。导出工具并不在意您使用何种方法运动这些关节;整个场景在想要的帧范围采样,并且导出的内容就是每一帧的最终结果。

注意轴与方向:通常,在Maya中,Y轴向上,X轴指向右侧,Z轴指向屏幕外的观察者。当导出一个.PSK文件时,Y坐标将反转以遵循Unreal的旋向性(坐标轴的相对方向)。在Unreal中,Z轴向上,Y轴指向右侧,且X轴指向屏幕外的观察者。所以您通常需要使用动画浏览器中的网格物体属性标签将网格物体调整回需要的方向——展开“Mesh(网格物体)”,然后展开旋转变量(Rotation variable),它提供斜度(Pitch)、滚动(Roll)与偏转(Yaw)的旋转属性——这些是16位的整数,在此65536等于一个完整的360度旋转。

在一个场景中可以使用多个材质。这些材质可能成为网格物体的多个材质槽条目(slot),缺省情况下顺序是随机的,除非您通过添加“skinXX”标签到材质名称对其进行强制——例如,如果材质名称为Body(体)和Head(头),将它们重新命名为Body_Skin00和Head_Skin01,它将告诉导出工具在创建.PSK文件时遵守该顺序。在Maya导出器中,任何带有双下划线的字符将被从最终.PSK 文件中清除。Maya有多个级别的已命名材质及贴图;导出器从“ShadingEngine”标签获取其名称——即当您双击多重列表中一个着色器时在属性中出现的第一个标签。这不仅仅影响骨架(与静态)网格物体的slot顺序,还可用于影响渲染顺序。

注意在Maya 5.0中,IK对动画的处理效果可能不会被正确导出,除非您确保其拥有“Sticky”属性设置。

导出骨架及网格物体

  1. 加载场景,其中包含您希望导出的actor。
  2. 通过在Maya底部的MEL命令窗口输入“axmain”打开ActorX对话框。
  3. 如下填写各个字段:
    • Output folder(输出文件夹): 输入您想保存.PSK文件的文件夹的名称。我们推荐在actor的文件夹之下放置一个“Unreal Files”文件夹。此处浏览按钮非常有用。
    • Mesh file name(网格物体文件名): 输入.PSK文件的名称。我们推荐使用actor的名称。
  4. 点击“Save mesh/refpose”按钮。您可以在动画的任意帧上进行该操作。建议将放松的、鹰式展翅姿态设为模型的基准姿势,以便于使用。

exporting a mesh

您保存mesh/refpose后,如果运行正常,将弹出几个窗口。

2 dialog boxes

导出动画

动画的导出分为两步。首先,加载包含动画的场景,并“采集”(digest)一个动画将其读入内存。根据您想要导出动画的数量重复多次。第二,将这些新动画添加到一个PSA文件将其保存并返回。

采集(digest)一个动画

  1. 加载动画,其中包含你希望导出的文件。
  2. 通过在Maya底部的MEL 命令窗口输入“axmain”打开ActorX对话框。
  3. 如下填写各个字段:
    • Output folder(输出文件夹): 与上述skeleton/mesh相同。
    • Animation file name(动画文件名): 我们推荐使用与网格物体文件名称相同(它们后缀名不同以有助于您区分)的名称。如果您想要将此动画添加到现有的.PSA 文件,输入现有.PSA 文件名。
    • Animation sequence name(动画顺序名称): 这是该动画在.PSA 文件中被识别的方式。
    • Animation range(动画范围): 指定当前场景中定义该动画的帧。(格式为“4-45”;数字,分号,数字)

exporting an animation

  1. 确认范围滚动条及时间滚动条在第一帧时显示为0。(注意:这是一个我们用于避免ActorX周期性崩溃bug发作的迷信做法。你可以忽略该步骤,但后果请自负)
  2. 点击采集动画(Digest Animation)。此操作完成之后,您应该看到一个弹出的消息框描述该动画。如果您没有看见此弹出框,那么有些地方一定出现了问题,我们建议您在此时重新启动Maya,由于此插件现在最可能陷入崩溃状态 。
  3. 根据您想要导出动画的数量,重复步骤1-5。我们推荐不要一次尝试过多操作,防止ActorX崩溃,造成工作要从头再来一遍。

exporting an animation

将动画添加到一个.PSA 文件

一旦您采集了一个或多个动画您已经可以将它们添加到一个.PSA文件。

  1. 如果尚未显示,则弹出“axmain”对话框。
  2. 点击animation manager 按钮显示动画管理器。
  3. 如果您想将动画添加到现有的.PSA文件中,则点击 Load 加载该.PSA文件。(前提是您已按前章步骤3b中提供了动画文件的名称。如果没有,则使用 Load As ......按钮)
  4. animations 列表左侧您应该看到刚刚采集的动画。在右侧,您将看到任何已经存在于.PSA 文件中的动画。如果您正在创建一个新的.PSA 文件,此处将为空。
  5. 选择您的新动画并点击-->,将您的动画添加到输出包中。
  6. 点击Save保存该.PSA文件并返回。(假设之前您已经提供了该动画文件的名称)。

anim-manager.gif

其它的ActorX选项

ActorX还有许多其它选项。通过在MEL命令窗口中输入“axoptions”,将显示该选项窗口。注意:在axmain窗口打开时它是不能打开的。在打开下一个窗口前应关闭当前窗口。我们将按顺序逐步查看这些选项。

持久性设置与路径

这两个选项的意思不言自明;当您选中这两个选项时,即可保持您在着两个字段以上的字段中的设置,从而避免了以后导出网格物体或动画时重新输入设置。

蒙皮(skin)导出

这些选项将决定需要填写什么条件来决定导出的几何图形/动画。

所有蒙皮类型(All Skin-Type)

如果该选项被选中,文件中每个带有骨骼的网格物体都将被导出。

所有贴图的蒙皮(All Textured)

所有带贴图的几何形都将被导出。

所有选中的蒙皮(All Selected)

该选项不可用。

强制基准姿势(Force Reference Pose) T=0

该选项将强制使用T=0的姿势为参考姿势。该选项仅在这样的情况下有用:您正将您的PSK从一个有其它帧动画的文件中导出,且滚动条的第一帧不是动画中编号为0的帧。缺省情况下,引擎将使用活动滚动条范围的第一帧导出PSK文件,这就是为何我们推荐将第0帧作为活动范围的一部分。

总体来说,您应将PSK从一个已知的、摆好姿势的静态参考姿势中导出,从而避免导出一个随机姿势作为您的参考姿势。

切线UV分割(Tangent UV Splits)

保持该选项关闭。否则,忽略该选项。

烘焙平滑组(Bake Smoothing Groups)

在UnrealEd中处理骨骼模型的平滑有点奇怪。如果您试图将平滑组置于一个角色模型上,导出工具将沿着组的边界破坏您的模型,并使得该部分成为属于模型的独立部分。此过程包括沿着经过平滑的边分离顶点。然后它将试图自己平滑各个独立的部分,尽管它仍然表现为一个更大的“连接的”网格物体的一部分。

换句话说,为了达到平滑的效果,您需要增加顶点的数量。您使用的平滑组越多,您需要的顶点就越多。因此在骨骼模型中不鼓励使用平滑组;推荐您不选中该选项。

下划线变为空格(Underscores to Spaces)

这是很清楚明白的。maya文件中有下划线的名称,比如节点名称,将被影响。

自动划分三角形(Automatic Triangulate)

非常重要。如果网格物体在导出时由四边形组成,在进入UnrealEd时将会发生错误。会缺少三角形。建议您在Maya中自行对网格物体三角化以获得更多可预料的三角形网格。

骨骼

删除不使用的虚拟物体(Cull Unused Dummies)

该选项不可用。

删除根节点的虚拟物体(Cull Root Dummy)

该选项不可用。

作为骨骼的多级结构(Hierarchy as bones)

忽略该选项。目前,结果是不一致的。

动作

固定根节点的净位移(Fix Root Net Motion)

如果您的模型活动时根骨头也在移动,该选项使你能够禁止该动作。这意味着:如果您在Max中创建了一个向前发生位移的环形跑动,该选项将使其在UnrealEd中好似在原地跑动。

强制加锁(Hard Lock)

忽略该选项。

日志文件/无日志文件(Logfiles/No Log Files)

这些是很清楚明白的,便于人们检查是否有些东西没有正确导出。您可以在此找到各种信息;有层次信息的骨头列表,顶点/面/帧号及材质#slot等。除证实骨骼及蒙皮数据均按期望方式被导出外,您或许还想想知道骨骼的内部名称等,以便于使用骨骼控制器或者附着物。

脚本模板(Script Template )

过去UnrealScript在向Unreal导入模型和动画时是必须的。值得庆幸的是,现在并非如此。除非您知道这些字段的用途,否则忽略它们。

批处理

该选项不可用。

其它MEL命令

“axwritesequence”:一个快速保存骨架动画的命令,该命令将当前加载的场景写出到文件,将整个动画帧范围作为一个序列,且序列—(sequence-)和.PSA文件名与Maya原美术素材文件名相同。

“axprocesssequence”总是将.psa文件保存到源美术素材文件夹,否则与“axwritesequence”作用相同。

“axwriteposes”:与axwritesequence相似,但是转储一个单姿势PSA文件中的每一帧,并将帧号码附加到每个文件和内部序列名称中。注意:一些编辑器的animationbrowser导入器的版本不能正确处理导入/显示单帧序列。

还可参考“axoptions”窗口中新的 可持续的“no popup confirmations”复选框,使这些命令有效地避免与用户交互。

从2.24版本开始,有“axexecute”命令可用MEL命令行完全执行完全蒙皮(skin)与动画的导出该命令带有可以按照随机顺序组合、简单易懂的下列选项:

axexecute [options and switches(选项和开关)]

  • -path [目的地路径]
  • -skinfile [.psk蒙皮文件名称]
  • -autotri
  • -unsmooth

蒙皮(skin)文件被立即保存到命令行指定的目的地路径(或者如果不存在,采用交互界面中最后指定的命令行。)由于MEL命令的限制,路径只能含有前向而非后向slash,而且应该在引号中,避免让MEL命令行分析程序以为遇到特殊字符。

  • -sequence [序列名称]
  • -range [开始帧] [结束帧]
  • -rate [速率]

序列将按照可选的帧范围及参数及速率被采集。如果指定,范围必须为两个合法的完整的帧号且不包含任何破折号,点号或者逗号。默认范围是整个场景的时间范围而默认速率是在交互式界面中设置的速率。采集的动画序列数据被存储在内存中,如同在交互式界面中所做的那样。只有当-saveanim开关为命令行的一部分时,序列才会保存到一个新的.psa文件中:

  • -saveanim
  • -animfile [.psa anim文件名]

默认情况下,如果没有指定-animfile文件名,蒙皮(skin)基础文件名将与.psa扩展名一起被使用。目的地路径为用-path指定的路径。

顶点导出

简单旧风格,无骨架的顶点动画数据可以通过一个独立的窗口被导出,称为“axvertex”。注意不提倡使用顶点动画是——骨架渲染更加高效,并有进入编辑器中动画浏览器的交互式导入美术素材路径,而且提供更多的顶点动画网格物体所没有的选项,例如rigidizing parts与LOD sprites。

弹出窗口中的选项都清晰明白——关于顶点动画美术素材导入路径的文档,请参阅UnrealVertexAnimation

常用故障诊断

  • 插件初始化失败(Plugin failing to initialize )

确认系统安装了MSVCR71.dll(可能在Windows\System32文件夹,或者在Maya插件旁)——它可以从ActorX网页上下载。安装Microsoft .Net 1.1 framework redistributable后它就应该出现,尽管有报告称即使这样操作,手动安装DLL还是必须的。

  • UV影射出现错误(UV mappings come out wrong)

出现过在Maya中的网格物体不可见的问题的例子,表示编辑器中(部分)崩溃的UV影射。这通常在从一个较早版本的Maya保存,然后载入或者从较新版本的Maya导入的情况下发生。通常Maya在从较早版本的艺术作品加载时会给出一些兼容性警告;即使场景看上去正确,也从不要忽略这样的警告。在与您要导出数据的Maya相同的版本下设置蒙皮(skin)链接,分配UV影射和应用材质总是最安全的。如果已贴图的美术素材来自其它文件包(例如Motion Builder),尝试运用您用于素材导出的Maya版本工具对其重新转换。