ue4 命名插件_【Perception Neuron Pro】UE4数据实时与BVH重定向

bae8ae69621074044539cbb8c986d349.png

PerceptionNeuron 插件提供了将Noitom 动捕设备PerceptionNeuron 发出的动捕数据传入UnrealEngine 来驱动相应的角色运动的功能。UnrealEngine可以使用两种数据源的动捕数据:

1)由Axis Neuron发出的动捕数据,其中包括Axis Neuron的实时动捕数据和Axis Neuron 播放的预录制动捕数据;

2)预先导入引擎的 BVH asset。

数据导入到UE4(非实时)

下面将详细地介绍 PerceptionNeuron 插件的具体使用方法。

创建测试工程

首先我们新建一个测试工程,为了简单起见我们建立一个基于蓝图的空白工程”MyProject”。

1c41ce4f26a6345432a5aa6229a27eb3.png

创建完测试工程之后我们关闭项目,将PN Pro的UE4对应版本插件放到工程根目录下的Plugins 文件夹(没有的话就自行创建)。重新启动编辑器,打开测试工程,打开菜单 Editor -Plugins 查看 PerceptionNeuron 插件是否安装成功并且已经随编辑器启动,如下图:

767dfb6cc9071c55f143518ea4c3e9d6.png

创建 Animation Blueprint

现在我们可以导入预先制作好的带有骨骼的模型了。我们导入一个 FBX,在导入配置中一定要选中”Skeleton Mesh”

7c19cd9f493b16fe7b10a21042b1b4fb.png
  • 现在在Content Browser中我们可以看到已经成功导入资源库的Avatar 和 Avatar_Skeleton,接下来在Content Browser中右键点击模型,基于模型创建一个动画蓝图。

fa63cddf83b3e025cb5524414deb43fc.png

现在在 Content Browser 中我们可以看到刚刚创建的 Avatar_Skeleton_AnimBlueprint,用鼠标左键双击我们刚刚创建的Animation Blueprint来对其进行编辑。在Anim Graph中点击鼠标右键来创建一个NewPoseCalc Node,将NewPoseCalc Node连接到Final Animation Pose Node上面。当然你也可以根据自己的需求对 NewPoseCalc Node 的输出做一些处理然后将最终结果输入Final Animation Pose Node,编译 Anim Graph。

9d9379737f36c1e2d86995b24e0fdb3c.png

Skeleton Retargeting PerceptionNeuron 插件定义了一套标准的骨骼结构。

标准骨骼结构由 59 根骨骼构成:

78c7816d6ef27b27d81ee55814f94292.png

04df192492608dc23e67d0cd0eda3d02.png

如果导入的骨骼不是标准骨骼那么你可能需要做一次Skeleton Ragergeting以保证最终动捕数据驱动的角色的动作能够符合预期。在Anim Graph中选中 刚刚创建的NewPoseCalc Node,在Details窗口中会显示Skeleton Ragergeting相关的编辑选项,如下图:

88e79843de837b362503097b0898a485.png

我们可以展开Bone Map项来编辑Skeleton Ragergeting,左边一列是 PerceptionNeuron 插件定义的标准骨骼名字,右边一列是我们自定义的Skeleton的骨骼名字,如果导入的 Skeleton 的骨骼名字完全符合 PerceptionNeuron 插件定义的标准骨骼名字,那么左右两列的骨骼名字会自动映射正确。如果自定义的 Skeleton 中包含标准骨骼中没有 定义的骨骼名字,那么插件将会自动使用 Invalid 映射此骨骼名字,并且此骨骼在动画播放的过程中会保持相对父骨骼静止。

412ae0f6a6e8c51329789bcdf9a204c3.png

我们可以通过点击左右两列中的骨骼名字来调整Skeleton Ragergeting的骨骼映射关系,Skeleton中每一根骨骼同时被多根PN骨骼驱动是没有意义的,所以右列中每一根骨骼的名字必须是唯一的。Bone Map中的骨骼数量可能要比实际导入的骨骼数量多,这是由于UE 将Mesh也识别成了骨骼的原因,也许这是一个 bug。必要的时候我们可以删除左列中名字为Invalid的骨骼映射来提高计算效率。我们可以手动添加和删除一对骨骼名字映射:

84807890b7b1a8f7c61385484f0ba04e.png

创建 Actor Blueprint

