资源工作流程
概述
本文档主要介绍了如何在引擎中导入资源、导出资源,以及一些必要的插件。
插件安装
PhotoShop导出插件安装
适用于Max2016版本和PhotoShop(CS5-CC 2018)版本。
导出插件的安装程序在编辑器文件夹...client\windows\tools\FlexiPluginSetup.exe目录下。
运行程序“FlexiPluginSetup.exe”。
在安装项(Installation items)下选中PS插件(PS Plugins),在材质类型(Material Type)下选中PBR金属度粗糙度(PBR (MetallicRoughness)),然后点击安装(Install)完成安装。
资源类型
常见资源类型:
类型 | 格式 |
---|---|
纹理贴图(Texture Map) | TIF |
静态网格体(Static Mesh) | XMOD |
骨架网格体(Skeletal Mesh) | XMOD |
动画文件(Animation File) | XSKT |
特效文件(Effect File) | EFFECT |
粒子文件(Particle File) | PARTICLE |
物理(Physics) | CHB, NXX |
音频 (Audio) | WAV |
将资源导入Flexi编辑器
模型资源
使用外部程序创建可供引擎使用的内容类型。
导入静态网格体
在外部应用程序中,选择需要的网格体文件导出为FBX格式(文件可以多选)。
在引擎项目面板的资源目录下创建一个文件夹并打开,用以存放资源。拖动需要导入的FBX文件到Flexi的资源预览窗口中。
在弹出的FBX导入选项(FBX Import Options)窗口中进行设置。
编号 | 名称 | 说明 |
---|---|---|
1 | 网格体(Mesh) | 是否导入网格体。 |
2 | 转换场景(Convert Scene) | 是否转换场景,将场景由FBX坐标系转换为Flexi引擎坐标系,其文件单位也会进行匹配。 |
3 | 导入纹理(Import Textures) | 是否导入纹理。 |
4 | 导入全部(Import All)/导入(Import) | 全部导入或单次导入。 |
导入FBX时,不支持将模型的子节点进行拆分,导入成功会同时生成同名的.xmodparams文件用于记录导入信息。
通过在关卡(Level)面板中查看导入的网格体来验证资源是否正确导入。
碰撞体制作
碰撞(Collision)在引擎中非常重要,很多交互依赖碰撞,引擎中可以生成物理碰撞,但还是建议在3D软件中创建自定义的碰撞几何体,和渲染网格体一起导出。
碰撞体的命名规则:
网格体前缀和命名 | 说明 |
---|---|
FXSP_[RenderMeshName]_## | 按照球体来生成物理碰撞体。 |
FXCP_[RenderMeshName]_## | 按照胶囊体来生成物理碰撞体。 |
FXBX_[RenderMeshName]_## | 按照盒子来生成物理碰撞体。 |
FXCX_[RenderMeshName]_## | 按照凸包来生成物理碰撞体。 |
FXTA_[RenderMeshName]_## | 按照三角形来生成物理碰撞体。 |
命名习惯需要和关联的渲染网格体命名一致。
##表示数字后缀(如果不想看到RenderMesh,也可以在3D软件中创建空物体,将空物体命名与碰撞体命名相匹配,如3DMAX中可以使用虚拟对象(Dummy)或者辅助对象(Helper)代替,Blender中创建空物体(Empty)代替)。
导入碰撞体FBX文件。将碰撞体FBX文件拖入到引擎资源预览窗口中,在弹出的FBX导入选项(FBX Import Option)窗口中需勾选生成碰撞体(Generate Collider)选项。
LOD创建指南
如何导入静态网格体LOD:
可从外部3D建模软件(如3Ds Max、Maya或Blender)将静态网格体详细级别(LOD)导入到Flexi引擎。在此使用3Ds Max、Maya和Blender进行演示。
设置静态网格体LOD:
Autodesk 3Ds Max:
选中所有网格物体,然后从分组(Group)菜单中选择分组(Group)命令。
在打开的对话框中输入新组的名称,单击 按钮来创建组。
点击 按钮来查看实用程序(Utilities)面板,然后选择详细级别(Level of Detail)实用程序。注意:如果找不到的话,你可能需要点击
。
选择组后,单击 按钮以创建新的LOD集并将选定组中的网格添加到其中,网格将根据其复杂性自动排序。
3Ds Max中,选择包含LOD集的组合体模型直接导出,导出时,需要勾选平滑组(Smoothing Groups)、切线和副法线(Tangents and Binormals)和三角算法(Triangulate)。
Autodesk Maya:
依照LOD的高低级别顺序选择所有网格体(例如LOD0、LOD1、LOD2、LOD3、LOD4…..)。按顺序选择非常重要,后续所创建的组需要根据顺序进行排序。然后从编辑(Edit)菜单中选择LOD(Level of Detail)-> 创建LOD分组(Creat LOD Group)命令。
现在所有的网格体都应该分组到了LOD组下。
在Maya中,选择包含LOD集的组合体模型,直接导出,导出时,需要勾选平滑组(Smoothing Groups)、平滑网格(Smooth Mesh)和引用的资源内容(Referenced Assets Content)。
Blender:
创建网格
在Blender中依次点击添加(Add) -> 网格(Mesh) -> 立方体(Cube),添加一个立方体模型。
按照上述方法再依次添加一个棱角球(Ico Sphere)和柱体(Cylinder)。
将立方体的名称修改为mesh_LOD0,棱角球的名称修改为mesh_LOD1,柱体的名称修改为mesh_LOD2。
注意:
组合体LOD级别与命名无关,只与创建时间顺序有关,先创建的网格(Mesh)LOD级别最高(LOD0),越往后创建的网格(Mesh) LOD级别越低。所以,此时立方体的LOD等级最高(LOD0),柱体的LOD等级最低(LOD2)。
如果这里网格(Mesh)创建的时间顺序不对,最简单直接的方法就是将网格(Mesh)按时间顺序复制粘贴并删除原来的网格(Mesh)。
本文档中所创建的网格用作后续展示不同LOD级别效果。
创建空物体
在Blender中依次点击添加(Add) -> 空物体(Empty) -> 纯轴(Plain Axes),或者按快捷键Shift + A,新建一个纯轴空物体,空物体命名没有要求。
创建完成:
将LOD模型与空物体绑定父子级
在场景集合(Scene Collection)面板中先选中空物体(Empty),再按住Shift并点击mesh_LOD2以全部选中这四项,然后在操作界面鼠标右击打开快捷菜单,依次点击父级(Parent) -> 物体(Object),或者按快捷键Ctrl + P后在弹出的快捷菜单中选择物体(Obejct)。空物体(Empty)为父级,三个网格(Mesh)为它的子级,父子类型为物体。
完成:
添加自定义属性
在场景集合(Scene Collection)面板中选中空物体(Empty),然后在下方的属性栏中,依次点击物体属性(Object Properties) -> 自定义属性(Custom Properties) -> 新建(New)。点击prop右侧的 按钮,弹出编辑属性(Edit Property)窗口。在类型(Type)栏中将浮点(Float)型改为字符串(String)型,属性名(Property Name) 改为fbx_type, 点击OK按钮。
将fbx_type的值改为LodGroup(大小写要规范,否则可能会出错)。
导出
依次点击菜单栏文件(File) -> 导出(Export) -> FBX(.fbx),选择导出文件的路径,修改导出文件的名称,勾选自定义属性(Custom Properties),将前进(Forward)改为-Y向前(-Y Forward),向上(Up)改为Z向上(Z Up),按需勾选应用变换(Apply Transform),然后选择导出FBX(Export FBX)。
导入静态网格LOD文件至Flexi
将导出的FBX文件拖入到Flexi引擎的资源预览窗口中(可先在项目(Project)面板中选择好该文件所要在的目录)。
在弹出的FBX导入选项(FBX Import Options)窗口中勾选网格体(Mesh)、自动生成屏占比(Automatically Generate Screen Ratio)、导入纹理(Import Textures),点击导入(Import)或全部导入(Import All)。
双击导入生成的XMOD文件,进入模型预览窗口检查LOD是否正确。
Simplygon LOD:
使用Simplygon制作模型的LOD。
初次使用Simplygon请安装两个必要的运行库。
运行\tools\simplygon\vcredist_x64.exe并安装。
运行\tools\simplygon\vcredist_x86.exe并安装。
需要进行一次注册(无需重复注册)。
打开\tools\simplygon\LicenseApplication.exe。
如果没有微软账号,点击创建一个选项来注册账号(建议在网页上预先注册微软账号,这里就可以直接登录。因为网页上注册速度会非常快,比这里的按钮快上许多)。
Active字样表示账号激活,激活成功后启动编辑器,打开模型编辑器在窗口中选择LOD设置。
导入骨架网格体
从外部3D建模应用程序导出骨架网格体。
骨架网格体由两部分构成:
构成骨架网格体表面的一组多边形。
用于使多边形顶点产生动画的一组层次化的关联骨骼。
在Flexi引擎中,通常使用Actor代表角色或其他带动画的对象。3D模型、绑定及动画都是在外部建模和动画应用程序(3Ds Max、Maya、Blender等)中创建的,然后通过编辑器的设置把这些资源导入到Flexi引擎。
在资源预览窗口中,拖入导出的FBX文件。
在弹出的FBX导入选项(FBX Import Options)窗口中进行设置。
编号 | 名称 | 说明 |
---|---|---|
1 | 网格体(Mesh) | 是否导入网格体。 |
2 | Y轴角度(Y) | 用于调整Actor朝向,一般情况下我们需要设置为Y轴旋转180度。 |
3 | 转换场景(Convert Scene) | 是否将场景由FBX坐标系转换为Flexi引擎坐标系。其文件单位也会进行匹配。 |
4 | 导入纹理(Import Textures) | 是否导入贴图。 |
5 | 导入骨架(Import Skeleton) | 是否导入骨架。导入后得到的骨架文件名称为:文件名_tpose.xskt。 |
6 | 导入全部(Import All)/导入(Import) | 全部导入或单次导入。 |
通过在内容编辑器中查看导入的网格,来验证资源是否正确导入。
导入动画
在资源预览窗口中,拖入导出的FBX文件。
在弹出的FBX导入选项(FBX Import Options)窗口中进行设置。
编号 | 名称 | 说明 |
---|---|---|
1 | Y轴角度(Y) | 旋转。这部分需要与骨架网格体和骨架导入时的参数保持一致。 |
2 | 转换场景(Convert Scene) | 将场景由FBX坐标系转换为Flexi引擎坐标系,其文件单位也会进行匹配。 |
3 | 导入动画(Import Animation) | 是否导入动画。导入动画时要求必须选择一个动画所匹配的骨架文件,动画导入完成后得到的动画文件名称 为:文件名.xskt。 |
4 | 选择骨架文件(Select Skeleton File) | 可以从资源预览窗口中拖拽一个骨架文件(XSKT类型文件),或者从下拉框选择一个骨架文件作为导入动画时候的匹配骨架数据。详情结合导入动画功能。(此处导入为测试骨架网格体的Tpose)。这边操作的意义在于判断动画文件1中的骨骼拓扑结构和骨架是否一致。 |
5 | 导入全部(Import All)/导入(Import) | 导入全部或导入单个文件。导入全部按钮是针对当拖入多个FBX文件时,可以一次性导入多个FBX数据。 |
通过资源预览窗口查看导入的动画资源。
验证导入的动画是否正确:
选择导入骨架网格体的文件夹,在资源预览窗口中右键,依次点击创建资源(Create Res) -> 组合体(Actor),在资源预览窗口中查看新建的组合体。
双击新建的组合体,进入编辑窗口。在动作列表下,将动作文件拖拽至区域内,然后查看是否正确导入。
选择蒙皮列表,将文件拖拽至区域内,然后查看是否正确导入。
在动作列表下,点击切换Tpose和导入的动作,查看是否正确。
导入Speedtree资源
Speedtree资源导出
导出时需要关注的是缩放系数的设置,Flexi引擎使用单位是米(m),Speedtree软件默认的单位为英尺(ft),1ft=0.3048m,所以导出时模型的缩放系数要填0.3048,四舍五入为0.305。
Speedtree资源导入Flexi引擎
在项目面板中创建一个文件夹(如:Speedtree)并打开。在系统的资源管理器中找到需要导入的ST文件,选中并拖动到引擎资源预览窗口中(支持拖拽文件夹)。
将.st导入引擎面板设置。
编号 | 名称 | 说明 |
---|---|---|
1 | AO亮度(AO Brightness) | 调整AO亮度。 |
2 | 跳过贴图(Skip Texture) | 是否跳过贴图,开启后不会转储贴图。 |
3 | 导入碰撞体(Import Collider) | 是否导入碰撞体。 |
4 | 导入(Import) | 导入文件。 |
5 | 添加(Add) | 添加多个.st文件。 |
通过在关卡面板中查看导入的网格,来验证资源是否正确导入。
转换过程中自动处理的其他细节:
原始ST文件中的材质如果有次表面散射属性及贴图的话,转换后的模型材质也会自动带有次表面散射属性。
原始PNG文件中法线贴图的Alpha通道中存储的粗糙度贴图会在转换为TIF文件时自动拆分为“_m”后缀的贴图,其中的B通道存储粗糙度。
Flexi引擎支持Speedtree中的AO,存储在顶点的RGB上(可以在Speedtree中对AO进行调整)。
Flexi引擎支持Speedtree中制作的碰撞模型(见下图)。
贴图资源
贴图规范:
Flexi引擎支持PBR,贴图方面需要遵循PBR的贴图标准。
常用贴图与后缀命名规则。(PS插件FlexiTIFPlugin导出TIF格式时会根据文件后缀名自动选择相应的贴图类型)。
原始图片(TIF文件) | 文件名后缀 | 说明 |
---|---|---|
Diffuse Map/Albedo Map/Base Color | _D | RGB/RGBA |
Normal Map | _N | |
Mix Map | _M | R: Metallic G: Roughness B: Specular level A: Ambient Occlusion |
Height Map | _H | RGBA(来自A通道,初始颜色为128) |
Emissive Map | _E | RGB |
SubSurface Strength | _SSS | |
Flow Map | _FM | |
Mask | _Mask | |
ImageSequence | _Sequence | 贴图MipMap仅保留前5级 |
从Substance Painter导出
Substance Painter导出设置:
从Photoshop导出
在Photoshop中制作完成贴图资源后,使用安装好的Photoshop插件导出贴图。
颜色设置:
贴图的输出:
贴图输出的路径及文件名不允许出现中文。
美术在完成贴图绘制之后对进行保存,格式选择FlexiTIFPlugin (*.TIF;.TIF)。
在弹出的面板中选择相应的贴图类型以及对尺寸进行调整。
点击文件 -> 另存为 ,选择格式FlexiTIFPlugin (*.TIF),保存。
Photoshop插件弹窗设置面板。
编号 | 说明 |
---|---|
1 | 选择贴图类型。 |
2 | 选择相应平台可以进行单独设置。 |
3 | 更改贴图尺寸。 |
4 | 选择Ok导出TIF文件,选择Export DDS导出DDS文件。 |
将资源从Flexi编辑器导出
通过引用关系将资源导出到指定文件夹
选择需要导出的资源文件,右键选择资源导出(Resource Export),在选择目录(Select Directory)窗口选择导出路径,点击OK导出。