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

2023-11-08

按照官方建议,明年早些时候发布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下,避免由于相对路径改变而缺胳膊少腿。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 斯坦福小镇升级版——AI-Town搭建指南

    导语 8月份斯坦福AI小镇开源之后 引起了 AIGC 领域的强烈反响 但8月份还有另一个同样非常有意义的 AI Agent 的项目开源 a16z主导的 AI Town 本篇文章主要讲解如何搭建该项目 如有英文基础或者对这套技术栈熟悉 可直接
  • 【游戏客户端面试题干货】--2021年最新游戏客户端面试干货(lua篇)

    游戏客户端面试题干货 2021年度最新游戏客户端面试干货 lua篇 大家好 我是Lampard 经过春招一番艰苦奋战之后 我终于是进入了心仪的公司 今天给大家分享一下我在之前精心准备的一套面试知识 今天和大家分享的是lua的面试题 本人亲测
  • Unity3d 制作一个简单的NPC对话系统

    制作一个简单的NPC对话系统 文章目录 制作一个简单的NPC对话系统 前言 效果展示 进入对话区域 开始对话 Inspector面板可调选项 准备工作 NPC UI 代码 完整代码 详细逻辑 开启对话 显示对话 头顶标识 头顶标识 后话 前
  • 游戏开发UE4知识系列:流关卡与无缝地图切换

    参考 流关卡与无缝地图切换 官方文档 https docs unrealengine com zh CN Engine LevelStreaming index html
  • cocosCreator2.3.x渲染流程深入剖析笔记(三)

    渲染批次合并之顶点 根据前面说过的render flow流程接下来就是重头戏了render流程 其中包括了 检查两个渲染节点是否可以合并 同时把renderData的数据填充到modelBatch里的buffer中去 所有需要渲染的节点都有
  • UE4学习日记——蓝图中的各种颜色代表什么

    节点类型颜色 白色 执行线 蓝色 调用的函数或事件 暗蓝色 结构体 草绿色 流程切换 绿色 纯函数 通常用于获取什么 青色 试着对象转换 紫色 函数定义 灰色 宏 红色 事件的定义 土黄色 时间轴 数据类型颜色 白色线条 执行线 程序的执行
  • [游戏开发]俄罗斯方块实现

    0 前言 整理一下 游戏开发的入坑作 俄罗斯方块 这里包含了 c 实现的俄罗斯方块处理 控制台 有界面 以及后续用 unity 做的版本 项目的代码太多 就都放在链接了 可以直接下载好了 就放百度云好了 也不会污染代码库 挠头 项目链接如下
  • UE5_创建C++项目报错

    UE官方VS安装推荐 https docs unrealengine com 4 26 en US ProductionPipelines DevelopmentSetup VisualStudioSetup UE5报错 A fatal e
  • Unity中UGUI的Text实现超链接点击的解决方案

    Unity实现超链接点击 功能简介 C 脚本 使用方法 Demo工程内截图 Demo地址 功能简介 1 同一个Text内可以实现多个不同字符区域的点击 2 适配了中文 英文 韩文 日文 阿拉伯语等 更多语种待测试 C 脚本 文件名 UITe
  • Visuial Studio 打开 Unity 新建脚本时,新脚本继承MonoBehaviour暂时失效为白色的解决方法

    点击 文件 gt 最近使用的项目和解决方案 gt 点击当前项目 即可瞬间重载当前项目 这个时候 白色的MonoBehaviour会变成绿色 就可以了 当然最传统的方法就是关掉VS再打开 不过挺浪费时间的
  • unity暂停和继续按钮

    Unity暂停和继续菜单 目的 在一个游戏场景里设置暂停 并且在暂停后 可选择回到游戏 重新开始的功能效果 添加各种控件 新建一个空对象GameObject 将它命名为 ButtonPauseMenu 放在Canves下 用来放所有暂停功能
  • Adroid游戏开发实例讲解(四)-电子白板附源码

    Adroid游戏开发实例讲解 四 电子白板附源码 程序之美 电子白板 在很多Android设备中经常会用到 比如说Android电视 触摸屏用上手写笔 轻松在上面写字 比如视频教学Android设备 有很多培训教学机构 都放有Android
  • 【UE5 Cesium】11-Cesium for Unreal 切换Dynamic Pawn为其它Pawn

    前言 我们知道在Cesium for Unreal中默认使用的是DynamicPawn来浏览地图场景 DynamicPawn适用全球浏览 可以按自定义曲线进行飞行 但是DynamicPawn是使用的是地理参考坐标系 并不是标准的UE坐标系
  • Unreal Engine4蓝图编程学习(一)

    学习内容主要介绍了蓝图进行对象交互 升级玩家技能 升级AI敌人 跟踪游戏状态完成游戏体验等内容 内容来源于 Unreal Engine4蓝图可视化编程 书籍为2017年 与现在版本有一定区别 一 制作移动标靶 1 1 首先 我们想先创建一个
  • 8. UE4的盒体触发器和时间轴(制作感应门)

    一 盒体触发器 Box Trigger 1 创建一个盒体触发器 Box Trigger 拖动到地面上空 按End键 贴近地面 2 选中盒体触发器 在关卡蓝图中添加 On Actor Begin Overlap 事件 进入盒体触发器事件 a
  • 使用 Blender* 重新拓扑 VR 和游戏素材

    本文介绍如何将网格重新拓扑成一个整洁的低密度模型 然后 UV 解包该网格 以便将纹理贴添加至新模型 本文还将探讨如何使用免费工具 比如 Blender 及其 Bsurface 插件 重新拓扑雕塑的 3D 网格 查看详情
  • ue5新手零基础学习教程 Unreal Engine 5 Beginner Tutorial - UE5 Starter Course

    ue5新手零基础学习教程 Unreal Engine 5 Beginner Tutorial UE5 Starter Course 教程大小解压后 4 96G 语言 英语 中英文字幕 机译 时长 4小时56分 1920X1080 mp4 虚
  • 【UE5.1 MetaHuman】使用mixamo_converter把Mixamo的动画重定向给MetaHuman使用

    目录 前言 效果 步骤 一 下载mixamo converter软件 二 Mixamo动画重定向 三 导入UE 四 动画重定向 五 使用重定向后的动画 前言 上一篇 UE5 初识MetaHuman 创建虚拟角色 中我们已经制作了一个Meta
  • 【UE】制作熔岩星球材质

    效果 步骤 1 新建一个工程 创建一个Basic关卡 添加第三人称游戏和初学者内容包资源到内容浏览器 2 新建一个材质 这里命名为 M Sun 打开 M Sun 添加两个Texture节点 纹理分别为 T Rock Basalt N 和 T
  • 【UE】制作地月全息投影

    效果 步骤 1 在必应国际版上搜索 purlin noise 下载如下所示图片 再搜索 Earth Map 下载如下所示图片 再搜索 Moon 360 下载如下所示图片 这三张图片的资源链接如下 链接 https pan baidu com

