足音を床属性で切り替えて再生する

足音を床属性で切り替えて再生するとは?

足音のキューを3つ用意し、それぞれ、ゲーム中の床属性によって変化させるようにします。

craftv2_tips_performance_change_floor0.png

とてもシンプルであるため容易に実装が可能です。

キューを呼び分ける場合の問題

通常3つのキューをそれぞれ呼び分ける場合は、キュー名を設定する必要がありますが、
プログラマが全てのキューを知っている必要があります。

キュー名の場合は命名規則、キューIDの場合はIDの規則などを決めるといったこともできますが、
名前の場合に、ミスが発生した場合にどちらの問題か切り分けが難しいでしょう。
(呼び出しの問題か、データ設定の問題かなど)また、組み合わせ分のキューが必要になり、呼び分けをする必要があります。

今回の例のような床の属性が3つ程であれば何とかなりますが、
多くの床とぶつかる対象の音(靴の種類など)がある場合、組み合わせ数が膨大になります。

craftv2_tips_performance_change_floor0a.png

セレクタの利用の提案

属性が多い場合や、これから増えるといった場合を想定してセレクタを検討します。
キューは増えず、セレクタラベルのみが増えていく形になります。

管理上は、一つのキューで複数の属性の音を用意する形になります。
それらをセレクタによって切り替えます。
セレクタが複数のキューに適用できるのであれば、ルールも明確になり扱いやすくなるでしょう。

craftv2_tips_performance_change_floor0b.png

作り方

1. キューをマージします

craftv2_tips_performance_change_floor1.png

2. キューのタイプをスイッチに変更します

craftv2_tips_performance_change_floor2.png

3. セレクタの確認

スイッチ/セレクタでNoneが選ばれています。 ここで選ぶためのセレクタを用意します。

craftv2_tips_performance_change_floor3.png

4.セレクタフォルダでセレクタを作成します

craftv2_tips_performance_change_floor4.png

5.セレクタ名を変更します

craftv2_tips_performance_change_floor5.png

6.セレクタラベルを3つ作成します

craftv2_tips_performance_change_floor6.png

7.セレクタラベル名を変更します

craftv2_tips_performance_change_floor7.png

8.キューを選択し、セレクタを指定します

craftv2_tips_performance_change_floor8.png

9.各トラックのセレクタラベルを設定します

craftv2_tips_performance_change_floor9.png

10.セレクタが設定されていないまま再生するとこのワーニング

この状態で再生するとログに赤い文字でメッセージが表示されますがこれは正しい動作です。
セレクタが設定されていないまま再生するとこのワーニングが表示されます。

craftv2_tips_performance_change_floor10.png

11.表示メニューからセッションウィンドウを開きます

craftv2_tips_performance_change_floor11.png

12.キューをセッションウィンドウへ登録します

craftv2_tips_performance_change_floor12.png

13.ラベルを選択して再生をすると、音が切り替わります

craftv2_tips_performance_change_floor13.png

14.グローバル参照セレクタラベルを選択すると、プログラムで一括して変更ができます。

グローバル参照セレクタラベルは、全体設定に値を記録し、セレクタが参照します。
プレーヤーにセレクタラベルが未設定の場合や、プレーヤーをリセットした時の設定値として利用できます。

craftv2_tips_performance_change_floor14.png