バージョン
Wwise Unity Integration Documentation
|
Wwise Unity Integrationの入ったデモシーンがWwise LauncherのUnityページでダウンロードでき、"Recent Unity Projects"タイトルのコンテキストメニュー内にあります。Unityの標準アセットのみを使って作成されたこのシンプルなシーンで、Integrationの基本機能の一部の使い方を紹介しています。
Wwise Demo Gameは独立したプロジェクトです。Wwise Launcherでダウンロードできます。開発するゲームの基盤として利用しないでください。そのような目的には、Wwise Launcherを使って新しいUnityプロジェクトにWwiseをインテグレーションしてください。
![]() |
注記:
|
WwiseデモゲームはWwise Unity IntegrationをUnity Editorで使用する様子をプレビューして使い方を確認するためのものです。
Wwise Demo Gameをゲームコンソールや携帯デバイスにデプロイするには、以下の手順に従います:
StreamingAssets/Audio
フォルダに入れる。このファーストパーソン3Dマップには、道沿いにいくつかの"ステーション"があります。ステーション毎に、簡単な説明の書かれた看板が脇にあります。簡単に参照できるように、各ステーションのアセットがシーン階層に入れてあります。
フットパスと最初のステーションを通して、スクリプトやトリガーボリュームを使ってフットステップシステムを作成する方法をデモします。
Wwise Projectでフットステップシステムの実装が推奨通りに行われ、地面タイプ別にRandomコンテナがあり、それらがSwitchコンテナに入っています。フットステップをポストするには Footstep
イベントを使い、地面の材質は Footstep_material
スイッチグループで制御します。
シーンの地形は、草、砂利、木板、土という4種類のテクスチャに分けてペイントしてあります。それぞれの地表面タイプを歩き回ると、フットステップサウンドも合わせて変化します。
これを達成するためにBox Colliderが各ゾーン上に配置されています。Footstep_Material
スイッチの設定は単純で、Switch ValueをWwise Picker WindowからBox Colliderにドラッグするだけです。First Person ControllerがColliderに入った時にSwitchをオンにするには、 "AkTriggerEnter"トリガーのAk Switchスクリプトをトリガーして、"Use Other Object"チェックボックスがチェックされていることを確認する必要があります(Inspector Window表示の通り)。
非常に初歩的なフットステップのスクリプトが実装されていて、プレイヤの移動中は0.3秒ごとに Footstep
イベントがポストされます。このスクリプトはFirst Person Controllerに添付してあります。これは、スクリプトを使ってイベントをWwise SoundEngineにポストする方法を表しています。
このステーションでは、カスタム設定したイベントトリガーをUnityで作成する方法と、イベントコールバックの使い方を示します。
単純なボタンスクリプトに、プレイヤがボタンに十分近づいた時に実行されるDelegateの入った単純なボタンスクリプトを準備し、キーボードやコントローラのキーが押されるように設定します。別のスクリプトの AkTriggerButtonPress
がこのDelegateに登録され、親クラスの AkTriggerBase
から triggerDelegate
を呼び出します。AkTriggerBase
から継承することで、カスタム設定したトリガーがWwise Component Inspectorウィンドウの"trigger"リストに表示されるようになります(例えばボタンに添付されたAk Ambientなど)。カスタムトリガーについては Wwiseイベントのトリガーを追加する を参照してください。
このイベントが、WAVマーカを含むサウンドファイルの再生を始めます。イベントに関連するマーカコールバックを登録することで、パネルのサブタイトルの更新が可能になります。これを達成するには、Ak AmbientのInspectorで"Use Callback"オプションを選択します。次にスクリプト(SubtitleDemo.cs
)が含まれたGameObject (SubtitleSign
)が"Game Object"ボックスにドラッグ&ドロップされました。コールバックがトリガーされた時に実行するCallback Function (MarkerCallback
)の名前を入力して、Callback Flagsとして"Marker"が選ばれました。SubtitleDemo
のコードを見ると、Callbackファンクションは事前定義された文字列アレイからサブタイトルを読み、インデックスとして MarkerCallback
の uIdentifier
フィールドを使っただけだということが分かります。コールバックの詳細は AkAmbient をInspectorで使う を参照してください。
シーンにあるゾーン内のサウンドに関して、どのようにエフェクトを提供できるのかを、このStationで見せることができます。EnvironmentZoneに含まれる2つの洞穴(ここでも1つのBox Colliderがトリガーを担っている)があり、AuxBusがそれに対して追加されている(Wwise Pickerウィンドウからドラッグ&ドロップして追加)。
Wwiseで2つのAuxiliary Busを作成して、それぞれ異なるエフェクトを入れてあります。さらにフットステップやLittle Sequenceは"Use game-defined Auxiliary sends"にチェックが入っています。
EnvironmentZone内からWwiseイベントをポストすると、そのサウンドがゾーンと関連性のあるAuxBusにルーティングされます。
このステーションでEnvironment Portalコンポーネントのデモも確認できます。これは、2つの環境間の空間的な切り替わりを表します。デモの3つのボタンを使い、Environment PortalがAuxiliaryバスのミキシングにどう影響するかを確認できます。
まず環境ポータルを作成するには、グラフ軸のいずれかでAk Environemnts2つにタッチするBox Colliderを1つ作成します(このデモではポータルが'z'軸上でRedゾーンとBlueゾーンにタッチします。I次にAk Environment Portalコンポーネントを追加して、正しい軸を選択します。ミックスされるこの2つの環境は、自動的にフィルインされます。
EnvironmentやEnvironment Portalの詳細は unity_use_AkEvironment_AkEvironmentPortal を参照。
このステーションでは、UnityのTimelineでAkEventTrackとAkRTPCTrackを使う方法を示します。2つのCubeがあり、ボタンを押すと、アニメーションでお互いに向かって動き始め、インパクト(衝突)が起きると止まります。
Timelineを確認するには、Window->Timelineを選択します。次に階層でTimelineDemoオブジェクトを展開して、Timeline Demo Buttonオブジェクトを展開します。続いて、Buttonオブジェクトを選択します。CubeのアニメーションやWwiseイベントをコントロールするためのTimelineが、Timelineエディタに表示されます。Timelineは、ButtonオブジェクトのPlayable Directorコンポーネントでコントロールできます。
Timelineには、2つのCube用に、それぞれのアニメーショントラックが1つずつ、入っています。これらのトラックを使って、各Cubeのz座標を時間の経過とともにアニメーションするのに使います。また、TimelineにはAkEventTrackとAkRTPCTrackも含まれ、それぞれが白と赤のタブでマークされています。AkEventTrackに2つのAkEventPlayableクリップが含まれ、1つ目はPlayCubeMovementのWwiseイベントをトリガーするもの、2つ目はPlayImpactのWwiseイベントをトリガーするものです。これらのWwiseイベントの名前は、クリップに表示されています。名前を完全に表示させるには、Timelineエディタのビューの大きさを変えて、ズームインする必要があるかもしれません。PlayCubeMovementのWwiseイベントは、ピッチをRTPCで調整するサイン波ソースを再生します。このRTPCの名前は、CubeAccelerationです。Cubeがお互いに向かっていくにつれ、時間の経過とともにAkRTPCTrackがRTPCを増加させます。これによってサイン波のピッチが増大して、Cube同士がお互いに加速していく様子をシンプルなサウンドエフェクトで表現できます。
このステーションで、モーション機能のデモを見ることもできます。プレイヤー階層に"Motion listener"というゲームオブジェクトがあります。このゲームオブジェクトは、モーション対応のプラットフォームのモーションデバイスに送信するアウトプット用に設定されています。どのアウトプットも、データを受信する複数のリスナーが必要です。モーションリスナーにAKゲームオブジェクトやAkオーディオリスナーもあるのは、このためです。Cubeインパクトでモーションエフェクトを使うには、2つの重要な準備があります。まず、インパクト音を、Wwiseプロジェクト内のWwise Motionシェアセットを使うアウトプットバスに送る必要があります。次に、モーションアウトプットに使うリスナーを、インパクトイベントをポストするエミッターのリスナーに追加する必要があります。アウトプットを追加する方法について、AkMotionListenerスクリプトに例があるので参照してください。
![]() |
注記: Androidでモーション機能をサポートするには、アプリケーションのマニフェストにバイブレーションのパーミッションを含める必要があります。Unityは、アプリケーションの内容に基づいて自動的にマニフェストを生成します。Handheld.Vibrate() へのコールを追加すれば、マニフェストに必要なパーミッションを追加できます。 |
Timelineインテグレーションの詳細は、 WwiseのTimelineインテグレーション を参照してください。
このシーンが、スペーシャルオーディオのチュートリアルの最終プロダクトとなります。