随机推荐

  • Redis学习笔记(转尚硅谷周阳)

    教学视频 Redis官网 Redis中文官网 一 NoSQL入门概述 上 1 互联网时代背景下大机遇 为什么用NoSQL 1 1 单机MySQL的美好年代 在90年代 一个网站的访问量一般都不大 用单个数据库完全可以轻松应付 在那个时候 更
  • 整形提升和数据截断

    整形提升和截断 1 整形提升 2 截断 1 整形提升 提升是将占字节小的元素赋给占字节大的元素时出现的补位现象 截断是将所占字节大的元素赋给所占字节小的元素时会出现数值的舍去现象 下面看代码来分析 include
  • html的日期选择插件

    1 效果 2 文档 https layui gitee io v2 docs 3 引入 官网地址 https layui gitee io v2 引入 在官网下载 jquery 1 7 2 min js layui layui js 4 使
  • 绘制坐标轴:Python实现

    绘制坐标轴 Python实现 在数据可视化领域 坐标轴是一种重要的图形元素 用于显示数据的分布和趋势 Python提供了多种库和工具 可以方便地绘制坐标轴和相关图表 本文将介绍如何使用Python实现绘制坐标轴的功能 并提供相应的源代码示例
  • qt5.10 串口通信 QSerialPort 的使用

    在qt5中 使用QSerialPort进行串口通信 主要用到的QSerialPort 使用步骤 步骤一 在 pro文件中进行声明 QT serialport 在 pro文件中添加这个声明 步骤二 实例化 QSrerialPort QSeri
  • 实现itoa()和atoi()

    atoi 将字符串转换为整型值 实现代码 enum Status valid unvalid int status valid 全局变量标记输入是否非法 long long AtoI const char str bool minus lo
  • ZYNQ #5 - 从vivado工程开始,从emmc启动Linux

    本文从最简单的petalinux需求的vivado工程开始 建立一个能跑起来linux的vivado工程 同时将linux kernel 根文件系统部署在接到SD1接口上的emmc中 qspi flash中放置BOOT BIN uboot唤
  • vite和webpack的区别

    vite和webpack的区别 从底层原理上来说 Vite是基于esbuild预构建依赖 而esbuild是采用go语言编写 因为go语言的操作是纳秒级别 而js是以毫秒计数 所以vite比用js编写的打包器快10 100倍 Vite和We
  • 成为合格管理者的几个关键词

    http www csdn net article 2014 05 05 2819612 Management 职业通路是狭窄的 金字塔 结构很好地描绘了每个人在职场将要走过的路 在职位与薪酬待遇紧密挂钩的当今职场 芸芸技术专家总有一天会面
  • 【Neo4j】第 10 章:图嵌入 - 从图到矩阵

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • Linux 如何查看文件夹的大小(du、df、ls、find)

    Linux 如何查看文件夹的大小 du df ls find 参考链接 https blog csdn net Cappuccino jay article details 125168388 一 du 命令 查看当前目录和子目录文件夹 文
  • 微信小程序中下载app的方法

    微信小程序中下载app的方法 因为微信小程序本身是不推荐引流到外部的 所以正规的方法其实都是被禁止掉的 大致方向是打开内部浏览器 进入应用宝下载页面 如果app接入应用宝 或者是通过右上角的在系统浏览器中打开 自动跳转到App Store中
  • XML中常用转义符

    编写XML代码常用转译符 逻辑与 amp lt 小于 lt gt 大于 gt 双引号 quot XML实体中不允许出现 lt gt 等特殊字符 否则XML语法检查时将出错 如果编写的XML文件必须包含这些字符 则必须分别写成 amp lt
  • vue实现前端人机验证

    最简单的一个例子 安装插件 npm install vue puzzle vcode save
  • 微信模板消息,动态配置

    微信模板消息 扫码关注公众号 模板消息配置数据库表设计 SET NAMES utf8mb4 SET FOREIGN KEY CHECKS 0 Table structure for kl b template msg DROP TABLE
  • js设置全屏显示和取消全屏显示,实现F11功能

    点击后
  • 通讯协议022——全网独有的OPC AE知识四之接口(六)

    本文简单介绍OPC AE规范的接口IConnectionPointContainer的相关知识 更多通信资源请登录网信智汇 wangxinzhihui com OPC AE规范描述了OPC事件服务器应该实现的对象和接口 实现在多个OPC客户
  • 计算机视觉——利用openCV调用本地摄像头采集图片并截图保存

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 采集方式 二 代码部分 三 效果演示 前言 由于本人研究生课题是深度学习目标检测方向 因此需要大量的数据集 在本地采样时 可以利用openCV提供的库函数
  • Failed to create SubnetManager: error retrieving pod spec for ‘kube-system/kube-flannel-ds-amd64-xxx

    kubelet报错如下 kubelet 3807 E1215 18 01 25 516905 3807 aws credentials go 77 while getting AWS credentials NoCredentialProv
  • 从UE4到UE5:工程及资产迁移的原理和一般方法

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