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

Blueprints

UBhapticsSDK2 生成。

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


事件驱动触觉播放函数

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

Play Haptic

Untitled

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

输入

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

输出

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

Play Haptic With Option

Untitled

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

输入

类型名称说明
execIn
StringEvent Id要播放的触觉事件的名称。
FloatIntensity触觉 Intensity 乘以此值。
FloatDuration触觉 Duration 乘以此值。
FloatAngle X围绕全局 Vector3.up 逆时针旋转触觉。有效范围: [0.0f - 360.0f]
FloatOffset Y将触觉向上或向下移动。有效范围: [-0.5f - 0.5f]

输出

类型名称说明
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]

输出

类型名称说明
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::None0
    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 值可用于能够调整触觉位置的 PlayHapticWithOptionPlayLoop

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

更多信息请参阅 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 值。