从UE4到UE5:工程及资产迁移的原理和一般方法

按照官方建议,明年早些时候发布UE5正式版本,UE5EA仅用于新技术探索和尝鲜,项目开发还是应该在UE4上进行,现在迁移只是为了解新的features,提前规划哪些可能用于现在的工程。

==========================================================
[2022-4-8更新]UE5正式版已经发布,喜大普奔,赶紧迁起来把。

工程迁移步骤

参考官方文档:
https://docs.unrealengine.com/5.0/zh-CN/MigrationGuide/

  • 必要项

    • 确认工程兼容性:UE4.26/4.27是可以直接以副本拷贝的方式迁移过来的(更早版本未测试),但是不能将5的工程迁移回4
    • 拷贝UE4项目副本到UE5
    • 升级VS到2019(C++工程)
    • 伤害部分重构
    • 原生指针替换(C++工程,有转换工具)
    • 检查和调整物理模拟(phyX在EA版本暂时保留,正式版会删掉)

  • 非必要项(建议作为checklist都检查一遍)

    • 检查旧渲染设置

      • 屏幕空间全局光照:SSGI旧设置失效,要重新启用(现在作为lumen技术里的子集,建议用lumen)
      • 硬件光线追踪:重新设置硬件光追,可以和lumen同时生效(对于支持硬件光追的显卡,官方建议可以作为lumen的补充)
      • 生成网格体距离场:lumen必须启用,根据需求调整体素密度
      • LPV已被移除(lumen代替),材质曲面细分也被移除(Nanite代替)
    • 粒子替换

      • Cascade寿终正寝,正式版将全面替换奶瓜,转换工具在插件里已经可以找到,建议替换
    • 世界分区系统替换世界合成

      • 新地图建议使用新的分区加载,为开放世界而生,旧地图用命令转换
    • 部分工具更新或替换

      • 全新的网格体编辑工具,替换4代几乎没用的几何建模插件
      • 电影渲染队列替换电影场景捕获
      • VR关卡编辑废除,只支持预览
      • 试拍录制器替换序列录制器
      • 摄像机动画序列替换摄像机动画
      • UE4插件相关的编辑器功能包被移除,影响到插件迁移(关键)
      • Sequencer在正式版全面替换Matinee(这个应该没人用了把)
    • 新的音频系统

      • MetaSound(目前需要在插件里启用)替换旧的SoundCue以及相关混音系统
    • GamePlay框架

      • 蓝图原生化废弃
      • 另外,官方推荐了模块化开发角色能力的新插件GameFeatures和ModularGame,
    • 网络加密系统替换

      • DTLS替换AES/RSA
    • 用于性能数据分析的新系统

      • Unreal Insights新的统计工具,另外插件里还能找到一组关联插件,包括内存分析工具,建议尝试

