跳到主要内容
本页面由机器自动翻译,可能包含错误。 查看英文原文

Blueprints

由 UBhapticsSDK2 生成。

所有节点的 Target 均为 "Bhaptics SDK2"。


事件驱动触觉播放函数​

播放绑定到 Designer/Portal 中创建的特定触觉事件的触觉模式。我们强烈推荐使用这些函数。

Play Haptic​

Untitled

播放触觉事件。这是调用触觉事件最基本的方式,在所有触觉事件调用函数中开销最低。

输入​

类型名称说明
execIn
StringEvent Id要播放的触觉事件的名称。

输出​

类型名称说明
execOut
IntegerReturn ValueRequest ID。您可以使用 Request ID 来停止触觉。如果返回失败,则返回 -1。

Play Haptic With Option​

Play Haptic With Option

在调整触觉的强度、Duration 和方向的同时播放触觉事件。

输入​

类型名称说明
execIn
StringEvent Id要播放的触觉事件的名称。
FloatIntensity触觉 Intensity 乘以此值。
FloatDuration触觉 Duration 乘以此值。
FloatAngle X围绕全局 Vector3.up 逆时针旋转触觉。有效范围: [0.0f - 360.0f]
FloatOffset Y将触觉向上或向下移动。有效范围: [-0.5f - 0.5f]
IntegerRequest Id指定一个 Request ID,而不是使用随机 ID。有效值为 0 或更大。如果省略或为负数,则会分配随机 ID。
重复使用 Request ID

通常,如果在另一个触觉仍在播放时播放触觉,新的播放会叠加在当前播放之上运行。但是,如果使用与当前触觉相同的 Event Id 和 Request Id 进行播放,当前播放会停止,新的播放会开始。这样在以较短间隔重复播放时,每个触觉的感觉会更加清晰,并能防止触觉叠加。

按 eventId 和 requestId 划分的播放时间轴

输出​

类型名称说明
execOut
IntegerReturn ValueRequest ID。您可以使用 Request ID 来停止触觉。如果返回失败,则返回 -1。

Play Haptic With StartTime​

Play Haptic With StartTime

从给定的起始位置开始,在调整触觉的强度、Duration 和方向的同时播放触觉事件。

输入​

类型名称说明
execIn
StringEvent Id要播放的触觉事件的名称。
IntegerStart Millis播放开始位置,以毫秒为单位。事件开头的 Start Millis 毫秒会被跳过(这是起始 Offset,而非播放前的延迟)。仅限 Windows/macOS/Android。
FloatIntensity触觉 Intensity 乘以此值。
FloatDuration触觉 Duration 乘以此值。
FloatAngle X围绕全局 Vector3.up 逆时针旋转触觉。有效范围: [0.0f - 360.0f]
FloatOffset Y将触觉向上或向下移动。有效范围: [-0.5f - 0.5f]
IntegerRequest Id指定一个 Request ID,而不是使用随机 ID。有效值为 0 或更大。如果省略或为负数,则会分配随机 ID。
重复使用 Request ID

通常,如果在另一个触觉仍在播放时播放触觉,新的播放会叠加在当前播放之上运行。但是,如果使用与当前触觉相同的 Event Id 和 Request Id 进行播放,当前播放会停止,新的播放会开始。这样在以较短间隔重复播放时,每个触觉的感觉会更加清晰,并能防止触觉叠加。

按 eventId 和 requestId 划分的播放时间轴

输出​

类型名称说明
execOut
IntegerReturn ValueRequest ID。您可以使用 Request ID 来停止触觉。如果返回失败,则返回 -1。

Play Loop​

Untitled

重复播放触觉。此外,与 PlayHapticWithOption 函数一样,您可以调整触觉的强度、Duration 和方向。

输入​

类型名称说明
execIn
StringEvent Id要播放的触觉事件的名称。
FloatIntensity触觉 Intensity 乘以此值。
FloatDuration触觉 Duration 乘以此值。
FloatAngle X围绕全局 Vector3.up 逆时针旋转触觉。有效范围: [0.0f - 360.0f]
FloatOffset Y将触觉向上或向下移动。有效范围: [-0.5f - 0.5f]
IntegerInterval循环之间的时间间隔,以毫秒为单位。
IntegerMax Count循环次数。

输出​

类型名称说明
execOut
IntegerReturn ValueRequest ID。您可以使用 Request ID 来停止触觉。如果返回失败,则返回 -1。

触觉直接播放函数​

如果您想在不创建新事件的情况下播放触觉,请使用这些函数。

Play Dot​

Untitled

在特定触觉执行器上播放触觉反馈。无需创建事件即可使用此函数。

输入​

类型名称说明
execIn
IntegerPosition触觉设备的类型。
Array of IntegersMotor Values根据设备的电机数量指定数组长度。数组中的值表示电机的 Intensity。数组中每个值的有效范围: [0 - 100]
FloatSeconds触觉的 Duration,以秒为单位。建议大于或等于 0.1f。
  • Position

    值设备
    0TactSuit Pro
    1TactSleeve(Left)
    2TactSleeve(Right)
    3TactVisor
    4Tactosy for Hands(Left)
    5Tactosy for Hands(Right)
    6Tactosy for Feet(Left)
    7Tactosy for Feet(Right)
    8TactGlove(Left)
    9TactGlove(Right)

