バージョン

menu_open
Wwise SDK 2019.1.11
Wwise Authoring API (WAAPI) を使ってみる

プロトコル

Wwise Authoring API (WAAPI) は、以下のプロトコルやAPIからアクセスできます:

  • WAMP:WAMPは、分散アプリケーションのアプリケーションコンポーネントを接続するためのものです。WAMPはデフォルトのトランスポートとしてWebSocketを使用しており、順序付けられた信頼できる双方向でのメッセージ指向の通信が可能です。 WAMPを使用すると、クライアントはJSON引数を使用して関数を呼び出し、構造化したJSON結果を取得できます。WAMPでは、クライアントが通知を購読することもできます。
  • HTTP POST:HTTPは分散アプリケーションのアプリケーションプロトコルです。HTTPは、インターネット上のコンテンツを転送するための最も一般的な方法です。 POSTを使用すると、発信者はドキュメント本文を送信でき、これは、Wwise Authoring APIの場合、JSONという関数の引数に対応しています。HTTPレスポンスはJSONの結果です。
  • Wwise プラグイン:Wwise AuthoringのプラグインAPIは、WAAPI機能を起動する方法を公開しています: AK::Wwise::IPluginPropertySet::WaapiCall() です。Wwise プラグインでWwise Authoring APIを使用する を参照してください。

WAMPやHTTPのプロトコルと合わせて使える言語は、C++、C#、JavaScript、Pythonなど複数あり、ほかにもHTTPやWebSocket対応の言語も使えます。

注釈: WAMPは、オープンスタンダードのWebSocketサブプロトコルで、統一アプリケーションルーティングを提供します。WAMPのインプリメンテーションは、広く使われているプログラミング言語で利用できます。WAMPの詳細は https://wamp-proto.org を参照してください。
注釈: WAMPは、セッションを通して同じWebSocketコネクションを再利用し、二方向性コミュニケーションを提供するので、最も良いパフォーマンスとエクスペリエンスを提供します。

これらのプロトコルがサポートする機能を、下表にまとめました:

APIの機能 WAMP HTTP POST AK::Wwise::IPluginPropertySet::WaapiCall()

Remote Procedure Calls

Wwiseオーサリングのファンクションをリモートでコールする

Wwise Authoring API Reference を参照

対応 対応 対応

Publish & Subscribe

Wwiseオーサリングで変化があると、ノティフィケーションを受け取る。

対応 対応 対応
最適化されたパフォーマンス

プログラミング言語

WAAPIのプロトコルとしてWAMPを使う場合に、いくつかの選択肢があります。WAMPによるインプリメンテーションは、数種類のプログラミング言語で可能です。 既存のインプリメンテーションの一覧は、 wamp-proto.org にあります。

ただし、インプリメンテーションによっては、難しかったり、使いづらかったりします。WAAPIでは、WAMPの提供する機能サブセットの1つしか使わないので、WAAPIを使いやすくするためにも、使用可能な一部インプリメンテーションの抽象化レイヤ―を用意しました。下表は、よく使われる言語の推奨条件をまとめたものです。

言語

推奨

C++

(推奨)

AkAutobahnを使う

AkAutobahnは、Autobahn C++のforkで、依存関係を軽減し、シンプルなインターフェースと改善されたパフォーマンスを提供します。

難易度: 中級のC++ プログラミング知識が必要。
手順: C++ - WAMP
ソース: \SDK\samples\WwiseAuthoringAPI\cpp\SampleClient\AkAutobahn
サンプル: \SDK\samples\WwiseAuthoringAPI\cpp\SampleClient\SampleClient

注釈: C++は、SourceやEffectプラグインの中で、直接使うこともできます。詳細は、 Wwise プラグインでWwise Authoring APIを使用する を参照してください。

C#

(推奨)

WaapiClientCore または WaapiClientJsonを使う

