来自Wiki
跳转至: 导航搜索
Main PageMotive DocumentationData Streaming


Motive中的数据流窗格

Motive提供多种选项,可以实时将跟踪数据流式传输到外部应用程序。流媒体插件可用于Autodesk Motion Builder,MotionMonitor,Visual3D,虚幻引擎4,3ds Max,Maya(VCS),VRPN和trackd,它们可以从OptiTrack网站下载。对于其他流媒体选项,NatNet SDK使用户能够构建自定义客户端以接收捕获数据。所有列出的流媒体选项都不需要单独的许可证。常见的动作捕捉应用程序依赖于实时跟踪,而OptiTrack系统旨在以极低的延迟提供数据,即使在流式传输到第三方管道时也是如此。此页面介绍如何通过选定的服务器网络配置Motive以广播帧数据。有关特定 流协议 的详细说明 包含在相应插件或SDK附带的PDF文档中。

阅读数据流窗格页面,了解每个设置的说明。

NaturalPoint数据流论坛: OptiTrack数据流


在Motive中流式传输


广播帧数据设置为true以进行流式传输。
  • 在Motive中打开 数据流窗格
  • 选择流数据的网络接口地址。
  • 选择要在流选项下流式传输的所需数据类型。
  • 在流式传输骨架时,请为客户端应用程序设置适当的骨骼命名约定。
  • 检查顶部的广播帧数据
  • 配置流设置并从客户端应用程序中指定相应的IP地址
  • 流实时或回放捕获

流式IP地址


为流数据选择网络适配器(接口,IP地址)非常重要。大多数Motive主机PC都有多个网络适配器 - 一个用于摄像机网络,一个(或多个)用于局域网(LAN)。Motive将仅流过选定的适配器(接口)。使用Motive中的 数据流窗格 选择所需的界面。接口可以是局域网(LAN),也可以是同一台机器(localhost,本地环回)。如果服务器(Motive)和客户端应用程序在同一台计算机上运行,​​请将网络接口设置为本地环回地址(127.0.0.1)。通过LAN进行流式传输时,请选择连接到LAN的网络适配器的IP地址。这将是客户端应用程序用于连接Motive的相同地址。

  • MotionBuilder中的骨架设备窗格。
  • 使用NatNet SDK创建的示例客户端应用程序。
  • 使用NatNet SDK创建的.NET示例示例。

Info2.png

防火墙或防病毒软件可以阻止网络流量,因此确保禁用或配置这些应用程序以允许访问服务器(Motive)和客户端应用程序非常重要。

流式选项


在开始将数据广播到选定的网络接口之前,请定义要流式传输的数据类型。在流式选项下,您可以设置包含或排除特定数据类型和语法的设置。仅将必要条件设置为true。对于大多数应用程序,默认设置是合适的。

请参阅: 数据流窗格

骨骼命名约定


在流式传输骨架数据时,骨骼命名约定会在数据流出时为每个段格式化注释。应配置适当的约定以允许客户端应用程序正确识别段。例如,在流式传输到Autodesk管道时,命名约定应设置为FBX。

坐标系统约定


Motive(1.7+)使用右手向上的坐标系。但是,客户端应用程序中使用的坐标系统可能并不总是与Motive中使用的约定一致。在这种情况下,需要将流数据中的坐标系修改为兼容的约定。对于具有不同地平面定义的客户端应用程序,可以在“高级网络设置”下更改“上行轴”。为了与左手坐标系兼容,最简单的方法是在校准期间定义地平面时将捕获体在Y轴上旋转180度。


  • Motive1.7Coordinate-LFrameImplications.png
  • Calib Square.jpg

NatNet流


NatNet是一种客户端/服务器网络协议,允许实时通过网络发送和接收数据。它利用UDP以及单播或多播通信,将重建的3D数据,刚体数据和骨架数据从OptiTrack系统集成到客户端应用程序。在API中,包含用于与OptiTrack服务器应用程序通信的类,用于构建客户端协议。使用NatNet应用程序接口中提供的工具,可以在各种应用程序平台中使用捕获数据。有关使用NatNet及其API参考的更多信息,请参阅NatNet用户指南


Stream Nat.png


Info2.png

旋转约定

NatNet以四元数形式传输旋转数据。如果希望在欧拉约定(俯仰 - 偏转 - 滚动)中呈现旋转数据,则需要将四元数数据转换为欧拉角。在提供的NatNet SDK示例中,SampleClient3D应用程序将四元数旋转转换为欧拉旋转以显示在应用程序界面中。转换的示例算法在NATUtils.cpp文件中编写脚本。请参阅NATUtils.cpp文件和SampleClient3D.cpp文件,以了解如何将四元数转换为欧拉约定。

远程触发


如果需要,Motive中的记录可以通过UDP通信协议向客户端应用程序发送或接收 NatNet 命令或XML广播消息,从而控制或由其他远程应用程序控制。这使客户端应用程序能够触发Motive,反之亦然。建议使用 NatNet 命令,因为它们不仅更强大,而且还提供其他控制功能。

录制开始和停止命令也可以通过XML数据包传输。通过XML消息触发时,“ 高级网络设置 ”下的“ 远程触发”设置必须设置为true。为了使Motive或客户端接收数据包,必须通过触发UDP端口发送XML消息。在高级网络设置下,触发端口被指定为定义的命令端口的两个增量(2+)(默认值:1510),默认为1512.最后,XML消息必须严格遵循相应的语法:

