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?

UE5 + ADXで、アニメーション内で状況別サウンドを再生する【GameplayTag活用編4】

0
Last updated at Posted at 2026-08-13

はじめに

ADXアンバサダーとして記事を書いておりますSigと申します。

この記事では、UE5のGameplayTagとADX for UEを組み合わせてサウンドを管理する実装の活用法を紹介します。

今回は、アニメーションの特定のフレームでサウンドを再生する仕組みを作ります。

ADX for UEとGameplayTagの連携の基本的な情報についてはこちらを参照ください。

UE5 + ADXで、サウンドをタグによって管理・再生する

UE5のAnimNotifyを使うと、アニメーションの任意のフレームにイベントを仕込めるため、音とモーションのタイミングを完全に一致させられます。ここにGameplayTagを組み合わせることで、「どの音を鳴らすか」をタグで指定し、実際のキューへの解決はデータテーブルに任せることができます。

例えば、

  • キャラクターごとに異なる服を着ており、その材質によりはためく音が変わる
  • 履いている靴により足音が変わる
  • 状況別のボイスをキャラごとに再生する

などの演出が可能です。

当記事ではUE5.7 及び 「ADX LE UE SDK(2.05.01)」を使用します。

また、基本的にブループリントのみでの実装を行います。

ADX for UEはインディー向けの「LE版」であれば、無料で使用できます。

前提

「ADX for UE LE」を使用します。導入や簡単な使い方は以下の記事にあります。

ADX for UEの導入で、一歩上のサウンド表現を(導入編)

ADX for UEの導入で、一歩上のサウンド表現を(実践編)

基礎編の仕組みを使用します。先にこちらを参照いただけると行程がイメージしやすいと思います。

UE5 + ADXで、サウンドをタグによって管理・再生する

実装

タグとキューを用意する

まずはタグを定義します。プロジェクト設定を開き、
A01.png

「GameplayTags」タブの「Manage Gameplay Tags...」からタグのマネージャを開きます。
A02.png

アクション音用のタグを追加します。

A03.png

A04.png

A05.png

例:

  • Sound.Action.Woosh : キャラクターがアクションする際の音(服のはためき、拳を振る音など)
  • Sound.Action.Jump : ジャンプの踏み切り
  • Sound.Action.Land : 着地音

A06.png

AtomCraftでサウンドを用意する

タグが用意できたら、AtomCraftに移りマテリアルをインポートします。
B01.png

それぞれについてキューを作成します。
B02.png

必要に応じて、パンタイプを「3Dポジショニング」に設定します。3D空間上のアクションでは距離減衰や音響が加味されるようにします。
B02b.png

キューシートをビルドしてUE5にインポートします。

既にインポートしたアセットを右クリックし、「Reimport」するのがお手軽です。
B03.png

データテーブルの編集

基礎編のデータテーブルに、タグとキューの対応を追加しておきます。

B04.png

それぞれについてキューと注釈を設定します。

アクション音用のAnimNotifyを作る

アニメーションの特定のフレームにサウンド再生を仕込むための、カスタムAnimNotifyを作成します。
通常のNotifyでは引数やパラメータを設定することができませんが、以下の方法であれば自由度の高いNotifyを作ることが出来ます。

コンテンツドロワーで右クリック→「Blueprint Class」を選択します。

C01.png

親クラスは AnimNotify を選択します。検索欄に「animnotify」と入力すると見つけやすいです。

C02.png

「AN_PlaySoundByTag」と名前をつけました。

C03.png

変数を追加する

AN_PlaySoundByTagを開きます。

C04.png

再生するサウンドを指定するための GameplayTag 型の変数「SoundTag」を追加します。

C05.png

C06.png

目玉のアイコンを押して Instance Editable にしておきます。これにより、アニメーションエディタ上でNotifyごとにタグを指定できるようになります。

C07.png

再生処理を書く

Received Notify 関数をオーバーライドします。これはNotifyが発火したときに呼ばれるものです。
My Blueprintパネルにて、Functionsの「Override」からプルダウンで選択します。

C08.png

関数を開きます。

C09.png

イベント内で、基礎編で作ったPlaySoundByTagを呼び出します。

C10.png

PlaySoundByTagに変数「SoundTag」を渡します。
C11.png

「Mesh Comp」の入力で再生したメッシュを取得できます。
Get World Locationでメッシュのワールド位置が得られるので、再生位置として使用します。

C12.png

最後にReturn Nodeでtrueを返します。これは「Notifyの処理が成功した」ことを示す戻り値です。

C13.png

アニメーションにNotifyを配置する

攻撃やジャンプのアニメーションシーケンス(またはモンタージュ)を開きます。

D01.png

Notifyトラックを右クリックし、「Add Notify」から「AN_PlaySoundByTag」を選択します。

D02.png

音を鳴らしたいフレームにドラッグ&ドロップして配置します(この時点でデバッグメッセージが表示され、処理が走っていることが分かります)。

D03.png

配置したNotifyを選択し、Detailsパネルで「SoundTag」に鳴らしたいタグを指定します。

D04.png

タグを設定してアニメーションを再生すると、設定したフレームでサウンドが鳴ります。音とモーションのタイミングがアニメーション側で完結しているため、ズレが起きません。

D05.png

まとめ

AnimNotifyとGameplayTagを組み合わせることで、柔軟性が高く、アニメーションと同期した再生処理が実現できます。

今回は基礎編の「PlaySoundByTag」を活用しているため、サウンドの追加や差し替えはデータテーブルの編集だけで完結します。アニメーターやレベルデザイナーがサウンドの実装を意識せずに音を仕込めるのがこの設計の大きな利点です。

アクション音のNotifyは攻撃やジャンプに限らず、ダッシュや回避、特殊アクションなどにもそのまま応用できます。

補足:キャラクターごとに異なるサウンドやボイスを再生する

「Mesh Comp」の入力からGet Ownerノードで、メッシュのオーナーとなるブループリントを取得できます。
E01.png
これを特定のクラスにCastすることで、ブループリント内の情報が取得できます。
この例ではキャラクタークラスにキャストし、そのクラスが持つ「CharacterTag」変数を取得しています。
これによってキャラクター別の再生処理を分岐させる、ということが可能になります。
E02.png

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?