どちらかを選択:

  • WaapiClientCore: サードパーティのレファレンス先がない、.NET 4.5だけに依存する、C::でインプリメンテーションしたWaapiクライアントライブラリ。Wwiseに接続し、WAAPIのリモート処理や、トピックサブスクリプションにアクセスできる、WAMPクライアントが入っています。APIは文字列ベースなので、自分のJSONのシリアライズを使うこともできます。このクライアントは、Unity 2018.1+との互換性もあります。
  • WaapiClientJson: Json.NET に依存する、C::でインプリメンテーションしたWaapiクライアントライブラリ。Jsonへの依存は、JSONを操作しやすくするために追加しました。NuGetパッケージマネージャ拡張子が必要です。Unity Storeにある Json.NET for Unity も合わせてインストールすると、このクライアントはUnityと互換性があります。

難易度: WAAPIを使うのに、最も簡単な方法の1つ。初級のC::プログラミング知識が必要。
手順: C# WaapiClient - WAMP
サンプル: SDK\samples\WwiseAuthoringAPI\cs\WaapiClientSample

JavaScript/TypeScriptと、 Node.js

(推奨)

waapi-client JSを使う

waapi-clientは、Autobahn JSの抽象化レイヤ―です。promisesやasync/awaitの対応が追加され、必要なWAMPファンクションのみを公開します。なお、waapi-clientには、TypeScriptバインディングも含まれます。

難易度: 初級から中級のJavaScriptプログラミング知識が必要。
手順: JavaScript, Node.js - WAMP
Npm: https://www.npmjs.com/package/waapi-client
ソース: https://github.com/audiokinetic/waapi-client
サンプル: SDK\samples\WwiseAuthoringAPI\js\hello-wwise-node-wamp

JavaScriptと、Browser

autobahn-browserを使う

autobahn-browserは、ブラウザですぐに使えるWAMPインプリメンテーションです。

難易度: 中級のJavaScriptとWebプログラミングの知識が必要。
手順: JavaScript, ブラウザ内 - WAMP
ソース: https://github.com/crossbario/autobahn-js-browser
サンプル: SDK\samples\WwiseAuthoringAPI\js\hello-wwise-web-wamp

Python 2.7

Autobahn Pythonを使う

Autobahn Pythonは、使いづらいです。設定要件が複雑で、非同期プログラミングの知識も必要です。pythonプロジェクトの設定手順や、依存関係については、hello-wwise-wampサンプルを参照してください。

注釈: Python 3.6と、Audiokineticのwaapi-clientインプリメンテーションを使うことを、強く推奨します。

難易度: 上級のPythonプログラミング知識が必要。
手順: Python (low-level) - WAMP
ソース: https://github.com/crossbario/autobahn-python
サンプル: SDK\samples\WwiseAuthoringAPI\python\low-level\hello-wwise-wamp

Python 3.6+

(推奨)

waapi-client Pythonを使う

waapi-clientは、Autobahn Pythonの抽象化レイヤ―です。使い方が大幅に簡素化され、必要なWAMPファンクションのみを公開します。

難易度: WAAPIを使うのに、最も簡単な方法の1つ。初級のPythonプログラミング知識だけが必要。
手順: Python (Waapi-Client) - Remote Procedure Call
Pypi: https://pypi.org/project/waapi-client/
ソース: https://github.com/audiokinetic/waapi-client-python
サンプル: SDK\samples\WwiseAuthoringAPI\python\waapi-client-py3

その他の言語

https://wamp-proto.org/ 記載のWAMPインプリメンテーションの1つを使うか、WAAPIに直接HTTPを使います。

WAAPI サンプル を参照してください。


このページはお役に立ちましたか?

サポートは必要ですか?

ご質問や問題、ご不明点はございますか?お気軽にお問い合わせください。

サポートページをご確認ください

あなたのプロジェクトについて教えてください。ご不明な点はありませんか。

プロジェクトを登録していただくことで、ご利用開始のサポートをいたします。

Wwiseからはじめよう