Verse は、UEFN と連携するプログラミング言語です。 このページでは、プロジェクトに Verse を追加するための基本事項を説明します。新人とベテラン両方のプログラマーがこの言語で何ができるのかが理解できるようになっています。
このチュートリアルの前の手順で作成したターゲットの仕掛けは、1 回のヒットでノックダウンできません。Verse を使用して 1 回でノックダウンできるようにする方法を見ていきます。
新しい Verse の仕掛けを作成する
ここでは、Verse の仕掛けを作成して島に配置します。
これは、ユーザーの指示に基づいて他の仕掛けに指示を出す仕掛けと考えることができます。 別の言い方をすれば、UEFN で既存の仕掛けを再プログラム化する Verse プログラムを作成するということです。
メニュー バーで、[Verse] > [Verse Explorer] の順に選択します。
[Verse Explorer] で、プロジェクトを右クリックして [Add new Verse file to project (新規 Verse ファイルをプロジェクトに追加する)] を選択します。
[Create Verse Script (Verse スクリプトを作成)] ウィンドウが開きます。
[Create Verse Script] ウィンドウで、[Verse Device (Verse の仕掛け)] テンプレートを選択します。
ウィンドウの下部で仕掛けの名前を shooting_range_manager_device に変更してから、[Create] をクリックします。
コンテンツ ブラウザのプロジェクト名の下で shooting_range_manager_device を探すか、検索ボックスを使用して仕掛けを見つけます。
メニュー バーで、[Verse] > [Build Verse Code (Verse コードをビルド)] の順に選択します。
Verse の仕掛けでコードを使うときは、仕掛けをビルド (コンパイルとも呼ばれます) してから使用する必要があります。 つまり、Verse にゲームかゲームの一部として実行できる形式に変換させる必要があります。 Verse の仕掛けは、ビルドされるまでコンテンツ ブラウザやアウトライナーに表示されません。
コンテンツ ブラウザのプロジェクト名の下で shooting_range_manager_device を探すか、検索ボックスを使用して仕掛けを見つけます。
仕掛けをビューポートにドラッグします。
[Details] パネルの [User Options] の下で、[Visible in Game (ゲーム中に表示)] をオフにしてゲームの実行中に仕掛けを非表示にします。
グッド ターゲットを設定する
ここでは、Verse の仕掛けを使用して、グッド ターゲットを 1 回のヒットでポップダウンするように設定します。
[Verse Explorer] で、[
shooting_range_manager_device.verse]をダブルクリックして Verse ファイルを開きます。ファイルのコードをすべて削除してから、以下のコードをコピーして古いコードがあった場所に貼り付けます。
Verseusing { /Fortnite.com/Devices } using { /Verse.org/Simulation } # A device that manages shooting range gameplay. shooting_range_manager_device := class(creative_device): @editable GoodTarget1:shooting_range_target_track_device = shooting_range_target_track_device{} @editableVerse では、変数はプログラムの実行中に変更できるプログラムの情報です。
変数が編集可能な場合、それはコードが UEFN で公開される、つまり毎回 Verse コードを再ビルドすることなく UEFN 内からコードを変更できることを意味します。
先ほど Verse の仕掛けに追加したコードにより、型が
shooting_range_track_deviceの 3 つの変数 (GoodTarget1、GoodTarget2、GoodTarget3) が作成されます。 これらは、プレイヤーがヒットすることでポイントを獲得できるターゲットを表します。 これらの@editableを作成することにより、Verse コードを変更し続けることなく、[Details] パネルで値を好きなように設定できるようになりました。 このコードは今回初めて追加するため、コンパイルは必要です。shooting_range_manager_device の [Details] パネルが開いた状態で、ビューポートから [shooting_range_manager_device] を選択します。
コードをコンパイルします。
[Details] パネルで、各グッド ターゲットの値を別のターゲット ダミー トラックの仕掛けに設定します。
以下のコード ブロックの
<# --- New Code Start --- #>から、コードの次のチャンクをコピーして Verse ファイルに貼り付けます。貼り付け後にコードをコンパイルします。
次のコードを追加して、グッド ターゲットがヒット時にポップダウンするようにします。
イベント サブスクリプションにより、ターゲットの HitEvent とそのターゲットのために定義されたコールバックがリンクされます。
Verseusing { /Fortnite.com/Devices } using { /Verse.org/Simulation } # A device that manages shooting range gameplay. shooting_range_manager_device := class(creative_device): @editable GoodTarget1:shooting_range_target_track_device = shooting_range_target_track_device{} @editable
コード ブロックに # または <# and ends with #> で始まる行があり、それらはコード コメントと呼ばれます。
コード コメントはプログラムの一部ではなく、 プログラマーが他のプログラマーに情報を提供したり、そのように作業を行った理由を思い出せるようにしたりするために記述するコメントです。
コード コメントの詳細については、「Verse 言語クイック リファレンス」の「コード コメント」セクションを参照してください。
バッド ターゲットを設定する
バッド ターゲットは、テディ ベアとしてカスタマイズされるターゲット ダミーの仕掛けです。 今回は、これらのターゲットを 1 回のヒットでポップダウンするように Verse の仕掛けに追加しますが、プレイヤーがヒットのたびにポイントを得るのではなく失うようにします。
次のコードを追加して、バッド ターゲットに参照を保存する 3 つの
shooting_range_target_device変数を作成します。Verseusing { /Fortnite.com/Devices } using { /Verse.org/Simulation } # A device that manages shooting range gameplay. shooting_range_manager_device := class(creative_device): @editable GoodTarget1:shooting_range_target_track_device = shooting_range_target_track_device{} @editableコードをコンパイルします。
ビューポートで [shooting_range_manager_device] を選択します。
[Details] パネルで、各バッド ターゲットの値を別のターゲット ダミーの仕掛けに設定します。
ヒット時にバッド ターゲットをポップダウンする次のコードを追加します。
Verseusing { /Fortnite.com/Devices } using { /Verse.org/Simulation } # A device that manages shooting range gameplay. shooting_range_manager_device := class(creative_device): @editable GoodTarget1:shooting_range_target_track_device = shooting_range_target_track_device{} @editable
スコアリングを設定する
Verse を使用して仕掛けをカスタマイズする前に、カスタマイズする仕掛けを追加する必要があります。
スコアリングは、フォートナイトの仕掛けだけで設定できますが、Verse で設定する方が簡単なうえ、使用する仕掛けも少なくて済みます。
スコアリングの仕掛けを追加する
ここでは、Verse を使用して 2 種類のスコアリング (加点と減点) を設定しますが、そのために必要なスコアリングの仕掛けは 1 つだけです。
コンテンツ ブラウザから、検索バーに「Score Manager (スコア マネージャー)」と入力してスコア マネージャーの仕掛けを見つけます。
[Score Manager] の仕掛けをビューポートにドラッグします。 [Details] パネルでスコア マネージャーのユーザー オプションが開きます。
[Details] パネルから、次のオプションを変更します。
オプションと値 Enable During Phase (有効なゲーム フェーズ) = Gameplay Only (ゲームプレイのみ)
Display Score Update on HUD (スコアの更新を HUD に表示) = オン
Verse でスコアリングの仕掛けをカスタマイズする
これで Verse の仕掛けにスコア マネージャーを追加し、ターゲットへのヒットに基づくプレイヤーのスコアを調整できるようになりました。
次のコードを追加して、スコア マネージャーとスコア値への参照を保存するための変数を作成します。 割り当てられている値を変えてデフォルト スコアの値を変更するか、[Details] パネルの値を変えてデフォルトをオーバーライドできます。
Verseusing { /Fortnite.com/Devices } using { /Verse.org/Simulation } # A device that manages shooting range gameplay. shooting_range_manager_device := class(creative_device): <# --- New Code Start --- #> @editable ScoreManager:score_manager_device = score_manager_device{}コードをコンパイルします。
ビューポートで [shooting_range_manager_device] を選択します。
[shooting_range_manager_device] の [Details] パネルで、[ScoreManager] をスコア マネージャーの仕掛けに設定します。
次のコードを追加して、グッド ターゲットとバッド ターゲットにヒットしたときにプレイヤーのスコアが更新されるようにします。
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] > [Build Verse Code] の順に選択します。
フォートナイト セッションを開いたままの場合は、Verse で行った更新を受け取れるように、ライブ編集への [Push Changes (変更をプッシュ)] をクリックしてください。 また、変更が適切に反映されるように、場合によってはゲームを終了して再起動する必要があります。
フォートナイト セッションで変更をプレイテストして以下を確認します。
グッド ターゲットにヒットするとスコアが増える (プレイ中に M キーを押すとスコアボードが開く)。
バッド ターゲットにヒットするとスコアが減る。
1 回のヒットでターゲットをノックダウンできる。