Harmony Gaming SDK 2022 版本说明

从 Harmony 导出

功能 描述
新增导出器选项

为使游戏编辑器提供更好的支持,Export to Sprite Sheet(导出到Sprite Sheet)界面增加了一些功能,可在导出文件打包更多信息。

新选项

  • Palette selection(色板选择)选项卡 - 此功能可排除部分不希望导出文件包含的色板,涵盖所有可能的调色板变体,使角色呈现各种颜色

  • Encode to TBG(编码成 TBG) - 将 XML 文件压缩为 TBG 自定义文件格式,使之可以通过 Unity Custom Importer 导入到 Unity。 文件导入后视为 Unity 的资产,包含纹理、精灵和动画等 sub-asset。 这样可以改进角色数据创建与移动的人体工程学,以及检查源代码管理的变更。

  • “Save and Export”(保存并导出)性能提升 - 导出过程时间通常只有 Harmony 21 的 1/3,同时适用于 XML 文件夹和 .tbg 文件。

“bake_”组

目前有很多节点无法在 Game SDK 中渲染。 新增功能可在导出加入这些节点的值,将绘图及对其有影响的节点分为带“bake_”前缀的新组(如 bake_hips)。

 

任何以“bake_”前缀命名的组都将进行分析,用于效果、移动和绘图替换的特殊动画帧。 导出到 spritesheet 时,该组中的每个特殊帧都作为精灵导出。 如果时间轴有许多帧在该组内没有任何变化,在 Sprite Sheet 内将视为同一导出精灵

在 Unity 导入 TBG 文件

功能 描述
Automatic Importing Process

Unity 会自动检测 TBG 文件的更改,并使用自定义导入器重新导入。 然后可以将该文件作为 prefab 拖到场景中,类似 FBX 文件。

纹理、精灵、动画和 TbgStore 资产将作为主 TBG prefab 资产下的 sub-asset 生成并提供。 这些资产无需再源代码管理中单独管理,只放在 Unity 的库缓存中。 AnimatorController 和 SpriteSheet 资产无法作为 sub-asset 运行,因此在角色旁边生成。

Importer Settings

“导入”流程可在 inspector view 的设置中修改。

动画设置

  • Discretization Step - 精灵在进行骨骼变形时分割成的列数/行数。

  • Framerate - 动画运行时每秒的帧数。

  • Stepped - 创作的帧间禁用插值。

  • Create Animator Controller - 创作的帧间禁用插值。

  • AnimatorController - 提供一个在特定条件下动画相互过渡的工作区。 可以在游戏脚本中引用以在游戏过程中触发动画。

  • 保留复制剪辑的曲线:从 .tbg 文件中的剪辑 sub-asset 复制(并在 AnimatorController 中引用)的曲线将被更新的 .tbg 文件的新数据覆盖。

材质设置

  • Shader - 用于渲染 prefab 内的所有精灵

  • SRGBTexture - 从纹理映射伽玛颜色空间到线性颜色空间渲染

  • FilterMode - 纹理的相邻像素如何插值

  • Mipmap 启用 - 生成较低分辨率的纹理,增加渲染距离

  • CreateSpriteAtlas - 如果下方未引用 SpriteAtlas,将在项目中、.tbg 文件旁边新建一个 SpriteAtlas 资产

  • SpriteAtlas - .tbg 文件中的所有精灵都可以添加到 SpriteAtlas 中,完成后可将多个新的 SpriteRenderer 组合成一个绘制调用,提高渲染性能

在 Unity 渲染 TBG 文件

功能 描述
Prefab Hierarchy

Unity 中生成的 prefab 的结构应与 Harmony 时间轴中设置的分级结构相匹配。 添加到输出节点的 Harmony 的合成的节点视图结构,导出期间会被排除。

新 GameObjects 可以附加到以上任意子定位钉变换。 因此允许附加程序设备。

此外,运行时可启用或禁用任意 GameObject,因此角色的可选视觉添加可以禁用,需要时再启用。 该层级运行时也可完全分解、重组或复制。 因而可以选择爆开角色或将某些图画作为抛射体射击。

TBG Renderer 设置 分辨率、色板、材质、颜色和蒙皮可通过检查器和 GameObject 的自定义脚本编辑。 SpriteRenderer 的材质和颜色也可以每个绘图单独设置,因此可以更改角色配饰的颜色,或通过自定义 shader 为某些绘图添加特殊特效。
2D Animation Package 集成 使用 Unity 的“2D Animation Package”,在 Harmony 中由游戏骨骼变形的绘图在 Unity 中将转换为 SpriteSkin 骨骼。 此包为 SpriteRenderer 提供多线程高性能网格变形的支持,并提供在 Scene view 中移动骨骼的 UI 图柄。 可以使用 Unity 的“IK Manager 2D”对骨骼链制作程序动画,在完成动画 Update(更新)步骤后混合瞄准、倾斜、摇晃、挥动等特效。
动画

所有动画数据均从 Harmony 逐定位钉导出,因此所有中间旋转和缩放都在 Unity 的动画窗口中展示。 动画关联的 AnimationClip 资产从 TBG sub-asset 复制到项目中的新资产后,动画可以修改,从而允许在 Unity 中添加事件、提供额外曲线。

AnimationClip 通过 AnimatorController 选择,提供动画过渡方法,可以直接过渡,也可以通过平稳混合定位钉变换来过渡。

Shader Graph 集成 SDK 中包含兼容的 shader graph shader,可复制和修改,形成简便界面,为角色添加自定义的游戏特定视觉特效。

HarmonyRenderer 改进(XML 文件夹)

功能 描述
HarmonyProject 预览 在 Unity Asset 文件夹中选择角色后,preview window 会显示角色的预览。 Preview window 播放角色动画的预览,在其中就可以更改蒙皮,无需将角色拖到 scene view 中。

修复

此次版本的 Harmony Game SDK 修复了以下问题:

HarmonyRenderer

  • 以前更新锚点变换时泄漏内存的锚点。 更新 HarmonyRenderer C++ 插件后解决了此问题。

  • HarmonyRenderers 渲染性能提升。 现在从 HarmonyRenderer C++ 插件接收新网格,这些插件可以通过更新的 Unity 网格生成功能直接传递到 Unity 的 C++ 后端。 大大减少了 Harmony Renderer 角色动画的更新时间,允许屏幕同时显示更多角色。