Wyvrn C++ SDK
WYVRN SDK は、AI、Chroma、ハプティクスと統合するための C++ ライブラリを備えています。
概要
WYVRN SDK は、ゲーム用のプラグイン DLL であり、イベントの名前付けや外部の AI、Chroma 再生、ハプティックイベントをトリガーするための共通 API を提供します。
セキュリティ
第三者による悪意のあるコードの注入を防ぐため、プラグインは Razer Chromatic Library の有効な署名を確認します。DLL の発行者は Razer USA Ltd. であることが検証されます。署名チェックに失敗した場合、Init および InitSDK は (非ゼロの) RZRESULT_DLL_INVALID_SIGNATURE を返します。
一般
- WYVRN SDK を使用すると、アプリケーションやゲームが Chroma App 内の CHROMA アプリ リストに表示される詳細情報を設定できます。
このドキュメントは、AI・Chroma・ハプティクスを WYVRN C++ SDK を使って統合するためのガイドです。
APIで利用可能なメソッド一覧:
-
Initialize SDK:ライブラリを利用するために WYVRN SDK を初期化します。
-
Set Event Name:ゲーム内イベントまたはトリガーにイベント名を付け、Chroma やハプティクスを追加します。
-
Uninitialize SDK: 使用後に WYVRN SDK をクリーンに終了します。
WYVRN SDK
WYVRN SDK は、AI、Chroma、Razer Sensa HD ハプティクスを1つのSDKに統合したものです。AI、RGB ライティング、ハプティクスをゲーム環境やイベントに組み込むことで、プレイヤーは真に没入感のあるゲーム体験を楽しむことができます。WYVRN SDK は、Razer Sensa HD ハプティクス対応デバイスで Chroma アニメーションやハプティクスを再生することが可能です。
SetEventName() を使用することで、AIとのインタラクション、RGB ライティング、ハプティクス、またはそれらすべてをトリガーできます。

ダウンロード
SDK一覧
- WYVRN SDK
| エンジン | Gitリポジトリ | ダウンロードリンク | Gitリポジトリ | ダウンロードリンク | Gitリポジトリ | ダウンロードリンク | |
|---|---|---|---|---|---|---|---|
| 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 |
名前空間
API を使用するために、WYVRN SDK の名前空間を追加してください。
using namespace WyvrnSDK;
API クラス
WyvrnAPI クラスは、WyvrnSDK ライブラリのラッパーを提供します。API は WyvrnAPI.h をインクルードすることで利用できます。
#include "Razer\WyvrnAPI.h"
SDK の初期化(Initialize)
API を利用するには、まず WYVRN SDK を初期化する必要があります。InitSDK メソッドは AppInfo パラメータを受け取り、これは Synapse および Chroma App の CHROMA アプリ タブ内に表示されるアプリケーションまたはゲームの情報を定義します。期待される戻り値は RZRESULT_SUCCESS であり、これが返された場合、API を使用する準備が整ったことを示します。成功以外の値が返された場合は、アプリケーションまたはゲームが次回起動されるまで WYVRN の実装を無効化すべきです。初期化が失敗する主な理由としては、ユーザーが Synapse または Chroma App をインストールしていないことが挙げられます。WYVRN SDK の初期化に成功したら、イベントを設定する前に約 100 ms の待機を行ってください。

