当前位置: 首页 > news >正文

【版本控制教程】如何使用Unreal Engine 5 + UE源代码控制(Perforce P4)

本文来源perforce.com,由Perforce中国授权合作伙伴——龙智翻译整理,旨在为国内用户提供一份实用、易懂的Unreal Engine 5+Perforce P4的中文使用指南。希望能为UE开发者、设计师和美术小伙伴们的版本控制实践提供有力支持~

Unreal Engine 5 是一款尖端的游戏引擎,具备实时渲染功能、庞大的资产市场(Fab)和高级功能(如 Nanite 和 Lumen),使团队能够创建超写实的角色和照片级逼真的数字环境。由于其打造沉浸式故事和体验的能力,Unreal Engine(虚幻引擎)已被广泛应用于多个行业——包括游戏、媒体与娱乐、建筑、汽车设计等。

充分发挥其全部潜力的关键之一,在于理解并运用版本控制,即通常所说的源代码控制。

Perforce P4(原Helix Core)是与Unreal Engine广泛结合使用的版本控制工具,它能够对源代码和二进制资产进行版本管理、自动化工作流,并通过在编辑时锁定文件来防止冲突。Unreal Engine 提供了与 Perforce P4的集成,使团队能够在引擎内部无缝地对文件和资产进行版本控制。此外,Epic Games 提供的一些高级工具,如 Unreal GameSync 和 Robomerge,专为与P4配合使用而设计。

认识Unreal Engine 5.5

随着 Unreal Engine 5.5 的发布,开发者和创作者可以使用一整套新的工具和增强功能,以提升动画工作流程、移动端开发、虚拟制作以及其他创意项目。该版本基于 UE5 初版引入的功能进一步升级,带来了 MetaHuman Animator 和 Lumen 等核心组件的重要更新。以下是几项最值得关注的改进:

MetaHuman Animator 增强功能

在 Unreal Engine 5.5 中,MetaHuman Animator进行了如下更新,旨在简化并提升动画工作流程:

  • 仅通过音频表演即可生成高质量的面部动画。

  • 通过减少资产体积来优化MetaHuman,以满足游戏集成的要求,同时确保质量几乎不受影响。

移动端开发升级

UE5.5 同样加强了对移动开发的支持,具体包括:

  • 为 Mobile Forward Renderer 新增特性,以提升平台上的视觉保真度。

  • 改进了 Mobile Previewer 的内容开发体验。

渲染更新

Unreal Engine 最新版还包含以下渲染方面的更新:

  • 对 Lumen 进行性能优化,使其在硬件支持的平台上可以以 60Hz 的速度运行。

  • 引入 Megalights —— 一项新功能,允许用户在场景中添加数百个动态投射阴影的光源,而不会影响性能。

Unreal Engine 5有何主要用途?

根据Perforce 2024 年《游戏技术现状报告》,63%的受访者表示团队的首选引擎是 Unreal Engine(UE,虚幻引擎)。 虽然UE主要用于开发电子游戏,但它在动画、虚拟制作和虚拟体验项目中的应用也越来越广泛。

报告显示,在媒体与娱乐行业中,有 51% 的专业人士使用UE,相比之下,使用 Unity 的人员只有16%。UE5 的动态设计工具使团队能够更轻松地创建适合电视播出的图形,这使得 UE成为了广播、现场活动、汽车与交通、影视等行业不可或缺的工具。

此外,越来越多不同行业的团队也开始采用 Unreal Engine,来实现各种高级可视化效果,例如:

  • 数字孪生
  • 产品演示
  • 交互式VR培训
  • 虚拟现实
  • 混合现实
  • 扩展现实
  • 建筑设计
  • 教育培训

尽管 Unreal Engine 5 为视觉创作提供了强大的功能,但管理这些复杂的项目需要稳健的版本管理机制,尤其是在多名团队成员共同处理不断变化的资产和代码时。

为什么版本控制对UE5项目至关重要?

如果没有集中式的版本控制,您的UE5项目将面临以下重大风险:

  • 工作成果丢失
  • 版本更改冲突
  • 协作瓶颈导致项目进度受阻

尤其在如今的数字化工作环境中,有效的版本控制不仅作用显著,更是必不可少。 根据Perforce 2024年《游戏技术现状报告》,来自各行各业69%的受访者都使用版本控制系统,来存储和共享源文件及美术资产。

为什么Perforce P4是UE的版本控制系统?

