Boom形式でのマップ制作




Boomって何?

BoomはTeamTNTによって作られたソースポート(Doomエンジン)の一つです。オリジナルDoom(Vanilla Doom)のゲーム性を踏襲しつつも沢山の拡張的な編集ができて、マップ制作者にとってもかゆいところに手が届くようなポートです。ベルトコンベアを利用した仕掛けの発達により複雑な表現も可能で、Boom形式でのマップ制作はかなり人気なものとなっています。今回はそのベルトコンベアを使用した仕掛けの解説を行います。また、本解説はある程度マップ制作の知識がある人向けです。マップ制作が初めての人はチュートリアルから始めて下さい。

Boom形式の利点としてはオリジナルDoomに次ぐ互換性の高さです。オリジナルDoomとは違い動作しないソースポートはありますが、メジャーなポート最大手のZDoom系統が対応している点、、スピードランでメジャーなPrBoom-Plusが(Boomの拡張ポートなので当たり前ですが)対応している点も人気の理由の一つです。



Boom形式マップ制作の初期設定




Doom builder2の初期設定
と同様の方法でBoom項目の「Resources」に「Doom2.wad」を設定して下さい。



「New Map」や「Open Map」でマップを開くときも必ずBoom形式を選んで下さい。
これで設定は完了です。

ベルトコンベアの仕掛け作成




上図のようにベルトコンベアの仕掛け設定を行うLinedefをA、それによって実際に仕掛けが動作するセクターをBとします。コンベアのスピードはラインの長さで決まるためにステージ外の隔離されたエリアを作成してそのLinedefで設定を行う事をお勧めします。



Linedef Aの設定画面を開きActionを252番「Scroll Move Things according to Line Vector」にして下さい。これでTagで紐付けされたセクターがLinedefの長さに合わせて動き出します。



ベルトコンベアの向きは仕掛けを設定するLinedefの向き(Front Sideの向き)に依存して、上図の方向になっています。斜めにすれば斜めに移動するコンベアも作成可能です。Linedefの長さは長くても256までにしておくと良いと思います。速すぎるとLinedefを踏んで発動する仕掛けが起こらなくなるバグが発生する可能性が出てきます。


おまけ
今回作った仕掛けは物は移動しますが床自体がアニメーションすることはありません。床をアニメーションさせたい場合はActionを251番「Scroll Move Floor according to Line Vector」を使います。



Linedef Cを追加してそれにActionを251にTagをセクターBと紐付けると「物が移動して実際にアニメーションとして移動している床」が完成します。Linedef AとCの長さと向きを揃えることで矛盾のない仕掛けが作れます。


ベルトコンベアの仕掛けの応用

ベルトコンベアの仕掛けの作り方を解説しましたが、この仕掛けがマップ上の仕掛けとして直接的に使われる事は少ないです。では、何故この仕掛けがBoom形式マップを作る上で欠かせないかと言いますと、ベルトコンベアを応用することで仕掛けの連続動作や時間差のある動作などを作ることができるからです。

ここで一例を挙げます。





一番上の図が3D画面、その次の図が上面図になります。スイッチを押すとAが閉まって閉じ込められ、同時にBが開き敵が現れます。そして時間差でセクターCの橋が架かりキーが入手可能となる構造を考えます。この仕掛けを作るにはどうすれば良いでしょうか?これを可能にするのがベルトコンベアになります。



上図の赤枠のようにステージ外に2つの隔離されたセクターを追加しました。左端はベルトコンベアの仕掛けを作動させるためにLinedefがあるセクターになります。そして、右側の細長いセクターが実際にベルトコンベアとして作動するセクターです。



ベルトコンベアの下側に「Player1 Start」を複製して複製前の方(Thing Noが小さい方)を配置します。「Player1 Start」を複製すると一方は動かないプレイヤー人形としてステージ上に存在します。これでベルトコンベア上を人形が移動する仕掛けができました。
この人形は、人形がダメージを受けると自分がダメージを受け、人形がLinedefを通過すると仕掛けが動作します。つまり、ベルトコンベアを利用して人形を動かし、仕掛けを任意のタイミングで動かすのが複数の仕掛けを同時に動かすカラクリになります。



上図のようにLinedefを追加しました。下側赤丸内の2本LinedefでAが閉まり(Action 110)とBが開く(Action 109)のそれぞれ仕掛けを設定し、上側赤丸でCの橋が架かる(Action 22)の仕掛けを設定します。

