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


menu_open
Wwise Unreal Integration Documentation
Spatial Audioのブループリントコンポーネント

これまで、ビルド済みのアクターを使ったり、個別のアクターインスタンスにコンポーネントを追加したりして、全てのものをレベルに直接つくり込んできました。スペーシャルオーディオの各種コンポーネントを使ってブループリントアクターをつくり、レベルのいたるところで複製することも可能です。このセクションでは、 Wwiseプロジェクトの準備 セクションのストラクチャの複製を、ブループリントクラスを使ってビルドし、ワールドのどこにでも簡単に追加したりスポーンしたりできるようにします。

info 注記: このチュートリアルを始める前に、 Spatial Audioチュートリアルの事前準備 を完了させておいてください。

ブループリントクラスを設定する

AkLateReverbComponentAkRoomComponent は、あるゲームオブジェクトのポジションが親の 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コリジョンは無視され、メッシュの三角メッシュ全体が使われるので、 AkLateReverbComponentAkRoomComponent のコンテインメントテストは、失敗します。 AkLateReverbComponentAkRoomComponent が使うSimpleコリジョンテストは、三角メッシュに対応していません。そこでブループリントクラスの推奨設定として、 AkLateReverbComponent コンポーネントや、 AkRoomComponent を使うときは、Simpleコリジョンコンポーネントを親にします。Simpleコリジョンコンポーネントとは、Box、Sphere、Capsuleなどです。具体的なメッシュを部屋や建物に設定した場合は、Simpleコリジョンコンポーネントをこのメッシュの子コンポーネントとして追加できます。

  1. コンテンツブラウザを右クリックし、 Blueprint Class を選択します。
  2. ベースクラスに Actor を選択し、この新しいクラスの名前を 'SpatialAudioBP' とします。
  3. SpatialAudioBP をダブルクリックしてこのクラスを開き、Viewportタブをクリックします。
  4. ルートコンポーネントが選択されていることを確認し、 Add Component > Static Mesh をクリックします。
  5. 新しいスタティックメッシュコンポーネントをクリックし、このメッシュをDetailsパネルで選択します。

    • この例では、 Wwiseプロジェクトの準備 セクションで使ったSpatialAudioDemoMeshを選択しました。
    • SpatialAudioDemoMeshを使う場合は、必ずMaterialsセクションで SpatialAudioDemoMeshMaterial を選択します。
    スタティックメッシュコンポーネントのMeshとMaterialsを設定する
    info 注記: ポータルに対するルームの自動アサインは、凸型メッシュでしか機能しません。凹型メッシュ(L字型のルームなど)の場合、ポータルとルームの正確なIntersectionができません。
  6. メッシュの中のルームや戸口に、それぞれBoxコリジョンコンポーネントを追加します。

    • このチュートリアルに出てくるBoxコリジョンコンポーネントには、BoxRoomLarge、BoxRoomSmall、BoxPortalInner、そしてBoxPortalOuterという名前を付けました。
    あなたのメッシュのルームやポータルに、Boxコリジョンコンポーネントを追加する

Boxコリジョンコンポーネントを移動する

この時点では、全てのBoxコリジョンコンポーネントが同じ場所に重ねて置いてあります。これから、ポジションを変え、拡大縮小し、回転することで、ルームやドアに揃えていきます。一番簡単な方法は、正投影のビューを使うことです。(以下の手順はSpatialAudioDemoMeshのためですが、ほかのメッシュでも同じような手順が使えます。)

info 注記: チュートリアルでルームやポータルと、メッシュの位置を揃えるときに、ぴったりと揃わなかったり中心が合わなかったりしても、構いません。だいたい同じ場所をカバーするようにします。本物の環境を設計する際は、DetailsパネルのTransformセクションで、正確な数値を入力できます。
  1. Viewportタブで Perspective をクリックし、ビューを Top に変えます。

    • 上からシーンを見下ろしたビューとなり、ワイヤーフレームのレンダリングが表示されます。
    正投影のTopビュー
  2. BoxRoomLarge を選択し、Y軸に沿って下に動かし、メッシュの大きいルームの中央にもってきます。
  3. BoxRoomLarge の縮尺をXY軸に沿って調整し、大きさが大きいルームの寸法に合うようにします。(スケール機能に切り替えるには、Rを押すか、Viewportタブのスケールウィジェットを選択します。)

    XY軸に沿ってLarge Roomのポジションと縮尺を調整する
  4. BoxRoomSmall を選択し、XY軸に沿って縮尺を調整し、大きさが、小さいルームの寸法に合うようにします。

    XY軸に沿ってRoomのポジションと縮尺を調整する
  5. BoxPortalInner を選択し、ワイヤーフレームにズームインし、メッシュに内側の戸口の範囲が見えるようにします。

    ワイヤーフレームメッシュで、戸口の両端を確認する
  6. BoxPortalInner を戸口の中央まで動かし、X軸に沿って縮尺を調整して戸口の両端をカバーするようにします。

    Inner Portal Boxが戸口をカバーするように、ポジションと縮尺を調整する
  7. BoxPortalOuter を選択し、ローカルのY方向が戸口の外を指すように回転させます。

    info 注記: 理由は、ポータルに対する「フロント」ルームと「バック」ルームが、ポータルのY方向と交差する一番近いルームを検知することで自動的に決まるからです。BoxPortalOuterの例では、「バック」側(ローカル座標空間において)が、メッシュの小ルームに接続し、「フロント」側は、接続するルームがありません。
  8. BoxPortalOuter をZ軸を中心に90度、回転させます。これは、DetailsパネルのTransformセクションにある Rotation の、Z軸のテキストボックスに'90'と入力すればできます。

    ローカルY軸がドアの外を指すように、Outer Portal Boxを回転させる
  9. BoxPortalOuter が外側のドアの上にくるように動かし、戸口の両端をカバーするように縮尺を調整します。
  10. Topビューで、下図のように全てのルームやポータルが、メッシュと揃っていることを確認します:

    Topビューで、正しく揃っているルームやポータル
  11. 次に、BoxコリジョンコンポーネントをZ軸に沿って動かし、ポジションと縮尺を調整します。Viewportタブの Top をクリックし、ビューを Back に変更します。
  12. BoxRoomLargeBoxRoomSmall を選択し、どちらもルームの大きさに合うように、Z軸方向にスケールを調整します。

    ルームのボックスの縮尺を、Z軸に沿って調整する
  13. BoxPortalOuterBoxPortalInner を選択し、それぞれの戸口の中まで下に動かし、Z軸方向に縮尺を調整し、それぞれのドアの大きさに合わせます。

    Z軸に沿ってPortal Boxのポジションと縮尺を調整する

