00:00:10
>>Matthew:大家好
00:00:11
欢迎参加本次虚幻引擎网络研讨会
00:00:15
我们将对虚幻引擎中的源码管理
00:00:17
即版本管理进行讲解
00:00:20
我是今天的主持人Matthew Doyle
00:00:24
我们今天首先会了解
00:00:25
版本控制的说明简介
00:00:29
同时学习它对工作流的帮助
00:00:31
之后我们会了解虚幻引擎中
00:00:33
可用的四种选项
00:00:35
并学习Perforce Git Subversion和Plastic SCM等内容
00:00:41
我们将对各选项的利弊进行讲解
00:00:44
同时还会学习虚幻编辑器中的
00:00:46
基础设置和用法
00:00:48
版本控制即源码控制
00:00:51
是一种保存不同文件版本的重要方式
00:00:54
事实上在首次创建项目时
00:00:56
您就能保存文件的版本
00:00:59
甚至还能向版本控制添加新文件
00:01:01
或是移除版本控制中的文件
00:01:03
虽然可以自行使用版本控制
00:01:06
但它在团队协作中的效果更佳
00:01:09
使用类似Dropbox的服务
00:01:11
或直接通过本地硬盘
00:01:14
来保存不同项目的版本便是最简单的
00:01:17
版本控制形式
00:01:18
但此类选项不够强大 可扩展性也不足
00:01:22
在专业环境中
00:01:23
您需要使用专业源码控制管理程序
00:01:27
即SCM工具
00:01:29
利用专业版本控制工具
00:01:30
您可以追踪文件的修改
00:01:33
或是保留此类修改的历史记录
00:01:35
此类修改将包含
00:01:37
文件修改人 修改内容
00:01:40
修改时间以及修改原因
00:01:44
总的来说 其工作原理便是
00:01:47
将您在本地计算机中做出的修改
00:01:50
合并到总数据源中
00:01:52
此操作可能涉及使用包含所有修改
00:01:56
以及项目当前状态的
00:01:59
远程元库
00:02:00
使用源码控制(即版本控制)的好处
00:02:03
在于当操作出错时
00:02:05
可以将修改还原到
00:02:07
之前任意版本
00:02:09
您可以选择还原整个项目
00:02:11
也可以只还原特定文件
00:02:15
虚幻引擎中提供了版本控制的
00:02:18
四种可用选项
00:02:20
分别为Git Perforce Subversion
00:02:24
以及Plastic SCM
00:02:25
Plastic SCM是最新的附加项
00:02:28
那么 现在展示的便是今天将学习的
00:02:30
基础工作流
00:02:31
注意 您可以选择使用分支功能
00:02:35
但今天时间有限 先暂时跳过此功能
00:02:38
我们只会展示最为基础的工作流
00:02:41
大家可以看到
00:02:43
我在这里使用了小图标来代表不同的
00:02:45
源码控制管理工具
00:02:46
而这些图标前方对应的则是各个步骤
00:02:49
那么首先 通常您需要做的是
00:02:51
从服务器元库 或从远程元库中
00:02:55
获取最新文件
00:02:57
利用此操作 您便可以获取其他用户
00:02:59
完成的修改或工作
00:03:00
该步骤在所有源码控制工具中
00:03:02
都基本相同
00:03:03
之后 您需要迁出
00:03:05
要使用的文件
00:03:07
除使用Git大文件系统外
00:03:09
通常不能利用get命令
00:03:13
进行迁出(即锁定文件)操作
00:03:16
利用get命令的大文件系统版本
00:03:18
即可迁出如图像和Uasset文件等
00:03:21
二进制文件
00:03:23
那么进行到此步时 您便需要开始工作了
00:03:25
您需要对正在工作的项目
00:03:26
进行修改等各类操作
00:03:28
例如添加新文件等
00:03:30
此时 需要完成的最后一步
00:03:32
通常是将文件重新迁入服务器
00:03:34
此步骤将涉及使用除Git之外的
00:03:37
所有SCM工具
00:03:39
Git则需要额外几个步骤
00:03:41
那么使用Git将文件迁回服务器的
00:03:43
首个步骤便是暂存修改
00:03:45
和额外文件
00:03:47
Git本质上是一个暂存区域
00:03:50
您可以在继续工作和
00:03:52
进行其他修改等操作时
00:03:54
放入并暂时保存所有修改
00:03:57
之后您可以选择
00:03:58
实际需要提交的暂存文件
00:04:01
完成操作后这些暂存文件会被
00:04:04
提交到存储器的本地副本中
00:04:06
而最后 当您准备将所有文件
00:04:08
发送回服务器时 需将本地存储器分支
00:04:12
推回Git中的服务器
00:04:13
好了
00:04:14
以上便是基础工作流 正如我之前所说
00:04:16
您可以选择使用分支
00:04:17
但今天我们还不会对此详细讲解
00:04:20
那么
00:04:21
让我们继续吧
00:04:22
我们现在将了解在专业类别中
00:04:24
使用Git的利弊 Git实际上是一种分散式
00:04:29
或分布式版本控制系统
00:04:31
意味着所有用户将需要下载远程元库的本地副本
00:04:36
或是创建对应的本地元库
00:04:39
因此它的速度极快
00:04:41
用户的所有操作均在本地完成
00:04:44
将文件添加到元库和提交
00:04:47
此类文件等操作
00:04:48
均在对应的本地元库中完成
00:04:52
但此操作也有一项缺点
00:04:55
由于每位用户各自拥有存储器本地副本
00:04:58
随着团队规模的不断扩大
00:05:00
在将所有修改合并到远程
00:05:02
或总元库时可能会发生
00:05:06
冲突问题
00:05:08
使用Git的另一严重缺点是
00:05:10
您无法进行任何文件锁定
00:05:13
此问题会严重阻碍
00:05:15
对二进制资产、Uasset、纹理等文件的
00:05:20
锁定
00:05:22
但随着Git LFS 2.0的推出
00:05:24
该问题已经得到解决
00:05:26
您现在可锁定此类二进制资产
00:05:29
对它进行使用时其他用户
00:05:31
将无法使用
00:05:32
注意 在虚幻引擎的编辑器中
00:05:34
无法进行此操作
00:05:37
您必须在编辑器外
00:05:39
使用可用的Git工具进行操作
00:05:41
原因在于 在虚幻编辑器中
00:05:44
使用Git元库时 您所利用的是本地副本
00:05:47
而非远程元库
00:05:48
利用虚幻引擎中的LFS(即大文件系统)
00:05:51
Git可支持二进制文件
00:05:54
但与Perforce或Plastic SCM等竞争对手不同的是
00:05:57
我们仍需对大文件系统支持功能
00:06:01
进行微调
00:06:02
但好在Git是开源软件并且可免费使用
00:06:06
若未自行设置Git服务器
00:06:09
则需要购买线上服务器
00:06:12
但同时您也可以
00:06:13
利用如GitHub等网站 开发团队
00:06:16
可在之上免费使用私有和公开元库
00:06:20
虽然自行设置
00:06:21
Git服务器并不复杂
00:06:23
但对于非工程师用户而言
00:06:26
将Git应用到客户端和服务器仍很困难
00:06:29
原因在于Git的多数工作
00:06:31
均通过命令提示符(即终端)完成
00:06:33
但使用Git时的工作流却十分灵活
00:06:36
您可以通过多种方式
00:06:39
来管理版本控制流程
00:06:41
该流程利用了强大的分支和合并功能
00:06:45
同时还能在向分支提交
00:06:48
已添加或修改的文件之前
00:06:51
进行暂存
00:06:52
那么使用Git时的第一步
00:06:54
便需要访问Git服务器
00:06:56
我们将以GitHub为例
00:06:59
首先创建一个GitHub帐号
00:07:01
之后在GitHub页面中
00:07:03
点击新建(New)按钮
00:07:05
即可新建元库
00:07:06
接着我们需要设置元库名称
00:07:09
在本范例中我们将其命名为Webinar_sourcecontrol
00:07:15
还可以按需设置描述
00:07:17
此并非必须项
00:07:18
接着需将它设为公开或私有
00:07:21
公开即意味着所有人都可以访问元库
00:07:25
但您仍拥有对提交修改人的控制权
00:07:28
而私有则表示
00:07:29
您可以控制元库的访问权
00:07:33
和提交权
00:07:34
您可以提供初始README文件
00:07:36
此处我们暂时留空
00:07:38
同时我们还能添加Git忽略文件
00:07:39
如需忽略特定文件
00:07:41
我们可以在此直接勾选
00:07:44
无需迁入元库的文件
00:07:46
此处我们暂不勾选
00:07:48
我们将在项目中生成Git忽略文件
00:07:51
当然我们还可以指定
00:07:53
要用于项目的许可证
00:07:55
我们可以按需将它放入项目
00:07:57
但我们也暂不勾选此处
00:07:59
而现在我们只需点击此处的
00:08:01
创建元库(Create Repository)按钮即可完成
00:08:03
好了
00:08:03
在创建元库后
00:08:05
您将进入此页面
00:08:06
在该页面中首先需注意的
00:08:09
便是用于访问元库的
00:08:12
访问地址
00:08:13
在我们设置用于源码控制的项目时
00:08:16
需使用该地址在虚幻引擎中进行访问
00:08:19
因此务必保存一个该地址的副本
00:08:21
好了 远程服务器上的元库已经设置完毕
00:08:24
我们可以继续下一操作了
00:08:26
要将Git下载并安装到电脑上
00:08:29
需访问Git-SCM.com/downloads
00:08:32
然后在页面中选择所使用的系统
00:08:34
我使用的是Windows系统
00:08:36
那么就下载Windows版本
00:08:38
如要使用GitHub
00:08:40
建议下载GitHub桌面客户端
00:08:42
可在desktop.github.com中下载
00:08:46
利用GitHub桌面客户端
00:08:48
您可以使用GUI在本地元库
00:08:51
和GitHub元库间来回发送文件
00:08:54
从而简化操作过程
00:08:57
当然还有其他一些方法可供选择
00:09:00
比较流行的一类是Git Cracking
00:09:03
您可以随意尝试这些不同方法
00:09:05
有些收费
00:09:06
有些免费
00:09:07
有些会根据您的团队规模
00:09:09
提供收费和免费版本
00:09:11
而GitHub桌面客户端则完全免费且简单易用
00:09:13
那么我们就来试试看
00:09:15
将Git下载并安装到电脑上后
00:09:17
首先要进行的操作是设置用于标记
00:09:21
元库迁入文件和提交文件的
00:09:24
用户名和邮箱地址
00:09:26
以便大家查看迁入人
00:09:28
我们需要开启命令提示符来完成该操作
00:09:32
现在输入“Gitconfig--global user.name”
00:09:36
并在之后的引号中输入全名
00:09:40
也可使用其他名称
00:09:42
接着输入“Gitconfig--global user.email”来设置邮箱
00:09:44
同样在后方的引号中输入
00:09:49
要使用的邮箱地址
00:09:52
现在回到虚幻引擎中
00:09:54
在我们的项目中点击上方的
00:09:57
源码控制(Source Control)
00:09:58
然后点击连接源码控制(Connect to Source Control)
00:10:01
在登录界面的提供方(Provider)下拉列表中
00:10:04
我们需要选择Git
00:10:07
在接下来的源码控制登录窗口中
00:10:09
首个选项为Git路径
00:10:12
此会直接指向您的Git安装目录
00:10:14
无需进行修改
00:10:16
下一个选项为元库根目录
00:10:18
这便是我们的本地元库
00:10:20
它应与项目文件夹的位置相同
00:10:24
接着便是用户名和邮箱
00:10:27
即之前我们使用终端在Git中设置的内容
00:10:31
请注意 此处显示的
00:10:33
用户名和邮箱并非
00:10:35
远程元库的登录信息
00:10:38
其只是在您向元库提交修改时
00:10:42
用于向他人公开显示的
00:10:44
修改人相关信息
00:10:45
接下来是远程服务器
00:10:48
即原址的URL
00:10:49
将它从GitHub粘贴到此处
00:10:52
我们需要使用到Git忽略文件
00:10:54
那么就保持勾选
00:10:55
如需要基本README文件
00:10:57
可在此设置
00:10:58
我来进行示范
00:10:59
我们把这句改为Source Control Webinar
00:11:06
同时启用添加Git属性文件功能
00:11:09
利用该功能 我们可以
00:11:11
使用Git的大文件系统 以便上传
00:11:14
US头文件等图像和二进制文件
00:11:17
接着我们可以输入
00:11:19
初始上传的初始注释
00:11:21
我暂时将它留为默认的initial commit
00:11:24
之后我们需要使用Git初始化项目
00:11:27
我们可以在下方看到
00:11:29
文件正在被添加到本地元库
00:11:31
让我们等待其完成
00:11:33
好了
00:11:34
在完成添加之后可点击接受设置
00:11:37
(Accept Settings)按钮
00:11:38
点击后可以看到上方的源码控制(Source Control)按钮中
00:11:40
出现了带绿色箭头的小图标
00:11:43
这表示我们当前正在使用源码控制
00:11:47
现在我们来快速浏览一下项目结构
00:11:50
在Unreal Project文件夹中 我们可以找到
00:11:53
一个.Git文件夹 一个.Git属性文件
00:11:56
和一个.Git忽略文件
00:11:57
Git文件夹中将包含用于
00:12:00
保存分支和提交项的所有内容
00:12:03
以及做出的修改和进行中的项目
00:12:05
切勿随意变更此处的内容
00:12:08
打开Git属性文件后
00:12:10
我们可以在此处指定
00:12:13
需要设置哪些用于大文件系统的文件
00:12:17
和文件夹
00:12:17
在该范例中 Content文件夹里的
00:12:19
所有内容都将用于LFS系统
00:12:23
这其中便包括了所有Uasset文件
00:12:26
及图像等内容
00:12:28
打开Git忽略文件
00:12:30
可在此处告知Git迁入修改的时间
00:12:32
提交到元库的时间以及要忽略的
00:12:35
文件和文件夹
00:12:37
那么头几项为文件夹
00:12:38
有binaries和derived data cache以及intermediate与saved
00:12:42
这些文件都不需要迁入到元库之中
00:12:45
至于这些则是文件类型
00:12:48
所有以这些文件类型作为后缀的项目
00:12:52
均无需进行迁入
00:12:54
如果要迁入相关类型的项目
00:12:56
则需将它们从这个文件中删除
00:12:58
当然 您还可以将其他文件类型和文件夹
00:13:01
添加到此处
00:13:02
那么现在呢 我们需要将整个项目
00:13:06
发送到远程元库
00:13:08
我们可以在此开始操作
00:13:10
并在项目中添加文件 做出修改
00:13:14
或是进行调整
00:13:15
但我们在此进行的操作
00:13:17
都只会迁入到本地元库
00:13:19
远程元库将作为我们的总数据源
00:13:23
其会固定包含我们项目的版本
00:13:25
所有人都能对它进行访问
00:13:27
使用Git Bash是将项目发送到
00:13:29
远程元库最为快捷的方式
00:13:31
它本质上是一类终端(即命令提示符)
00:13:34
在项目文件夹中点击右键
00:13:36
只要电脑中装有Git
00:13:39
则能在该菜单中选择Git Bash
00:13:41
点击后会弹出Git Bash窗口
00:13:43
我们现在一起来看看可以在此处
00:13:45
输入的Git命令吧
00:13:46
首先 如果输入git status
00:13:49
此命令将会告知我们
00:13:51
本地元库的当前状态
00:13:53
正如大家所见 这里有一项未追踪文件
00:13:57
这是我们的缩略图data prep PMG
00:14:00
如果要将它添加到暂存区域
00:14:04
只需先输入git add 然后再输入文件名
00:14:08
如果要添加所有需追踪的文件
00:14:10
直接输入英文句号即可
00:14:12
现在再查看一遍状态
00:14:15
可以发现已经没有未追踪文件了
00:14:17
但仍有一些文件需要提交
00:14:20
在该范例中则是缩略图
00:14:22
要将文件提交到本地元库中——
00:14:24
请注意 我们并非要发送到远程元库
00:14:26
而是将它发送到本地元库
00:14:28
那么我们需输入git commit
00:14:30
然后使用m切换发送注释
00:14:33
注释的话就写initial
00:14:36
commit 然后点击回车
00:14:41
可以看到 提交已成功完成
00:14:43
现在查看status的话
00:14:45
可发现已没有需提交的文件了
00:14:48
那么 这些便是我们在使用
00:14:50
Git命令提示符时可用的一些基本选项
00:14:53
但我们实际想要进行的操作是
00:14:54
将本地元库发送到正在使用的
00:14:58
服务器上的元库 本范例中的服务器
00:15:01
为GitHub
00:15:02
如要查看服务器的位置
00:15:05
请记住 只要输入git remote -v即可
00:15:11
此处可以看到 我们要推向的原址
00:15:15
位于GitHub
00:15:18
那么 现在输入git push -u
00:15:22
我们要推向位于GitHub的原址
00:15:26
而总分支则是推动的对象
00:15:30
那么现在我们只需等待
00:15:32
它将文件上传完毕即可
00:15:34
根据项目的大小 此过程花费的
00:15:36
时间将不同
00:15:39
好了
00:15:39
上传完毕后应该不会弹出错误消息
00:15:42
此处的文本将告知我们
00:15:46
本地元库已经被推到远程元库
00:15:49
也就是本范例中使用的GitHub
00:15:51
返回我们在GitHub的元库中后
00:15:54
可以清楚看到 项目结构
00:15:56
已被成功上传 其中包括config content和source目录
00:15:59
以及git属性文件
00:16:02
git忽略文件 项目文件 缩略图
00:16:06
与README文件 我们可以看到
00:16:09
README中含有我们首次提交时
00:16:12
在虚幻引擎中的修改
00:16:13
那么现在呢
00:16:15
我不会对GitHub的使用方法进行详述
00:16:18
如果各位想了解更多使用方法
00:16:21
请自行参阅GitHub文档
00:16:23
现在来看看将文件发送到GitHub的第二种方式吧
00:16:29
另一种将文件发送远程元库的方式
00:16:33
则是使用Git的GUI
00:16:35
GUI的类型诸多 包括Tortoise Git GUI
00:16:39
以及Source Tree
00:16:43
但在本范例中 我们将使用GitHub
00:16:46
桌面客户端
00:16:47
其使用方法十分简单
00:16:49
首先需要添加我们的元库
00:16:51
那么在左上方 点击添加(Add)
00:16:53
创建(Create)或复制(Clone)按钮
00:16:56
这里有三个选项
00:16:57
我们可以选择复制元库
00:16:59
点击后可以从GitHub元库列表中
00:17:04
复制元库
00:17:05
我们也能新建元库
00:17:08
最后则可以添加当前的本地元库
00:17:11
而这也是我们将要使用的功能
00:17:12
我们先点击浏览(Browse) 然后浏览到
00:17:15
本地元库的目录处
00:17:17
接着只需点击添加元库(Add Repository)按钮即可
00:17:21
设置完成后 我们可以看到
00:17:22
这是我们在虚幻编辑器里的Git中
00:17:25
设置的初始上传项
00:17:29
以及将被上传到远程元库的
00:17:32
全部277个文件
00:17:34
但在进行操作前 我们先点击
00:17:37
右上角的设置 然后选择元库设置(Repository Settings)
00:17:40
我们来核查一下这里的信息
00:17:42
那么 这里有Git忽略文件
00:17:44
它与项目文件夹中的一样
00:17:46
这里是远程元库地址
00:17:48
我已经设置了第二个GitHub元库
00:17:51
而我们的Git LFS文件也已包含在此
00:17:55
那么我们现在已经准备好
00:17:57
将此推到GitHub元库了
00:18:00
要进行此操作需点击发布(Publish)按钮
00:18:02
既然我们已经完成设置
00:18:05
那么就来看看 使用虚幻编辑器中的
00:18:07
Git进行修改并将之提交到GitHub的
00:18:11
方法吧
00:18:12
首先我要对贴图中的部分资产
00:18:15
进行快速修改
00:18:16
选中这些渲染助手
00:18:18
将它修改为可移动(Movable)
00:18:20
此操作需要对贴图进行保存
00:18:22
那我们就点击保存
00:18:24
完成此操作后 可以看到文件
00:18:27
已被迁出
00:18:28
这个红色小勾即代表迁出
00:18:30
但注意 在使用Git时
00:18:31
它本身并未提供迁出选项
00:18:34
因此这并不代表文件已被锁定
00:18:37
只是表示已经可以
00:18:39
将它添加到元库而已
00:18:42
现在点击这里的Datasmith文件夹
00:18:46
再选择材质(Materials) 我要使用这个灯座文件
00:18:50
点击打开这个文件
00:18:51
我需要对它进行设置 以便使用材质实例
00:18:55
那么我现在要添加利用底色
00:18:58
来增量该纹理贴图的功能
00:19:01
在这添加一个增量注释
00:19:03
然后再添加一个三向量
00:19:05
将它连入B槽位
00:19:08
现在将默认值设为白色
00:19:11
然后将它连入底色
00:19:14
然后将此转换为参数
00:19:16
并命名为Base Color
00:19:19
好的 现在保存
00:19:21
可以看到在我保存后
00:19:23
该文件也被迁出了
00:19:26
同样地 对它点击右键
00:19:28
并新建材质实例 将它命名为Mi_lampbase
00:19:33
这个新材质实例上有个黄色问号
00:19:36
其表示该材质并未保存到
00:19:39
我们的元库中
00:19:41
那我们现在就将它保存本地元库吧
00:19:43
点击右键 选择源码控制(Source Control)
00:19:46
并将它标记添加
00:19:48
现在这里的红色加号表示
00:19:50
它已标记添加
00:19:51
换句话说就是它已经被放入
00:19:53
本地元库的暂存区域
00:19:55
现在只需提交即可
00:19:57
我可以对这些资产点击右键
00:20:00
前往源码管理并选择迁入
00:20:03
也可以点击顶部的(Source Control)源码管理按钮
00:20:06
选择将全部文件提交到源码控制
00:20:09
此操作会开启提交文件窗口
00:20:11
由于我同时选择了三个文件
00:20:13
我需要同时将它们全部迁入
00:20:16
那么针对修改列表 我们进行了贴图微调(minor map tweak)
00:20:20
还调整了材质(adjusted material)并创建了实例(created instance)
00:20:23
现在点击提交(Submit)按钮
00:20:25
可以看到我们的修改已被提交
00:20:28
当然 此类提交仅在
00:20:30
本地元库中操作 即项目的本地副本
00:20:35
因此为了将它发送到GitHub的服务器
00:20:38
也就是我们总数据源的所在处
00:20:41
我们现在需要将该分支推向服务器
00:20:45
注意 推动的方法共有两种
00:20:47
首先是在项目文件夹中打开Git Bash
00:20:51
然后输入git push origin master
00:20:55
此命令会将我们正在使用的
00:20:56
分支推向原始数据源
00:20:59
即GitHub项目
00:21:01
此外 我们还可以使用GitHub的GUI程序
00:21:05
这里可以看到新提交项已经准备好了
00:21:09
那我们就继续 点击同步(Sync)按钮
00:21:11
现在回到我们在GitHub的元库
00:21:14
可以看到这里有三项提交
00:21:15
点击此处
00:21:17
这里可以看到贴图调整的新提交项
00:21:19
那么点击此处
00:21:22
其将显示之前已完成的操作
00:21:24
我们新建了MI_LampBase.uasset文件
00:21:27
修改了灯座材质
00:21:30
还对贴图进行了微调
00:21:32
那么以上便是在虚幻引擎中
00:21:35
使用Git的基本设置和操作
00:21:37
在我们继续演示在此Git项目中
00:21:42
迁出和推动不同文件类型之前
00:21:45
我们先来看看Perforce
00:21:47
完成设置后需要多花些时间
00:21:49
来讲解此过程
00:21:50
我们还会学习提交C++的方法
00:21:54
同时在讲解Perforce时 各位可了解使用蓝图
00:21:57
和进行对比的方法
00:21:59
那么先来看看使用Perforce时的
00:22:01
一些利弊吧
00:22:02
请注意 此处显示的基本为高层面的
00:22:05
利弊
00:22:06
每位用户对于特定工具的喜欢
00:22:09
和厌恶理由各不相同
00:22:11
但这些是我看来最为突出的点
00:22:14
首先对于Perforce而言
00:22:17
优点包括能够锁定或迁出文件
00:22:19
这点是使用Git时无法完成的
00:22:23
该操作能够避免产生冲突
00:22:26
那么在迁出文件后
00:22:27
其他用户就能知道有人正在
00:22:30
使用该文件
00:22:31
当然 这并不意味着文件迁出后
00:22:33
其他用户无法在自己的电脑上
00:22:35
修改版本
00:22:37
其仅代表他们无法将修改迁回
00:22:39
Perforce 因为他人目前正在
00:22:42
使用该文件
00:22:43
其表现为一个小旗帜
00:22:45
告知他人文件正被使用
00:22:47
Perforce的另一优点在于
00:22:48
您可以利用它来包含引擎源
00:22:52
如果需要更改引擎源代码
00:22:54
则可使用Perforce进行操作
00:22:57
Perforce拥有非常便于使用的
00:22:59
可视化GUI和部分工具
00:23:01
进行文件对比等操作时将更将方便
00:23:04
Perforce被视为工业标准
00:23:06
它的扩展性很强
00:23:08
在企业领域适用性很高
00:23:11
它对图像和Uasset等大文件的处理
00:23:14
也非常不错
00:23:16
小型开发团队能免费使用
00:23:17
Perforce可向最多五位用户提供五个工作站
00:23:20
但超过此规模后 它将会变得较为昂贵
00:23:24
特别是在运行服务器的情况下
00:23:26
服务器的费用极高
00:23:28
有人认为Perforce实际上是
00:23:30
一种专用工具
00:23:32
它不同于开源的Git
00:23:34
由于Perforce针对项目总数据源
00:23:37
使用的是中央服务器
00:23:39
它在使用时速度可能会很慢
00:23:41
但在Git的程序中 所有修改和
00:23:44
所有提交到本地元库的操作
00:23:46
均在本地快速完成
00:23:48
而在Perforce中
00:23:50
使用文件时需将每项文件
00:23:53
发送回总服务器
00:23:55
但总的来说 Perforce的效能普遍较高
00:23:58
Perforce也拥有分支系统
00:24:00
好像叫做流送(streaming)
00:24:02
但跟Git中的分支系统
00:24:04
相比要弱上不少
00:24:07
那么 现在让我们进入虚幻引擎
00:24:08
一起来看看Perforce的使用方法吧
00:24:10
当您开起Perforce时
00:24:12
程序会默认弹出
00:24:14
连接对话窗口
00:24:15
您需要在该窗口中输入服务器地址
00:24:18
以及服务器上的用户名
00:24:20
还有您的工作区
00:24:22
Perforce将工作区定义为电脑上的本地空间
00:24:27
从服务器中下载的元库文件将被
00:24:31
保存在其中
00:24:33
这里也是您进行所有操作
00:24:35
并将修改提交回服务器的地方
00:24:39
当然 在首次使用Perforce时
00:24:42
还不会有工作区
00:24:43
因此需要点击新建(New)按钮来新建一个
00:24:46
在正确填入所有相关信息后
00:24:48
点击OK按钮即可开始使用
00:24:50
Perforce可视程序(即p4v)开启后
00:24:55
可以在其中找到depot和工作区(workspace)选项卡
00:24:58
Depot选项卡是远程服务器上
00:25:02
保存的文件
00:25:04
而工作区选项卡则是本地电脑上的所有文件
00:25:09
如果想要下载depot中的全部文件
00:25:12
只需点击depot选项卡
00:25:14
选择想要下载的文件夹
00:25:18
再点击获取最新(Get laest)即可
00:25:19
此操作会下载该文件夹中的全部文件
00:25:22
那么在开始将文件从工作区
00:25:25
发送到服务器之前
00:25:27
我们需要将虚幻项目复制到工作区中
00:25:31
一起来看看操作方法吧
00:25:33
为了使用Perforce 我们首先
00:25:36
需要进行的就是确保
00:25:39
正在使用的项目位于
00:25:41
我们的工作区之中
00:25:44
我现在已经进入workspace文件夹
00:25:46
接着继续点击打开文件夹
00:25:48
直到进入collaboration文件夹
00:25:51
然后将项目粘贴到此处
00:25:55
现在项目已经位于工作区中
00:25:57
我已能够在Perforce中将它发送回服务器
00:26:00
现在让我们开启项目
00:26:02
开启后请点击源码管理
00:26:05
再点击连接到源码管理
00:26:07
在提供方中选择Perforce
00:26:09
那么 第二个域中填写的是服务器地址
00:26:12
包括端口号
00:26:13
下方的则是用户名
00:26:16
这项是我们的工作区
00:26:18
如果不清楚自己的工作区
00:26:20
只要该文件位于工作区内
00:26:24
点击工作区下拉列表
00:26:26
就能自动找到工作区
00:26:29
接着我们点击接受设置
00:26:31
可以看到我们已经成功连接到了
00:26:33
源码管理
00:26:34
大家一定注意到了 由于我们
00:26:36
还未将文件发送到服务器
00:26:38
因此所有文件均标有问号
00:26:40
例如打开我的Blueprints文件夹
00:26:43
此文件标有问号
00:26:45
我的道具全都标有问号
00:26:47
材质等文件上也有
00:26:49
在全部项目互相连接时 这些问号
00:26:53
要过一会儿才会显示
00:26:55
这是因为我们尚未完成向服务器
00:26:58
初次提交
00:26:59
那么在Perforce客户端中
00:27:02
我们已经将项目复制到了工作区
00:27:04
现在点击工作区选项卡
00:27:06
就可以在相同位置找到项目
00:27:08
那么就是这里 它就在collaboration之下的
00:27:10
DataPrep 4.25中
00:27:13
那么我们需要进行的下一步则是
00:27:15
将我们的项目发送到服务器
00:27:18
要进行此操作 需选择项目文件夹
00:27:22
然后点击添加(Add)按钮 将它加入修改列表
00:27:25
在弹出窗口中选择新修改列表
00:27:29
同时在修改列表说明中
00:27:30
输入Initial commit
00:27:33
最后点击OK
00:27:34
现在打开待定修改列表选项卡
00:27:38
然后选中初次提交的修改列表
00:27:41
打开列表之后
00:27:43
可看到虚幻项目的所有文件
00:27:46
都已经准备好提交到服务器
00:27:48
当然 有一些内容您不需要
00:27:50
迁入源码管理
00:27:53
例如中间和保存文件夹
00:27:56
因此您需要在修改列表中向下滚动
00:27:58
直到找到这些文件夹
00:28:01
选择第一个文件夹 滚到底部
00:28:04
再按住Shift键选择最后一个文件夹
00:28:07
选中这些文件夹中的全部文件后
00:28:10
点击右键选择恢复(Revert)
00:28:12
在恢复文件(Revert Files)窗口中点击恢复(Revert)按钮
00:28:15
这样一来我们就不会
00:28:17
把中间保存的文件夹上传到服务器
00:28:19
另外 也可以让Perforce
00:28:22
忽略特定文件类型和文件夹
00:28:26
方法是进入
00:28:27
项目工作区副本
00:28:31
点击右键新建一个文本文件
00:28:33
我们把它命名为p4ignore.txt
00:28:38
我们可以在这个文件中添加文件夹
00:28:40
例如中间和保存文件夹
00:28:44
以及文件类型
00:28:46
假设不需要sln文件
00:28:49
就在这里输入*.sln
00:28:52
现在只需要点击提交(submit)按钮
00:28:54
假设我不需要进行任何修改
00:28:56
现在就可以在提交修改列表(submit change list)
00:28:58
窗口中按下提交(submit)按钮
00:29:00
如果没有错误
00:29:01
就会出现提交修改列表进度窗口
00:29:04
现在只需要等待
00:29:06
文件被上传到服务器
00:29:09
我们在项目里进行一些修改
00:29:10
然后来学习如何将这些修改发送到服务器
00:29:14
并了解锁定机制
00:29:17
等内容
00:29:19
我们先来进行一些基础资产修改
00:29:22
选中背景里的台灯
00:29:25
然后浏览材质资产
00:29:29
之后打开材质资产M lamp base
00:29:31
就可以看到
00:29:32
整个材质图表
00:29:34
我要进行的操作就是用它来
00:29:37
创建一个可以进行修改的材质实例
00:29:39
首先为金属感(metallic)值
00:29:42
添加一个标量参数
00:29:44
把它命名为metallic
00:29:46
再进行设置
00:29:50
叠加这个纹理来调整底色
00:29:53
因此我们需要一个三维向量
00:29:56
我们可以把这个连入底色
00:29:58
再转换为参数
00:30:01
命名为base color
00:30:04
默认为白色
00:30:06
好了
00:30:07
我们现在保存材质
00:30:09
执行这个操作时
00:30:11
引擎将询问是否要迁出资产
00:30:14
或将其设为可写入
00:30:16
注意 如果文件已经被其他人迁出
00:30:19
那么其用户名就会
00:30:22
显示在迁出人(checked out by)下方
00:30:24
而这里的迁出选定项(checked out selected)
00:30:27
按钮也会变灰 将无法点击
00:30:29
我现在开始迁出资产
00:30:32
现在我关闭了材质窗口
00:30:34
在这个材质上有一个红色的小勾
00:30:37
代表这个资产
00:30:39
当前被我迁出
00:30:41
在虚幻引擎中迁出文件之后
00:30:44
如果打开p4v 在工作区中浏览此文件
00:30:46
它明显已经被迁出
00:30:50
它旁边有一个锁定标志和小红勾
00:30:53
如果前往depot的相同位置
00:30:55
(depot是项目的服务器副本)
00:30:58
也会看到一样的图标
00:31:02
这是为了让大家都知道
00:31:03
我已经迁出了这个文件
00:31:05
现在把材质迁入Perforce服务器
00:31:09
对它点击右键
00:31:10
选择源码管理(Source Control)和迁入(Check In)
00:31:14
需要输入修改列表描述
00:31:17
我在这里就输入实例添加的参数
00:31:22
然后点击提交(Submit)
00:31:24
然后点击右键 选择创建材质实例(create material instance)
00:31:27
命名为mi_lampbase
00:31:31
创建材质实例之后
00:31:33
左下角会出现一个保存图标
00:31:37
右上角也会出现一个
00:31:40
黄色的问号图标
00:31:43
代表这个文件还没有
00:31:45
被迁入到版本控制系统
00:31:49
可以点击右键 选择源码管理(Source Control)
00:31:53
然后选择标记添加(Mark For Add)
00:31:55
进行操作之后
00:31:58
资产上就会出现一个红色加号
00:32:01
表示已经迁入源码管理
00:32:03
首先对它进行一些修改
00:32:05
我们选择底色调整数值
00:32:11
然后设置金属感值
00:32:13
现在再把它迁入 点击右键
00:32:16
选择源码管理(Source Control) 迁入(Check In)
00:32:18
在提交文件(Submit Files)窗口
00:32:20
的修改列表描述中
00:32:21
我就写一个初始提交(initial commit)
00:32:24
然后点提交(Submit)
00:32:25
现在回到Perforce进入depot
00:32:29
打开内容文件夹找到
00:32:32
刚才迁入的材质
00:32:34
在这里选中后可以清楚看到
00:32:37
Uasset文件有2/2个
00:32:40
这说明存在两个版本
00:32:42
我们现在处于第二个版本
00:32:44
如果需要查看修改列表
00:32:45
选择视图(View) 已提交修改列表(Submitted Changelists)
00:32:49
在已提交(Submitted)选项卡上可以看到
00:32:52
除了initial commit之外还有第二个修改added parameters for instance
00:32:56
打开之后就可以看到
00:32:58
我们修改的材质文件 US头文件
00:33:01
进入Perforce
00:33:05
右键点击台灯材质选择获取修改(Get Revision)
00:33:08
就可以回滚修改
00:33:09
修改数量为2 我们正处于第二个修改
00:33:12
我们要指定需要的修改
00:33:16
也就是第一个修改
00:33:18
然后点击获取修改(Get Revision)
00:33:20
注意 虚幻引擎项目打开时
00:33:22
不能执行这项操作
00:33:24
现在返回虚幻引擎 材质上出现了
00:33:27
一个感叹号
00:33:28
这个感叹号是提醒我们
00:33:30
尚未从服务器获得最新版本
00:33:34
如果点击右键选择源码管理(Source Control)
00:33:36
点击历史(History)
00:33:38
就能看到我们向Perforce服务器进行的
00:33:40
多次提交
00:33:42
这里有初始提交(initial commit)
00:33:45
和实例添加的参数(added parameters for instance)
00:33:49
甚至还可以右键选中
00:33:51
然后与上个修改进行对比
00:33:55
之后就会从Perforce呼出对比窗口
00:33:58
左边是之前的版本
00:34:00
右边是当前的版本
00:34:01
我们就知道当前版本处在服务器上
00:34:04
还添加了一些参数
00:34:07
我们再次右键点击材质
00:34:09
选择源码管理(source control)进行同步(Sync)
00:34:12
这样我们就能拥有最新的版本
00:34:15
现在打开材质
00:34:17
里面就有第二个版本中的修改
00:34:20
处理蓝图和源码管理的方式
00:34:22
和处理其他资产的方式基本相同
00:34:25
现在打开这个shell蓝图
00:34:28
现在它的功能是显示出hello
00:34:31
我们来添加一个碰撞体积并进行设置
00:34:33
玩家走进来时便会亮灯
00:34:37
首先要做的当然就是
00:34:39
添加碰撞组件
00:34:42
然后再添加一个光源
00:34:46
我们将在事件图表中
00:34:48
选择盒体碰撞
00:34:51
我们添加一个on overlap 添加一个光源
00:34:56
再连出引线
00:34:57
设置光源颜色
00:35:06
为了便于展示
00:35:08
我们这里就设置一个很奇怪的绿色
00:35:12
然后编译并保存
00:35:15
保存时迁出资产窗口
00:35:18
会再次打开
00:35:19
这时候必须点迁出选中项(Check Out Selected)
00:35:22
我们来把它提交到服务器
00:35:35
现在我们来了解下拥有多个蓝图版本时
00:35:38
应该如何进行区分
00:35:41
我们重新打开蓝图
00:35:44
再次选择碰撞盒体
00:35:47
再添加一个end overlap事件
00:35:51
然后再次设置光源颜色
00:36:01
这次改为红色
00:36:05
好了
00:36:06
编译保存
00:36:09
同样需要迁出
00:36:12
我们来把它迁入 进行提交
00:36:24
好了
00:36:25
进行修改之后
00:36:26
现在对修改进行一些对比
00:36:28
右键点击资产 进入源码管理(Source Control)
00:36:31
前往历史(History)
00:36:33
此处就是完成的修改
00:36:35
从第二个版本开始
00:36:37
右键点击 与上个版本
00:36:39
初始提交(initial commit)进行对比
00:36:42
将出现蓝图对比窗口
00:36:45
左边显示的
00:36:46
便是可能已经被修改的
00:36:49
所有内容
00:36:51
如果是黄色
00:36:52
就代表在上个版本基础上进行了修改
00:36:55
举例而言 如果我打开蓝图
00:36:57
就能看到添加的可变点光源和
00:37:00
可变盒体
00:37:01
原本当中并没有碰撞盒体
00:37:02
或点光源
00:37:04
但这个版本中有所添加
00:37:06
右边的是修改
00:37:08
左边的是原版
00:37:10
在组件(Components)下方可以看到一个默认场景根
00:37:13
而修改版本中
00:37:14
有点光源和盒体碰撞
00:37:17
同样 点开组件(Components)
00:37:18
可以看到我们添加了盒体碰撞节点
00:37:22
还添加了点光源节点
00:37:25
最后 打开事件图表
00:37:27
可以在此看到在事件图表中
00:37:29
进行的所有操作
00:37:30
首先添加点光源变量
00:37:34
然后添加一个set light color节点
00:37:37
最后添加on begin overlap事件
00:37:41
我们移动一下
00:37:42
把画面调大一点
00:37:44
点击右键拖动就可以平移
00:37:47
在蓝图图表中可以进行这类操作
00:37:49
可以看到蓝图之间的差异
00:37:51
如果要修改 可以解锁
00:37:54
只让左侧或者右侧移动
00:37:57
我们还是先锁定上
00:37:59
这样可以很好地
00:38:01
观察不同版本蓝图之间
00:38:02
的差异
00:38:04
在内容浏览器里点击右键
00:38:07
新建一个C++类 设为actor类
00:38:11
我们把命名修改为
00:38:13
Webinar actor
00:38:17
完成创建
00:38:19
创建C++ actor类之后
00:38:24
有几种方式可以把它放到
00:38:28
Perforce服务器上
00:38:29
首先可以使用Visual Studio Perforce插件
00:38:34
要在Visual Studio使用Perforce
00:38:38
先从Perforce.com/downloads下载插件
00:38:40
在页面上向下滚动找到
00:38:45
Helix Plugin for Visual Studio
00:38:47
然后针对您的Visual Studio
00:38:48
下载并安装版本
00:38:51
要进行迁入
00:38:52
点击添加到源码管理(add to source control) 再点击helix core
00:38:55
然后在这里输入信息
00:38:58
然后点击OK
00:39:01
要指定修改列表 选择新建(New)
00:39:04
输入初始提交(initial commit)
00:39:07
另一个选项就是加载
00:39:10
Perforce客户端
00:39:13
选择源目录和sln文件
00:39:17
将它标记添加
00:39:18
我们将新建一个修改列表
00:39:21
同样命名为初始提交(initial commit)
00:39:24
然后在待操作修改列表(pending change lists)中
00:39:26
选择新修改列表 点击右键并提交
00:39:30
迁出 使用
00:39:32
然后迁回C++类的方法
00:39:37
与所有其他资产相同
00:39:38
和其他资产一样
00:39:40
可以使用对比工具来查看
00:39:42
类不同版本之间的差异
00:39:45
好了
00:39:45
Perforce我们差不多就聊到这里
00:39:48
我们已经深入
00:39:50
学习了如何在虚幻引擎中
00:39:51
设置和使用的方法
00:39:54
以便进行源码管理和p4v工具查看
00:39:56
接下来我们看看
00:39:58
如何使用Subversion
00:40:01
在开始聊Subversion的使用和设置之前
00:40:04
我们先讲讲一些
00:40:08
基础的利弊
00:40:09
这些高层面利弊适用于
00:40:11
大多数人的使用情况
00:40:12
但具体也视个人情况而定
00:40:14
每个人的观点也有所不同
00:40:17
先说说优点
00:40:19
Subversion是开源的工具
00:40:23
由Apache免费提供
00:40:25
设置简单 非常易用
00:40:29
它可以兼容一些很棒的图形用户界面
00:40:32
例如Tortoise SVN
00:40:34
它还拥有一些良好的冲突解决方案
00:40:36
及其他功能
00:40:38
但它会保存项目的本地副本
00:40:41
这被称为工作目录
00:40:45
所以使用SVN时
00:40:47
本地硬盘上的文件大小将翻倍
00:40:51
它的合并功能也很有限
00:40:54
它在这方面存在一些问题 性能也比较低
00:40:56
大型团队使用起来也不太方便
00:40:59
也有很多用户抱怨说历史记录查找
00:41:02
速度较慢
00:41:04
如果您倾向使用Git之类的分布版本控制系统
00:41:07
则需要注意
00:41:10
Subversion也是一个集中选择
00:41:12
我们现在来看看如何设置
00:41:14
Subversion服务器
00:41:16
设置方法实际很多
00:41:18
但在本次讲解中
00:41:20
我们使用的是本地网络上的NAS
00:41:22
如果要像我这样使用NAS
00:41:24
就需要安装SVN
00:41:27
Synology NAS带有SVN包
00:41:30
只需要在这里搜索一下
00:41:31
然后安装
00:41:34
安装之后就可以打开SVN服务器
00:41:37
需要点击添加(Add)按钮
00:41:39
新建一个元库
00:41:41
给元库命名
00:41:44
还需要在这里添加用户
00:41:46
我就把自己添加上
00:41:52
然后点OK
00:41:53
现在就已经在NAS上创建了元库
00:41:57
这就是保存项目远程版本的地方
00:42:01
打开备份之后找到访问URL
00:42:05
选择并复制下来
00:42:08
我们要通过它来访问远程元库
00:42:12
除了在NAS上安装SVN包之外
00:42:16
还需要获取客户端
00:42:18
比较好用的是Tortoise SVN
00:42:21
访问TortoiseSVN.net/downloads.HTML
00:42:25
根据自己的Windows版本
00:42:28
下载32位或64位版本
00:42:30
要把当前项目导入到SVN
00:42:34
需选中项目 点击右键
00:42:38
再选择Tortoise SVN
00:42:40
如果Tortoise SVN安装成功
00:42:42
右键菜单里就会出现
00:42:44
Tortoise SVN和SVN Checkout
00:42:46
点击这里的导入(Import)
00:42:48
元库的URL需要和NAS的元库
00:42:52
相匹配
00:42:55
然后点击OK
00:42:57
这里会弹出用户名和密码输入提示
00:43:05
输入之后就会开始把本地项目的
00:43:07
所有文件导入到NAS上的SVN元库
00:43:11
项目保存到NAS上之后
00:43:14
下一步需要创建
00:43:18
项目的工作副本目录
00:43:20
这就是使用Subversion的缺点之一
00:43:22
它会在硬盘上保存
00:43:24
项目的两个副本
00:43:26
我们先关闭导入窗口
00:43:29
要创建本地副本
00:43:31
右键点击要保存的文件夹
00:43:34
然后选择SVN迁出(SVN Checkout)
00:43:36
对于元库URL
00:43:37
我们需要确保它
00:43:39
和NAS元库的路径相一致
00:43:43
之后需要设置迁出目录
00:43:46
这是工作副本的路径
00:43:49
然后点击OK开始下载
00:43:54
工作副本创建完毕之后
00:43:56
进入项目文件夹启动项目
00:43:59
在项目中
00:44:01
我们将按下源码管理(Source Control)按钮
00:44:03
然后选择连接到源码管理(Connect to Source Control)
00:44:05
提供方这里选择Subversion
00:44:08
而元库域里面就粘贴NAS Subversion
00:44:13
地址
00:44:14
然后输入用户名
00:44:16
在标签目录(Labels Directory)中输入tags
00:44:19
这与标记C++文件有关
00:44:22
除非是在执行大量C++编程的
00:44:24
多用户团队环境中进行工作
00:44:27
否则无需进行这个操作
00:44:29
不需要在这里输入密码
00:44:30
在迁入文件时会要求输入密码
00:44:33
我现在提前输入密码
00:44:36
之后就不会再询问了
00:44:37
然后点击接受设置(Accept Settings)
00:44:39
此时源码管理上便会显示绿色图标
00:44:40
我们便知道已经成功连接
00:44:43
Subversion
00:44:45
我们现在来简单了解一下
00:44:46
工作副本目录中可用的
00:44:50
Subversion右键菜单选项
00:44:53
我新建一个文本文件
00:44:56
将它命名为deleteme.txt
00:45:00
然后点击右键 选择Tortoise SVN
00:45:03
就可以把这个文件添加到我的Subversion元库了
00:45:06
或者添加到忽略列表(Add to ignore list)
00:45:08
操作一下看看吧
00:45:10
如果点击Subversion中已有的文件
00:45:13
然后选择Tortoise SVN
00:45:17
就会出现很多选项
00:45:18
有对比的选项
00:45:20
可以很轻松地更新到特定版本
00:45:23
可以在这里进行重命名 删除 锁定
00:45:25
分支等一系列操作
00:45:26
回到虚幻引擎
00:45:28
使用Subversion的方式与使用其他选项相同
00:45:32
那我们就选择这里的渲染助手
00:45:36
将它们设为静态(static)
00:45:38
这里出现了有一个文件需要迁出的提醒
00:45:40
然后就点击迁出
00:45:42
而此时要迁出的文件
00:45:43
就是贴图
00:45:45
开始迁出吧
00:45:48
现在打开Maps文件夹
00:45:50
可以看到贴图不但需要保存
00:45:53
它还有一个迁出标记
00:45:55
我们就直接保存它 然后迁入
00:46:01
还是需要设置修改列表描述
00:46:10
关于其他选项 就右键点击贴图
00:46:12
前往源码管理(Source Control) 历史(History)
00:46:16
已经执行的迁入
00:46:18
就会显示出来
00:46:19
这是我们的第二个版本 写着将球体设为静态
00:46:23
现在进入项目文件夹
00:46:25
找到刚刚修改的资产
00:46:30
在那张贴图上点击右键 选择Tortoise SVN
00:46:33
然后显示日志(Show log)
00:46:35
在日志里可以清楚看到
00:46:36
第二个版本将球体设为静态(made sphere static)
00:46:40
再次右键点击资源
00:46:41
选择Tortoise SVN
00:46:43
这次使用元库浏览器(Repo-browser)
00:46:46
点击后会打开一个
00:46:48
指向NAS上远程元库的浏览器窗口
00:46:52
这里也可以清楚地看到资产
00:46:55
有两个版本
00:46:56
使用SVN 或者说Subversion
00:47:01
其实是很简单的
00:47:02
服务器设置很简单
00:47:05
结合虚幻引擎使用也很简单
00:47:07
我们在介绍Git和Perfoce的时候
00:47:09
就已经讲到了文件迁入流程的大部分内容
00:47:12
所以我们就不讲如何用
00:47:14
Subversion来迁入文件了
00:47:17
直接进入今天的最后一个主题
00:47:21
就是Plastic SCM
00:47:24
我们简单聊聊Plastic SCM
00:47:26
的利弊
00:47:29
您也许会注意到其优点很多 缺点却很少
00:47:34
这是因为Plastic SCM相对来说
00:47:37
是比较新的源码管理系统
00:47:39
所以它的缺点仍然
00:47:42
有待大家的发掘
00:47:43
但我期待能听到今天观看
00:47:45
网络研讨会的各位提出
00:47:48
Plastic SCM的缺点
00:47:51
说到优点 Plastic SCM非常灵活
00:47:54
它提供分布式和集中式模型
00:47:58
甚至还能在两种模型的混合环境下使用
00:48:01
Plastic SCM使用费用会比较高
00:48:04
这算是一个缺点
00:48:06
但其实它也有免费版
00:48:09
您可在本地或云端使用Plastic SCM
00:48:13
同时还提供企业选项
00:48:15
Plastic SCM拥有很好的内置工具
00:48:18
和内置GUI
00:48:19
其实它有两个版本的GUI
00:48:22
一个是针对程序员
00:48:24
Gluon则是针对美术师
00:48:26
它拥有强大的分支和合并系统
00:48:29
甚至可以用来对比图像
00:48:32
和预览图像
00:48:34
我们现在来了解一下
00:48:35
如何安装并使用Plastic SCM
00:48:38
要下载Plastic SCM
00:48:40
首先访问PlasticSCM.com/download
00:48:43
这里有几个选项
00:48:45
有免费的个人社区版
00:48:48
付费的有云端 团队和
00:48:51
企业版
00:48:52
这次我们使用团队版
00:48:54
注意这些版本是需要付费的
00:48:57
在Windows上安装Plastic SCM
00:49:00
GUI有两个选项
00:49:02
可以使用Plastic SCM GUI
00:49:05
它最适用于编程
00:49:08
也可以选择Gluon 适合美术师
00:49:11
和游戏开发使用
00:49:12
我就选择Plastic Gluon
00:49:14
安装Windows的Plastic SCM服务器时
00:49:17
可以选择启动控制台
00:49:20
启动时需要输入
00:49:23
管理员密码
00:49:24
然后点击完成安装(Finish Installation)
00:49:26
进入Plastic控制台后
00:49:28
就能访问服务器的所有设置
00:49:32
以及用户的验证
00:49:34
和保存文件的元库存储系统
00:49:37
等诸多功能
00:49:40
在监控器(Monitor)下面
00:49:42
则可以监控Plastic的性能
00:49:44
在Plastic SCM配置窗口中
00:49:47
我们需要指定服务器位置
00:49:50
我们可以轻松地执行这个操作
00:49:51
只需要点击扫描网络(Scan network)即可在Windows PC上本地执行
00:49:54
这是我用的服务器
00:49:56
然后点击OK
00:49:57
之后需要配置凭证
00:49:59
这就是用户名和密码
00:50:01
然后可以选择元库
00:50:03
点击选择(Choose)能选择默认元库
00:50:06
这次我就直接新建一个
00:50:08
命名为Webinar Plastic SCM
00:50:12
和Perforce一样 我们现在需要
00:50:14
选择工作目录或工作区
00:50:16
点击选择(Choose)按钮
00:50:18
浏览到虚幻引擎项目
00:50:22
然后点击应用(Apply)
00:50:23
现在可以访问工作区了
00:50:26
这就是整个虚幻引擎项目
00:50:29
还可以点击迁入修改(Checkin changes)
00:50:31
这样就能提交已执行的所有修改
00:50:34
大家可能会注意到
00:50:36
这些文件当前都被标记为私有
00:50:38
这是因为它们还尚未被提交到
00:50:41
版本控制服务器
00:50:43
我们现在就进行提交
00:50:45
在迁入内容之前
00:50:47
需要忽略一些文件
00:50:48
即中间和保存文件夹
00:50:52
因此我们需要找到这些文件夹
00:50:54
然后全部选中
00:50:56
全选文件夹之后
00:50:57
就可以点击右键选择隐藏 忽略 添加到忽略列表
00:51:02
可以使用项的命名或完整路径
00:51:05
现在对初始提交进行设置
00:51:07
选择所有项
00:51:09
在留言域里面输入initial commit
00:51:14
然后点击Checkin
00:51:20
可以看到Plastic SCM的迁入速度非常快
00:51:24
当然 这是在本地工作
00:51:26
如果前往修改集(Changesets)
00:51:29
可以看到已添加初始提交
00:51:32
如果无法看到提交 请点击刷新(Refresh)按钮
00:51:35
在虚幻引擎项目的
00:51:37
Plastic工作目录中
00:51:40
点击源码管理(Source Control) 连接到源码管理(Connect to Source Control)
00:51:43
提供方(Provider)一栏选择Plastic SCM
00:51:46
这边的内容基本已经都填好了
00:51:49
只需要点击
00:51:51
接受设置(Accept Settings)按钮就行
00:51:53
然后源码管理上会出现绿色图标
00:51:55
现在来快速进行修改
00:51:58
进入材质并打开铬球体(chrome sphere)
00:52:02
在这里修改颜色并保存
00:52:08
之后会弹出迁出资产(Check Out Assets)窗口
00:52:10
我们需要选中材质
00:52:12
然后点击迁出选中项(Check Out Selected)
00:52:14
现在可以在编辑器窗口中看到
00:52:16
材质上出现了红色小勾
00:52:19
代表它已经被提交到
00:52:21
Plastic SCM服务器
00:52:24
现在我们点击右键选择源码管理(Source Control)
00:52:26
进行迁入
00:52:30
这样我们就完成了Plastic的首次提交
00:52:33
现在回到Plastic Gluon
00:52:35
选择修改集(Changesets)后点击刷新(Refresh)
00:52:38
就能看到新修改将材质设为黑色(Made material black)
00:52:41
在内容(Content)下方有
00:52:43
两个修改集
00:52:45
把它打开 选择材质(Materials)
00:52:47
可以看到M_ChromeSphere Uasset
00:52:50
就是第二个修改集发生的文件
00:52:52
当然 在虚幻引擎中 我们可以点击资产上的源码管理(Source Control)
00:52:55
再点击历史(History) 查看这些相同的修改
00:52:59
可以点击右键 与上个版本进行对比
00:53:02
可看到新版本的RGB颜色
00:53:05
已经变为黑色
00:53:09
而旧版本是白色
00:53:10
好了
00:53:10
Plastic SCM差不多就聊到这里
00:53:13
今天研讨会的也快要结束了
00:53:15
这只是对工具的一些初步讲解
00:53:18
但希望能够帮助大家
00:53:20
上手开始使用
00:53:22
请记住 无论是Git Perforce Subversion
00:53:26
还是Plastic SCM
00:53:30
迁出材质 纹理 C++类和蓝图的方法
00:53:34
均万变不离其宗
00:53:36
全部都是源码管理的选项
00:53:39
如果想了解虚幻引擎
00:53:43
版本控制的更多使用帮助
00:53:45
可以参考这里的链接
00:53:47
我稍微停一下
00:53:50
方便大家记录下来
00:53:51
第一个链接是虚幻引擎教员直播
00:53:55
这项直播在Twitch上进行
00:53:58
很好地为大家展示了一些可用选项
00:54:02
并详细介绍了Perforce的使用方法
00:54:05
这个视频讲得很详细
00:54:07
涉及到的选项比我讲的
00:54:10
更多更广
00:54:11
要记得去看看哦
00:54:13
时间大约是两小时
00:54:15
另外还有虚幻引擎版本控制基础要点
00:54:18
这个视频是2020年初发布的
00:54:22
也是一个两小时左右的视频
00:54:24
可在虚幻引擎YouTube频道中观看
00:54:27
这个视频十分详细地介绍了
00:54:30
虚幻引擎版本控制
00:54:31
以及结合Perforce的使用方法
00:54:33
该视频里甚至还涉及到了
00:54:35
Perforce服务器的设置
00:54:38
最后一个链接是虚幻引擎官方文档
00:54:40
讲解源码管理的使用
00:54:42
用画面中显示的链接
00:54:45
就可以查阅到这篇文档
00:54:46
也可以登陆docs.unrealengine.com/zh-CN
00:54:49
搜索源码管理
00:54:52
文档里不但有源码管理的页面
00:54:55
还有一些子页面 一个讲解Perforce
00:54:57
另一个则讲解Subversion