yfqiou 发表于 2020-11-25 21:48

Shotgun <-> Unreal Engine

Shotgun 官方推出 Tool Kit (简称 SGTK)和虚幻引擎的互联方案已经一年半了,最近因为公司业务需要开始配置。其间颇遇到了一些奇怪的问题,在Shotgun官方帮助下逐个解决之后把方法记录一下,同时也可以给不熟悉 SGTK 的人了解一下它的设计理念
关于两者的连接,UE的官网上是给出了完整教程的: 设置适用于虚幻引擎的Shotgun项目 ,不过这个教程是从一个干净的环境下做的配置,但我们的需求是要把 UE 和现有的资产制作流程糅合在一起,所以实践上应该把这套配置中的核心部分移到现有的项目配置中。
在开始之间,需要检查相关软件的版本:
UE版本在 4.20 以上SGTK 的 core 版本在 v0.18.8 以上 (版本信息记录在 ./tank/studio/install/core/info.yml)在shotgun上创建一个项目(我的项目命名为tnk),并使用 tk config 2.0 的配置标准 project configuration
配置的步骤:
按照官方教程在 shotgun 的 software 页面上添加 Unreal Engine,在 engine一栏填 tk-unreal
从 git 上下载三个包: tk-unreal , tk-framework-unrealqt , tk-config-unreal并解压
将 tk-unreal 文件夹复制为 ./tank/studio/install/engines/app_store/tk-unreal/v1.0.0 ,这是 shotgun engine,用来从 shotgun 下启动各个制作软件的引擎
将 tk-framework-unrealqt 复制为 ./tank/studio/install/framework/app_store/tk-framework-unrealqt/v1.0.0,这是引擎要调用的图形框架
tk-config-unreal 是官方教程的配置方法,我们将其中有用的部分复制出来
搜索 tk-config-unreal/core/templates.yml 其中 unreal 关键词部分,复制到 ./tank/tnk/config/core/templates.yml 中,注意里面 {sequence}, {shot}, {asset} 这些关键词的使用方法是否要按照当前项目的标准修改。
templates.yml 这里是项目的路径映射,用来将项目制作路径抽象化,比如“资产模型文件”,“镜头maya工作区”,这些路径是按照什么规范使用一些关键词组成的。规范确定以后SGTK体系下的工具,比如创建文件夹,publish工具等等,都可以按照一个统一的规范来做动作,而不需要在每个工具中写一套关于路径的逻辑。
在 ./tank/tnk/config/env/includes/engine_locations.yml 中增加
# Unreal
engines.tk-unreal.location:
type: app_store
name: tk-unreal
version: v1.0.0

在 ./tank/tnk/config/env/includes/frameworks.yml 中增加
# unrealqt - PySide build for Unreal (Windows-only)
tk-framework-unrealqt_v1.x.x:
    location:
      version: v1.0.0
      type: app_store
      name: tk-framework-unrealqt

在 ./tank/tnk/config/env/includes/software_paths.yml 中增加
# Unreal Engine
path.windows.ue4: &amp;#39;C:\Program Files (x86)\Epic Games\Launcher\Engine\Binaries\Win64\UnrealEngineLauncher.exe&amp;#39;

修改这几个文件都是为了让SGTK了解 UE engine 和 framework 以及 UE 安装的位置
修改 ./tank/tnk/config/env/includes/settings/tk-shotgun.yml

tk-shotgun.yml 的配置是为了让 SGTK 的 tk-shotgun engine 知道,在什么地方的菜单增加建立 启动 UE4 的命令。我们拷贝官方这个配置,可以在资产任务页面(asset_step)或者项目页面(project) 上增加 启动UE 命令。

9. 上一步我们可以看到 tk-shotgun engine 是要调用 tk-multi-launchapp 这个 app,所以我们要去./tank/tnk/config/env/includes/settings/tk-multi-launchapp.yml中配置

注意这里&amp;#34;@apps.tk-multi-launchapp.location&amp;#34;是我们第7步上配置的;我们将菜单上的命令显示设置为 &amp;#34;Launch UE4&amp;#34;,现在刷新 shotgun页面,就可以看到命令了



10. 但这时从这里启动了 UE4 也不会有什么新功能给你,以为我们还没有配置UE4 启动后增加的菜单。因为 UE4 中的菜单由 tk-unreal engine控制,所以我们需要将 tk-config-unreal/env/includes/settings/tk-unreal.yml 文件复制为./tank/tnk/config/env/includes/settings/tk-unreal.yml


tk-unreal.yml注意配置中 location: &amp;#34;@engines.tk-unreal.location&amp;#34;就是我们第7步做的配置,可以看到这种配置文件内容的相互引用是 tk-config 2.0 的核心,会在每个地方反复出现

11. 修改 ./tank/tnk/config/env/ 下的 project.yml 和 asset_step.yml

增加红线的内容,这里的 &amp;#34;@settings.tk-unreal.project&amp;#34; 正是引用上一个配置文件中的设置
12. 从上一步中可以看到
tk-multi-loader2: &amp;#34;@settings.tk-multi-loader2.unreal&amp;#34;
tk-multi-shotgunpanel: &amp;#34;@settings.tk-multi-shotgunpanel.unreal&amp;#34;
这样的字眼,这表明启动 UE4后, tk-unreal engine 会调用这 tk-multi-loader2 和 tk-multi-shotgunpanel 这两个 app, 所以我们要去相应的 app 中做配置。
我们把tk-config-unreal/env/includes/settings/ 下两个 app 相关的配置复制到 ./tank/tnk/config/env/includes/settings 对应的 yml 文件中
13. 理论上 SGTK 中的配置就都好了。 我们现在可以在 shotgun 页面上 Launch UE4,启动之后按照官网上的指点,在插件中启动 Python Script 和 Shotgun,重启 UE4引擎
14. UE4 中 shotgun 工具如下,使用方法和其他 DCC中的 shotgun 工具是一样的
本来是想在写完以后顺遍对 SGTK 做个点评的,但这一篇已经写得够多,而且写在一起估计不会被人看到 -- 正常人看见这么枯燥的教程估计早就闪了。
能坚持看到这一行的,都是真的勇士。
页: [1]
查看完整版本: Shotgun <-> Unreal Engine