XML 触发端口: 命令端口(高级网络设置)+ 2.默认为1512(1510 + 2)。
提示: 在NatNet SDK示例包中,有一些简单的应用程序(BroadcastSample.cpp(C ++)和NatCap(C#)),它们演示了Motive中XML远程触发器的示例用法。


启动/停止触发器数据包的XML语法

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<CaptureStart>
    <Name VALUE="RemoteTriggerTest_take01"/>
    <SessionName VALUE="SessionName" />
    <Notes VALUE="Take notes goes here if any"/>
    <Assets VALUE="skel1, skel2, sword" />
    <Description VALUE="" />
    <DatabasePath VALUE="S:/shared/testfolder/"/>
    <TimeCode VALUE="00:00:00:00"/>
    <PacketID VALUE="0"/>
    <HostName VALUE="optional host name" />
    <ProcessID VALUE="optional process id" />
</CaptureStart>

<?xml version="1.0" encoding="utf-8"?>
<CaptureStop>
    <Name VALUE="TakeName" />
    <Notes VALUE="Take notes go here if any." />
    <Assets VALUE="skel1, skel2, sword" />
    <TimeCode VALUE="00:00:00:00" />
    <HostName VALUE="optional host name" />
    <ProcessID VALUE="optional process id" />
</CaptureStop>
  • 捕获起始数据包
    描述
    名称 将记录的Take的名称。
    会话名称 会话文件夹的名称。
    说明 用于描述记录的Take的信息说明。
    描述 (保留)
    资源 Take中涉及的 资产 清单。
    数据库路径 将保存记录的捕获的文件目录。
    启动时间码 用于帧对齐的时间码值(SMTPE),或为时间码支持的系统保留将来的记录触发事件。与SMPTE时间码相比,相机系统通常具有更高的帧速率。在触发分组中, 子帧值 在触发时始终等于0。
    分组ID (保留)
    主机名 (保留)
    进程序号 (保留)
  • 捕获停止数据包
    描述
    名称 记录的Take的名称。
    笔记 用于描述记录Take的信息性说明。
    资产 Take中涉及的资产清单。
    时间码 帧对齐的时间码值(SMPTE)。该 子帧 值为零。
    主机名 (保留)
    ProcessID (保留)

流式协议/插件


流媒体协议 标记 刚体 骷髅 描述 下载
NatNet SDK Y Y Y 运行本地或网络。NatNet SDK包括用于C / C ++、OpenGL、Winforms / .NET / C#、MATLAB和Unity的多个示例应用程序。它还包括一个C / C ++示例,演示如何在不使用客户端库的情况下直接解码Motive UDP数据包(适用于Linux等跨平台客户端)。

C / C ++或VB / C#/ .NET或Matlab

下载
Autodesk MotionBuilder 插件 Y Y Y 运行本地或网络。允许流式传输记录数据和标记,刚体和骨架的实时捕获数据。

附带Motion Builder资源:OptiTrack光学设备OptiTrack骨架设备OptiTrack Insight VCS

下载
Visual3D Y N N 使用Visual3D许可证,您可以下载Visual3D服务器应用程序,该应用程序用于将OptiTrack服务器连接到Visual3D应用程序。使用该插件,Visual 3D接收流式标记数据,以解决生物力学应用的精确骨架模型。


C-Motion wiki: Visual3DServer 插件

C-Motion 网站
The MotionMonitor Y N N MotionMonitor是从Motive接收实时流式动作捕捉数据的电缆。然后使用实时标记数据实时解析流数据。 The MotionMonitor 网站
虚幻引擎4 N Y N 运行本地或网络。支持最高4.17的虚幻引擎版本。这个插件允许在虚幻引擎项目中流动刚体并集成HMD跟踪。有关更多详细信息,请阅读 OptiTrack 虚幻引擎4插件 文档页面。 下载
Unity 插件 N Y N 运行本地或网络。该插件允许在Unity项目中流式传输跟踪数据和集成HMD跟踪。有关更多详细信息,请阅读 OptiTrack Unity 插件 文档页面。 下载
3ds Max 插件 N Y N
(缺乏维护的)
运行本地或网络。支持3ds Max 2009-2012。此插件允许Autodesk 3ds Max从OptiTrack服务器应用程序(如Motive)接收骨架和刚体。
下载
VRPN N Y N 运行本地或网络。

包括VRPN流的示例实现的源代码(C ++)。虚拟现实外围网络(VRPN)是一个开源项目,包含一个库和一组服务器,用于实现应用程序和虚拟现实系统中使用的跟踪设备之间的网络接口。

Motive 2.1使用VRPN版本7.33。

有关更多信息: VRPN Github

下载
trackd N Y N 运行本地或网络。提供跟踪模块的流实现。

Trackd是一种网络流媒体基础软件,可从跟踪应用程序(例如Motive)获取数据,并使其可供其他应用程序使用。提供的DLL库和CONF文件可以导入Trackd软件,以便将动作捕捉数据传送到其他应用程序。

有关如何使用跟踪软件的更多信息或具体说明,请联系: Mechdyne (已追踪)

下载
Motive API Y Y N 可以放心的运行Motive。最好的Motive命令/控制协议。还可以访问摄像机图像和其他流中不可用的其他数据元素。

C/C++

在Motive中
VCS:Maya N Y N 需要单独的许可证。Streams将数据捕获到Autodesk Maya中以使用虚拟摄像机系统。 下载

模板:BackNext