BlueRoseNote/03-UnrealEngine/流程管理与部署/远程办公与自动化逻辑.md
2023-06-29 11:55:02 +08:00

7.6 KiB
Raw Permalink Blame History

#TODO 远程办公与自动化逻辑 流程尝试

需求与功能整理

杭州部门需求

  • 服务器联机构建
    • 外包公司场景交付,不构建,效果不一样,构建了会耗费大量时间。
      • 外包动画镜头时因为烘焙时间过长动画师只能使用Hack手段去打光。
    • Shader联机编译
  • 网盘搭建
    • 外包公司资产传递使用百度云、QQ直接传递
  • 公司外/内部的资产共享与版本管理
    • 外包上下游的资产有效性检测,使用Lyda工具进行自动的有效性检查
    • 使用Win的文件查找功能找到目标资产比较耗时
    • 制作Asset的GameplayTag以及查询工具以方便其他人调用
  • 远程唤醒
    • 员工失误将电脑关了使得无法远程控制
  • UE4协作
    • 多人一起编辑一个虚幻工程
  • 制作流程管理
  • 插件编写
    • UE4使用同一设置导入ABC
    • Maya材质导入UE工具
  • 知识库编写

DCC中间文件

问题解决

  • 大部分需求都需要服务器的支持,而且都是需要外网连接到服务器的,所以最好有网络安全专业人帮忙做好服务器安全防护。

  • 联机烘焙与构建需要占用大量带宽。最好是在使用光纤来搭建局域网。(已经有一些家庭使用光纤了)

  • 一台数据存储服务器,用于存储数据。(硬盘空间大,同时考虑硬盘可替换性,放置数据丢失)

  • 一台编译构建服务器。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 Engines Multi-User Editor | Webinar https://www.youtube.com/watch?v=MPIpOdNmNGE

这个插件潘翔他们在用。或许可以在以下的应用场景中使用:

  1. 重庆动捕棚,做虚拟拍摄
  2. 杭州帮忙修改场景、打光。
  3. 多地区领导与客户同时审片。

网络协作

[教育直播]虚幻引擎里的团队协作 | 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

gitbookUnity使用这个来制作文档。

任务安排