【版本控制教程】如何使用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.pswp.cn/web/86149.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/86149.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

opensingleComDialog方法解析优化

下面是对 opensingleComDialog 方法的详细解析,并给出优化建议和优化后的代码。 方法解析 作用 opensingleComDialog(index) 方法用于在输入框失去焦点时(blur 事件)自动根据输入内容进行唯一性查询,如果查到唯一结果则自动填充…

css 实现1个像素在不同分辨率屏幕上画网格线

实现网格线绘制,要考虑画布style尺寸和画布像素大小的缩放关系 单像素绘制主要出现的问题是会模糊,从像素角度看就是出现绘制两个像素,实际就是要做偏移 核心就是:按物理像素绘制,首先要对齐物理像素,计算…

深度图聚类DGC—Paper Notes

目录 Unsupervised Deep Embedding for Clustering Analysis (DEC 2016)Attributed Graph Clustering: A Deep Attentional Embedding Approach (DAEGC 2019)Structural Deep Clustering Network (SDCN 2020)Contrastive Multi-View Representation Learning on Graphs (MVG…

获取YARN application 应用列表的几种方法

目录 1. 使用YARN命令行工具 2. 通过REST API获取 YARN 提供了获取YARN集群上运行的应用列表,以下是几种常见方法: 1. 使用YARN命令行工具 最直接的方式是使用YARN提供的命令行工具: yarn application -list 上述命令会显示所有正在运行的应用。 如果要查看所有应用(…

前端如何下载 ‘Content-Type‘: ‘application/octet-stream‘ 的文件

前言 在前端开发中,经常会遇到需要从后端接口下载文件的需求。当后端返回的响应头中 Content-Type 为 application/octet-stream 时,表示这是一个二进制流文件,浏览器无法直接展示,需要前端处理后下载到本地。本文将详细介绍前端…

咨询顾问进阶——顾问公司战略咨询分析模板【附全文阅读】

该战略咨询分析模板围绕企业战略分析展开,先从总体思考战略分析的目的与方法,接着探讨企业及战略定义、战略地位等。外部环境分析通过 PEST、五种竞争力等模型,分析环境、行业、市场等情况以发现机会与威胁;内部环境分析从资源、核…

宝塔服务器调优工具 1.1(Opcache优化)

第一步:宝塔服务器调优工具 1.1(按照下面的参数填写) 第二步:路径/www/server/php/80/etc/php.ini 搜索jit jit1235 其中1235根据服务器情况修改 第三步:路径/www/server/php/80/etc/php-cli.ini 搜索 jit1235 其中…

React Native【详解】动画

基础动画的实现流程 使用支持动画的组件 <Animated.Viewstyle{[{opacity: fadeAnim, // 绑定透明度动画值},]}><Text>动画元素</Text></Animated.View>Animated.View&#xff1a;用于创建动画容器&#xff0c;支持所有 View 的属性。Animated.Te…

如何轻松地将照片从 iPhone 传输到计算机

如果您的照片占据了 iPhone 上最多的存储空间&#xff0c;为什么不将照片从 iPhone 传输到电脑呢&#xff1f;您可能想要这样做&#xff0c;但不知道如何开始&#xff1f;如果是这样&#xff0c;那么本指南就是您所需要的。我们分享了 6 种方法以及步骤详细信息。您可以按照一种…

操作系统之内存管理(王道)

本篇博客依据王道、与我的笔记而写&#xff0c;讲解了内存的基础知识、内存管理的概念、进程的映像、连续分配管理方式、动态分区分配算法、基本分页存储管理、基本地址变换机构、TLB快表、两级页表、基本分段存储管理方式、段页式存储管理方式、虚拟内存、请求分页管理方式、页…

C++11 std::thread 多线程编程详解

C++11 标准首次将多线程支持引入语言标准库,其中最核心的部分就是 <thread> 头文件中的 std::thread 类。 🧱 一、基本概念 什么是线程? 线程是操作系统调度 CPU 时间的基本单位。一个进程中可以有多个线程,它们共享进程的资源(如内存、堆栈),但拥有各自独立的…

设置vscode使用eslint

在 Visual Studio Code (VSCode) 中设置 ESLint 是一个很好的方式来确保代码质量和一致性。以下是详细的步骤&#xff1a; 1. 安装 ESLint 扩展 打开 VSCode。点击左侧的扩展图标&#xff08;四边形图标&#xff09;。在搜索框中输入 ESLint。找到由 dbaeumer 提供的 ESLint …

.NET 生态中主流的前后端生产级框架

文章目录 **1. 后端框架&#xff08;Backend Frameworks&#xff09;****(1) ASP.NET Core**&#xff08;微软官方&#xff0c;主流选择&#xff09;**(2) ABP Framework**&#xff08;企业级应用开发框架&#xff09; **2. 前端框架&#xff08;Frontend Frameworks&#xff0…

Spring Cloud Alibaba整合Sentinel指南

目录 一、Sentinel核心功能概述 1. 控制台安装 2. 项目依赖配置 三、详细整合步骤 1. 基础配置 2. 资源定义与保护 3. 与OpenFeign整合 四、常见问题解决方案 五、最佳实践案例 1. 流量控制场景 2. 熔断降级场景 3. 热点参数限流 六、高级功能 Spring Cloud Aliba…

Win10+PHPStudy 8.1完美运行CRMEB开源商城(附性能优化配置)

环境配置 下载phpstudy https://www.xp.cn/ 安装完成之后打开&#xff0c;在软件管理中安装 nginx mysql 5.7 php 7.4 创建站点 填写域名&#xff0c;根目录选择到public文件夹下 创建完成之后&#xff0c;点击右侧管理&#xff0c;选择伪静态 location / { if (!-e $request…

康谋方案 | ARXML 规则下 ECU 总线通讯与 ADTF 测试方案

目录 一、引言 二、汽车电子控制系统 三、ECU开发流程中总线通讯&#xff1a;ARXML 规则下的标准化协作 四、ADTF&#xff1a;汽车数据与时间触发框架&#xff08;Automotive Data and Time-Triggered Framework&#xff09; 五、应用案例 六、结语 一、引言 随着汽车新…

常见JavaScript 代理模式应用场景解析

常见JavaScript 代理模式应用场景解析 在 JavaScript 开发中&#xff0c;代理模式&#xff08;Proxy Pattern&#xff09; 是一种强大的设计模式&#xff0c;它允许我们通过创建一个“代理”来控制对目标对象的访问。通过代理&#xff0c;我们可以拦截并增强对象的行为&#x…

暴雨信创电脑代理商成功中标长沙市中医康复医院

6月25日&#xff0c;国内科技产业领军企业暴雨信息传来喜讯&#xff0c;其信创电脑成功中标长沙市中医康复医院信息化设备采购项目。此次中标&#xff0c;不仅彰显了暴雨信息在信创领域的技术实力和产品优势&#xff0c;也为长沙市中医康复医院的信息化建设注入了新的活力。 长…

ZYNQ PL高速采集AD7606数据与QT动态显示全解析

从硬件设计到软件优化,打造工业级数据采集系统 在工业自动化、医疗仪器等领域,高速多通道数据采集系统至关重要。本文手把手教你基于Xilinx ZYNQ平台,实现8通道200kSPS高速采集**,并通过QT实现60fps动态波形显示。突破性采用五级流水采集架构和GPU加速渲染,解决传统方案的…

还是工作日志

今天感觉效率有点低&#xff0c;可能是太热了 【100】 开始不懂了 https://www.bilibili.com/video/BV1rL411E7uz?t1193.7&p100 什么新增&#xff0c;什么新增和变化 【101】退单 开头就说不适合做事务型 https://www.bilibili.com/video/BV1rL411E7uz?t26.6&…