レッスン 7
目次
-
-
-
-
-
-
-
-
-
-
-
-
関連動画
-
-
前回のレッスンでイベントを使ってステートを設定して、ステートでBoss、Story、Victory、Defeatedのセグメント用に、様々な音楽を再生しました。このレッスンの後半で似たようなイベントを追加して、敵がプレイヤーの存在を察知しているかどうかを指定して、それを使ってCombatやExploreのミュージックを再生します。イベントを使ってExploreやCombatのスイッチを設定することも可能ですが、そのような直接リンクは行いません。代わりに、Gameplay_SwitchスイッチグループをRTPCで操作します。敵の察知イベントをスイッチグループに直接つながないのは、敵による察知の有無がゲーム中に頻繁に変わることもあり、その時は音楽が唐突に切り替わってしまうからです。例えば、プレイヤーが探検(explore)中に遭遇した一匹のモンスターに打ち勝つことができ、それが2秒間の出来事であれば、ミュージックがExploreからCombatにトランジションしてまたExploreに戻るのが2秒で終わってしまい、聞こえが良くありません。
これに対応するために、Game Parameters/RTPCだけで使えるSlew Rate(スルーレート)という機能を利用します。スルーレートは、異なる値の間のトランジションを、ゆっくり時間をかけて行う方法を提供します。車が時速0kmから100kmまで加速して、また元に戻るのを想像してください。スポーツカーはスルーレートが速く、トランジションを素早く達成しますが、スクールバスなどはそれだけ加速したり減速したりするのに時間がかなりかかり、スルーレートが遅いです。
これから、範囲が-1から101までの、EnemyAwareゲームパラメータを設定します。値が-1から50までの時は敵が察知していないことを示し、51から101までの時は敵が察知していることを示します。スルーレートの速度をコントロールすれば、敵が察知しているかどうかのトランジションの速さをコントロールできます。この情報は、あなたが既にCombatやExploreのミュージックを再生するために設定した、Gameplay_Switchスイッチグループの設定に使います。
EnemyAwareゲームパラメータは、このMusicシステム固有のものなので、Musicワークユニットに入れます。
-
Project Explorerで、Game Syncsタブをクリックして、Game Parametersフォルダを選択します。次に新しいワークユニットを作成して、名前をMusicにします。
-
Musicワークユニットを選択して、Create New Game Parameterアイコンをクリックして、名前をEnemyAwareにします。
-
EnemyAwareゲームパラメータを選択して、Min Range値を-1に変えます。
警告が表示され、この変更を既に参照しているかもしれないオブジェクトが、この縮尺の変更にどう対処すべきか、きかれます。このGame Parameterを参照するオブジェクトが今はないので、どのオプションを選んでも構いません。
-
Stretchをクリックし、続けてMax Range値を101に変更します。Rangeプロパティの新しい値が適用されます。
Default値を0にして、特に情報がなければプレイヤーがExploreモードになるようにします。
-
Default値を0にします。
使う値の範囲が決まったので、次に、値が変わった時のトランジションに時間をかけるように、Slew Rate機能を使います。Slew Rateは、Interpolationグループボックスにあるオプションです。
-
Interpolation ModeをSlew Rateに変更します。
有効にするには、AttackタイムとReleaseタイムを調整します。Attackレートは値が上昇中の変化に反応して、Releaseタイムは下降中の値に反応します。車の例でいうと、時速0kmから時速100kmに加速する方が、時速100kmから時速0kmに減速するよりも時間がかかるので、アタックの方がディケイよりもゆっくりです。
ここでの目的は、プレイヤーが的に察知されたことを知る(Combatミュージックがトリガーされる)のを、比較的早く行うことです。一方、プレイヤーが最後のモンスターに勝った時は、敵が察知していない状態に戻る(Exploreミュージックがトリガーされる)のを、もっとゆっくりにして、まだ化け物が隠れているのではないか、という不安の時間をつくります。
-
Attack値を1000に、Release値を10に設定します。
次にEnemyAware RTPCを、Gameplay_Switchスイッチグループにマッピングします。方法は、Playerhealthゲームパラメータを、レッスン5でGuitarスイッチトラックに使うスイッチに適用した時と同じです。
-
Gameplay スイッチグループを選択し、 Use Game Parameter のチェックボックスをクリックします。Game Parameterグループで[>>]セレクタボタンをクリックして、EnemyAwareゲームパラメータを選択します。
グラフにカーブが表示され、Y軸にExploreとCombatの2つのスイッチが、X軸にEnemyAwareゲームパラメータの数値が、表示されます。
ExploreとCombatのトランジションは、中間地点にします。つまり、数値が-1から50の時はExplore、数値が51から101の時はCombatとします。
-
最初のコントロールポイントを、Exploreの線までドラッグします。
ドラッグすると、カーソルが上にいくまでポインターは動きません。
-
50のすぐ下でダブルクリックして、コントロールポイントをCombatの線まで下ろします。
大体50のところであれば、完全に一致しなくても構いません。
これで、EnemyAware Game ParameterをGameplay_Switchスイッチグループにマッピングできたので、作業結果をテストできます。今は、グラフ上部のEnemyAwareカーソルを移動しながらテストします。そうすれば、数値が変化した時に適切な音楽がトリガーされるかを確認できますが、まだSlew Rateでトランジションが遅くなる様子は聞けません。このレッスンの後半で、これをテストします。
-
PlayerLifeステートグループがAliveに、Music_StateステートグループがGameplayに設定されていることを確認してから、Musicイベントを再生して、RTPCカーソルを左右に動かしてみます。
EnemyAware値が50を超えた時にCombatミュージックが、50以下の時にExploreミュージックが聞けます。