今回はUEFNでゲームを作成し、その際に使用したギミックやツールの使い方、ならびに制作時に注意が必要であった点について解説します。
UEFN概要

UEFNとは

UEFN(Unreal Editor for Fortnite)とは、フォートナイト上で遊べるゲームを制作できる無料のゲーム制作ツールです。島を作成し、独自のルール構築や建築を楽しめる「クリエイティブモード」を拡張する形で、より高度なゲームルールやギミックを組み込むことが可能となっています。操作感は、同じくEpic Games製のゲームエンジンであるUnreal Engineに近く、条件分岐が組み込まれた「仕掛け」と呼ばれるオブジェクトを配置してゲームを構築します。さらに、独自のプログラミング言語である「Verse」を組み合わせることで、より複雑な仕組みを実装できます。制作した島は全世界のフォートナイトプレイヤーに公開でき、そのエンゲージメントに応じて収益を得ることも可能です。

今回使用しているUEFNのバージョンは5.8.0です。本家のUnreal Engineとは異なり、フォートナイト上で動作させる都合上、随時アップデートが適用されるため、特定のバージョンで更新を止めて制作を行うことはできません。

今回制作した島では、独自言語であるVerseは使用しておらず、オブジェクトの配置や設定可能な条件分岐のみで構成しています。なお、Verseを使用する場合は、UEFNに備え付けられているAIアシスタントに要望を入力することで、コードを生成させることが可能です。
Verseアシスタント

基本的な操作と確認方法

基本的な画面構成や操作はUnreal Engineと同様ですが、ゲームとしての動作確認はフォートナイト上で行う必要があります。ビューポート上部の「セッションを開始」を選択するとフォートナイトが起動し、制作中の島にマッチングされます。
セッション開始
初回接続時はそのままゲームが開始されますが、メニューから「ゲームを終了」を選択することでプレイを中断し、クリエイティブモードと同様にプレイヤー視点での編集が可能になります。
ゲーム終了
また、UEFN上で行った変更をフォートナイト側に反映させる場合は、ビューポート上の「変更をプッシュ」を選択することで、最新の状態でゲームが再開されます。
変更をプッシュ

共通で使用した設定項目

チーム

ゲーム参加プレイヤーを陣営ごとに分け、チーム戦形式に設定できます。IslandSettingsの「モード」内にある「規模」を展開すると「チーム」の項目が表示され、プルダウンから「チームインデックス」を選択することでチーム戦ルールになります。右側の数値でチーム数を指定し、下項目のチームサイズを変更することで、1チームあたりのプレイヤー数を設定できます。
チーム設定
このチーム分けにより、仕掛けの発動対象を指定できます。例えば、プレイヤースポナーの「ユーザーオプション」内「プレイヤーのチーム」で「チームインデックス」を指定し、数値を入力することで、特定チームのプレイヤーのみを出現させることが可能です。
スポナーのチーム指定

イベント発生の条件

一部の仕掛けでは、他オブジェクトのイベントをトリガーとして状態を変化させる設定が可能です。例えば、プレイヤースポナーの「ユーザーオプション – 機能」にある「有効化」で、右側の+ボタンを選択すると要素を追加できます。
イベント条件追加
追加された項目では、どのオブジェクトが、どのイベントを起こした際に仕掛けが有効になるかを指定できます。条件を複数追加した場合、いずれか一つを満たすとイベントが発生します。
イベント設定

優先グループ

同時に起動すると競合する可能性がある仕掛けに優先順位を付ける機能です。複数のプレイヤースポナーがある場合、通常はランダムにスポーン位置が決定されますが、「ユーザーオプション」の「詳細設定」から「優先グループ」を有効にし数値を指定することで、優先順位を設定できます。
優先グループ
数値が低いスポナーから優先的に使用されるため、意図したスポーン制御が可能となります。

ゲームルール関連の仕掛け

IslandSettings

制作する島全体の共通ルールを設定できる仕掛けです。マッチメイキング仕様、スポーン位置、ゲーム終了条件、インベントリ制限など、ゲーム全体に関わる各種設定を行えます。

統計データカウンター

指定した数値情報をカウントできる仕掛けです。「基本」の「トラッキングする統計データ」でカウント対象を設定します。
統計データ設定
例えば「被撃破数」を指定し、チームインデックスを1に設定すると、チーム1のプレイヤーがダウンした回数をカウントできます。目標値は「比較」項目で設定でき、到達時に他の仕掛けのトリガーとして使用可能です。即時にトリガーとして使用したい場合は「統計データの変化時にイベントを配信」を有効化します。
統計イベント配信

エンドゲームデバイス

ゲーム終了条件や終了後の画面遷移を管理する仕掛けです。チームごとに異なる終了条件を設定でき、非対称対戦ゲームのルール構築に有効です。

チーム設定

IslandSettingsのプレイヤー関連設定を、チーム単位で個別に指定できる仕掛けです。特定チームのみ建築不可にするなど、非対称ルールの実装に適しています。

プレイヤー関連の仕掛け

プレイヤースポナー

プレイヤーの初期スポーンおよびリスポーン位置を制御する仕掛けです。

テレポーター

プレイヤーを指定地点へ移動させる仕掛けです。本制作では単体での移動先として使用しています。

アイテムスポナー

特定のアイテムを生成する仕掛けです。「アイテムリスト」から生成アイテムを指定できます。
アイテムスポナー設定
詳細設定により、武器の初期弾薬量や余剰弾薬量を指定できます。
弾薬設定

アイテムグランター

プレイヤーに直接アイテムを付与する仕掛けです。付与時に既存アイテムや素材を削除する設定も可能です。
アイテムグランター

ミューテーターゾーン

特定エリア内での行動を制限できる仕掛けで、建築や移動、攻撃などを個別に制御できます。

ライティング関連の仕掛け

UEFNのライティングはUnreal Engineの「Lumen」機能により制御されます。グラフィック設定によりLumenの有無が変わり、視覚的な明るさに差が生じます。

Lumen Exposure Manager

グラフィック設定による明るさの差異を補正するための仕掛けです。
Exposure設定
露出補正は「ポストプロセスボリューム」の「Exposure」から調整できます。
露出補正

Lighting Scalability Manager

グラフィックプリセットごとに明るさ設定を割り当てる仕掛けです。
Scalability設定
本制作ではLumen有効時と無効時の2パターンを用意しています。
設定分岐

スポットライト・矩形ライト

照明用の仕掛けで、範囲や色、強度を調整できます。
スポットライト
矩形ライト

制作時に便利な機能と注意点

デバッグ用テストプレイヤー

複数人プレイを想定したゲーム制作時に、ダミーのテストプレイヤーを生成できます。
テストプレイヤー

セッションに接続できない場合

セッションが開始できない場合は、フォートナイト側のメンテナンス状況を確認してください。

テストプレイと公開について

島の共有や公開には「島クリエイタープログラム」への登録が必要です。登録にはEpic Gamesアカウント、身分証明書、銀行口座情報などが必要となります。

制作した島の紹介

最後に、今回解説した仕掛けを用いて制作した島を紹介します。本作は、防衛サイドと攻撃サイドに分かれて戦う1V1の非対称シューターです。
完成した島
島コードは「2899-6058-3771」です。