创建UE项目本身就有一定的挑战性,特别是在处理大型资产时。与传统软件开发主要处理文本文件不同,UE项目非常依赖庞大的二进制资产,这就需要一种专门的版本控制解决方案。

这也正是Perforce P4的突出之处——P4是Epic Games 自身用于开发 Unreal Engine 的版本控制系统。Epic推荐所有的第三方开发者在使用 Unreal Engine 时使用 P4,并且 Epic 开发的一些高级工具也仅支持P4,其中包括:

  • Horde:由 Epic 构建的一组服务,用于支持开发《堡垒之夜》、Unreal Engine等的工作流程,服务包括远程执行、构建自动化、工作室分析等。

  • Unreal Game Sync:由 Epic 开发的工具,用于将开发者的 P4 工作区与项目流同步,项目流包含所有必要的预编译并可直接使用的自定义二进制文件。

  • Robomerge:一款自动合并分支的工具,Epic Games 使用其开发 UE5 项目和《堡垒之夜》。

如何使用UE5和UE源代码控制Perforce P4?

如何配置 Unreal Engine 和 Perforce P4以开始创建项目?以下是分步教程。

1、安装 Unreal Engine 5 

首先,你需要安装 Unreal Engine。最新版本为 Unreal Engine 5.5,于 2024 年 11 月发布。详情可登录Epic官网了解更多。

2、下载 P4V 

要使用 P4 版本控制,需要P4 服务器。你可以下载免费版本自行搭建服务器(最多支持 5 名用户),或者选择 P4 Cloud 订阅服务,在云端快速获得私有服务器。如何下载?详询Perforce中国授权合作伙伴——龙智,获取下载&安装支持。

要连接到服务器,请下载适用于你操作系统的最新版 P4V。

安装P4V后:

  1. 打开P4V,输入服务器地址和用户名(这些信息在安装服务器或配置 P4 Cloud 时已创建)
  2. 首次连接时可能会提示你信任该服务器
  3. 输入密码后即可成功连接至服务器

如需了解更多设置信息,请参考Perforce P4初学者指南视频教程

3、创建 Depot(仓库)

安装好 Unreal Engine 和 Perforce P4后,需要为项目创建一个 Depot——即你在 Perforce 服务器上用于存储项目的主目录。

操作步骤如下:

  1. 打开 P4V,点击菜单栏 Tools > Administration ,进入 P4 Admin
  2. 在 P4 Admin 中切换到 Depots 选项卡
  3. 点击菜单 File > New > Depot…
  4. 给 depot 命名(例如 “ProjectName”)注意:名称不能包含空格,且一旦设定无法更改
  5. 将 Depot 类型设置为默认值 “stream”,然后点击 OK 创建 depot

4、设置 typemap(类型映射)

在向服务器添加文件之前,你需要设置 typemap,这样 P4 服务器才能正确处理不同类型的文件。例如,当你编辑 .uasset 或 .umap 这类二进制文件时,typemap 可以指示服务器对这些文件进行独占锁定,从而避免多人同时编辑造成的冲突。

此步骤只需在首次设置服务器时执行一次:

  1. 在 P4V 的左侧 Depot 面板中右键任意 depot,选择 Open Command Window Here
  2. 这将打开一个终端窗口,在终端中输入命令:p4 typemap
  3. 此操作将在你的默认文本编辑器(通常是记事本)中打开 typemap 文件
  4. 大多数用户可以直接复制粘贴 Game Engine Universal Typemap
  5. 保存并关闭文件。如果终端显示 “Typemap saved”,则表示操作成功

5、创建 Mainline Stream(主线流)

Perforce Streams 可以简化分支和合并操作,自动化开发与发布流程。虽然 Streams 功能非常强大,但建议先从一个 mainline stream 开始,后续再随着项目的发展逐步扩展。

操作步骤如下:

  1. 返回 P4V(不是 P4 Admin),点击 File > New > Stream…
  2. 为 stream 命名(常见的命名方式是使用简短的项目代码 + “_main”,例如 “ABC_main”)
  3. 在 Depot 字段中,选择你刚刚为该项目创建的 streams depot
  4. 确保 Stream type(流类型)设置为 mainline
  5. 取消勾选 Create a workspace to use with this stream (稍后再做这一步)
  6. 取消勾选 Populate the mainline stream after it is created (稍后再做这一步)
  7. 稍后会设置 p4ignore 文件,但为了更加安全,可以先确保一些文件夹始终被忽略。切换到“高级”选项卡,在 Ignored 字段中添加以下内容,然后点击“确定”:
