LoginSignup
9
5

ADX2 for UE4で変化するループBGMを再生する(AtomCraft編)

Last updated at Posted at 2020-08-04

はじめに

アンリアルエンジン4とサウンドミドルウェア「ADX2 for UE4」を連携させ、
現在の状態に応じてループ楽曲の曲調、テンションを変化させていく「インタラクティブミュージック」を実装する方法です。

当記事ではUE4.23+「ADX2 LE v2.10.05」を使用します。

ADX2 for UE4の基本的な使い方はこちらの記事で。
ADX2 for UE4でインタラクティブミュージック(AtomCraft編)
https://qiita.com/SigRem/items/8af9b7d8445477906741
ADX2 for UE4でインタラクティブミュージック(ブループリント編)
https://qiita.com/SigRem/items/b53dc03d01c5f8fe1465

今回の内容について、楽曲素材とサンプルプロジェクトを用意しました。こちらを覗くとお手軽に試せます。
楽曲素材
https://drive.google.com/file/d/1jm_jS8yjQArGqjlaOzGF11_MeZZyAAoO/view?usp=sharing
サンプルプロジェクト
https://drive.google.com/file/d/1vqmUzY95Yfv64nxo0C2Xn8_iGiMWNywf/view?usp=sharing

プラグインを導入する必要があるので、下記の「導入編」を参照してADX2 for UE4を有効にしてください。

前提

「ADX2 for UE4 LE」を使用します。導入や簡単な使い方は以下の記事にあります。
ADX2 for UE4の導入で、一歩上のサウンド表現を(導入編)
https://qiita.com/SigRem/items/4250925f6d66a4fd287a
ADX2 for UE4の導入で、一歩上のサウンド表現を(実践編)
https://qiita.com/SigRem/items/c089b71c42e898980a46

#やること

  • マウスカーソルの位置を取得し、現在地に応じた楽曲処理をする
  • X座標により曲のフレーズを変化させる
    • 「ブロック再生」機能
  • Y座標により曲の盛り上がりを変化させる
    • 「Aisac Control」機能
  • ブループリントで見た目を華やかに

実装

楽曲の構成設計

今回作るループ楽曲は以下のような構成を想定します。

4つのブロックで構成される

BGMは、4つのフレーズから構成されます。
ベース・ドラムは一定ですが、ピアノ・パッド・リードは異なる4つの旋律が存在します。
001.png

3つのテンションに変化する

楽曲の盛り上がりが、3段階に分けて変化するように作ります。
これらの段階を当記事では「ロー」「ミドル」「ハイ」と呼称し、
「ロー」ではピアノ・ハイハットのみが再生され、
「ミドル」ではパッド・ベース・キックドラムが追加、
「ハイ」ではリード・スネアが追加されるようにします。
002.png
▲青色=ローテンション 橙色=ミドルテンション 赤色=ハイテンション

これらの要素を持つよう、AtomCraftでBGMを設計していきます。

AtomCraftでBGMを構成する

素材の用意

今回のサンプルのための楽曲素材を用意しましたので、手元に使える素材がない場合試してみてください。冒頭のものと同じです。
https://drive.google.com/file/d/1jm_jS8yjQArGqjlaOzGF11_MeZZyAAoO/view?usp=sharing

素材のインポート

用意した素材を「マテリアルツリー」にドラッグ&ドロップしインポートします。
A01.png

キュー、トラックの作成

「ワークユニットツリー」のキューシートを右クリックし、「新規オブジェクト」→「キュー『ポリフォニック』の作成」で新規にキューを作成します。
A02.png
分かりやすいようにリネームします。
A03.png
「マテリアルツリー」からピアノトラックの1フレーズ目となる、「ADX_BlockSample_Piano01」をタイムラインにドラッグ&ドロップして配置します。ピアノ用のトラックが作られます。再生(F5キー)するとピアノだけが流れます。
A04.png
その他のトラックも置いていきます。
画像のように置きながら都度再生していくと、音が段々増えて楽しいはず。
A05.png
すべて置いたら次に移ります。

