WYVRN Unreal SDK
WYVRN SDK 提供了一个可通过 C++ / Blueprint 调用的库,用于集成 AI、Chroma 灯效以及触觉反馈功能。
该 WYVRN SDK 插件已在 Unreal 引擎的 4.21 到 5.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 灯光效果、触觉反馈,或者同时触发所有特效。

下载
SDKs
- WYVRN SDK
| Engine | Git Repo | Download Link | Git Repo | Download Link | Git Repo | Download Link | |
|---|---|---|---|---|---|---|---|
| Encoding | UNICODE | ASCII | MULTI-BYTE | ||||
| WYVRN Design Template | Git | Download | |||||
| WYVRN C++ SDK | Git | Download | Git | Download | Git | Download | |
| WYVRN Unreal SDK | Git | Download | |||||
| WYVRN Unity SDK | Git | Download |
运行时插件结构路径
插件定义文件: 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

UnInit

SetEventName

命名空间
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,直到下次重新启动应用或游戏。失败的常见原因包括用户未正确安装 Synapse 或 Chroma App。在WYVRN SDK初始化成功后,请等待约 100 毫秒再开始调用事件,以确保系统准备就绪。

示例代码:
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_A 与 EVENT_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();