/Saved/...
/Intermediate/...
/DerivedDataCache/...
/FileOpenOrder/...

6、创建 Workspace(工作区)

要在 P4 上处理文件,需要创建一个 workspace(工作区)。 Workspace 是本地计算机上的一个文件夹,与服务器上的文件相连。 所有用户都将在自己的计算机上使用独立的工作区,每个人都可以控制自己何时提交更改,以及何时获取他人的更新。

操作步骤如下:

  1. 在 P4V 中点击 Connection > New Workspace
  2. 给 workspace 命名(建议包含用户名和计算机名称,例如 “username_myPC_uniqueName”)
  3. 可选:修改 workspace 的根目录(本地计算机上用于处理文件的文件夹)
  4. 在 Stream 字段中选择之前创建的 stream
  5. 可选:查看高级选项卡中的其他选项,确认无误后点击 OK 创建 workspace

通常,可以点击 workspace 根目录并选择 “Get Latest” 来下载服务器上的最新文件,但在当前阶段,需要先添加一些项目文件。

7、设置 Ignore 文件(忽略文件)

接下来需要设置 ignore 文件。 默认情况下,P4 会尝试对所有文件进行版本控制。 但对于游戏引擎项目,你需要让 P4 忽略某些文件。 通过设置 ignore 文件,可以告诉 P4 哪些文件不需要被保存在版本控制系统中,例如个人设置文件或中间构建文件。

非常重要:请在填充 depot 之前完成此步骤。

操作步骤如下:

  1. 在添加项目文件之前,创建一个名为 .p4ignore 或 p4ignore.txt 的文件
  2. 将示例p4ignore 内容复制进去并保存。

8、添加项目文件 

现在,你已经配置好了版本控制环境,并排除了不必要的文件,可以开始将实际的 Unreal Engine 项目资源添加到仓库中。

首次提交游戏引擎项目时,上传所有文件可能需要较长时间,具体取决于网络速度。

完成初始提交后,后续的提交只会包括自上次提交以来发生变更或新增的文件,因此通常比初次提交快很多。

现在,开始添加UE项目文件,操作步骤如下:

  1. 在workspace 目录下新建一个 UE 项目,或将现有项目移动到该文件夹中
  2. 在 P4V 中右键 workspace 文件夹,选择 Mark for Add
  3. 你的所有文件(不包含被忽略的文件)将被加入默认的 changelist(变更列表)。 你可以在 Pending Changelists 选项卡中查看(如果没有看到,可在 View 菜单中打开)
  4. 选择 changelist,点击 Submit 并填写描述性注释。 对于大型项目,首次提交可能耗时较长,但后续提交将仅包含变更的文件。

如何与团队一起使用UE 5和UE源代码控制

如果你正在与团队共同开发 UE5 项目,可以通过 P4 Admin 添加用户并设置权限。 最简单的方法是在 P4 Admin 的 Users & Groups 选项卡中右键选择添加新用户。

完成初始的服务器设置并添加用户后,团队成员即可开始协作流程。 他们需要各自创建 workspace 才能参与项目开发。 以下是他们可以遵循的操作步骤:

1、使用 P4V 连接服务器 

  1. 下载适用于各自操作系统的最新版 P4V
  2. 打开 P4V,输入服务器地址和用户名(在安装服务器或设置 P4 Cloud 服务器时已创建)
  3. 首次连接时,系统可能会提示你信任服务器
  4. 输入密码后即可连接至服务器

2、创建 Workspace(工作区)

  1. 在 P4V 中点击 Connection > New Workspace
  2. 给 workspace 命名(建议包含用户名和计算机名称,例如 “username_myPC_uniqueName”)
  3. 可选:修改 workspace 的本地根目录(本地计算机上用于处理文件的文件夹)
  4. 在Stream 字段中选择之前创建的 stream
  5. 可选:查看高级选项卡中的其他选项,确认无误后点击 OK 创建 workspace
  6. 在左侧 Workspace 标签页中选择 workspace 的根目录,点击 Get Latest 以下载所选 stream 中的所有最新文件

如何在UE5中设置源代码控制

现在,你已经为团队配置好了Perforce P4,接下来就可以在 Unreal Engine 中设置 Perforce 集成。

首先,返回到 Unreal Engine 5(如果尚未打开,请启动它)。 确保你是从 workspace 文件夹中打开一个 Unreal Engine 项目,而不是从硬盘的其他位置打开。

