このセクションでは、魅力的なゲームプレイを実現するために、バークなどの音声や、カメラの揺れなどの視覚効果を設定する方法について説明します。
オーディオ プレイヤーの仕掛け
オーディオ プレーヤー の仕掛けを使用すると、ガードのセリフを設定できます。 ゲーム開発では、これらは多くの場合、バークと呼ばれています。
インポートされた音声は、「Project folder > Barks」にあります。 [Play (再生)] アイコンをクリックしてオーディオ ファイルを聴いて、オーディオ ファイルを島にドラッグ アンド ドロップします。
島にオーディオ ファイルをドロップすると、オーディオ プレイヤーの仕掛けが配置されます。オーディオ プレイヤーの仕掛けはVerse の仕掛けに接続され、一連のカスタム ガードのコールアウトを再生します。 これらのコールアウトは、プレイヤーを見つけたときやダメージを受けたときなど、さまざまなイベントに反応します。
再生したいオーディオ 1 つにつきオーディオ プレイヤーを 1 つ配置します。 このチュートリアルでは、14 種類のバークを使用しているため、14 種類のオーディオ プレイヤーの仕掛けを配置しています。
これらの仕掛けを設定するには、以下の設定をカスタマイズします。
| オプション | 値 | 説明 |
|---|---|---|
Volume (ボリューム) | 4.0 | この設定はレコーディングによって異なる場合があります。 |
Restart Audio when Activated (起動時にオーディオをリスタート) | True (オン) | この音声は、アクティベートすると最初から再生されます。 |
Play on Hit (ヒットで再生) | False | この仕掛けは、プレイヤーにヒットしても音声が再生されません。 |
Play Location (再生位置) | Instigating Player (発信プレイヤー) | 仕掛けの位置ではなく、発信プレイヤーの位置に基づいて音声が再生されます。 |
Enable Volume Attenuation (ボリューム減衰の有効化) | False | 再生するために設定された仕掛けまたはガードからの距離に基づいて音量を変更します。 このチュートリアルでは、プレイヤーはどんなに離れていても音声を聞くことができます。 |
次に、ゲーム中にオーディオ プレイヤーの仕掛けをトリガーするロジックを処理する Verse スクリプトを設定し、Verse の仕掛けを配置します。 このチュートリアルでは、この仕掛けに「Stronghold Bark Manager」という名前を付けています。
次の Verse スクリプトを貼り付けます。
using { /Fortnite.com/Devices }
using { /Fortnite.com/Game }
using { /Fortnite.com/Characters }
using { /Verse.org/Random }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/SpatialMath }
# Audio bark that can be played on a NPC
audio_npc_bark := class<concrete>:
# Audio device to play barks
このスクリプトは、各オーディオ プレーヤーの仕掛けへの参照を格納し、ガード スポナーの参照のコンジットとして要塞ゲーム マネージャー Verse の仕掛けを参照します。
カスタマイズ可能なライト
AI ガードからの音声のフィードバックの取得だけでなく、環境からのビジュアルのフィードバックもプレイヤーに与えることができます。
このチュートリアルでは、要塞の周囲に 2 セットのカスタマイズ可能なライトの仕掛けを使用します。 赤のライトは検知ステータスを、オレンジのライトは警戒ステータスを示します。
これらの仕掛けを設定するには、以下の設定をカスタマイズします。
| オプション | 値 | 説明 |
|---|---|---|
Initial State (最初の状態) | False | 仕掛けを有効にしたときのライトの初期状態を決定します。 |
Light Size (ライトのサイズ) | 100.00 | ライト フレアのサイズ、範囲、振幅を決定します。 |
Cast Shadows (シャドウをキャスト) | True (オン) | ライトに影を落とすことができます。 |
Enabled During Phase (有効なゲーム フェーズ) | Gameplay Only (ゲームプレイのみ) | ライトはゲームプレイ中にのみ有効になります。 |
Light Intensity (ライトの明度) | 30.0 | ライトの強度を決定します。 |
Rhythm Time (リズム時間) | x8 | リズム プリセットの時間の倍率を決定します。 |
Dimming Amount (明かりを暗くする量) | 100.0 | チャンネル コントロールを使用する際の調光量を決定します。 |
Dimming Time (明かりが暗くなるまでの時間) | 0.1 | 調光の遷移時間を秒単位で決定します。 |
VFX クリエイター
このチュートリアルでは、ベースの上部にある VFX クリエイターの仕掛けを使用して、プレイヤーが最初に検知されたときに援軍のシグナル フレアとして機能します。 このフレアは Verse の仕掛けによって制御され、ガードが警戒状態にあるとコーナー ライトとともに消灯し、ガードの状態を視覚的に明確に示します。
これらの仕掛けを設定するには、以下の設定をカスタマイズします。
| オプション | 値 | 説明 |
|---|---|---|
Start Effects When Enabled (有効時にエフェクトを開始) | False | 有効になっている場合、仕掛けがエフェクトを実行するかどうかを決定します。 |
Sprite Size (スプライトのサイズ) | 2.0 | エフェクトのスプライトの初期サイズを設定します。 |
Sprite Duration (スプライト持続時間) | 5.0 | 各スプライトの表示時間を設定します。 |
Main Color (メイン カラー) | 赤 | エフェクトのメインの色を設定します。 |
Main Color Brightness (メイン カラーの明るさ) | 200.0 | Main Color (メイン カラー) の明るさを設定します。 |
Sprite Speed (スプライトの速度) | 100.0 | エフェクトのスプライトが動き出す速度を設定します。 |
Effect Gravity (エフェクトの重力) | 15.0 | エフェクトの落下速度を設定します。 |
Randomness (ランダム性) | 100.0 | 動きのランダム性を設定し、サイズにバリエーションを加えます。 |
Keep Size (サイズを維持) | False | スプライトのサイズを維持するか、時間の経過とともに変化するカスタム サイズを使用するかを設定します。 |
Effect Generation Amount (エフェクトの生成量) | 4.0 | エフェクトのスプライトの生成数を設定します。 |
Spawn Zone Shape (スポーン ゾーンの形状) | ポイント | スプライトが最初に表示される空間の形状を決定します。 |
Spawn Zone Size (スポーン ゾーンのサイズ) | 0.05 | スポーン形状のサイズをタイル単位で設定します。 |
Enabled During Phase (有効なゲーム フェーズ) | Gameplay Only (ゲームプレイのみ) | 仕掛けが有効になるゲーム フェーズを決定します。 |
Loop (ループ) | Never (自動表示しない) | エフェクトが一度だけ再生されるか、恒久的にループするか、またはカスタマイズされた回数だけ再生されるかを決定します。 |
ラジオの仕掛け
このチュートリアルでは 2 つのラジオの仕掛けを使用しています。1 つは緊張感のある戦闘音楽用で、もう 1 つは控えめな音楽用です。
緊張感のあるプレイヤーの音楽では、[Radio (ラジオ)] > [Music Loops (音楽ループ)] >「Music_StW_Low_Combat01_Cue」を使用します。
プレイヤーが見つかったときの戦闘サウンドは、[Radio] > [Music Loops (音楽ループ)] >「Music_StW_High_Combat01_Cue」を使用します。
Stronghold_Alert_Manager を呼び出して、ガードがプレイヤーを検知したとき、またはすべてのガードがプレイヤーを見失ったときに、要塞内の 2 つの状態を交互にリッスンできる Verse スクリプトを設定します。
次の Verse スクリプトを貼り付けます。
using { /Verse.org/Simulation }
using { /Verse.org/Simulation/Tags }
using { /Verse.org/Colors }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Fortnite.com/Devices }
# tags for customizable lights
alerted_lights_tag := class(tag){}
combat_lights_tag := class(tag){}
# Script that handles music and turn on lights when guards are alerted
stronghold_alert_manager := class(creative_device):
これで要塞ゲームを作成することができました。