输出​

类型名称说明
execOut
IntegerReturn ValueRequest ID。您可以使用 Request ID 来停止触觉。如果返回失败,则返回 -1。

Play Path​

Untitled

在特定坐标周围播放触觉。更多信息请参阅 C++ API 参考。

[TactGlove DK3] Play Path 不驱动 DK3 手套上的手腕音圈电机(VCM)。

输入​

类型名称说明
execIn
IntegerPosition触觉设备的类型。
Array of FloatsX指定 X 坐标。数组中每个值的有效范围: [0.0f - 1.0f]
Array of FloatsY指定 Y 坐标。数组中每个值的有效范围: [0.0f - 1.0f]
Array of IntegersMotor Values根据设备的电机数量指定数组长度。数组中的值表示电机的 Intensity。数组中每个值的有效范围: [0 - 100]
FloatSeconds触觉的 Duration,以秒为单位。建议大于或等于 0.1f。
  • Position

    值设备
    0TactSuit Pro
    1TactSleeve(Left)
    2TactSleeve(Right)
    3TactVisor
    4Tactosy for Hands(Left)
    5Tactosy for Hands(Right)
    6Tactosy for Feet(Left)
    7Tactosy for Feet(Right)
    8TactGlove(Left)
    9TactGlove(Right)

输出​

类型名称说明
execOut
IntegerReturn ValueRequest ID。您可以使用 Request ID 来停止触觉。如果返回失败,则返回 -1。

Play Waveform​

Untitled

仅限 TactGlove。 在 TactGlove 中播放触觉。与使用 "Play Dot" 不同,您可以精细地调整触觉 Duration 和振动 Intensity 的变化。这使得触觉反馈的表现更加精细。

每个数组必须有六个(TactGlove DK2)或八个(TactGlove DK3)元素,并且这三个数组的长度必须相同。

输入​

类型名称说明
execIn
IntegerPosition触觉设备的类型。
Array of IntegersMotor Intensities电机 Intensity 的数组。其长度必须与 TactGlove 的电机数量一致:六个(TactGlove DK2)或八个(TactGlove DK3)。数组中每个值的有效范围: [0 - 100]
Array of EBhapticsGlovePlayTime EnumsPlay Time Values与 Motor Intensities 长度相同的数组(DK2 为六个,DK3 为八个),每个元素表示一个作动的时间间隔,时间使用 EBhapticsGlovePlayTime enum 定义。
Array of EBhapticsGloveShapeValue EnumsShape Values与 Motor Intensities 长度相同的数组(DK2 为六个,DK3 为八个),每个元素表示触觉 Intensity 随时间变化的形态,由 EBhapticsGloveShapeValue enum 指定。
IntegerFrequency[仅限 TactGlove DK3] DK3 手套自身执行器的振动频率,以 Hz 为单位。默认值为 80。它对 DK2 手套或通用(非 Windows/macOS)路径没有影响。仅限 Windows/macOS。
IntegerRepeat Count重复波形的次数,从 1 开始。0 表示播放一次。仅限 Windows/macOS。
  • Position

    值设备
    8TactGlove(Left)
    9TactGlove(Right)
  • Motor Intensities

    数组索引电机位置…
    0拇指指尖
    1食指指尖
    2中指指尖
    3无名指指尖
    4小指指尖
    5手腕上
    6手掌(拇指侧)
    7手掌(小指侧)
  • Play Time Values

    值Duration等同于…
    EBhapticsGlovePlayTime::None无0
    EBhapticsGlovePlayTime::FiveMS5ms1
    EBhapticsGlovePlayTime::TenMS10ms2
    EBhapticsGlovePlayTime::TwentyMS20ms4
    EBhapticsGlovePlayTime::ThirtyMS30ms6
    EBhapticsGlovePlayTime::FortyMS40ms8
  • Shape Values

    值波形等同于…
    EBhapticsGloveShapeValue::Constant在 Duration 期间保持恒定 Intensity0
    EBhapticsGloveShapeValue::Decreasing从指定的 Intensity 开始并减小一半1
    EBhapticsGloveShapeValue::Increasing从指定 Intensity 的一半开始并增加到指定值。2

输出​

类型名称说明
execOut
IntegerReturn ValueRequest ID。您可以使用 Request ID 来停止触觉。如果返回失败,则返回 -1。

其他函数​

Stop Haptic By Event Id​

Untitled

通过 Event ID 停止触觉事件。返回停止是否成功。

输入​

类型名称说明
execIn
StringEvent Id要停止的触觉事件的名称。

输出​

类型名称说明
execOut
BooleanReturn Value停止是否成功。

Stop Haptic By Request Id​

Untitled

使用执行触觉的函数返回的 Request ID 来停止触觉事件。返回停止是否成功。