创建一个Blueprint Class,后续我们会使用这个Blueprint Class创建用于测试的角色。简单起见我们选择Actor作为Parent Class,并将新建Actor Blueprint命名为”AvatarBlueprint”。

90151746a0487f7b020d8575408cd95a.png

鼠标左键双击AvatarBlueprint打开BP编辑器,开始编辑AvatarBlueprint。点击Add Component添加一个PerceptionNeuron Component组件,再次点击Add Component添加一个SkeletalMesh Component组件:

fe546c91845fff1e16b05e65bb5ba356.png

点击新添加的SkeletalMesh Component,在右侧的Details窗口中设置SkeletalMesh Component属性:

8e626a9ace288a958a61d1549ebbff28.png

编译AvatarBlueprint并关闭BP编辑器。创建Actor Instance并设置数据源,拖拽新建的 AvatarBlueprint到场景中来创建一个Actor:

4be0c9d6e946afa52a4e18d3b90bc629.png

选中场景中刚刚创建的Actor,然后在Details窗口中选中Actor的PerceptionNeuron Component,我们会在Details中找到Perception Neuron下的属性Avatar Name和BVH Asset:

da465fc06aa23d6fd345a544d245a91e.png

Avater Name当Actor使用网络数据源驱动动画的时候用于标识Actor使用的网络数据流的 名称(Axis Neuron发出的每个Avatar的动捕数据都使用一个Avatar Name来标识,我们可以使用Avatar Name属性来区分发给不同角色的数据)。当属性BVH Asset被赋值的时候 Avatar Name失效,Actor动画使用BVH asset数据源驱动。

BVH Asset

BVH Asset 属性为一个BVH asset的引用。BVH asset需要我们使用BVH动捕数据文件来创建。当属性BVH Asset被赋值的时候Avatar ID失效,Actor动画使用BVH asset数据源驱动。

BVH asset数据源

BVH(Biovision Hierarchy)是Biovision开发的一种用于存储动捕数据的文件格式。我们可以将BVH格式数据文件导入UnrealEngine来生成 BVH asset。BVH asset中存储着 BVH 文件中保存的动捕数据,将BVH asset作为数据源设置给Actor,Actor会自动读取其中的动捕数据来驱动动画。

导入BVH文件

我们可以通过三种方式来导入 BVH 格式数据文件:

1)将BVH格式数据文件直接放到工程目录下的Content目录下,UnrealEngine会自动检测 Content目录中文件发生改变,自动导入BVH格式数据文件来生成BVH asset;

2)直接拖动 BVH 格式数据文件到Content Browser窗口;

3)Content Browser窗口空白处点击鼠标右键,在右键菜单中选择Miscellaneous—BVH。

ada8e745a39ed7c818bacf38938c04a6.png

现在我们的BVH asset就创建成功了,我们可以将这个BVH asset作为数据源指定给Actor使用:

c12c0262870bbf03a3ad1aa221d51dd4.png

运行项目,此时模型可以跟随BVH文件运动了。

数据实时同步到UE4

使用网络数据源的时候我们需要先创建 Perception Neuron Manager 和 Perception Neuron Spawner

Perception Neuron Manager

负责创建网络通信环境和处理接收的动捕数据

Perception Neuron Spawner

用于指定创建 Actor 使用的 Class 类型、 Actor 出生的初始方位、Actor 使用的网络数据流 Name 等信息。

22434dacedec39e791b06379fa0fdf47.png

我们首先放置一个Perception Neuron Manager到场景中,设置Perception Neuron Manager 的 Network属性

  1. IP 是不可编辑的,插件内部会自动获取 Host IP 并显示;
  2. 如果使用UDP协议, Network 中要勾选Use UDP复选框,并将Port 设置为 Axis Studio 接收动捕数据使用的端口号;
  3. 此处设置必须与用来同步动捕数据的Axis Studio软件设置一致。

da46b245726a96b38c1305c910822445.png

创建一个Perception Neuron Spawner用于指定 Actor 出生的初始方位,Avatar Name必须与Studio软件设置一致,Dynamic Actor Class是我们刚才创建的Actor蓝图类,Spawer会在初始位置生成我们引用的蓝图类。

f0dbdccc1671eef1800fe90c09ed7d07.png

运行项目,此时可以看到UE4中的模型与动捕软件的动作完全一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值