ルームとポータルを設定する

次に、AkRoomコンポーネントをルームに追加し、AkPortalコンポーネントをポータルに追加します。

  1. Boxコリジョンコンポーネントを1つ1つ選択して Add Component を選択します。
  2. それぞれのBoxコリジョンコンポーネントに対し、適宜、ルームコンポーネントまたはポータルコンポーネントを作成し、親と似た名前を付けます。以下のような結果になるはずです:

    AkRoom ComponentをRoom Boxに、AkPortal ComponentをPortal Boxに追加する
    info

    注記: 各コンポーネントを正しい親に追加するように、注意してください。例えば、大きいルームにAkRoomLargeを追加するときは、必ず BoxRoomLarge が選択されていることを確認してから、 Add Component をクリックしてください。

    AkRoomComponentやAkPortalComponentは、どのようなPrimitiveコンポーネントにも追加できる汎用コンポーネントです。詳細は、 AkRoomComponent や、 AkPortalComponent を参照してください。

  3. ポータルが正しく配置されていることを確認するために、Integration Settingsの Visualize Rooms and Portals オプションを選択します。

    Integration SettingsのVisualize Rooms and Portalsオプション
  4. 接続しているルームとポータルの間に、線が表示されます。ポータルの配置が無効であれば、赤色で表示されます。

    Viewportに表示されたポータルとルームのつながり
    info 注記: ポータルに接続するルームがなかったり、同じルームがポータルの内外両側に接続していたりすると、このポータルの設定は無効です。詳細は AkPortalComponent を参照してください。
  5. Integration Settingsで Visualize Rooms and Portals オプションの選択を外します。

ジオメトリとレイトリバーブを追加する

最後に、ブループリントクラスにAkGeometryとAkLateReverbの2つのコンポーネントを追加します。

  1. スタティックメッシュコンポーネントに、AkGeometryコンポーネントを追加します。
  2. BoxコリジョンコンポーネントのBoxRoomLargeに、AkLateReverbコンポーネントを追加します。

    ブループリントクラスに、AkGeometryとAkLateReverbを追加する
  3. AkLateReverb コンポーネントをクリックします。
  4. Detailsパネルで、Auxバスを LargeRoom に設定します。

設定内容を確認する

これで、ブループリントクラスを使う準備が整いました。このクラスのインスタンスを、ワールドにドラッグして入れることができます。

  1. SpatialAudioBP のインスタンスをコンテンツブラウザからスペーシャルオーディオのデモマップにドラッグします。
  2. すでにある建物の横に置きます。

    ワールドに追加された、ブループリントクラスのインスタンス
  3. Wwiseにリモート接続してEditorでプレイします。
  4. マウスをクリックし、屋外サウンドを再生します。
  5. WwiseのGame Object Profilerレイアウトで、新しいブループリントクラスのジオメトリが正しく登録されていて、このジオメトリでレイ(ray)が正しく反射されていることを確認します。
  6. レイが、新しいブループリントのストラクチャの中で、ポータルを通り抜けていることを確認します。

    Spatial Audioのパスと、新しいブループリントクラスのインスタンスが、正しく作用し合っているる様子
  7. レイトリバーブコンポーネントをテストするには、このSpatialAudioBPインスタンスの中の大きいルームに、サウンドを追加して配置する必要があります。ワールドにすでにある Play_Outside というAkAmbientSoundアクターを右クリックし、Duplicate(複製)します。

    既存のPlay_Outsideサウンドを複製する
  8. 複製の名前を 'Play_LargeRoom_BP' に変更します。(別の方法として、 Play_LargeRoom_BP をドラッグして Button_Outside の上にもっていけば、World Outliner階層にあるButton_OutsideのPlay_LargeRoom_BPを分離できます。)
  9. Play_LargeRoom_BP を、このSpatilAudioBPインスタンスの大きいルームにもっていきます。

    サウンドを大きいルーム内に配置する
  10. Level Blueprintを開き、Bキーを押したときにPlay_LargeRoom_BPサウンドを再生するための、ロジックを追加します( Wwiseプロジェクトの準備 のステップ3を参照)。

    新しいサウンドをBキーで再生させるための、Level Blueprintのロジック
  11. Level Blueprintをコンパイルして保存します。
  12. Editorで再生します。
  13. Bを押して新しいサウンドを再生します。
  14. SpatialAudioBPの建物の大きいルームに、歩いて入ります。
    • リバーブが適用されるのが聞こえるはずです。

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

サポートは必要ですか?

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

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

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

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

Wwiseからはじめよう