来自Wiki
跳转至: 导航搜索
Main pageOptiTrack Unreal Engine 4 Plugin


插件概述

该[The http://optitrack.com/downloads/plugins.html OptiTrack虚幻引擎插件]可以让你从动机流实时跟踪数据到虚幻引擎。这包括跟踪在Motive中跟踪的刚体,骨架和HMD的数据。本文重点介绍如何为这些不同的流式工作流设置插件。有关设置动作捕捉系统的基本说明,请参阅入门指南

OptiTrack虚幻引擎插件分为两部分:

  • OptiTrack - NatNet流媒体客户端,让您流从动机刚体和骨骼数据到虚幻引擎。
  • OptiTrack - OculusVR插件,它允许你实现Oculus公司的HMD跟踪到您的场景。

启用插件后,可以通过在虚幻引擎级别设置OptiTrack Client Origin对象,将它们用于连接和接收来自Motive的流数据。

HMD兼容性

  • 从版本1.2.1开始,OptiTrack-OculusVR插件支持Oculus DK2,CV1和Gear VR HMD模型。
  • 可以使用OptiTrack OpenVR驱动程序集成Vive HMD的跟踪。

版本要求

此插件支持以下版本的虚幻引擎,并且还需要相应版本的Oculus运行时,如表中所示。
插件版本 UE版本 Oculus SDK
1.0 UE 4.10 0.8
1.1 UE 4.11 1.3
1.2 UE 4.12 Latest
1.3 UE 4.13 Latest
1.4 UE 4.14 Latest
1.5 UE 4.15 Latest
1.6 UE 4.16 Latest
1.7 UE 4.17 Latest
1.8 UE 4.18.3 Latest
1.9 UE 4.19.2 Latest
1.20 UE 4.20.3 Latest
1.21 UE 4.21.2 Latest

动机数据流设置(服务器)


首先,按照以下说明在Motive中设置数据流设置。一旦配置完成,Motive将把跟踪数据广播到指定的网络接口,客户端应用程序可以在其中接收它们。

流媒体设置

在Motive中打开数据流窗格并设置以下设置:

  • 在顶部启用广播帧数据设置
  • 本地接口下拉菜单中,选择要从中流式传输数据的网络地址。
  • 选择要在流选项下流式传输的所需数据类型:
- 需要流动刚体。
- 骨架流式传输是骨架跟踪的可选项。
- 对于跟踪HMD,建议禁用标记流。
  • 骨架坐标设置为本地
  • 在流式传输骨架时,请为客户端应用程序设置适当的骨骼命名约定。例如,如果角色使用FBX命名约定,则需要将其设置为FBX。.
  • 对于通过wifi网络进行流式传输,强烈建议将传输类型设置为单播

Info2.png

其他提示

  • 为了获得最佳效果,建议在不同的计算机上单独运行Motive和Unreal Engine,这样它们就不会竞争处理资源。
  • 通过wifi网络传输数据时,必须使用单播传输。
  • 为了从编辑模式流式传输数据,必须在Motive中播放捕获录制。
  • 有关数据流的更多信息,请阅读数据流页面。

虚幻引擎设置(客户端)


下一步是配置客户端。按照以下说明安装和配置OptiTrack虚幻引擎插件以接收流式跟踪数据。

启用插件

  1. 下载插件ZIP文件:[1]
  2. 从ZIP文件中提取内容。
  3. 打开提取的OptiTrack文件夹,将OptiTrackNatNetOptiTrackOculusRift文件夹传输到虚幻引擎的插件目录中。默认情况下,此目录位于该C:\Program Files\Epic Games\4.##\Engine\Plugins文件夹中,该文件夹中将有其他插件。只需将OptiTrack插件文件夹复制并粘贴到此目录中即可。
  4. 打开/创建UE4项目。
  5. 在编辑菜单下,单击插件以打开列出所有可用插件的面板。
  6. 浏览到OptiTrack部分并启用OptiTrack - NatNet流媒体客户端。
  7. (可选)对于Oculus HMD用户,浏览到OptiTrack部分并启用OptiTrack - 用于Oculus HMD跟踪的OculusVR插件。启用此功能后,请确保在虚拟现实插件类别下禁用内置的Oculus Rift和StreamVR HMD插件。否则,编辑器可能会崩溃。
  8. 单击应用以提交更改。可能需要重新启动UE4项目。
文件:UEP PluginPanel.png
UE4插件面板列出了已启用的OptiTrack插件。

Info2.png

关于OculusVR插件的注意事项: 使用OptiTrack - OculusVR插件时,请确保在虚拟现实插件类别下禁用内置的Oculus Rift(或Gear VR)和StreamVR HMD插件。否则,编辑器可能会崩溃,或者它们可能最终具有比OptiTrack Oculus插件更高的优先级,并且如果启用,将优先使用它。

设置客户端来源

启用OptiTrack-NatNet流媒体客户端插件后,UE4中将提供OptiTrack Client Origin。此客户端源对象将用作建立与Motive的连接的基线节点。

OptiTrack客户端来源

文件:UEP ModesPanel.png
正确添加插件后,可以在UE4的模式面板下找到客户端原始对象。

所述OptiTrack客户来源类使虚幻引擎(客户端)与Motive,其中该刚性体,骨架,和HMD跟踪数据从流传输到通信。

要添加客户端源,只需将OptiTrack Client Origin从Modes面板拖放到UE4中的级别即可。一旦将客户端原点放置在关卡中,其位置和方向将协调虚幻引擎中Motive的全局原点。换句话说,跟踪数据将根据此客户端原始对象的位置及其定向方式来表示。

Info2.png

Global Origin: OptiTrackClientOrigin的位置和方向都将代表Motive中跟踪量的全局原点。

将虚幻引擎连接到Motive

  1. [Motive] 首先,确保在Motive 的Data Streaming窗格中选中Broadcast Frame Data条目。
  2. [UE4] 在项目中添加并启用插件后,可以从“模式”面板中获取OptiTrack Client Origin类。
  3. [UE4]OptiTrack Client Origin拖放到场景中。
  4. [UE4] 将OptiTrack客户端原点放置到场景中所需的跟踪源。
  5. [UE4]World Outliner面板中选择实例化的OptiTrackClientOrigin对象。
  6. [UE4] 在详细信息面板中,确保选中自动连接设置。这会将客户端源配置为自动搜索网络并连接到Motive。
  7. 现在客户端原点已设置,客户端原点将尝试连接到Motive,并在播放场景时开始接收跟踪数据。

Info2.png

连接到指定的IP地址

如果要连接到特定网络地址上的服务器,可以取消选中自动连接设置,并输入运行UE实例的客户端的IP地址以及数据中指定的服务器的IP地址。Motive中的数据流窗格。您可能需要在命令提示符下运行ipconfig命令以获取客户端的适当IP地址。

Info2.png

高级设置:自动初始化

默认情况下,启用自动初始化功能,并且无论何时播放场景,客户端原点都将自动初始化。但是在需要时,您可以禁用此项并设置项目,以便在触发用户定义的事件时初始化客户端源。例如,如果需要在游戏中动态提供服务器IP地址,则可以禁用此功能并使用蓝图配置客户端来源的初始化方式和时间。这在插件版本1.8及更高版本中可用

可动刚体

OptiTrack刚体作用物

虚幻引擎中的作用物对象可以使用Motive中的刚体跟踪数据进行动画处理。一旦OptiTrack - NatNet流媒体客户端插件在项目启用,OptiTrack刚体组件将可使用。通过将此组件附加到作用物上,您可以根据Motive中刚体的移动为其子作用物设置动画。每个刚体组件都有一个可跟踪ID值,并且Motive中使用匹配的Streaming ID跟踪刚体资产将用于更新虚幻引擎中目标actor的变换。

您还可以在模式面板下使用OptiTrack Rigid Body Actor预制件。这只是一个空白的作用物,只附加了OptiTrack Rigid Body组件,您可以使用它来轻松关联场景中的对象:

设置步骤

  1. [UE4] 从模式面板中,搜索OptiTrack Rigid Body Actor。然后将actor拖放到场景中。
  2. [UE4] 在这个僵硬的身体演员下,附加你想要制作动画的目标演员。请确保目标actor的变换设置为可移动。
  3. [UE4] 将相对位置和旋转设置为此目标actor上的所有零。这个演员应该被列为刚体演员的孩子。
  4. [Motive] 在Motive中,为目标刚体的Streaming ID属性赋值。
  5. [UE4] 确保Motive和OptiTrack Client Origin都设置为流式传输,点击播放,并且附加的actor对象将根据实时流式刚体跟踪数据进行动画处理。

RigidBodyComponent属性

Tracking ID
用于导出附加actor的位置和方向变换的刚体的ID。此ID必须与Motive中相应刚体的Streaming ID匹配。
隐藏无效定义
选中此项后,相应的刚体actor将从关卡中隐藏,直到关联的刚体数据从Motive流出并由插件接收。
禁用低延迟更新
低延迟更新功能允许在渲染最小化延迟之前立即更新刚体位置和方向变换。默认情况下启用此选项。对于调试,您可以检查此设置以禁用此行为。
跟踪起源
这将设置用于接收跟踪数据的特定客户端源。如果未设置此选项,插件将默认为它在场景中找到的第一个客户端原点。
尊重父变换
当此设置为true时,将根据父actor的轴坐标应用Motive的刚体变换数据。默认情况下,此值设置为false,并且将根据客户端原点的枢轴应用所有跟踪数据。

动画骨架

虚幻引擎中的角色可以使用Motive的骨架跟踪数据进行动画处理。有两种不同的方法:骨架骨骼映射和骨架重新定位。

骨骼映射

对于1.9.2以上的插件版本,骨架组件可用于允许通过骨骼映射流式传输骨架。这意味着Motive中每个骨骼骨骼的运动可以投射到角色模型的骨骼上。请注意,这与骨架重定向不同,Motive中的骨段直接映射到角色模型(骨骼映射),而不是被转换为更抽象的Biped模型可用的东西(重定向)。有关设置骨架组件的说明,请参见以下页面:

转到:虚幻引擎骨架流

骨架重定位

骨架跟踪数据也可以通过3D重定向过程集成到虚幻引擎中。这可以通过第三方软件(例如IKinema)来实现,该软件将捕获的3D数据重新定位到角色上以在场景中产生逼真的运动。有关更多信息,请联系我们

Info2.png

适用于UE 4.18的IKinema LiveAction注意事项。

当使用IKinema LiveAction for UE 4.18以及OptiTrack UE插件4.18.3时,您需要将Optitrack UE插件中包含的库文件替换为IKinema LiveAction插件目录中包含的NatNet库文件(NatNetLIb.dll / NatNetLib.lib)。包。这仅适用于此特定版本的LiveAction,因为它在其包中使用了略微不同的NatNet版本。从OptiTrack插件复制相应平台(32位或64位)的LIB和DLL文件,并替换LiveAction插件包中包含的库文件:
  • OptiTrack UE插件库文件存在于以下文件夹中:
C:\Program Files\Epic Games\UE_4.18\Engine\Plugins\UE_4.18\OptiTrack\OptitrackNatNet\ThirdParty\NatNetSDK\lib
  • LiveAction插件库文件存在于以下文件夹中:
C:\Program Files\Epic Games\UE_4.18\Engine\Plugins\LiveAction\Source\ThirdParty\NatNet\NatNetSDK\lib\

绘图标记

在需要时,您还可以将Motive中标记的标记数据绘制到UE中的场景中。在大多数应用程序中,您不必将标记绘制为刚体数据,而是使用骨架数据; 但是,获取场景中生成的标记可能有助于调试目的。要启用标记的绘制:

  • [UE4] 展开OptiTrackClientOrigin组件属性,并将Draw Markers设置为true。
  • [Motive] 数据流中的标签标记设置面板必须启用。


文件:UEP DrawMarker.png
UE中显示的标记标记。

集成HMD


OptiTrack运动捕捉系统可用于跟踪头戴式显示器(HMD),并将跟踪数据集成到虚幻引擎中用于VR应用。有关将HMD跟踪数据集成到虚幻引擎中的说明,请参阅相应页面:

Info2.png

支持的HMD

在撰写本文时,支持以下HMD:

  • HTC Vive
  • HTC Vive Pro
  • Oculus DK2
  • Oculus CV1
  • Oculus GearVR

实时流媒体


连接到客户端对象并配置脚本组件后,播放场景。如果一切都已正确设置,则场景中的资源将根据Motive的跟踪数据进行动画处理。

请注意,一旦场景开始播放,附加插件组件的actor对象将自动定位到Motive坐标系内的位置,并忽略UE4编辑器中给出的初始位置。

无线多人游戏设置


在无线客户端上设置多人游戏时,每个客户端直接连接到跟踪服务器(Motive)和游戏服务器更有利,而不是通过游戏服务器重新广播流式跟踪数据。然后,可以在游戏服务器上处理与跟踪数据交互的任何游戏相关动作,并且该服务器可以向无线客户端发送相应的更新。这允许无线客户端仅接收跟踪数据或更新,而不必发回任何信息; 换句话说,最小化所需的数据传输次数。如果无线客户端正在发送数据,则无线网络上将至少进行两次传输,并且每次通过无线网络传输数据都存在延迟或丢失数据包的风险。

相关页面