I'm pleasewait

競技エイミング・FPS/TPS ゲームに関することや取り留めの無い日記など

【KovaaK's FPS Aim Trainer】シナリオの作り方

KovaaK's FPS Aim Trainer のシナリオ制作には、大きく分けて二つの作業工程があります。シナリオの舞台となる 3D マップの制作、およびシナリオで使用するキャラクター・武器・アビリティ・BOT の挙動の調整です。この記事では、シナリオを一から作る方法として、主にマップ制作工程の解説をします。シナリオの調整ついては、以前書いたこちらの記事もご参照ください。

www.aim-pleasewait.com

Reflex Arena(Reflex Map Editor)購入

KovaaK's FPS Aim Trainer のマップデータ(.map ファイル)は Reflex Arena で使用されているものと共通の仕様になっています*1。そこで、Reflex Arena を購入し、ゲームに付属する Reflex Map Editor を使用してマップ制作を行うことになります。

store.steampowered.com

マップエディタのためだけに支出するのはちょっと…という方向けに、代替となる無料のマップエディタソフトを使う方法を紹介しているガイドもあります。

steamcommunity.com

ですが、こちらの手法の場合、マップの作成ができても既存のマップを読み込むことができず*2、既存のマップを参考にしたり編集したりすることができません。自分の場合は、素直に Reflex Arena を買ってしまった方が手っ取り早いと考え、購入に踏み切りました。

Reflex Map Editor 操作方法

Reflex Map Editor の操作方法については、以下の動画が詳しいです。

www.youtube.com

ただし、動画の後半で紹介されているポータル・ジャンプパッドといったギミックは KovaaK's FPS Aim Trainer 側に反映されません。また、マテリアルは「Clip」「Weapon Clip」「Full Clip」といった設定のみが反映されます。これらの詳細は後述します。

以下の画像はキーバインド設定画面です。ブロックを回転させる機能はよく使うので、押しやすいキーに設定しておくと良いでしょう(デフォルトではよく分からないキーに設定されているので、自分で変えておきました)。

Reflex Map Editor キーバインド画面引用:Reflex Arena on Steam

新規マップ作成

Reflex Arena 起動後のポータル画面右側にある箱のようなアイコンをクリックするとマップエディタに入れます。

Reflex Arena ポータル画面引用:Reflex Arena on Steam

まずは、マップの保存と読み込みについて紹介します。Shift + 半角/全角キーを押してコンソールを開きます*3

コンソール画面その1引用:Reflex Arena on Steam

「savemap」というコマンドで、いわゆる「名前をつけて保存」ができます。今回はシンプルなマップを作るということで、マップのファイル名を「simple」とします。したがって、「savemap simple」と入力します。

コンソール画面その2引用:Reflex Arena on Steam

ライティング(光源処理)に関するファイルが生成される場合もありますが、KovaaK's FPS Aim Trainer では使用しないため*4、光源処理および警告文(LIGHTING INVALID, PLEASE REBUILD)は無視して構いません。

ちなみに、「savemap」コマンドでマップ名を省略した場合、いわゆる「上書き保存」となります。

マップの読み込みについては「map」というコマンドを使用します。「map」と入力すると、Reflex Arena のローカルファイル maps フォルダ内にあるマップ名が列挙されます。

コンソール画面その3引用:Reflex Arena on Steam

「map」コマンドで、読み込みたいマップファイル名を指定すると、対象のマップが読み込まれます。「map simple」と入力すると、先ほど保存した「simple」マップが読み込まれます。

コンソール画面その4引用:Reflex Arena on Steam

作成したマップを KovaaK's FPS Aim Trainer で読み込む

新たに作成して保存したマップファイルは、Reflex Arena のローカルファイル maps フォルダ内に格納されています。ここから KovaaK's FPS Aim Trainer の maps フォルダにマップファイル(.map ファイル)をコピペすることで、KovaaK's FPS Aim Trainer 側でそのマップを使用できるようになります。

ローカルファイルを開くには、Steam のゲーム一覧から右クリックしてプロパティを開きます。

Steam プロパティ

その後、maps フォルダ内にある対象のマップファイルを KovaaK's FPS Aim Trainer 側にコピペします。

ローカルファイル1

ローカルファイル2

この状態で KovaaK's FPS Aim Trainer を起動すると、対象のマップを選択できるようになっています。

マップ選択画面引用:KovaaK's FPS Aim Trainer on Steam

マップ編集の詳細について

以下、一般的なマップ制作において必要となる知識について紹介します。

プレイヤーモードとエディターモードの切り替え

Reflex Map Editor には、制作途中のマップをプレイヤー目線で歩きながら確認できるモードと、ブロックを選択して位置やサイズを編集できるモードがあります。デフォルトのキーバインドでは数値の 0 キーを押すと切り替わります。

ブロック配置とリスポーン地点配置の切り替え

Reflex Map Editor には様々な Entity(マップに配置する要素)が用意されていますが、KovaaK's FPS Aim Trainer 側に反映されるのは「WorldSpawn(ブロック)」と「PlayerSpawn(リスポーン地点)」の二種類のみです。それぞれ数値の 1 キーと 8 キーに切り替えショートカットがバインドされています。

Entity 一覧画面引用:Reflex Arena on Steam

プレイヤーのリスポーン地点

