快速入门¶
使用 MediaPipe4U 进行动作捕捉,你只需要一下三个步骤:
- 准备运行时组件:创建一个 Unreal Engine 的
Actor放置运行时组件。 - 准备动补角色:准备一个用于展示动画的角色 (一个 Unreal Engine 的
Character)。 - 开始动补:创建一个蓝图来开始运行动作捕捉程序。
如果你已经创建好 Unreal Engine 项目,并下载和安装好 MediaPipe4U 插件,下面的教程只需要至多花你 3~5 分钟,即可快速完成这个过程。
准备运行时组件¶
创建一个 Actor 并在 Actor 中添加 MediaPipeHolisticComponent。
这个例子中 Actor 名称为 Actor_QuickStart_Runtime。
在 Actor_QuickStart_Runtime 中添加如下组件:
MediaPipeHolisticComponent: 动作捕捉算法的核心组件StaticImageSourceComponent: (可选) 可以从单张图片中捕捉动作GStreamerImageSourceComponent: (可选) 可以从视频文件中捕捉动作
完成这一步操作后,添加后 Actor (Actor_QuickStart_Runtime) 看起来应该如下图:

准备动补角色¶
创建动画蓝图¶
创建一个动画蓝图,基类选择 MediaPipeAnimInstace, 使用 UnrealEngine 5 内置的 SK_Mannequin 作为这个动画蓝图的骨骼网格体
这个例子中我们将这个动画蓝图命名为 ABP_Mannequins_MediaPipe。

打开创建好的动画蓝图,在蓝图编辑器中依次加入如下蓝图节点(注意顺序):
MediaPipePoseSolver: 姿态算解节点MediaPipeHandSolver: 手部(手指)算解节点MediaPipeLocationSolver: 位置(位移)算解节点MediaPipeHeadSolver: 头部算解节点

保存并编译这个动画蓝图。
创建 Character¶
创建一个蓝图,基类选择 Character, 这个例子中我们命名为 Character_MediaPipe。

打开 Character_MediaPipe 编辑器,选择类定义 (Class Defaults), 并在细节面板中选择正在网格资产 (Skeletal Mesh) 资产,并将动画蓝图类(Anim Class)设为我们刚才创建的 ABP_Mannequins_MediaPipe。

保存并编译这个 Character 蓝图。
开始动作捕捉¶
创建关卡¶
创建一个关卡 (Level),这个例子中我们命名为 QuickStart。
在关卡中放入刚才创建的蓝图:
Character_MediaPipe: 动补角色 (Character)。Actor_QuickStart_Runtime: 运行时组件 (Actor)。

编辑关卡蓝图¶
现在打开关卡蓝图 (Level Blueprint) ,在蓝图便器中添加如下节点。

保存并编译关卡蓝图。
运行关卡¶
现在运行这个关卡,将会打开摄像头,并从摄像头中捕获人物运动来驱动你的 3D 角色。
从视频文件中捕捉动作¶
调整关卡蓝图, 使用 GStreamerImageSourceComponent 来从视频文件中捕捉动作。

保存并编译关卡蓝图,然后重新运行关卡,将从 C:\my_video.mp4 视频文件中捕获动作,并驱动你的 3D 角色。
从图片文件中捕捉动作¶
调整关卡蓝图, 使用 StaticImageSourceComponent 来从图片文件中捕捉动作。

保存并编译关卡蓝图,然后重新运行关卡,将从 C:\my_picture.jpg 图片文件中捕获动作,并驱动你的 3D 角色。