UDN
Search public documentation:
UnrealVertexAnimationCH
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
日本語訳
한국어
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
导出和导入顶点动画
顶点动画流程需要一些简单编程,将网格物体置入引擎中。与骨架动画不同,此动画不会在动画浏览器中显示。因此,本指南将针对程序员,而非美工。何时使用顶点动画?
顶点网格物体与静态网格物体以及具有骨骼的网格之间存在明显差异。我们将简要介绍这三种网格物体。- Static Meshes静态网格物体): 在这三种网格物体当中,最易于创建和实施。这些网格物体始终无法变形。
- Skeletal Meshes(具有骨骼的网格物体): 这些网格物体被装于一个潜在且不可视的支撑骨骼结构上。当骨骼移动时,这些加权顶点也会移动。多个动画可在相同网格物体上进行混合,以便于平滑过渡和新建动画。
- Vertex Meshes(顶点网格物体): 最为灵活的顶点网格物体,允许通过不断操作单个顶点位置,实现大幅度的网格物体变形或精细控制。不可混合动画,在同一时刻仅有一个序列是活动的。
导出
为了导出一个顶点动画和网格物体,打开Maya或3DS Max中的ActorX。根据需要,设置下列选项。其它选项不会影响顶点动画。输出文件夹
对于输出文件夹而言,您需要指定一个代码包子目录,将模型置于名为“Models(模型)”或类似名称的文件夹中。例如,如果您希望使用“Guns”文件包中的这个模型,您可以将其存放到.../< YourGame >/Guns/Models中。动画文件名称
在此字段中,填入动画名称。最终,这还将成为网格物体文件名的名称,尽管您以后可予以修改。帧范围
在此字段中输入您希望导出的帧范围。例如,“0-10”指的是将导出0—10个帧。注意ActorX顶点动画区不存在类似字段,“动画范围”将会被忽略,不得应用于顶点动画。添加至现有
如果您希望为单个模型导出多个动画,则首先导出一个动画,然后对于任何其他动画而言,应将这个框选中。动画数据将被添加到先前动画的末端。当我们设置脚本文件时,我们将会把整个动画文件分隔成为独立的动画。 在您设置好这些选项之后点击ActorX顶点动画区的“Export(导出)”按钮。点击这个按钮,将会在“Output Folder(输出文件夹)”字段指定的文件夹中创建两个文件,名为<AnimationName>_a.3d和<AnimationName>_d.3d。这个_d文件实际上是网格物体,而这个_a文件包含动画信息。Maya特别注释
Maya ActorX的导出界面比3DS Max更简单些,利用“axvertex”指令即可调用。您需要利用主要导出工具窗口(“axmain”),指定输出路径以及动画文件名。此外,导出工具希望在场景中至少有一个Maya关节与动画网格项链,以便创建一个基础的多级结构。导入
#exec's
为了导入顶点动画网格物体,您需要在脚本文件中放入一系列的“#exec”指令。这将促使动画数据在含脚本的文件包被编译的情况下导入到.u文件中。MESH IMPORT(网格物体导入)
创建一个脚本文件,并使用下列#exec指令来导入模型: #exec MESH IMPORT MESH=<SomeNameForYourMesh> ANIVFILE=..\<PackageName>\Models\<_A.3d Model File> DATAFILE=..\<PackageName>\Models\<_D.3d Model File> X=<OffsetX> Y=<OffsetY> Z=<OffsetZ>MESH ORIGIN(网格物体原点)
然后,您需要利用下列#exec指令为网格物体指定一个默认原点和旋转: #exec MESH ORIGIN MESH=<SomeMeshName> X=<OriginX> Y=<OriginY> Z=<OriginZ> ROLL=<RollOffset> PITCH=<PitchOffset> YAW=<YawOffset> ROLL、PITCH和YAW参数范围被指定为—256—256.—64,例如顺时针旋转90度。X、Y和Z采用虚幻单位(Unreal Unit)。MESH SEQUENCE(网格物体序列)
对于您导入的每个动画而言,您需要指定动画文件中的某些帧对应您以后能播放的动画。如果需要的话,可以让多个动画使用同一帧。一般而言,较为实用的做法是指定一个动画对应文件中的所有帧。下文是您创建这种动画的方式: #exec MESH SEQUENCE MESH=<SomeNameForYourMesh> SEQ=All STARTFRAME=0 NUMFRAMES=XXX 确保MESH参数中的数值与上文导入的exec中的数值相同。SEQ指的是动画的名称。对于每一个动画而言,您均需要创建一条这样的指令行。如果您不确定帧数,或动画的起始帧,只需将它们全部导入,然后启动UnrealEd并查找“All(所有)”动画。下一章节将介绍更多有关如何查看网格物体的内容。TEXTURE IMPORT(贴图导入)
然后,您需要将贴图导入到.u文件中,使其能被指定给网格物体。下列exec指令将为您处理该部分内容: #exec TEXTURE IMPORT NAME=<TextureName> FILE==..\<PackageName>\Models\<TextureFileName> GROUP=<SomeGroup> 这个指令将贴图放到.u 文件中,在这个文件中,它既可通过UnrealEd中的贴图浏览器进行查看和使用,也可利用其他#exec指令或脚本本身来进行查看和使用。如果您的网格物体被指定了多个贴图,那么您则需要多次调用。MESHMAP SETTEXTURE(网格物体贴图设置)
最后,您需要将各个贴图指定给网格物体。下列exce指令将完成这项工作: #exec MESHMAP SETTEXTURE MESHMAP=<SomeNameForYourMesh> NUM=<MaterialID> TEXTURE=<TextureName> 对于网格物体使用的每个材质id,您均需要一条这样的指令行。DefaultProperties(默认属性)
在脚本文件的默认属性中,您需要将已导入的网格物体指定给脚本文件中描述的actor。将下列指令行放到脚本文件的默认属性区中,即可完成这项操作。 <verbatim> Mesh=Mesh'ThisPackage.MeshName' </verbatim>创建.u文件
保存您的脚本文件,并照常编译文件包。您将会发现编译器正在导入网格物体。在Unrealed中查看
为了在UnrealEd中查看到被导入的网格物体,点击Mesh Browser(网格物体浏览器)按钮
,打开网格物体浏览器。
