WYVRN Unity SDK
WYVRN SDK には、AI・Chroma・ハプティクスを統合するための C# API が用意されています。
概要
WYVRN SDK は、ゲーム実行時のプラグインであり、イベント名を定義や外部 AI、Chroma 再生、ハプティックイベントのトリガー用の共通 API を提供するために共有されます。
Unity SDK のはじめ方
- WYVRN SDK プラグインは
Unity 2021.3.15f1以降が必要です。
必要条件とセットアップ
Unity Package Manager を使用して WYVRN SDK を Unity に導入するには、以下の手順に従ってください:
- Unity Package Manager を開き、ツールバーの
+ボタンをクリックします。
WYVRN SDK パッケージをディスクまたは URL から追加する
方式 1) ディスクから追加(Add package from disk)
- メニューから
Add package from disk...を選択します。

- このリポジトリをダウンロードし、ローカルにある
package.jsonファイルを選択します。

方式 2) Git URL から追加(Add package from git URL)
- メニューから
Add package from git URLを選択します。

- 表示されたテキストボックスに URL https://github.com/WyvrnOfficial/Unity_WyvrnSDK.git を入力、
Addをクリックします。
いずれの方法でも、インストールが成功すると、Razer WYVRN SDK パッケージがパッケージ一覧に表示されます。

セキュリティ
第三者による悪意のあるコードの注入を防ぐため、プラグインは Razer Chromatic Library の有効な署名を確認します。DLL の発行者は Razer USA Ltd. であることが検証されます。署名チェックに失敗した場合、Init および InitSDK は (非ゼロの) RZRESULT_DLL_INVALID_SIGNATURE を返します。
一般
- WYVRN SDK を使用すると、アプリケーションやゲームが
Chroma App内の Chroma Apps リストに表示される詳細情報を設定できます。
このドキュメントは、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 WyvrnSDK;
API クラス
WyvrnAPI クラスは、WYVRN SDK ライブラリのラッパーを提供します。
SDK の初期化(Initialize)
API を利用するには、まず WYVRN SDK を初期化する必要があります。InitSDK メソッドは AppInfo パラメータを受け取り、これは Synapse および Chroma Apps の Chroma App タブ内に表示されるアプリケーションまたはゲームの情報を定義します。期待される戻り値は RZRESULT_SUCCESS であり、これが返された場合、API を使用する準備が整ったことを示します。成功以外の値が返された場合は、アプリケーションまたはゲームが次回起動されるまで WYVRN の実装を無効化すべきです。初期化が失敗する主な理由としては、ユーザーが Synapse または Chroma App をインストールしていないことが挙げられます。WYVRN SDK の初期化に成功したら、イベントを設定する前に約 100 ms の待機を行ってください。

private int _mResult = 0;
public IEnumerator Start()
{
if (!WyvrnAPI.IsWyvrnSDKAvailable())
{
_mResult = RazerErrors.RZRESULT_DLL_NOT_FOUND;
yield break;
}
WyvrnSDK.APPINFOTYPE appInfo = new APPINFOTYPE();
appInfo.Title = "Razer WYVRN Unity Game Sample Application";
appInfo.Description = "A sample application using Razer WYVRN SDK";
appInfo.Author_Name = "Razer";
appInfo.Author_Contact = "https://WYVRN.com";
// 0x01 | // Utility. (To specifiy this is an utility application)
// 0x02 // Game. (To specifiy this is a game);
appInfo.Category = 1;
_mResult = WyvrnAPI.CoreInitSDK(ref appInfo);
if (_mResult == RazerErrors.RZRESULT_SUCCESS)
{
// Init Success! Ready to use the WYVRN SDK!
}
else
{
// Init Failed! Stop using the WYVRN SDK until the next game launch!";
}
}
イベント名の設定
ゲームイベントには名前を付けることができ、ライティング体験に追加のテクノロジーを加えることができます。ゲームイベントやトリガーに名前を付けることで、そのイベント名をキーとして、ハプティクス効果などを再生する際の参照として利用できます。例として、SetEventName("Jump") を呼び出すと、ジャンプ動作に対応した Chroma アニメーションを再生できます。Jump イベントは、タイトルの没入感を高めるために、対応するハプティクス効果を使用することもできます。ハプティクス効果を追加するために必要な API は SetEventName() の呼び出しのみです。Chroma やハプティクスを追加するために必要な API は、SetEventName() を呼び出すだけです。一部のゲームイベントはライティングのみ、ハプティクスのみ、または両方を持つ場合があります。どの組み合わせにするかは、プレイヤーに自然な体験を提供するゲームデザイン次第です。
// Trigger AI, Chroma, and haptics
WyvrnAPI.CoreSetEventName("Jump");
// ハプティクス再生を停止する
WyvrnAPI.CoreSetEventName("");
API では、イベント名にフォールバックパラメータを使用できます。これにより、WYVRN 設定でイベント名が一致しない場合に、代替のイベント名を使用できます。EVENT_A;fallback=EVENT_B という指定を行うと、まず WYVRN 設定で EVENT_A を検索し、一致しない場合は EVENT_B がフォールバックとして使用されます。EVENT_A は、EVENT_B のフォールバックを試す前に、まず外部コマンドおよびフォールバック用コマンドとの一致を確認します。どちらのイベントも一致しない場合は、何も実行されません。両方のフォールバック方法が使用される場合、つまり SetEventName で fallback=EVENT_B が指定され、かつ設定でフォールバックイベントが指定されている場合、結果は SetEventName のフォールバックよりも設定の方が優先されます。
WyvrnAPI.CoreSetEventName("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 となることが期待されます。
if (_mResult == RazerErrors.RZRESULT_SUCCESS)
{
int result = WyvrnAPI.CoreUnInit();
if (result == RazerErrors.RZRESULT_SUCCESS)
{
// WYVRN has been uninitialized!
}
else
{
// WYVRN uninitialization was unsuccessful!
}
}
対応フレームワーク
-
Windows WyvrnSDK (32-bit)
-
Windows WyvrnSDK (64-bit)
アセット
ゲームは SetEventName を使用してゲームトリガーに名前を付けます。ハプティクスやライティング効果を追加するために、他のアセットをゲームに含める必要はありません。再生は、名前付きイベント用の外部 Events.config から制御されます。
API 全一覧
WYVRN SDK ライブラリ メソッド:
PluginCoreInitSDK
ローレベル API への直接アクセス。
// DLL インターフェース
EXPORT_API RZRESULT PluginCoreInitSDK(
ChromaSDK::APPINFOTYPE* AppInfo);
// クラス プラグイン
int result = WyvrnAPI.CoreInitSDK(ref appInfo);
PluginCoreSetEventName
ローレベル API への直接アクセス。
// DLL インターフェース
EXPORT_API RZRESULT PluginCoreSetEventName(LPCTSTR Name);
// クラス プラグイン
int result = WyvrnAPI.CoreSetEventName("Effect1");
PluginCoreUnInit
ローレベル API への直接アクセス。
// DLL インターフェース
EXPORT_API RZRESULT PluginCoreUnInit();
// クラス プラグイン
int result = WyvrnAPI.CoreUnInit();