多数のAtomキューのパラメータを一括で管理・編集する（プロパティマトリクス）

# はじめに
アンリアルエンジン4とサウンドミドルウェア「ADX for UE4」を連携させてインポートしたサウンドのパラメータを一括で管理・変更する方法です。

AtomCraft内でもパラメータを一括で管理するための「カテゴリ」「カテゴリグループ」機能がありますが、より広範囲のパラメータをエディタ上でまとめて編集します。
パラメータを動的に一括変更したい場合「カテゴリ」「カテゴリグループ」機能を使い、アセットを静的に編集したい場合はここで紹介する「プロパティマトリクス」を使うといいでしょう。

![A01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/83eb85e7-7f19-4cfd-96b9-d850dd9c757c.png)
▲AtomCraftの「カテゴリ」「カテゴリグループ」
![A02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/bb064ff1-385c-ed16-90d5-44ce51a7e7c3.png)
▲UE4の「プロパティマトリクス」



# 前提

当記事では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


# 実装

## キューのパラメータ編集

Atomキューアセットをダブルクリックするとウィンドウが開き、キューのパラメータを編集することができます。
![A03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/27ed228b-ed0a-c7ea-d52b-ebaeec890e99.png)
たとえば、LoopSettingsのプルダウンメニューを「Loop」にすると、元の設定を上書きしてループ再生されるようになります。
![A04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/768c27a3-6162-8963-d3b4-1198547badf9.png)
しかし、仮に「BGMを一括でループ再生に設定する」などの場合はひとつひとつパラメータを編集していくのが面倒ですね……。

その場合に使うのが「プロパティマトリクス」です。

## プロパティマトリクスでパラメータを編集する

プロパティマトリクスで編集したいアセットを、コンテンツブラウザ上ですべて選択します。
![B01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/d6045918-70ed-0836-3d7f-17ce9ec9690f.png)
右クリックし、「Asset Actions」→「Bulk Edit via Property Matrix」を選択します。
![B02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/aea21ae7-f49c-9d29-aa24-10b0d53d6063.png)
プロパティマトリクスが開きます。
![B03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/d7582c58-9967-3edd-cdf4-c79fe8b27375.png)

一括でパラメータを編集するには、編集したいアセットをプロパティマトリクス上で選択します。
![B04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/ccb05fe1-878b-2f9e-ddfa-bb1ef145139e.png)
右側のプロパティを編集すると……
![B05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/f3c2f016-cf1d-2800-9911-e2aadacb8591.png)
黄色くハイライトされたプロパティが一括で書き換えられます。
![B06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/7fc49a32-f8b1-428a-09ff-5bbd60301159.png)
プロパティは多くなりがちですので、テキストでの検索を使うと便利です。
![B07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/2cadbe45-b20e-1809-4205-6067caa517df.png)

編集したアセットは用途に応じて「Cue Color」を設定すると、コンテンツブラウザ上で視認性が上がります。
![B08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/eec9fb50-25b2-47af-2d96-ea5afe1fba7c.png)
![B09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/adbabea4-9a03-7d07-1361-9a52a56d36ce.png)
BGMやSE、AISACコントロールなどの特殊パラメータのありなしに応じて色を決めておくと良さそうです。



## Atomキューアセットのプロパティ

Atomキューに設定できるプロパティについて軽く見てみましょう。

### Attenuation
![C01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/2b0c564b-e07f-5f2e-9557-ff9cbbdc3a80.png)
サウンドの減衰をSound Attenuationアセットから指定できます。
この減衰アセットはUE標準のものが使用可能なため、サウンドに関してADXと標準機能をハイブリッドに使用しているプロジェクトに有用です。
ADXのみでサウンド機能を構成している場合は、AtomCraftで音の減衰を設定したほうがいいでしょう。

Sound Attenuationアセットはコンテンツブラウザの空欄で右クリック→「Sounds」→「Sound Attenuation」を選択することで作成できます。
![C01b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/635febbf-3826-a439-6f1c-1d761618dac2.png)
音の聞こえる範囲や減衰する距離を個別に設定可能です。
![C01c.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/a228cc11-e4f2-97fe-cb56-79054c7cf416.png)

### Audio Volume
![C02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/345c432c-eb3f-4d61-3318-0bddef9e1bd5.png)
ボリュームの中で聞いたサウンドの性質を変える「Audio Volume」の影響を受けるかどうかを設定します。
「Audio Volume」内ではサウンドにさらに反響などのエフェクトを追加できます。


### Atom 3d Transceiver
![C03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/9304008e-cf9b-93eb-747b-c49453d44d86.png)
Atom 3d Transceiver機能で使用するリージョンを指定します。
https://twitter.com/sleepyslowsheep/status/1438049857432813570?s=20&t=Ktvklrr82iM6qXi_lxLqnA
Atom 3d Transceiver機能を使用する場合はレベル上に置いて個別に指定したほうが使い勝手がいいため、通常プロパティマトリクスではいじらなくていいでしょう。

Atom 3d Transceiver機能の使い方はこちらの記事にあります。
**ADX2+UE4で、屋内の音響をデザインする（前編）**
https://qiita.com/SigRem/items/86d4a218d6be3240df3d
**ADX2+UE4で、屋内の音響をデザインする（後編）**
https://qiita.com/SigRem/items/bd2b62dedd111e3f5e15

### Economic Tick
![C04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/8cccd68f-c10f-e6e9-1b18-deb76190ebe6.png)
遠くで再生されたサウンドの処理負荷を軽減する「Economic Tick」機能を有効にします。
プロジェクト全体のEconomic Tickはプロジェクト設定の「CriWare」タブから設定できます。
![C04b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/b6ceedd9-ce4c-9155-b6ff-e310df4b70d1.png)


### Culling
![C05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154452/4415265f-925a-f1a0-6af1-5c155d862e3a.png)
距離によって音声を間引くカリングを設定します。