ブロックの作成

UE4で再生中に異なるフレーズを行き来できるよう、ブロック再生を設定します。この機能についての詳細とセットアップは以下の記事にあります。この記事だけでそのまま進めても大丈夫です。
ADX2 for UE4でインタラクティブミュージック(ブロック再生編)
https://qiita.com/SigRem/items/696ab6f1b4e533eebdbf

トラックリストの空欄で右クリックし、「新規オブジェクト」→「ブロックの作成」をクリックします。
A06.png
ブロックが作られ、タイムラインの最初から1フレーズ目の終了にかけて配置されます。
A07.png
さらに同じように、「新規オブジェクト」→「ブロックの作成」。
A08.png
ふたつめのブロックがその先に置かれます。
A09.png
分かりやすいように、各ブロックに名前をつけます。
A10.png
各トラックに対して、2フレーズ目のマテリアルを置いていきます。
「Bass」「DrumA」「DrumB」「DrumC」は各フレーズ共通となりますので、1フレーズ目と同じマテリアルを置いていきます。
A11.png
同じ作業を繰り返し、3つめ、4つめのブロックとフレーズを配置したらタイムラインは完成となります。
ここで一度テスト再生して、おかしいところがないか確認すると安全です。
A12.png

Aisacコントロールで動的なボリュームを設定する

次に、動的に楽曲のテンションを変えられるようにAisacコントロール機能の設定を行います。
この機能についてはこちらの記事に詳細がありますが、とりあえず試したい方はこの記事でそのまま進めてもOKです。
ADX2 for UE4でインタラクティブミュージック(AtomCraft編)
https://qiita.com/SigRem/items/8af9b7d8445477906741

今回の設計をおさらいしてみましょう。
「ミドル」テンションではパッド、ベース、ドラムBが追加され、
「ハイ」テンションではリード、ドラムCが追加されます。
上記を踏まえると、ミドルテンション用、ハイテンション用にふたつのAisacコントロールが必要になります。
Aisacコントロール_00をミドルテンションに、Aisacコントロール_01をハイテンションに割り当てることにします。

「パッド」を担当するトラックを右クリックし、「新規オブジェクト」→「AISACの作成」をクリックします。
A13.png
ここではそのままOKを押します。トラックのボリュームを変動させてテンションを表現するので、「AISACグラフタイプ」は「ボリューム」です。
A14.png
Aisacコントロールの編集画面が開くので、「ボリューム」を選択して画像のように右肩上がりのグラフを作ります。
A15.png
これでAisacコントロールの数値が少ないほどパッドトラックの音量は小さく、「1」に近づくほど大きくなります。
再生して、上部のバーを左右に動かすとボリュームが変わるはずです。
a16.png
ベース用トラックにもAisacコントロールを追加します。
a17.png
パッド、ベース用トラックは「ミドル」テンションの際に同じタイミングでボリュームが変動するので、こちらもAisacコントロール_00を使います。
a18.png
同じように右肩上がりのグラフを作ります。
これでベースもパッドと同期して音量が変動するようになります。この挙動も上部のバーで確認できます。
A19.png
ドラムBのトラックにも同様にAisacコントロールとグラフを作成・設定します。
A25.png

ここから設定するのはハイテンション用のAisacです。
「リード」トラックにはAisacコントロール_01を指定します。
A20.png
「ドラムC」トラックも同様です。
A26.png
最終的に5つの同じようなグラフが並ぶことになります。
A21.png
上部のバーをドラッグし、ふたつのAisacコントロールが変化した際の音量の変化を試してみましょう。
A22.png

キューシートのビルド

AtomCraftでの工程が完了したら、キューシートをビルドします。
A23.png
A24.png

ここからはUEでの作業に移っていきます。
次の工程はこちら!

9
5
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
9
5