menu
バージョン
2021.1.14.8108
2024.1.4.8780
2023.1.12.8706
2022.1.18.8567
2021.1.14.8108
2019.2.15.7667
2019.1.11.7296
2018.1.11.6987
2017.2.10.6745
2017.1.9.6501
2016.2.6.6153
2015.1.9.5624
2024.1.4.8780
2023.1.12.8706
2022.1.18.8567
2021.1.14.8108
2019.2.15.7667
2019.1.11.7296
2018.1.11.6987
2017.2.10.6745
2017.1.9.6501
2016.2.6.6153
2015.1.9.5624
Wwise Unreal Integration Documentation
|
これまで、ビルド済みのアクターを使ったり、個別のアクターインスタンスにコンポーネントを追加したりして、全てのものをレベルに直接つくり込んできました。スペーシャルオーディオの各種コンポーネントを使ってブループリントアクターをつくり、レベルのいたるところで複製することも可能です。このセクションでは、 Wwiseプロジェクトの準備 セクションのストラクチャの複製を、ブループリントクラスを使ってビルドし、ワールドのどこにでも簡単に追加したりスポーンしたりできるようにします。
info | 注記: このチュートリアルを始める前に、 Spatial Audioチュートリアルの事前準備 を完了させておいてください。 |
AkLateReverbComponent
と AkRoomComponent
は、あるゲームオブジェクトのポジションが親の PrimitiveComponent
の中にあるのかどうかを確認するときに、コンテインメントテストを行います。確認にはSimpleコリジョンを使います。そこで、Simpleコリジョンのある親 PrimitiveComponent
を使ってください。例えば、Boxコリジョン、Sphereコリジョン、Capsuleコリジョンなどのコンポーネントが使えます。 PrimitiveComponent
にSimpleコリジョンがなければ、Component boundsをコンテインメントテストに使うだけですが、正確性は劣るかもしれません。
Unrealで、メッシュアセットにSimpleコリジョンを追加することも可能です( Setting Up Collision With Static Meshes を参照)。ただし、戸口や開口部などのある複雑なメッシュの場合は、メッシュのコリジョン設定で'Use complex collision as simple'とする必要があるかもしれません( Simple Vs Complex Collision を参照)。例えば、キャラクターがドアを通過してルームに入れても、そのルームの壁には衝突してしまうようにするには、この設定が必要かもしれません。この設定を使うと、Simpleコリジョンは無視され、メッシュの三角メッシュ全体が使われるので、 AkLateReverbComponent
や AkRoomComponent
のコンテインメントテストは、失敗します。 AkLateReverbComponent
や AkRoomComponent
が使うSimpleコリジョンテストは、三角メッシュに対応していません。そこでブループリントクラスの推奨設定として、 AkLateReverbComponent
コンポーネントや、 AkRoomComponent
を使うときは、Simpleコリジョンコンポーネントを親にします。Simpleコリジョンコンポーネントとは、Box、Sphere、Capsuleなどです。具体的なメッシュを部屋や建物に設定した場合は、Simpleコリジョンコンポーネントをこのメッシュの子コンポーネントとして追加できます。
新しいスタティックメッシュコンポーネントをクリックし、このメッシュをDetailsパネルで選択します。
info | 注記: ポータルに対するルームの自動アサインは、凸型メッシュでしか機能しません。凹型メッシュ(L字型のルームなど)の場合、ポータルとルームの正確なIntersectionができません。 |
メッシュの中のルームや戸口に、それぞれBoxコリジョンコンポーネントを追加します。
この時点では、全てのBoxコリジョンコンポーネントが同じ場所に重ねて置いてあります。これから、ポジションを変え、拡大縮小し、回転することで、ルームやドアに揃えていきます。一番簡単な方法は、正投影のビューを使うことです。(以下の手順はSpatialAudioDemoMeshのためですが、ほかのメッシュでも同じような手順が使えます。)
info | 注記: チュートリアルでルームやポータルと、メッシュの位置を揃えるときに、ぴったりと揃わなかったり中心が合わなかったりしても、構いません。だいたい同じ場所をカバーするようにします。本物の環境を設計する際は、DetailsパネルのTransformセクションで、正確な数値を入力できます。 |
Viewportタブで Perspective をクリックし、ビューを Top に変えます。
BoxRoomLarge の縮尺をXY軸に沿って調整し、大きさが大きいルームの寸法に合うようにします。(スケール機能に切り替えるには、Rを押すか、Viewportタブのスケールウィジェットを選択します。)
BoxRoomSmall を選択し、XY軸に沿って縮尺を調整し、大きさが、小さいルームの寸法に合うようにします。
BoxPortalInner を選択し、ワイヤーフレームにズームインし、メッシュに内側の戸口の範囲が見えるようにします。
BoxPortalInner を戸口の中央まで動かし、X軸に沿って縮尺を調整して戸口の両端をカバーするようにします。
BoxPortalOuter を選択し、ローカルのY方向が戸口の外を指すように回転させます。
info | 注記: 理由は、ポータルに対する「フロント」ルームと「バック」ルームが、ポータルのY方向と交差する一番近いルームを検知することで自動的に決まるからです。BoxPortalOuterの例では、「バック」側(ローカル座標空間において)が、メッシュの小ルームに接続し、「フロント」側は、接続するルームがありません。 |
BoxPortalOuter をZ軸を中心に90度、回転させます。これは、DetailsパネルのTransformセクションにある Rotation の、Z軸のテキストボックスに'90'と入力すればできます。
Topビューで、下図のように全てのルームやポータルが、メッシュと揃っていることを確認します:
BoxRoomLarge と BoxRoomSmall を選択し、どちらもルームの大きさに合うように、Z軸方向にスケールを調整します。
BoxPortalOuter と BoxPortalInner を選択し、それぞれの戸口の中まで下に動かし、Z軸方向に縮尺を調整し、それぞれのドアの大きさに合わせます。
次に、AkRoomコンポーネントをルームに追加し、AkPortalコンポーネントをポータルに追加します。
それぞれのBoxコリジョンコンポーネントに対し、適宜、ルームコンポーネントまたはポータルコンポーネントを作成し、親と似た名前を付けます。以下のような結果になるはずです:
info |
注記: 各コンポーネントを正しい親に追加するように、注意してください。例えば、大きいルームにAkRoomLargeを追加するときは、必ず BoxRoomLarge が選択されていることを確認してから、 Add Component をクリックしてください。 AkRoomComponentやAkPortalComponentは、どのようなPrimitiveコンポーネントにも追加できる汎用コンポーネントです。詳細は、 AkRoomComponent や、 AkPortalComponent を参照してください。 |
ポータルが正しく配置されていることを確認するために、Integration Settingsの Visualize Rooms and Portals オプションを選択します。
接続しているルームとポータルの間に、線が表示されます。ポータルの配置が無効であれば、赤色で表示されます。
info | 注記: ポータルに接続するルームがなかったり、同じルームがポータルの内外両側に接続していたりすると、このポータルの設定は無効です。詳細は AkPortalComponent を参照してください。 |
最後に、ブループリントクラスにAkGeometryとAkLateReverbの2つのコンポーネントを追加します。
BoxコリジョンコンポーネントのBoxRoomLargeに、AkLateReverbコンポーネントを追加します。
これで、ブループリントクラスを使う準備が整いました。このクラスのインスタンスを、ワールドにドラッグして入れることができます。
すでにある建物の横に置きます。
レイが、新しいブループリントのストラクチャの中で、ポータルを通り抜けていることを確認します。
レイトリバーブコンポーネントをテストするには、このSpatialAudioBPインスタンスの中の大きいルームに、サウンドを追加して配置する必要があります。ワールドにすでにある Play_Outside というAkAmbientSoundアクターを右クリックし、Duplicate(複製)します。
Play_LargeRoom_BP を、このSpatilAudioBPインスタンスの大きいルームにもっていきます。
Level Blueprintを開き、Bキーを押したときにPlay_LargeRoom_BPサウンドを再生するための、ロジックを追加します( Wwiseプロジェクトの準備 のステップ3を参照)。