特にAction 22はセクターを仕掛けのLinedefに接しているセクターに変更しつつ橋を架ける(セクターを上昇)させます。ステージ上のスイッチやラインを跨ぐ動作で作動させる場合は隣接セクターを変更後のセクターと一致させる必要がありますが、ステージのデザイン上別の物にしたい場合が時折あります。ベルトコンベアの仕掛けはステージ外にあるので、デザイン性を気にしないのも利点です。複数の橋をそれぞれ別のセクターに変更しつつ同時に架けるような仕掛けも作れます。

これで完成...ではありません。このままだとプレイ開始と同時に仕掛けが作動します。実際はスイッチを押した時に仕掛けが動くようにしたいので、それまで人形の移動を止めておく必要があります。



仕掛けの手前に小さなセクターを作り、高さを前後の床から25高くします。(プレイヤーは25以上の段差は超えられません。)また、Tagも段差を動かす仕掛けように新しいものを作って下さい。
Tagを変更した部分は当然コンベアの仕掛けがなくなるので注意が必要です。新しいTag用に仕掛けを作ることもできますが、このセクターの幅を狭める事で、手前のコンベアの勢いだけで超えられるようになります。



3D画面で見ると上図のようになりプレイヤーが段差で足止めされていることが分かります。後はスイッチでこの段差が降りる仕掛け(Action 23)を設定すれば完了です。
時間差の仕掛けCはLinedefの位置を調整すれば発動のタイミングを調整可能です。このような時間差の仕掛けを作る際は何回もテストプレイを繰り返して、丁度良いタイミングを見つけましょう。

今回例として作成したマップはこちらからダウンロードできます。

ベルトコンベアを応用した仕掛けの説明は以上です。これを応用することでかなり複雑で凝った仕掛けを作ることもできます。



おまけ

ベルトコンベアの仕掛けは、プレイヤー以外にも敵やアイテムをコンベアで移動させることができます。そして、ワープ設定をしたLinedefを踏ませてステージ上の任意の場所にワープさせるなどの使い方が主な運用方法になります。



上図のようにコンベア設定をすればアイテムや敵をワープさせる事ができます。アイテムを移動させるはオリジナルDoomではできない事です。敵についてはアクティブになった敵が自らワープラインを踏んで移動する方法によりオリジナルDoomでも可能ですが、敵をアクティブさせずに運べるのはBoomだけです。アクティブにさせない事の利点はサイバーデーモンとマスターマインドの特性であるアクティブ時の鳴き声が必ずステージ全体に響き渡る敵に有効です。オリジナルDoomだとワープで現れる前に必ずアクティブにする必要があり、その時の鳴き声でステージにいることが分かってしまいます。それを隠すことでプレイヤーを驚かす事が可能です。

ただし、気をつけて欲しいのはワープするタイミングでワープ先に別の通行不可オブジェクト(プレイヤーや敵など)があるとワープ失敗します。すると二度とステージ側にワープしてこない事になります。それはクリア時のリザルトが100%にならない自体を招く、制作者にとっても不本意なバグであるので、発生確率が低くても防ぐ事が必要です。

防ぐ方法はいくつかありますが、サイレントワープを使用してステージへのワープが成功するまで無限ループさせるという方法があります。



Actionを244番「WR Teleport to Line With Same Tag」は同じTagを設定したLinedefへワープする少し変わった仕掛けです。ワープ先が同じTag設定をしたセクター内にあるTeleportオブジェクトではなく、同じTagの2つの対となるLinedefのというのが本来とはかなり異なっている点です。



上図のような仕掛けになります。赤矢印がステージ側へのワープになりますが、それとは別にActoin 244と同じTagを用いた2つのLinedefで隔離された部屋を繰り返してループする構造を作ります。上向きのコンベアと黄色矢印のワープがそのループ構造です。

少し複雑な構造なのでこのサンプルマップをこちらに置いておきます。参考にして下さい。
スイッチを押すとサイバーデーモンがワープできる仕掛けですが、ワープ位置にバロンがいるので、それがが移動しないとサイバーデーモンがワープできません。透明な壁でサイバーデーモンが見えるようにしておいたのでサイバーデーモンが無限ループする様子を確認できます。