输入​

类型名称说明
execIn
IntegerRequest Id要停止的正在播放的触觉事件的 Request ID。

输出​

类型名称说明
execOut
BooleanReturn Value停止是否成功。

Stop Haptic​

Untitled

停止当前正在播放的所有触觉。返回停止是否成功。

输入​

类型名称说明
execIn

输出​

类型名称说明
execOut
BooleanReturn Value停止是否成功。

Pause Haptic By Event Id​

Pause Haptic By Event Id

通过 Event ID 暂停触觉事件。播放位置会被保留,以便之后可以用 "Resume Haptic By Event Id" 继续播放。

输入​

类型名称说明
execIn
StringEvent Id要暂停的触觉事件的名称。

输出​

类型名称说明
execOut

Resume Haptic By Event Id​

Resume Haptic By Event Id

恢复之前用 "Pause Haptic By Event Id" 暂停的触觉事件,从暂停的位置继续播放。

输入​

类型名称说明
execIn
StringEvent Id要恢复的触觉事件的名称。

输出​

类型名称说明

Is Playing​

Untitled

检查触觉是否正在播放。

输入​

类型名称说明
execIn

输出​

类型名称说明
execOut
BooleanReturn Value事件是否正在播放。

Is Playing By Event Id​

Untitled

检查此 Event ID 对应的触觉事件是否正在播放。

输入​

类型名称说明
execIn
StringEvent Id要检查是否正在播放的触觉事件的名称。

输出​

类型名称说明
execOut
BooleanReturn Value事件是否正在播放。

Is Playing By Request Id​

Untitled

检查此 Request ID 对应的触觉事件是否正在播放。

输入​

类型名称说明
execIn
IntegerRequest Id要检查是否正在播放的触觉事件的 Request ID。

输出​

类型名称说明
execOut
BooleanReturn Value事件是否正在播放。

Initialize bHaptics​

Untitled

初始化触觉环境。在使用触觉相关函数之前应调用此函数。

输入​

类型名称说明
execIn

输出​

类型名称说明
execOut

Ping​

Untitled

向特定设备发送简单的触觉反馈。

输入​

类型名称说明
execIn
Bhaptics Device StructureDevice您想要发送 ping 的设备。

输出​

类型名称说明
execOut

Ping All​

Untitled

向所有已连接的设备发送简单的触觉反馈。

输入​

类型名称说明
execIn

输出​

类型名称说明
execOut

Destroy bHaptics​

Untitled

销毁触觉环境。此函数必须在游戏结束时调用,并且只能调用一次。

输入​

类型名称说明
execIn

输出​

类型名称说明
execOut

Get bHaptics devices​

Untitled

获取已连接触觉设备信息的数组。

输入​

类型名称说明
execIn

输出​

类型名称说明
execOut
Array of Bhaptics Device StructuresReturn Value设备列表。

Is bHaptics Available​

Untitled

检查触觉环境是否已初始化并准备好使用触觉相关函数。

输入​

类型名称说明
execIn

输出​

类型名称说明
execOut
BooleanReturn ValuebHaptics 环境是否可用。

Project To Vest With Player Collision Object​

Untitled

用于计算给定碰撞接触点相对于玩家的 Offset 值(角度和高度)的辅助函数。这些 Offset 值可用于能够调整触觉位置的 PlayHapticWithOption 和 PlayLoop。

此函数假定正面方向与背心的前面对齐,并将玩家的位置视为原点。

更多信息请参阅 C++ API 参考。

输入​

类型名称说明
VectorContact Location全局坐标系中的接触点。
Primitive Component Object ReferencePlayer Component对附加到玩家的图元组件的引用。
FloatHalf Height玩家实际身高的一半值,以厘米为单位。

输出​

类型名称说明
Bhaptics Rotation Option StructureReturn ValueOffset 值。

Project To Vest With Player Location/Position​

Untitled

用于根据接触位置和玩家变换信息计算 Offset 值的辅助函数。它类似于 "Project To Vest",但仅计算角度 Offset(Offset Angle X)。高度(Offset Y)将始终为 0。

输入​

类型名称说明
VectorContact Location全局坐标系中的接触点。
VectorPlayer Location玩家的位置。
RotatorPlayer Rotation玩家的旋转。

输出​

类型名称说明
Bhaptics Rotation Option StructureReturn ValueOffset 值。

Custom Project To Vest​

Untitled

用于根据碰撞计算 Offset 值的辅助函数。执行与 "Project To Vest" 相同的功能,但允许更改 Forward 和 Up 向量。

输入​

类型名称说明
VectorContact Location全局坐标系中的接触点。
Primitive Component Object ReferencePlayer Component对附加到玩家的图元组件的引用。
FloatHalf Height玩家实际身高的一半值,以厘米为单位。
VectorUp Vector用于 Offset 计算的参考向上方向向量。
VectorForward Vector用于 Offset 计算的参考正面方向向量。

输出​

类型名称说明
Bhaptics Rotation Option StructureReturn ValueOffset 值。