虚幻EditorUtilityBlueprint_动作资源批量工具
# 虚幻EditorUtilityBlueprint_动作资源批量工具
本文以批量检测 动画序列资产中某骨骼的 旋转数据为例,简单的介绍 Editor Utility Blueprint 蓝图的使用,此类蓝图可以在 资产上右键时 显示工具 按钮菜单,可以方便的对选中的资产进行修改操作。
# 批量检测武器骨骼轴向
输入骨骼名字,可以批量检测 骨骼的 旋转 Pose数据, 方便检测 武器的朝向。
这里使用 Editor Utility Blueprint 蓝图来制作批量工具。Getting Started with Editor Utility Blueprints | Epic Developer Community (opens new window)
# 创建 功能 工具蓝图
如下图,在项目中创建 Editor Utilities 类型的蓝图。
然后创建 一个 你自己的 功能函数。
# 设置资产类型
接着,在蓝图的 Class Defaults 中设置 你的功能按钮 在什么资产上右键才会显示菜单。
如下图只在 AnimSeq 动作序列资产上右键才会出现。
# 设置二级菜单
设置 功能按钮的 二级菜单 ,如下图 的 Anim 分类。
选中 功能 函数,
在 Details 细节 面板中 设置 Category 分类。
# 设置 使用时 输入信息窗口
本案例中 需要用户手动输入 武器骨骼的名字,是在 用户按下 功能按钮之后弹出的窗口。
只需给你的 功能 函数 添加 输入的变量即可,如下图。
在 Details 细节 面板中, inputs 栏中 创建你需要的用户输入 变量即可。
# 节点解析
因为支持选中多个动画序列资产,所以主体是就是 个遍历选择的动画序列资产流程。
Get Weapon Bone Axis | 是我们的功能函数 |
WeaponBoneName | 是功能函数给用户输入的 骨骼名字变量 |
isEmpty | 检测用户输入的 骨骼名字 是否为空, |
ShowMessageDialog | 如果户输入的 骨骼名字 为空时的警告窗口 |
GetSelectedAsstes | 拿到用户在ContentDrawer资源窗口中选中的资源 |
ForEachLoop | 对选中资产进行循环操作 |
循环内的操作,是对每个资产的遍历操作。
Cast To AnimSequence | 检测资源是不是 AnimSeq 类型 |
GetAnimPoseAtFrame | 拿AnimSeq 动画序列的某帧的 POSE数据,是全部骨骼的POSE |
GetBonePose | 从POSE数据中拿 某个骨骼 的数据 |
GetObjectName | 拿资产的名字 |
后面的就是 字符串操作,简单的 动画名字 和 骨骼旋转数据的字符 拼接,以便后续的弹窗口显示。
# 批量调整蒙太奇混合时间
本节以批量设置 蒙太奇资产中 混合时长 Blendin BlendOut 为例,简单的介绍在 Editor Utility Blueprint 蓝中使用 Python 操作蒙太奇,此 Python 节点可以弥补 相关操作资产缺少的蓝图节点。
如下图 操作,可以批量调整 蒙太奇的混合时长。
完成之后 会提示 具体的修改信息。
总体上非常简单,选择资产遍历,加 python script 节点**。**
蓝图中是 可以拿到 蒙太奇中设置的 混合 时长,缺没有设置 混合的 节点,只能另辟蹊径用 python 操作。
# Execute Python Script 节点
这个节点是执行 python 代码,同时可以将参数传进 python 代码中。
montage | 循环遍历中的 蒙太奇 资源参数 |
in_time | 用户输入的 blend in 时长参数 |
out_time | 用户输入的 blend out 时长参数 |
蒙太奇相关的 python -API
unreal.AnimMontage — Unreal Python 5.4 (Experimental) documentation