跳到主要内容

WYVRN Unreal SDK

WYVRN SDK 提供了一个可通过 C++ / Blueprint 调用的库,用于集成 AI、Chroma 灯效以及触觉反馈功能。

该 WYVRN SDK 插件已在 Unreal 引擎的 4.215.6 版本中通过测试验证。

关于

WYVRN SDK 是一个在运行时使用的游戏插件,旨在通过一个通用 API 共享事件命名,并触发外部 AI、Chroma 播放以及触觉事件。

安全性

为防止第三方注入恶意代码,插件会检查 Razer Chromatic 库的有效签名。DLL 签发方需确认为 Razer USA Ltd. 如果签名校验失败,Init 和 InitSDK 将返回 RZRESULT_DLL_INVALID_SIGNATURE

通用信息

  • WYVRN SDK 允许应用程序或游戏在 Chroma 应用程序的列表中设置其详细信息。本文档提供了一个使用 WYVRN C++ SDK 集成 AI、Chroma 以及触觉反馈的指南。以下是可通过该 API 使用的方法列表:

  • Initialize SDK: 初始化 WYVRN SDK,以便使用其库中的功能。

  • Set Event Name: 为游戏事件或游戏触发器命名,用来触发 Chroma 灯效和触觉反馈。

  • Uninitialize SDK: 在使用结束后,安全地卸载 WYVRN SDK。

WYVRN SDK 概述

WYVRN SDK 是将 AI、Chroma RGB 灯光和雷蛇 Sensa HD 高清触觉技术融于一体的整合SDK。通过将 AI、RGB 灯光和触觉反馈集成到游戏环境和事件中,玩家可以享受正沉浸式的游戏体验。WYVRN SDK 能够在支持雷蛇 Sensa HD 高清触觉技术的设备上播放 Chroma 灯光动画和体感触觉效果。通过在游戏程序中调用 SetEventName() 函数可以触发 AI 交互、RGB 灯光效果、触觉反馈,或者同时触发所有特效。

image-8

下载

SDKs

  • WYVRN SDK
EngineGit RepoDownload LinkGit RepoDownload LinkGit RepoDownload Link
EncodingUNICODEASCIIMULTI-BYTE
WYVRN Design TemplateGitDownload
WYVRN C++ SDKGitDownloadGitDownloadGitDownload
WYVRN Unreal SDKGitDownload
WYVRN Unity SDKGitDownload

运行时插件结构路径

插件定义文件: Plugins/WyvrnSDKPlugin/WyvrnSDKPlugin.uplugin

插件源码文件: Wyvrn_Sample/Plugins/WyvrnSDKPlugin/Source/WyvrnSDKPlugin/

头文件: Wyvrn_Sample/Plugins/WyvrnSDKPlugin/Source/WyvrnSDKPlugin/Public/

源文件: Wyvrn_Sample/Plugins/WyvrnSDKPlugin/Source/WyvrnSDKPlugin/Private/

蓝图应用示例

Event BeginPlay 中调用 InitSDK方法,并传入 AppInfo,该应用信息将会通过 Synapse -> Connect -> Apps ,在Chroma应用的标签页中显示。在延迟 100 毫秒后, 若 InitSDK 返回值为 0,表示初始化成功,可正常使用WYVRN API 。如果 InitSDK 返回值非零,表示初始化失败,应避免进一步调用 WYVRN API。初始化失败的常见原因包括:用户未安装 Synapse 或 Chroma App。

InitSDK

image-45

UnInit

image-46

SetEventName

image-47

命名空间

UWyvrnSDKPluginBPLibrary 使用全局命名空间以便让蓝图库可用。

#include "WyvrnSDKPluginBPLibrary.h"

API 类

WyvrnAPI 类对 WYVRN SDK 库进行了封装。UWyvrnSDKPluginBPLibrary 类则是用于将 WYVRN API 暴露给蓝图使用,同时 UWyvrnSDKPluginBPLibrary 中的函数也可以从 C++ 中调用。

初始化 SDK

在使用WYVRN SDK 中的API 之前,需要对其进行初始化设置 。InitSDK 方法接收一个 AppInfo 参数,用于定义应用或游戏的基本信息,这些信息将会显示在雷云 (Synapse) 和Chroma幻彩应用 (Chroma App) 的 Chroma Apps 选项卡中。预期的返回结果应为 RZRESULT_SUCCESS,表示 API 已经准备就绪。如果返回值为其他非成功结果,则应当禁用 WYVRN SDK,直到下次重新启动应用或游戏。失败的常见原因包括用户未正确安装 SynapseChroma App。在WYVRN SDK初始化成功后,请等待约 100 毫秒再开始调用事件,以确保系统准备就绪。

image-5

示例代码:

