Portal 101:Portal SDKツール、ルールエディターを使った高度な創作
2025年10月10日

あなたのビジョン、私たちのPortal SDKツール、無限のコミュニティエクスペリエンスの可能性。
Battlefieldのシリーズ史上初めて、私たちはゲーム開発ツールを公式に提供することにしました。コミュニティの皆さんがソフトウェア開発者キット(SDK)を使用して、プレイしたいエクスペリエンスを作成できるようにします。私たちは、皆さんが「Battlefield 2042」や最初のPortalバージョンで作成してきた素晴らしい作品を拝見しました。Portal SDKツールと、マップの編集機能、そしてPortalビルダーのルールエディターへの追加機能があれば、どんなものが生まれるかは想像できないほどです。
ですが、SDKツールやゲームデザインのコンセプトを詳細に解説するような、実際の大学レベルの1学期分のコースを提供する予定は現在ありません。その代わりにこのガイドでは、ツールを使ってのカスタムエクスペリエンス作成から、Portalビルダーへのカスタムマップのエクスポート、ルールエディターの使用までを詳しくご説明します。
Portal SDKツールのインストール
EAのウェブサイトで入手できるPortalビルダーとは異なり、Portal SDKツールのソフトウェアプログラムを使用するには、Windows PCにダウンロードする必要があります。Portal SDKには、Godotゲーム編集ツールを使用してゲームのレベル空間編集を行うために必要な全ファイルと、独自のカスタムゲームルールの作成を開始するためのサンプルスクリプトが含まれています。
ツールをダウンロードするには、ここをクリックしてください。これはPortalビルダーのウェブサイトで提供されているものと同じダウンロードリンクです。
EA.comの公式ウェブサイト以外から、任意のバージョンのPortal SDKツールをダウンロードすることは、決して推奨または容認されません。そのようなことをすると、PCにセキュリティ関連の深刻な問題が発生する可能性があります。認証済みPortal SDKツールとそのアップデートは、EA.comからのみダウンロードしてください。
ツールをダウンロードしたら、ReadMeファイルを開いてインストールを完了してください。次にツールを開いて、こちらの初心者向けのPortal SDKツール体験ガイドを読んでください。
Portal SDKツール - マップ編集の簡単なガイド

上:Portal SDKツールで作成したカスタムマップの例。
まず、アプリケーションの左上にある「Scene」にカーソルを合わせます。クリックし、ドロップダウンメニューから「Open Scene」を選択します。「levels」フォルダを開いて、編集できる全マップの名前を表示させ、編集したいマップを選択します。
多くの場合は、マップのプレイアブルエリアの下に配置されます。デジタル3D環境を表示する中央のウィンドウには、空間内を移動するためのメインツールが表示されます。
- カメラのエイム、または「見る」 - マウス右ボタンを長押ししながらドラッグして、カメラをエイムします。
- 移動 - W、A、S、Dキーで二次元移動(前後左右)、Spaceキーで「上」に移動します。「上」とは常に視点に対して+90°の方向を指します。
- 移動速度の増減 - マウスホイールでスクロールします。上側はスピードアップ、下側はスピードダウンです。
レベルを開くと、すべてのオブジェクト(建物、遮蔽物パーツ、道など)が、「Battlefield 6」の通常かつ認証済みのエクスペリエンスで表示されるデフォルトの位置に配置されます。Portal SDKツールは、追加の編集を行うのに使用します。地形や主要な建物などの特定のオブジェクトは削除できません。
スクリーンの一番下にはObject Libraryがあります。これを開き、ライブラリの検索機能の隣にある3点ドット(…)をクリックして、「Generate Library」に移動します。ここでは、マップ上に配置できる全オブジェクトの詳細を確認できます。これらのオブジェクトを、マップ上にドラッグしてドロップできるようになりました。注:Portal Setupを実行済みの場合は、このステップは必要ありません。
「Q」を押して選択モードに入ります。これはオブジェクトを操作または移動するために選択するメインの方法です。その後「W」を押して、そのオブジェクトをマップ内で動かします。オブジェクトを選択した状態で「E」を押すと回転モードに入り、WASDキーでオブジェクトを好きな方向に回転できます。オブジェクトを拡大縮小したい場合は、3D平面の右側にある「Inspector Window」で、オブジェクトを一律に拡大縮小できます。複数オブジェクトの一律でない拡大縮小には現在対応していません。
レベルのエクスポートとPortalビルダーへのアップロード

一休みして、後で作品を完成させたいですか?アプリケーションの左上隅にある「Scene」タブをクリックし、「Save Scene」をクリックすると、現在の状態が保存されます。
作成したものを公開する準備ができたら、右下のウィンドウ(「BFPortal」)にある「Export Current Level」ボタンをクリックします。次に、同じウィンドウ内に「Open Exports」が表示されるので、それをクリックすると自分の作品を見ることができます。この.JSONファイルは、お好きなブラウザでPortalビルダーにアップロードするものです。
まだログインしていない場合はPortalビルダーにログインし、既存のテンプレートを選択して変更するか、新しいエクスペリエンスを作成するプロセスに進みます。
「Map Rotation」タブを選択すると、.JSONファイルを添付するオプションが表示されます。開いたカッコを指す矢印のようなアイコンです。ポップアップ表示されたファイルエクスプローラーのウィンドウ内でファイルを探し、選択して、クリックで開きます。これでエクスポートしたレベルがPortalビルダーに表示されるようになりました!
Portalビルダーのルールエディター:インターフェース編集とAIスクリプト編集

