7.6 KiB
#TODO 远程办公与自动化逻辑 流程尝试
需求与功能整理
杭州部门需求
- 服务器联机构建
- 外包公司场景交付,不构建,效果不一样,构建了会耗费大量时间。
- 外包动画镜头时,因为烘焙时间过长,动画师只能使用Hack手段去打光。
- Shader联机编译
- 外包公司场景交付,不构建,效果不一样,构建了会耗费大量时间。
- 网盘搭建
- 外包公司资产传递(使用百度云、QQ直接传递)
- 公司外/内部的资产共享与版本管理
- 外包上下游的资产有效性检测,使用Lyda工具进行自动的有效性检查
- 使用Win的文件查找功能,找到目标资产比较耗时
- 制作Asset的GameplayTag以及查询工具,以方便其他人调用
- 远程唤醒
- 员工失误将电脑关了使得无法远程控制
- UE4协作
- 多人一起编辑一个虚幻工程
- 制作流程管理
- 使用腾讯文档手动进行管理 卡 的制作进度。问题是这个表格是死的。
- 其他公司会使用CGTeamWork。
- 可以考虑使用飞书的多维表格,飞书开放了开发接口,可以与版本管理软件、CI/CD连用。https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/overview
资产生命周期管理(制片 中卡的状态:缩略图、使用的角色资产、资产改进)- 还需要制作UE4版本管理插件、以及MovieRenderQueue插件
- 插件编写
- UE4使用同一设置导入ABC
- Maya材质导入UE工具
- 知识库编写
DCC中间文件
- fbx
- usd
- Animation Workflows Using Unreal Engine and Maya | Webinar https://www.youtube.com/watch?v=Ddu7TAICAXw
- Omniverse平台系列(MDL材质格式)
- abc
- vdb
- Import VDBs into Unreal Engine 5 https://www.youtube.com/watch?v=iEclyxwCWaY
- 使用OpenVDB流程。
问题解决
-
大部分需求都需要服务器的支持,而且都是需要外网连接到服务器的,所以最好有网络安全专业人帮忙做好服务器安全防护。
-
联机烘焙与构建需要占用大量带宽。最好是在使用光纤来搭建局域网。(已经有一些家庭使用光纤了)
-
一台数据存储服务器,用于存储数据。(硬盘空间大,同时考虑硬盘可替换性,放置数据丢失)
-
一台编译构建服务器。(CPU强劲一些,避免存重要数据,腾讯的编译机器1~2年换一次硬盘)
-
适配光口的网卡、交换机、路由器。
服务器联机构建
通过服务器的强劲CPU性能,对编译工作进行加速。
- 联机烘焙光影:
- 在服务器部署Unreal Swarm,进行联机烘焙。
- 或许可以使用GPULightMass提高速度,但效果会与基于CPU的LightMass不同(是否可以和一些一手包方沟通一下?)。
- 联机编译引擎源码:
- 使用FastBuild编译。(亲自测试过)
- 二分法查找Bug。
- 联机编译Shader:
- 使用FastBuild编译。需要修改FastBuild与引擎的代码。
如果是多地服务器联机编译,卡脖子就是网络带宽问题(上传与下载,目前的企业专线宽带也就1000M)。联机编译能把100M的上传/下载全部吃完,多地服务器没测试过。
网盘搭建
使用Centos(Linux) 作为服务器,Docker来部署。系统可以NextCloud、FileSea、Cloudreve(这款有亲自试过,Windows版还未测试过)。
公司外/内部的资产共享与版本管理
- 版本管理软件
- SVN Git混合:优势是免费。
- Perforce:优势是EPIC提供了很多相关工具。
- CI/CD软件
- JB TeamCity
- Jenkins
建议先使用一台电脑进行流程搭建测试。
同时还需要制作插件,给Asset或者Asset包打上标签,方便后续查找资产以及资产复用。(类似大数据的方法)
流程
假设分支设计为类似:
- GitFlow
- Master分支
- Release分支
- 程序Develop分支
- 美术Develop分支
- Feature分支
- HotFixs分支
引擎/游戏开发:
理想的情况下,程序组员在开发完某个功能后,发送给MergeRequest给组长,组长在审阅完之后将其合并至Develop分支。在合并之前会触发Hook,调用自动测试与打包测试功能。部分错误在Development模式不会出现,但会在Shipping模式出现。通过测试之后系统才会完成合并。
每个Release版本版本,都应该执行打包与自动部署功能,以保证测试组能够及时收到完整测试版本。
上述阶段无论成功与失败都会发送EMail或者调用办公软件(钉钉或者飞书提醒相关组员)。
UE影片制作:
从接到外包开始:
- 使用网盘或者版本管理系统来接收项目
- 如果对方愿意使用版本管理系统(Perforce)推荐使用这个,因为上传前会对数据进行压缩,这样传输下效率会更高,并且方便修改。
- 如果对方不愿意,可以时候我公司自己搭建的网盘。等上传完之后,CI/CD程序将这个包解压并且加入到Perforce流程。每制作到一定程度,再自动压缩放回网盘。
- 使用版本管理的一个好处就是可以来回对比多个版本的效果。(但只限于序列帧,视频的话,只能同时放映进行人肉对比)
- 制作进度控制。版本系统上传数据之后,会发送EMail或者调用办公软件(钉钉或者飞书提醒相关组员)。
CI/CD
- 资产检查
- 检查是否有资源引用丢失,避免反工。(外包方资源没有拷贝全,这个问题在打开对应关卡后才会发现)
- 资产打包测试(UE4的打包测试)
- 游戏与引擎开发最好有一个定时打包测试的功能,这样可以及时发现问题,一些问题只有在打包时才会发现。
- UE的自动测试框架(偏游戏,与CI/CD配合使用,模拟用户操作)
- 蓝图可视化测试
- 序列帧上传到版本管理系统后,服务器开始压片
自动部署
- docker 像素流自动部署
- 开游戏分区
给美术同步引擎
如果使用Perforce,就可以使用官方的UnrealGameSync,来同步引擎与资产。
具体需要考虑其他分公司的情况,对于我们这次二次元项目来说,很合适。
远程唤醒
对员工电脑的BIOS进行设置以允许服务器对其唤醒,再使用华硕路由器里的插件研发一个简单的Web网站就可以实现远程唤醒电脑了。(可以节约较多电费)
https://zhuanlan.zhihu.com/p/302835122
联机协作
多人一起编辑一个虚幻工程
Explore Collaboration with Unreal Engine’s Multi-User Editor | Webinar https://www.youtube.com/watch?v=MPIpOdNmNGE
这个插件潘翔他们在用。或许可以在以下的应用场景中使用:
- 重庆动捕棚,做虚拟拍摄
- 杭州帮忙修改场景、打光。
- 多地区领导与客户同时审片。
网络协作
[教育直播]虚幻引擎里的团队协作 | Collaboration and Teamwork in Unreal Engine(官方字幕) https://www.bilibili.com/video/BV1oZ4y1n7j2?spm_id_from=333.337.search-card.all.click&vd_source=d47c0bb42f9c72fd7d74562185cee290
蓝图Asset合并与Diff
制作流程管理
知识库编写
【Obsidian推荐】论文笔记和日程管理,科研好帮手! https://www.bilibili.com/video/BV1XR4y1w7jp?spm_id_from=333.1007.top_right_bar_window_default_collection.content.click&vd_source=d47c0bb42f9c72fd7d74562185cee290
分享个用Obsidian搭建的小型团队协同工作方案(上-演示与目录设置) https://www.bilibili.com/video/BV1oZ4y1U7b9/ https://zhuanlan.zhihu.com/p/457800106
gitbook,Unity使用这个来制作文档。