打开 Unreal Engine 后:

  1. 点击 Source Control(源代码控制) 按钮
  2. 选择 Change Source Control Settings(更改源代码控制设置)
  3. 在Provider(提供商)下拉菜单中选择 Perforce 
  4. 输入你在 P4V 中使用的服务器地址和用户名
  5. 点击下拉菜单以选择工作区。 只要你已登录 P4V,并且是从 workspace 文件夹中打开项目,该选项会自动填充
  6. 点击 Accept Settings(接受设置)

当成功将 Perforce P4 与 UE 连接后,版本控制的图标会改变,表示已连接成功。

如何使用Unreal编辑器(适用于设计师或美术人员)

Unreal 编辑器内置了由 Epic Games 维护的 P4 集成功能。 设计师主要使用带有P4的 Unreal 编辑器来进行版本控制。

资产文件(如 .uasset 和 .umap 格式)是在 Unreal 编辑器中修改的二进制文件。 它们不能像文本文件那样打开,也不能使用基于文本的合并工具进行合并。

当你想要编辑某个资源时,只需在 Unreal Engine 的内容浏览器中点击它,就会看到一个 Check Out(签出)的选项。 P4的typemap 设置会确保你在执行此操作时自动锁定该文件。

完成对锁定文件的编辑后,你可以选择 Check In(签入)/ Submit(提交)文件,这会将变更上传至服务器,并释放对文件的锁定。 或者,如果你决定不保留所做的更改,可以右键点击文件并选择 Revert(撤销),即可将文件恢复到签出前的状态,并释放文件锁,以便其他人可以进行编辑。

你甚至可以直接在Unreal Engine中查看文件的历史变更记录,并直观地对比不同版本之间的差异。

现在,你已经了解了如何将UE5与源代码控制结合使用,不妨现在就开始使用 P4 进行 Unreal Engine 开发吧!

Perforce中国授权合作伙伴——龙智提供 Perforce P4 的全方位服务,包括产品咨询与演示、本地化试用、安装部署、技术支持、定制配置和团队培训等。 我们致力于帮助开发团队快速上手P4,让版本管理更轻松、更顺畅。

官网:www.shdsd.com

电话:400-666-7732

邮箱:marketing@shdsd.com

http://www.lryc.cn/news/574970.html

相关文章:

  • 【GPU RAM】实时监控GPU内存分配(一)
  • 微信小程序中scss、ts、wxml
  • 如何在 Manjaro Linux 上安装 Docker 容器
  • 云计算-Azure Functions :构建事件驱动的云原生应用报告
  • 《Effective Python》第十章 健壮性——警惕异常变量消失的问题
  • Encoder-only PLM RoBERTa ALBERT (BERT的变体)
  • 【大模型学习 | 量化】pytorch量化基础知识(1)
  • webpack5 css-loader 配置项中的modules
  • 华为云Flexus+DeepSeek征文|基于Dify+ModelArts打造智能客服工单处理系统
  • 设计模式精讲 Day 13:责任链模式(Chain of Responsibility Pattern)
  • 告别Excel地狱!用 PostgreSQL + ServBay 搭建跨境电商WMS数据中枢
  • 华为运维工程师面试题(英语试题,内部资料)
  • 数据库系统总结
  • AI+智慧高校数字化校园解决方案PPT(34页)
  • 【开源解析】基于PyQt5的智能费用报销管理系统开发全解:附完整源码
  • 博图SCL语言中 RETURN 语句使用详解
  • Harmony中的HAP、HAR、HSP区别
  • 《推荐技术算法与实践》
  • Linux Kernel下exFat使用fallocate函数不生效问题
  • 微信小程序 / UNIAPP --- 阻止小程序返回(顶部导航栏返回、左 / 右滑手势、安卓物理返回键和调用 navigateBack 接口)
  • Feign源码解析:动态代理与HTTP请求全流程
  • 《汇编语言:基于X86处理器》第4章 复习题和练习,编程练习
  • 福彩双色球第2025072期篮球号码分析
  • (LeetCode 面试经典 150 题) 151. 反转字符串中的单词(栈+字符串)
  • UNIAPP入门基础
  • 网络安全是什么?
  • 暴雨信创电脑代理商成功中标长沙市中医康复医院
  • iClone 中创建的面部动画导入 Daz 3D
  • 【请关注】实操mongodb集群部署
  • VS2022的C#打包出错解决