メインコンテンツまでスキップ

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 ライティング、ハプティクス、またはそれらすべてをトリガーできます。

image-8

ダウンロード

SDK一覧

  • WYVRN SDK
エンジンGitリポジトリダウンロードリンクGitリポジトリダウンロードリンクGitリポジトリダウンロードリンク
EncodingUNICODEASCIIMULTI-BYTE
WYVRN Design TemplateGitDownload
WYVRN C++ SDKGitDownloadGitDownloadGitDownload
WYVRN Unreal SDKGitDownload
WYVRN Unity SDKGitDownload

名前空間

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 の待機を行ってください。

chroma_apps

 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 のフォールバックを試す前に、まず外部コマンドおよびフォールバック用コマンドとの一致を確認します。どちらのイベントも一致しない場合は、何も実行されません。両方のフォールバック方法が使用される場合、つまり SetEventNamefallback=EVENT_B が指定され、かつ設定でフォールバックイベントが指定されている場合、結果は SetEventName のフォールバックよりも設定の方が優先されます。

WyvrnAPI::CoreSetEventName(L"EVENT_A;fallback=EVENT_B")

ジェネリックデータベース (Generic Database)

ゲームは、SetEventName が一致を確認するために使用する WYVRN 設定を提供できます。一致が見つからない場合、システムは次に GenericEvent の WYVRN 設定を確認して一致を探します。ゲーム側または GenericEvent のいずれの WYVRN 設定とも一致しない場合は、何も実行されません。

フォールバックコマンド (Fallback Commands)

WYVRN 設定には、FallbackCommands 配列が含まれており、これは ExternalCommands 配列と同じスキーマを使用します。FallbackCommandsExternalCommands の両方で、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();