0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

UE4+ADXで、BPによるエディタ拡張を使った小ネタTips(サウンドの埋まり防止、アセット参照など)

Last updated at Posted at 2022-07-23

はじめに

アンリアルエンジン4とサウンドミドルウェア「ADX for UE4」を連携させ、「Editor Utility Widget」機能(以下EUW)を使ってエディタに便利な機能を追加します。

以前のEUWに関する記事はこちら。

これらの記事に機能を追加する形となりますが、この記事で紹介する機能だけでも使用可能です。

前提

当記事ではUE4.26.1を使用します。ADX LEがUE5に対応した際は同じ実装法が使えると思われます。
基本的にブループリントのみでの実装を想定しています。
ADXはインディー向けの「LE版」であれば、無料で使用できます。
https://game.criware.jp/products/adx-le/

なお、ADX2はADXへ名称が変更になりましたが、ツール構成は変更ありません(2がないから古いほう、というわけではありません)。

記事執筆時点のADX for UE4のSDKバージョンはv1_29です。

ADX2 for UE4の導入や基本的な使い方は以下の記事にあります。必要に応じて参照してください。
ADX2 for UE4の導入で、一歩上のサウンド表現を(導入編)
https://qiita.com/SigRem/items/4250925f6d66a4fd287a
ADX2 for UE4の導入で、一歩上のサウンド表現を(実践編)
https://qiita.com/SigRem/items/c089b71c42e898980a46

実装

浮いていたりオブジェクトに埋まってしまったサウンドを見やすい位置に整列する

レベルに配置したサウンドやアクターが、操作ミスであらぬ位置に置かれてしまった際に役立つ機能です。
ADXを使ったサウンド機能では「障害物を通した音を聞こえにくくする」ものがあり、有効になっている状態で座標がずれると本来期待した聞こえ方にならない場合があります。
特定のクラスのアクターのみを地形に合わせて配置しなおし、そういった現象を防ぐことができるでしょう。

まずはEUWにUIとなるボタンを追加します。テキストはなくても大丈夫です。
A01.png
ボタンを選択し、Detailsパネルの下の方にある「On Released」を押し、ボタンが押して離された際のイベントを追加します。
A02.png
イベントから処理を書いていきます。まずは目標のクラスを指定し、Get All Actors Of Classノードで全アクターを取得します。
取得したアクターすべてに処理を適用したいので、For Each Loopでループをかけます。
A03.png
再配置処理の内容としては
「アクターのZ座標+5000」(上方)から「アクターのZ座標-5000」(下方)までをトレースし、衝突した座標へと移動させることで実現できます。
トレースはLineTraceByChannelノードを使います。「Trace Channel」は基本的な当たり判定となる「Visiblity」としますが、プロジェクトによってふさわしいものがあればそちらを優先してください。
A04.png
LineTraceByChannelノードの赤いアウトプットピンではトレースがヒットしたかの判定が返されます。
TrueであればSetActorLocationでヒット位置までアクターを移動させましょう。
A05.png
グラフの全体図としてはこんな感じです。
A06.png
テストしてみましょう。ボタンを押す前は浮いていたり地面やオブジェクトに埋まってしまっているアクターたちですが……
A07.png
ボタンを1度押すだけで座標が地上へとぴったり変更されました。
A08.png

アクターが半分埋まっているのが気になる、という場合は少しだけ数値を足してあげるといいでしょう。
A09.png
これでアクターが少し浮いた状態で配置されます。
A10.png

選択中のアクターで使用されているサウンドアセットを開く

アクターが「Atom」コンポーネントを持っている場合、再生するアセットを開きます。
アセットの設定を変えたい場合などに役立つでしょう。

まずはボタンを追加します。
B01.png
ボタンを選択した状態でDetailsパネルの下のほうにある「On Released」を押してイベントを追加します。
B02.png
処理は単純なもので、次のような感じになります。EUWではOpen Assetノードを使ってアセットを直接開くことができます。
B03.png
ボタンを押すと、アクターがAtomコンポーネントを持っている場合はアセットが呼び出されます。
B04.png

アセットのループ設定を変更する

選択しているアクターが参照しているサウンドのループ設定を変更します。
環境音なのにワンショットで再生が止まってしまう、ループしてほしくないのに再生され続けるなどの問題を発見した場合にすぐ直せるようになります。

EUWにボタンを「ComboBox」を追加します。コンボボックスはプルダウンメニューとして使用できるパーツです。
C01.png
コンボボックスのオプション(選択肢)を追加します。
必要なものは「Inherited」(AtomCraftでの設定を使用する)「Loop」「OneShot」の3つです。
デフォルトでは文字の大きさが少し大きすぎるので、「Font」の項で小さくしておきましょう。
C02.png
下の方にある「On Selection Changed」を押して値が変更された際のイベントを追加します。
C03.png
グラフはこんな感じです。値に応じてSwitch on Stringで分岐させ、Set Loop Settingノードでループ設定を上書きします。
C04.png
EUWのプルダウンメニューと同期して、アセットの設定が変わるようになりました!
C05.png

EUWでは必要に応じていくらでも機能を付け足していくことができます。
BPだけで完結できるエディタ拡張なので、気軽にいじってみてはいかがでしょうか。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?