Perforce使用教程
本文首发于知乎专栏MACK的游戏开发笔记,欢迎各位关注。
简介
Perforce是一款非常优秀的商业化版本管理工具,特别是对美术资源比较友好,更新速度快安全。
安装
- 首先安装Windows版的P4,双击安装包选择路径开始安装,这里的Server和Name可以先不填
- 启动P4登录输入服务器地址,输入分配的P4账号,自己创建一个新的Workspace
- 如果客户端让你确认证书指纹,请信任该指纹
- 重要:如果客户端让你选择编码方式,请选择UTF8编码
- 重要:修改Line ending:菜单栏中依次选择Connection–>Edit Current Workspace–>Advanced,然后选择UNIX
- 如果有多个库,点击Connection->Open Connection可以弹出设置服务器,用户,WorkSpace的窗口
或者点击Connection->Open Recent 可以直接切换打开过的服务器,用户,WorkSpace的配置
Workspace
Workspace可以理解为,depot到本地的一个映射,对应本地的一个目录。例如:
开发的过程中可以有多个Workspace(例如一个用来开发,一个用来更新验证保证提交没有错误),但一般只推荐有一个Workspace
- WorkSpace可以切换,通过Connection->Switch To Workspace或者,如下图:
选择列表中的Workspace条目,双击切换,按DEL按键可以删除Workspace。出现问题的时候先确认下Worksapce是否正确。
- WorkSpace可以编辑,通过Connection->Switch To Workspace,如下图:
视图
目录区分为Depot标签页表示服务器上存储的文件目录结构,和Workspace表示本地存储的文件目录结构。
- 带感叹号的文件表示本地和服务器不一致,一般这种情况请先更新P4
- 文件目录里没有任何标记的文件是说明服务器上没有的:
- 红色问号的表示和服务器上不一样,有冲突的。这种文件不能直接合入:
- refresh某些情况下某些修改不能实时地在p4v中跟新,可以在view->refreash all。也可以在任意文件,目录或changelist右键中找到refresh相关的操作:
获取
- 在需要获取资源的目录上右键选择Get Latest Revision,这样可以拉取服务器最新的变更,【重要:每次提交前必须拉取一次】:
- 因为Get Latest Revision是拉取服务器最新变更,但是有时候我们希望覆盖本地的资源,或者是P4出了一些问题导致一些资源没有更新到。这时候我们可以选择Get Revision,然后在弹出的窗口勾选Force Operation,再点击Get Revision的按钮,强制从服务器上拉取最新的资源。这样服务器会把该目录下的资源强制拉取一遍,时间会比较长:
- 另外也可以对指定版本获取,一般用于回退到某个版本:
Submit
P4的提交是以Changelist为单位,所有修改过的文件会放在一个Changelist里。如下图
对要修改的文件,在文件上右键选择CheckOut,会弹出选择Changelist的窗口,可以放在默认或者新建的Changelist下:
- 对要删除的文件可以右键选择Mark for Delete,最好在depot窗口操作,【重要:删除的时候别忘了删除meta文件】,特别是目录也有meta:
- 对新增的文件,需要到WorkSpace视图下选择Mark for Add:
- Reconcile。P4提供一个便捷的方式可以直接对一个目录进行比较,找到和服务器上不同的文件,包括修改,删除,新增。找出之后会自动添加到Changelist中,自动完成上面三种操作:
Revert
当有文件不想提交的时候可以选择revert,revert之后会放弃本地修改,从服务器重新拉取最新的文件。
- 选中文件或者Changelist之后右键,在弹出菜单里可以选择Revert If Unchanged或者Revert。Revert If Unchanged是当本地文件和服务器一样没修改的时候会回退。Revert则是强行回滚,放弃本地修改。如果选择的是Changelist,则会对Changelist下的所有问题做Revert操作。
另外也可以通过工具栏的Revert按钮进行回退。
History
有多种方法可以看到目录或者文件的历史,可以看到在什么时候谁传了什么内容。可以比较修改了什么,也可以直接获得历史版本。【重要:每次提交前必须先对比一下本地文件和服务器文件的差异】。
- 在Changelist的文件上右键,选择File History,会弹出文件历史窗口:
然后可以对历史做比较,可以比较任意两个历史版本,也可以拿当前本地文件和服务器历史版本比较等等:
- 还有一种就是选中目录区的文件夹或者文件上,然后在信息区切到History的标签页上:
Resolve
当本地文件和服务器有冲突时文件上会有红色的问号。这时候我们必须首先解决冲突。
- 在冲突文件上右键选择Resolve:
然后弹出菜单中有四种选项,Accept Source,Accept Target,Accept Meged,Run Merge Tool。如果希望以自己的为准强行合并,就选择Accept Target一般来说美术资源多选择这个,如果希望以服务器为准就选择Accept Source,Target还是Source可以通过上面显示的信息确认。如果希望让工具自动合并本地和服务器,就选择Accept Merged。如果选择了Run Merged Tool就会弹出Merge工具,人工进行合并:
Shelve
当有些文件本地修改了,希望让别人获得或者先不想上传自己缓存一下,可以使用Shelve功能。这样这些文件会传到服务器上但是不会进版本,别人或者自己也可以从服务器上再拉下来。
- 右键选中的文件选择Shelve,也可以选中整个Changelist然后右键Shelve Files,成功之后会再Shelved Files有文件列表:
- 当想获得Shelve文件时,可以把Changelist的过滤关闭,选择希望Unshelve的Changelist,然后Unshelve:
sRGB图转到线性空间(只能接近设计效果,如果带有 Alpha,和设计效果误差更大。)
将gamma1.0.icc配置文件存储在C:/Windows/System32/spool/drivers/color目录。
编辑->转换为配置文件,选择gamma1.0
转换后的图片可以看到源配置变为gamma1.0
美术资源需要在gamma空间制作时,还原颜色设置为sRGB。
颜色设置为线性空间(gamma1.0)时,勾选视图->校样设置->显示器,可以看到存储后图像经过显示器校正后的颜色
保存时不勾选ICC配置文件,存储的图片在文件夹中显示效果与PS中进行校样颜色后,颜色一致;勾选则和校样颜色前颜色一致。
Icc颜色配置文件制作方法
编辑->颜色设置->RGB->自定RGB
修改名称和灰度系数
3.存储icc文件
批处理转换图片到线性空间
窗口->动作,新建动作
执行一遍sRGB到线性空间的操作
记录这次操作
选择 文件->自动->批处理
选择需要修改的源文件夹和修改后保存的文件夹
Linear流程制作贴图
Photoshop的图层和图层之间做混合的时候,每个上层图层都经过了伽马变换,然后才做了混合,这个方式是设置中的默认值。
使用线性流程时,选择“用灰度系数混合RGB颜色”,参数设置为1,这样图层直接就是直接混合的结果。
1.颜色设置为gamma1.0
2.勾选用灰度系数混合RGB颜色,值为1.0
3.存储时勾选ICC配置文件gamma1.0
4.Unity中设置为Linear color space,图片不勾选sRGB
这样,图片在PS中,保存的文件夹中,以及Unity中效果是一致的。
PS
- 【重要:一定要不要漏了传meta文件!】如果漏传了meta文件,应该把本地对应的资源文件和meta一起删除,提交服务器,然后再重新上传一遍。并且之前的引用要重新指定一遍。
- 每次登陆需要确认Workspace正确