リスポーン地点にはチームを指定する設定項目があり、Team A と Team B の二種類があります。KovaaK's FPS Aim Trainer において、プレイヤー側とターゲット(BOT)側を分けて出現させるために必要となる設定です。どちらでも構いませんが、慣例として Team A をプレイヤー、Team B をターゲット(BOT)側に設定するケースが多いようです。Relfex Map Editor 上でリスポーン地点をクリックすると画面左側に設定の一覧が表示されますので、Team を適切に設定します*5

Spawn プロパティ画面引用:Reflex Arena on Steam

ブロックの種類

通常のブロックに加えて、以下の三種類のブロックを使用することができます。

  • Clip(キャラクターを通さず、武器を通す、透明のブロック)
  • Weapon Clip(武器を通さず、キャラクターを通す、半透明のブロック)
  • Full Clip(キャラクターも武器も通さない、半透明のブロック)

プレイヤーとターゲット(BOT)のエリアを分けたり、プレイヤーの射線を制限したり、通常のブロックとは異なる色で配置されることを活かして目印を設置したりと、様々な用途に活用できます。

マテリアルをブロックに適用するには、画面上部のマテリアル欄右隣にある四角ボタンをクリックして一覧画面を呼び出し、使用したいマテリアルを選択します。その後、適用したいブロックを選択して M キーを押します。

Clip マテリアル一覧画面引用:Reflex Arena on Steam

なお、既に存在するブロックのマテリアルを他のブロックに適用したい場合は、元となるブロックを選択した状態で Shift + K キーを押し、その後適用したいブロックを選択して M キーを押します。

Undo・Redo

Z キー・X キーを押すことで、操作の取り消し・やり直しが可能です。気軽に試行錯誤していきましょう。

ブロックの複製

G キーを押すことで、選択対象のブロックを複製することができます。CTRL キーを押しながらドラッグすることで範囲選択した後に複製することも可能です。左右対称の構造を作る場合や、ひとかたまりの構造を複数配置したい場合などに活用すると、作業時間の短縮に繋がります。

複製機能使用例引用:Reflex Arena on Steam

ブロックの縦移動

ブロックを選択して Alt キーを押しながらドラッグすると、水平方向の代わりに縦方向へ移動させることができます。

ブロックの回転

キーバインド画面で設定したブロックを回転させるキーを押すことによって、選択対象のブロックを回転させることができます。回転する角度は画面右上にある Angle 欄の数値を変えることで指定できます*6

Snap 設定欄引用:Reflex Arena on Steam

現状では、縦方向に回転させることはできないようです。板状のブロックを縦に回転させたような坂を作りたい場合は、後述する頂点編集機能を使う必要があります。

回転機能使用例引用:Reflex Arena on Steam

頂点編集

ブロックを選択して V キーを押すと頂点編集モードに入ります。この状態でブロックの頂点をドラッグすると、直方体以外の形状を作ることができます。これを利用して、坂や三角錐、あるいはもっと複雑な形状を作ることも可能です。注意すべきは、頂点の数が増えるほどマップのファイルサイズが大きくなり、読み込み時間が長くなることです。KovaaK's FPS Aim Trainer においては、シナリオの開始時やリスタート時に毎回時間がかかるようになってしまいます。あまり凝った造形は想定されていないようですので、なるべくシンプルな構造のマップにするか、頂点数を減らす工夫が必要になるでしょう。

頂点機能使用例引用:Reflex Arena on Steam

補間機能

ブロックを選択した状態で Shift キー + B キーを押して起点となる面を選択し、接続したいブロックを選択して任意の面で Shift キー + クリックすると、選択した面同士を繋ぐようにブロックを補間してくれます。補間の際にマウスのスクロールを上げ下げすることによって、ブロックの区切りの数を調整できます。円状や扇状など、手作業では時間がかかる形状のマップを制作する際に役立つ機能ですので、慣れておくと表現の幅が広がります。

階段の作成

棒状のブロックを作成し、それを複製した上で高さと位置を調整します。この流れを繰り返すことで階段を作成できます。階段として登ることができる高さは KovaaK's FPS Aim Trainer 側でキャラクターごとに設定可能です。

坂の作成

ブロックを作成し、頂点の高さを調整することで坂を作成できます。KovaaK's FPS Aim Trainer では、45° 未満の坂であれば登れる判定になっているようです。

あとがき

ここまで紹介したように、Relfex Map Editor でマップ構造とリスポーン地点を設計した後で、KovaaK's FPS Aim Trainer 側に移って武器やキャラクターなどを設計するという流れになります。慣れてくるとマインクラフト感覚で楽しめます。これを機に、あなたも最強のエイム練習シナリオを考えてみませんか?

この記事の執筆にあたり、名シナリオクリエイター Lac さんとのチャットログが大いに参考になりました。この場をお借りしてお礼申し上げます。

*1:ただし、Reflex Arena のジャンプパッドやポータルといったギミックは KovaaK's FPS Aim Trainer 側に反映されません

*2:おそらく、Quake3 のマップデータから変換をかけているため

*3:毎回 Shift を押すのが面倒であれば、IME を US キーボードに切り替えるのも良いでしょう

*4:光源を配置しなくても KovaaK's FPS Aim Trainer 側で自動的に光を照らしてくれます

*5:他にも Reflex Arena 用の設定項目がいろいろとありますが、KovaaK's FPS Aim Trainer 側では使用されていないようです

*6:Snap Distance を変えることでブロックのサイズや移動量も変更可能です