该教程是根据某国外教程翻译而来,原作者最后更新日是 2015-2-28,
本教程尚有几个章节没有完善,后期原作者补充完整后会进行相应的更
新。
有何问题可通过论坛信息或邮箱联系本人:forsmithjohn@foxmail.com
UE4 准备工作
模型 - 3ds MAX
3d 网格
多边形优化
Vray 转换到 UE4
UV 展开
灯光展开
碰撞
LOD
FBX 导出
Blender 工作流程
植物 - SpeedTree
景观构建
自然
城市
Esri CityEngine
Ghost Town 3ds Max Script
3d 人物
… (你使用的其他软件?)
UE4
Fbx 导入
材质
综合说明
绘图
制作贴图 - crazybump, Shadermap 2, Bitmap2material, Genetica
Substance
Quixel Suite
植物
导入 SpeedTree
G 草地 rass
光照 - 静态
光照 - 动态
Matinee 和录像
交互
灯光
其他问题?
合作的工作流程
I.前期准备
A. 模型 - 3ds MAX
1. 3d 网格
UE 的默认单位为 1 厘米,跟 MAX 相对应。必须使用面数相对较低的网格,但是由于我们要制作高质量建筑效果,
所以面数也不能太低,适当即可。高精度模型会使帧率大幅下降。
场景中的所有网格可以分为两类:
●建筑类模型 , 在场景中至始自终只使用一次(建筑物,景观和街道等),为了更快的导入和定位需要把他们自身坐标位
置于世界坐标 0,0,0 。为了更好的光照效果你可以把一些网格切分为多个物体(比如房间每面墙壁都由分开的网格组成)
●摆设品 (蜡烛,书本,枕头,长凳等)
在房间里多次使用的模型,这类模型需要把坐标沿着 Z 轴移到模型的最低点。
中心点也可以在导出器的设置里面设置,详见 9. FBX 导出
2. 多边形优化
减少多边形的面数对 UE 来说是非常必要的,尤其是对于专门用于渲染的高精度模型来说。
3ds Max 有 3 个插件可以用于减少面数: Multires, Optimize, ProOptimizer
这些插件对于很复杂的物体来说会难以控制效果,比如汽车,有一些物体的细节非常高,这样的情况下你必须把这些
物体分开成不同的部分,分别进行优化。同时记得在优化时要检查 UV 是正确的。
3. 脱离 Vray 渲染器
这里提供了让这个过程更快更简便的方法。首先打开一个 vray 物体,然后把所有材质转换成标准材质,同时保证
所有贴图的路径正确,在不破坏 UV 的前提下优化网格。
下面是用这个转换脚本做的一个测试:AK-VRmtl
可以看出这个脚本只保留了漫反射贴图,你必须在 UE4 里面重新指定其他贴图。
to standard.ms
4. UV 展开
通道 1 的 UV 展开,我们只在重要的网格上使用自定义 UV,比如重要的墙壁和地板这些最终结果必须跟现实场景
精确对应的东西。其他的物体我们使用一个 100x100x100cm 的标准 UVW 展开,我们建议你对所有物体都做 UVW 展
开,因为你不知道什么时候会在 UE 中对物体使用贴图。
使用默认多维子材质的多个材质的物体,对 FBX 导出器,所有材质必须为标准材质(不能使用 vray 材质等),UE
可以直接辨别出漫反射贴图。
5. 光图展开
这个过程非常浪费时间,需要在 UE4 做灯光烘焙。我们非常希望在未来虚幻引擎可以做到完全的动态光照,让灯
光烘焙变成一个历史,目前的实时光照 LPV(light propagation volumes) 只能做到中等的效果。
在每个物体的通道 2 制作一个新的 UV 展开,用来把所有多边形放在这一个单位平方的 UV 空间,如果需要快速展
开可以使用 Unwrap UVW 修改器进行默认的平铺展开(不过这个不是得到最好结果的方法),
*官方文档链接: More details on Lightmapping
6. 碰撞
所有游戏中的网格都需要做几何碰撞,不然你会出现穿过墙壁之类的问题。
*官方文档链接: Collision documentation
UE4 可以基于几何网格生成几种几何碰撞类型,但是如果网格过于复杂则会消耗很多系统资源,导致帧率降低,
所以最好在 3DSMAX 里面制作一个简单的盒子作为物体的碰撞盒,坐标保持和原物体一样,如果物体名字为“objectA”,
最好把该碰撞盒的名字改为“UCX_objectA”。
7. LOD
这个在视频游戏中非常重要。LOD 决定了物体在一个特定距离可以显示多少细节,这样可以节省很多 GPU 的资源,
这里我们先跳过 LOD 的制作,虽然会降低一些帧率,我们将在未来尝试做一些 LOD 的处理,有助于我们拓展这块区域。
*官方文档链接: More on LODs
8. FBX 导出
使用下面某个脚本导出文件
FBX to UE4 Batch Exporter 1.1
TS_UE4FbxExporter
9. Blender 的工作流程
这个教程介绍了 Blender - UE4 的流水线 here
B. 植物 - SpeedTree
目前 SpeedTree 拥有 UE4 能用的最好的植物集合,所有的树木都有光图,风和环境光遮蔽(Ambient Occlusion)
可惜的是你没办法使用标准的 SpeedTree 资源库,因为那些模型没有 UE4 能用的光图。
可以跟着 Maico Girardi 学习,他的教程非常好。
或者是 Marco Girardi’s ST grass。
C. Landscape Generation
1. Natural
2. Urban
a) Esri CityEngine
b) Ghost Town 3ds Max Script
D. 3d 人物
E. … (你使用的其他软件?)
II. UE4
A. Fbx 导入
完成导出后,运行 UE4 进行设置。新建一个项目,选择蓝图第一人称模板,为了更快更好的开始我们的项目,设
置应该跟下图一样,不要忘记定义项目存放位置,否则会被储存在系统盘的分区,然后迅速堆积用掉你的 HDD 储存
空间,如果你是用固态硬盘的话。
Unreal YouTube 频道漏了一个好教程 here
阅读所有关于 UI 的弹窗教程非常重要,记住一件重要的事,你的项目里有很多贴图,在 content 浏览器的左边显
示了该项目所有资源共用的贴图,如果你删除了 content 浏览器的一个资源,同时贴图也会丢失,这是我们亲身经历
过的,请小心。
FBX 的导入非常简单,拖放 FBX 文件到 content 浏览器即可,需要注意合并网格(combine meshes)的选项必须
为 OFF。
光图的 UV 必须在外部生成,自动生成的效果并不好,也许他们将来会改善这个问题。碰撞部分,如果勾选几何
网格,则会使用模型的网格来进行碰撞,对于高精度模型来说不是个好的选择。 如果你不想麻烦去更换材质,直接选
择导入材质即可 (不建议,因为 UE4 的基于物理的着色器非常棒), 或者你想在网格上找到很多材质标志以便更容易的
替换他们。我对车辆更换材质就是这么做的。