关于虚幻资产的迁移

  • 虚幻引擎中我们经常遇到项目间资源的迁移,比如从一个项目复用一组资源到另一个项目,包括模型,材质,蓝图,动画,粒子等等,有时候迁移可能是跨版本的,这个版本可能是引擎版本,也可能是某个子系统版本如Niagara,对于刚接触虚幻的新手会总是疑问为啥这个迁了用不了,为啥这个又可以迁?

  • 资源兼容性
    首先从大的方面来讲,外部3D软件导入或在虚幻里创建的资产经过保存后都已经转换成了uasset格式,那么这个格式对于引擎版本来说是向后兼容的,意思是:UE4.26创建或者打开保存的资产,在后续版本4.27/UE5等至少是可以保证打开的;但是后续版本创建的资产,或者新版本打开旧版本资产后又保存过的,是没法保证再用之前的版本能打开的。


    这在软件行业叫backward compatibility (向后兼容, 回溯兼容),就是新版本软件要保证以前的文件是可以打开的,这是业界绝大多数通用做法,很少有软件向前兼容的(考虑未来可用)。所以虚幻引擎的版本迭代也是如此,早些版本的资产后续版本是可以打开的,但是你如果用新版本打开后保存了,那这些uasset文件可能早些的版本就没法再用了,除非导出成标准的原始3D文件,如模型/动画(fbx,obj等),贴图(png,ttf等)格式后再导入引擎使用。(对于已经是虚幻资产格式的资源想在其他3d软件里使用,这也是唯一的方法,只能保证在3d源格式这一级通用,你只能导出贴图到其他软件里去处理材质,毕竟每个软件的材质和渲染是不一样,当然也可以借助一些插件和工具在不同环境里使用,如datasmith或者其他3d软件的live类插件)


    以上讲的是文件格式上的兼容性,保证资产是否可以打开,不保证开箱即用。因为随着引擎的迭代,有些资产可能出现功能上的兼容性问题,具体来讲:
    • 动画: 这里仅指骨骼动画文件,这是最不用担心的,基本无影响,你只需要关心你的动作文件是不是兼容你的模型骨骼
    • 模型:基本无影响,包括staticMesh和sketalMesh
    • 蓝图:可能影响,比如由于某个蓝图节点在4.27给废弃了,又或者某个函数增加了一个参数,那使用该节点做的蓝图就需要对应修改,但是相近版本之间的改动(如4.26到4.27)一般都比较少,稍微修改后就是可用的
    • 材质:可能影响,材质蓝图还是蓝图,所以和普通蓝图类似,只有材质节点有更改才有影响,但是材质节点随引擎版本修改的频率非常低,所以影响会更小,相近版本之间基本都是可用的。(大版本除外,比如UE4.27到UE5曲面细分没了,世界位置偏移也没了,那基于这些做的功能当然就不可用了。。不要抬杠!)
    • 粒子:粒子系统现在只需要考虑Niagara了,因为cascade已经在UE5被官宣退役了。在之前UE4.26版本附近,Niagara由于刚出山版本更新很快,所以经常会发现某个module编译不过,这都是正常的。到了5, Niagara趋于稳定之后就不会了。但是经验是只要你了解一点Niagara,大多数时候稍微改改就可用了,基于module调参是很简单的事情,这个很好的屏蔽了一些只想坐享其成的小白。
      (Niagara入门:https://blog.csdn.net/hechao3225/article/details/113532401)
      (Niagra常用module:https://blog.csdn.net/hechao3225/article/details/118446786)
    • 插件:影响最大的东西,所以放在最后面说,因为插件运行的特殊性,每个版本都需要重新编译插件,如果有这个插件的源码是最好的,放到新版本源码版引擎里适配下U++的修改(很少),重新编译下就可以好了。否则,不要指望把UE4.27的插件直接导入到UE5.


      let me see see…应该就这些,整体来讲,我认为虚幻资产的兼容性还是做的很好的,所以大多数情况跨版本迁移都是没有问题的。
      另外,由于大多数时候迁移资产都是直接把Content下的某个文件夹拷贝到另一个项目的Content下,所以这里提一下关于资产迁移的引用关系问题:因为虚幻资产都是在Content下以相对路径搜索引用的其他资产,比如材质引用的某个贴图是在当前材质上一级的texture里,如果你拷贝的时候改了这个路径,比如把某一级的名字改了那问题就来了,引擎打开后这个材质找不到贴图也就不会正常显示。这也是绝大多数小白遇到的丢材质的原因。
      注意到我说的一直都是叫迁移而不是复用,是因为复用一个资产的最好方法是在引擎里选中某个文件或文件夹或部分文件后直接右键,选择Asset actions - Migarate(迁移),引擎会帮你自动处理所有的引用关系,然后将所有关联的资产都原封不动的拷贝到新项目的Content下,避免由于相对路径改变而缺胳膊少腿。

你可能感兴趣的:(UE,UE5,虚幻引擎,游戏开发)