Portalウェブビルダーで最も高度な機能はルールエディターで、これはカスタムコミュニティエクスペリエンスでのみ使用できます。これは「Battlefield 2042」での機能と似ていますが、新コマンドのロジックベースのルールエディターでは、ゲーム内のイベントや状態(例えばプレイヤーの死亡や司令部からの距離など)を関連付けて、特定のアクションを起こすことができます。
「ルール」の例として、コンクエストで目標を確保するときに何が起きるかを考えてみます。目標エリアに入ると、次に何が起こるでしょうか?まず、目標エリア(イベントや条件)に入ると、進行ホイールが表示され(アクション)、ナレーションが目標確保中であることを告げます(別のアクション)。あらかじめ設定された時間が経過すると(条件)、目標エリアが確保されます(アクション)。そして、目標エリアは自チームの制圧下にある(条件)ので、ポイントを獲得します(反復行動)。
簡単でしょう?ルールエディターには200種類以上のアクションがあり、AI兵士の有無にかかわらず、無数のスクリプトの組み合わせを実装できます。他のルールエディタータブと同様に、ツールチップを活用になります。ルールエディター内でブロックを右クリックして、「Help」をクリックするだけで、詳細が表示されます。
AIスクリプティング
通常のルールと同じように、AIの挙動には、移動や戦闘ロジックなどを変更する独自の条件ブロックとアクションブロックがあります。
より複雑なAIスクリプティングやモードについては、TypeScriptを使用することをお勧めします。こちらは、簡単なAIの移動スクリプトの例です。
[[注:TypeScriptは英語で書かれているため、サンプルコードはすべて英語です。意図した結果が得られない場合は、スクリプト内の他のコードと競合していることが考えられます。その場合は、使用しているコード本体を調整する必要が生じる可能性があります]]
// スクリプト可能なAIユニットをスポーン function OnGameModeStarted() { mod.SpawnAIFromAISpawner(mod.GetSpawner(1), mod.GetTeam(1)); }
// これは単純な「追跡」の挙動で、AIに他のプレイヤーの場所まで立って歩くように指示します。 async function simpleAIFollowBehavior(player: mod.Player, target: mod.Player) {
// AIプレイヤーのスタンスを「立つ」に設定します。 mod.AISetStance(player, mod.Stance.Stand);
// AIプレイヤーの移動速度を「歩き」に設定します。 mod.AISetMoveSpeed(player, mod.MoveSpeed.Walk);
// このAIおよび目標プレイヤーが生きている間、AIに目標プレイヤーの位置に移動するよう指示するループを実行します。 while (mod.GetSoldierState(player, mod.SoldierStateBool.IsAlive) == true && mod.GetSoldierState(target, mod.SoldierStateBool.IsAlive) == true) {
// AI兵士にAIMoveToBehaviorを呼び出し、目標プレイヤーの位置に移動させます。 mod.AIMoveToBehavior(player, mod.GetSoldierState(target, mod.SoldierStateVector.GetPosition));
// 1秒間待ちます。 await mod.Wait(1); } }
このサンプルスクリプトより先は、あなたのデザインにお任せします。ゲーム開発を学ぶうえで、正しい道は1つではありません。ゲームデザインやプログラミングの講座を受講してもよいですし、自分の経験やさまざまなインターネットフォーラムから学ぶのもよいでしょう。皆さんであれば、間違いなく素晴らしいカスタムエクスペリエンスを作れるはずです。
開発者からのクイックヒント - Portal SDKツールとスクリプティング

1. 開発者コミュニティの一員になる。あらゆるアートコミュニティと同じように、ゲーム開発もクリエイター仲間とポジティブに交流することで、より良いものになります。このガイドはマップ編集の入門としては最適ですが、最高の知識というものは、より多くの経験を持つ開発者仲間から手に入るのです。公式Discordなど、Battlefield Portalの開発コミュニティに参加して、遠慮なく質問しましょう!
2. ロジック(とアタッチメント)をチェックする。ルールエディタ内のルールが機能しない場合、次の2つが考えられます。ブロックの1つ(ルール、条件、アクションなど)がModブロックにリンクされていない、または、真となる条件が2つの矛盾する値に割り当てられているなど、ルールロジックが不可能なものである。この2つが、よくある原因です。カスタムエクスペリエンスをテストする前に、必ずこれらをトリプルチェックしましょう。
3. 実験する。実験しましょう。実験しましょう。99.9%の確率で、初めて作ったカスタムマップやスクリプトAIは、期待通りには動きません。がっかりすることはありません。エクスペリエンスが思い描いたとおりになるまで、編集とテストを続けましょう。
4. コミュニティのために創造する。ゲームデザインでは、頻繁に「ユーザーエクスペリエンス」またはUXという概念が参照されます。この概念について学ぶだけで学士号が取れるほどですが、簡単に言えば、これはプレイヤーがあなたのカスタムエクスペリエンスをプレイしたときにどう感じるかという概念です。UXテストはとても簡単です。友達や、家族、仲間のコミュニティメンバーに、あなたのカスタムエクスペリエンスをプレイしてもらうだけでいいのです。ゲーム内でプレイしてくれるように招待して、テストしてくれた人にとって何が理解が難しかったか、何がプレイの楽しさを妨げたかということを記録し、これを参考にしながらエクスペリエンスを開発して、完成を目指しましょう。