APPINFOTYPE appInfo = {};
wcscpy_s(appInfo.Title, 256, L"Sample Game Title");
wcscpy_s(appInfo.Description, 1024, L"Sample Game Description");
wcscpy_s(appInfo.Author.Name, 256, L"Company Name");
wcscpy_s(appInfo.Author.Contact, 256, L"Company Website or Email");
// 0x01 | // Utility. (To specifiy this is an utility application)
// 0x02 // Game. (To specifiy this is a game);
appInfo.Category = 0x02;
RZRESULT result = WyvrnAPI::CoreInitSDK(&appInfo);
if (result == RZRESULT_SUCCESS)
{
// Init Success! Ready to use the WYVRN SDK!
}
else
{
// Init Failed! Stop using the WYVRN SDK until the next game launch!";
}
イベント名の設定
ゲームイベントには名前を付けることができ、ライティング体験に追加のテクノロジーを加えることができます。ゲームイベントやトリガーに名前を付けることで、そのイベント名をキーとして、ハプティクス効果などを再生する際の参照として利用できます。例として、SetEventName(L"Jump") を呼び出すと、ジャンプ動作に対応した Chroma アニメーションを再生できます。Jump イベントは、タイトルの没入感を高めるために、対応するハプティクス効果を使用することもできます。ハプティクス効果を追加するために必要な API は SetEventName() の呼び出しのみです。ハプティクスの再生を停止したい場合は、SetEventName(L"") のように 空文字列を渡します。また、ハプティクスを手動でSetEventName()を使用しトリガーするために、Chroma の再生は必須ではありません。
// ハプティクス効果をトリガーする
WyvrnAPI::CoreSetEventName(L"Jump");
// ハプティクス再生を停止する
WyvrnAPI::CoreSetEventName(L"");
API では、イベント名にフォールバックパラメータを使用できます。これにより、WYVRN 設定でイベント名が一致しない場合に、代替のイベント名を使用できます。EVENT_A;fallback=EVENT_B という指定を行うと、まず WYVRN 設定で EVENT_A を検索し、一致しない場合は EVENT_B がフォールバックとして使用されます。EVENT_A は、EVENT_B のフォールバックを試す前に、まず外部コマンドおよびフォールバック用コマンドとの一致を確認します。どちらのイベントも一致しない場合は、何も実行されません。両方のフォールバック方法が使用される場合、つまり SetEventName で fallback=EVENT_B が指定され、かつ設定でフォールバックイベントが指定されている場合、結果は SetEventName のフォールバックよりも設定の方が優先されます。
WyvrnAPI::CoreSetEventName(L"EVENT_A;fallback=EVENT_B")
ジェネリックデータベース (Generic Database)
ゲームは、SetEventName が一致を確認するために使用する WYVRN 設定を提供できます。一致が見つからない場合、システムは次に GenericEvent の WYVRN 設定を確認して一致を探します。ゲーム側または GenericEvent のいずれの WYVRN 設定とも一致しない場合は、何も実行されません。
フォールバックコマンド (Fallback Commands)
WYVRN 設定には、FallbackCommands 配列が含まれており、これは ExternalCommands 配列と同じスキーマを使用します。FallbackCommands と ExternalCommands の両方で、Chroma_Events 配列および Haptic_Events 配列をサポートしています。
{
"ExternalCommands": [
{
"External_Command_ID": "EXTERNAL_ID",
"Chroma_Events": [],
"Haptic_Events": []
}
],
"FallbackCommands": [
{
"External_Command_ID": "FALLBACK_ID",
"Chroma_Events": [],
"Haptic_Events": []
}
]
}
ExternalCommands は完全一致で比較されるのに対し、FallbackCommands は正規表現によるマッチングを使用します。.* はワイルドカードとして部分的なイベント名にマッチさせることができます。
".*FALLBACK_ID"パターンは"FALLBACK_ID"で 終了する文字列 にマッチします。"FALLBACK_ID.*"パターンは"FALLBACK_ID"で 開始する文字列 にマッチします。".*FALLBACK_ID.*"パターンは"FALLBACK_ID"を 含む文字列 にマッチします。
{
"FallbackCommands": [
{
"External_Command_ID": ".*FALLBACK_ID.*"
}
]
}
SDK のアンイニシャライズ(Uninitialize)
アプリケーションは、終了時に WYVRN SDK をクリーンに終了させるために Uninit() を呼び出す必要があります。WYVRN SDK が正常に初期化されていない場合は、アンイニシャライズは不要です。正常にアンイニシャライズが行われた場合、返り値は RZRESULT_SUCCESS となることが期待されます。
int result = WyvrnAPI::CoreUninit();
if (result == RZRESULT_SUCCESS)
{
// WYVRN has been uninitialized!
}
else
{
// WYVRN uninitialization was unsuccessful!
}
はじめに
対応フレームワーク
-
Windows WyvrnSDK (32-bit)
-
Windows WyvrnSDK (64-bit)
アセット
ゲームは SetEventName を使用してゲームトリガーに名前を付けます。ハプティクスやライティング効果を追加するために、他のアセットをゲームに含める必要はありません。再生は、名前付きイベント用の外部 Events.config から制御されます。
API 全一覧
PluginCoreInitSDK
ローレベル API への直接アクセス。
// DLL インターフェース
EXPORT_API RZRESULT PluginCoreInitSDK(
ChromaSDK::APPINFOTYPE* AppInfo);
// クラス プラグイン
RZRESULT result = WyvrnAPI::CoreInitSDK(
ChromaSDK::APPINFOTYPE* AppInfo);
PluginCoreSetEventName
ローレベル API への直接アクセス。
// DLL インターフェース
EXPORT_API RZRESULT PluginCoreSetEventName(LPCTSTR Name);
// クラス プラグイン
RZRESULT result = WyvrnAPI::CoreSetEventName(LPCTSTR Name);
PluginCoreUnInit
ローレベル API への直接アクセス。
// DLL インターフェース
EXPORT_API RZRESULT PluginCoreUnInit();
// クラス プラグイン
RZRESULT result = WyvrnAPI::CoreUnInit();