if (!UWyvrnSDKPluginBPLibrary::IsInitialized())
{
FWyvrnSDKAppInfoType appInfo;
appInfo.Title = "Unreal WYVRN Sample Game Application";
appInfo.Description = "A sample application using Razer Wyvrn SDK";
appInfo.Author_Name = "Razer";
appInfo.Author_Contact = "https://WYVRN.com";

// 0x01 // 工具类应用(用于标明这是一个工具类应用)
// 0x02 // 游戏 (用于标明这是一个游戏应用);
appInfo.Category = 1;

int32 result = UWyvrnSDKPluginBPLibrary::WyvrnSDKInitSDK(appInfo);
if (result == RZRESULT_SUCCESS)
{
// 初始化成功! WYVRN SDK准备就绪!
}
else
{
// 初始化失败! 在下次游戏启动前将停用WYVRN SDK!";
}
}

设置命名事件方法(Set Event Name)

游戏事件可以通过命名来设置,添加和触发外部技术效果,以此增强互动体验。 在为游戏中的事件命名后,这些事件名称可以被用作查找键,用以触发 AI、Chroma 灯效或 Haptics 触觉反馈等功能。 例如,调用 SetEventName("Jump") 方法设置跳跃事件,可以为该跳跃事件播放一段 Chroma 动画。同时,该 Jump 事件也可以触发一个触觉反馈效果,从而增强游戏的沉浸体验。 除SetEventName()函数以外,无需额外调用其他 API 即可实现灯效和触觉反馈的触发。 某些游戏事件可能只有灯光效果,或只有触觉反馈,或同时具备两者,这完全取决于游戏设计。最终目的是通过触发不同的游戏事件来创造合理、沉浸的游戏体验。

SetEventName()函数调用示例:

// 触发AI指令, Chroma灯效, 和 Haptics触觉特效
UWyvrnSDKPluginBPLibrary::SetEventName("Jump");

该 API 支持在参数中声明 一个fallback(回退)参数:当 WYVRN 配置中无法基于主事件名完成匹配时,可使用备用事件名作为回退方案。 例如,EVENT_A;fallback=EVENT_B 的含义是:系统会先在 WYVRN 配置中查找并匹配 EVENT_A;若未匹配成功,则回退并尝试匹配 EVENT_B。 在尝试回退到 EVENT_B 之前,EVENT_A 会先依次检查与其相关的外部命令(external commands)与回退命令(fallback commands)是否存在匹配项。只有在这些匹配尝试均未成功后,才会继续对 EVENT_B 执行回退匹配流程。 如果 EVENT_AEVENT_B 均未匹配成功,则系统不会触发任何操作。

UWyvrnSDKPluginBPLibrary::SetEventName("EVENT_A;fallback=EVENT_B")

通用数据库(Generic Database)

在游戏设计完成后,会配有一份 WYVRN 配置,SetEventName方法会基于该配置尝试查找匹配的特效。 如果在游戏自身的 WYVRN 配置中未匹配到对应的事件特效,系统将继续在 GenericEvent 的 WYVRN 配置中进行匹配查找。 如果游戏配置和 GenericEvent 的 WYVRN 配置均未成功匹配,则系统不会触发任何操作。

卸载 SDK

应用程序在退出时应调用 Uninit() 方法来卸载 WYVRN SDK,以确保清理和安全退出。 只有在 SDK 成功初始化后,才需要执行对应的卸载操作。 卸载操作的预期返回结果应为 RZRESULT_SUCCESS,表示卸载成功。

int32 result = UWyvrnSDKPluginBPLibrary::WyvrnSDKUnInit();
if (result == RZRESULT_SUCCESS)
{
// WYVRN SDK 卸载成功!
}
else
{
// WYVRN SDK 卸载失败!
}

入门指南

Frameworks 框架支持

  • Windows WyvrnSDK (32-bit)

  • Windows WyvrnSDK (64-bit)


资源(Assets)

游戏中只需使用 SetEventName 函数来为游戏事件触发器命名。无需在游戏中加入任何其他资源,即可添加触觉反馈和灯光效果。这些效果的播放是通过外部的 WYVRN.config 文件中定义的事件名称来控制的。


完整 API

WYVRN SDK Library 方法:

PluginCoreInitSDK

直接访问底层 API。

// DLL Interface
EXPORT_API RZRESULT PluginCoreInitSDK(
ChromaSDK::APPINFOTYPE* AppInfo);

// Class Plugin
int32 Result = UWyvrnSDKPluginBPLibrary::WyvrnSDKInitSDK(AppInfo);

PluginCoreSetEventName

直接访问底层 API。

// DLL Interface
EXPORT_API RZRESULT PluginCoreSetEventName(LPCTSTR Name);

// Class Plugin
int32 Result = UWyvrnSDKPluginBPLibrary::SetEventName("Effect1");

PluginCoreUnInit

直接访问底层 API。

// DLL Interface
EXPORT_API RZRESULT PluginCoreUnInit();

// Class Plugin
int32 Result = UWyvrnSDKPluginBPLibrary::WyvrnSDKUnInit();