ターゲットが想定どおりに動作するようになったら、Verse を使うことでさらにゲームを盛り上げましょう。
コンボ システムを作成する
このセクションでは、すべてのグッド ターゲットに命中し、バッド ターゲットに一切当てなかった場合に、追加ポイントが得られる特別なターゲットを報酬として与えるコンボ システムをゲームに追加します。
ビューポートで GoodTarget を選択します。
Alt キーを押しながら、複製したターゲットを射撃ギャラリーの奥にドラッグします。 これは、コンボ ターゲットになります。
[詳細] パネルの [ユーザーオプション] で次のように設定します。
[TargetType] を [Llama] に設定します。
[Score Value (スコア値)] を [0] に設定します。 これは、スコアに影響を与えるのが Verse コードのみになることを意味します。
[Start Position (開始位置)] を [Down (ダウン)] に設定します。
[Reset Time Type (リセットタイムの種類)] を [Never (なし)] に設定します。
[Pop Up Delay Type (ポップアップ遅延の種類)] を [Never (なし)] に設定します。
[Hopping Frequency Type (ホップ頻度の種類)] を [Random (ランダム)] に設定します。 これはターゲットがランダムに上下に動くことを意味します。
[Hop Length Type (ホップの長さの種類)] を [Random (ランダム)] に設定します。
次のコードを
shooting_range_manager_device.verseに追加します。コンボ ターゲットへの参照を保持する
shooting_range_target_track_device変数を作成します。そのスコア値を保持する整数変数を追加します。
コンボ状態を追跡するためのロジック変数を 3 つ追加します。
Verseusing { /Fortnite.com/Devices } using { /Verse.org/Simulation } # A device that manages shooting range gameplay. shooting_range_manager_device := class(creative_device): @editable ScoreManager:score_manager_device = score_manager_device{} @editableビューポートで shooting_range_manager_device を選択します。
[詳細] パネルで、ComboTarget を Llama ターゲットに設定します。
以下の目的で、次のコードを追加します。
ゲーム開始時にコンボ ターゲットを無効化すること
コンボ ターゲットのヒット イベント サブスクリプションを設定すること
ヒット時にコンボ ターゲットのスコアを加算すること
Verseusing { /Fortnite.com/Devices } using { /Verse.org/Simulation } # A device that manages shooting range gameplay. shooting_range_manager_device := class(creative_device): @editable ScoreManager:score_manager_device = score_manager_device{} @editable以下の目的で、次のコードを追加します。
ヒット時に GoodTarget のロジック変数を true に設定すること
ヒット時に GoodTarget を無効化し、再びポップアップしないようにすること
各 GoodTarget に
CheckCombo()呼び出しを追加し、ヒット時にそのコンボ状態を追跡すること全ての GoodTarget がヒットされたら ComboTarget をポップアップさせること
Verseusing { /Fortnite.com/Devices } using { /Verse.org/Simulation } # A device that manages shooting range gameplay. shooting_range_manager_device := class(creative_device): @editable ScoreManager:score_manager_device = score_manager_device{} @editableif文を使用する場合、条件を複数行に分けて記述できますが、全ての条件が成立した場合のみthenブロックが実行されます。例えば、
CheckCombo()では、logic 値が true かどうかを確認するためにクエリ演算子 (?) を使った 3 つの文があります。 そのうち 1 つでも false であれば、コンボ ターゲットは有効化されません。詳細については、「Verse における if」および「Verse の演算子」を参照してください。
BadTarget に命中した際にコンボをリセットするコードを追加します。
Verseusing { /Fortnite.com/Devices } using { /Verse.org/Simulation } # A device that manages shooting range gameplay. shooting_range_manager_device := class(creative_device): @editable ScoreManager:score_manager_device = score_manager_device{} @editableメニュー バーから、[Verse] > [Verseコードをビルド] の順に選択します。
編集セッションで変更内容をプレイテストします。
GoodTarget に命中したとき、それらが倒れたままで、バッドまたはコンボ ターゲットに命中したときのみ再びポップアップすることを確認します。
ComboTarget が最初は倒れた状態で、コンボを達成するとポップアップし、命中すると倒れたままになることを確認します。
フル コンボ中に BadTarget に命中した場合、ComboTarget が倒れることを確認します。
ComboTarget に命中したときにスコアが増加することを確認します。