FPS草創期の傑作「Duke Nukem 3D」には鏡の中の世界が存在する
地球を侵略するエイリアンに対して警察や軍隊が全く歯が立たない中、ムキムキマッチョ&タンクトップで金髪刈り上げな主人公がたった一人で立ち向かって美女を救い出すというストーリーのFPSが「Duke Nukem 3D」です。同じくFPS草創期の傑作「DOOM」「Wolfenstein」などのシリアスなストーリーのゲームに比べて、B級ハリウッド映画のようなコメディ色の強い展開や「ストリッパーにチップを払える」などのマップギミックの豊富さなどが高い評価を受けて「バカゲー系FPS」の草分け的存在になったといわれる本作ですが、そんな本作に登場する「鏡の中の世界」の不思議な実装について、Twitterユーザーのfoone氏が解説しています。
foone氏によると、ステージ1の映画館には男子用スペースと女子用スペースがひとつなぎになった奇妙なトイレが存在するとのこと。
Did you ever notice that the theater in level 1 of Duke Nukem 3D has a big hallway off the lobby, and when you go through there, it's a bathroom? Just the one.
— foone (@Foone) March 19, 2021
It's a doorless unisex public bathroom with urinals. Weird. pic.twitter.com/6Eu6HNCxwr
このトイレでは用を足すこともできますが、foone氏の分析によると、このトイレが設置された真の理由は巨大な「鏡」にあるとのこと。
BTW I'm certain the real reason they put a bathroom in this level was this stupidly huge mirror.
— foone (@Foone) March 19, 2021
This is a huge flex from the engine: look at us, we can do fucking MIRRORS pic.twitter.com/G3D4UIeTQH
この鏡はこんな感じで、主人公だけでなく敵の姿までもリアルタイムで描写してくれます。この鏡は「映り込みをリアルタイムで描写できるというエンジンの進歩を強調するために設置された」というのがfoone氏の見立てなわけです。
you can even see ENEMIES in the mirror! pic.twitter.com/CN2NWGYHsb
— foone (@Foone) March 19, 2021
この鏡は銃撃によって弾痕を付けるだけでなく、手榴弾などでぶっ壊すことも可能。
you can shoot them with a gun, and they will get bullet holes, and then if you hit them with an explosive (even one that hasn't exploded yet...), it STOPS BEING A MIRROR pic.twitter.com/Q2x9WxNWP3
— foone (@Foone) March 19, 2021
中でも最も興味深いポイントは、壁や重力の存在などを無視して移動できるようにするチートコード「Noclip」を使うと、「鏡の中の世界」に入り込めるという点。
here's the best part: if you use a noclip code, you can walk through them. pic.twitter.com/YyRcjqtKES
— foone (@Foone) March 19, 2021
ここで疑問になるのが、「鏡の中の世界にいるときに、鏡を壊すと何が起きるのか?」ということ。実際にやってみると、合わせ鏡の中に入り込んだかのようにゲームが崩壊します。
it gets SLIGHTLY weird and broken pic.twitter.com/Cdfq8KtnCQ
— foone (@Foone) March 19, 2021
また、鏡の中の世界を一定以上進行すると強制死亡します。この強制死亡は、絶対に死なないようにするチートコードの「God Mode」でも避けられないとのこと。
fun fact: You can explore around in the mirror dimension but if you go to far, you will die.
— foone (@Foone) March 19, 2021
even with God Mode active. pic.twitter.com/hwqCC6JKH3
foone氏が行っているのは、この現象の背景に存在する「鏡の処理」についての解説です。問題の鏡はマップエディターの3Dモードで見ると以下のように、「Sector Effector」と呼ばれる特殊なスプライトが貼り付けられているという構造とのこと。
then if we switch into 3D mode, you can see that it's got something weird going on with it. That "S" is a special effect called a Sector Effector pic.twitter.com/wRLWgTRcbP
— foone (@Foone) March 19, 2021
マップエディターの平面図で見ると、鏡の中の世界は「巨大な部屋」として設計されています。
and if you zoom out, it turns out there's a HUGE room back there. pic.twitter.com/ph0hIWw89b
— foone (@Foone) March 19, 2021
foone氏によると、「Duke Nukem 3D」に使われているBuildエンジンでは、ステージのロード時に鏡の反対側の部屋にジオメトリをコピーするという処理になっているとのこと。「遠くに行きすぎると死ぬ」という現象は、鏡の中として設定された部屋の領域外にまで歩を進めてしまったことが原因というわけです。
BECAUSE it turns out that yes, the BUILD engine can build a reflection for you, but it does it at load time.
— foone (@Foone) March 19, 2021
When the level is loaded, it finds the mirrors and copies that geometry into the room on the other side of the mirror
この処理には、「必要なジオメトリを全部コピーできるだけのスペース」が必要なので、鏡の中の世界は元のトイレに比べて不釣り合いなほど巨大な部屋に設定されています。ならば、鏡の中の世界を「必要なジオメトリをコピーできないほど狭い部屋」に設定すると何が起こるのでしょうか、とfoone氏。
SO here's the next question:
— foone (@Foone) March 19, 2021
it won't work if the mirror-room is too small, right?
what exactly will happen?
TIME TO EDIT THE LEVEL AND SEE WHAT HAPPENS! pic.twitter.com/Acy8qNSrA8
結果は以下のように、「鏡の中の世界」における部屋外の位置に主人公がいた場合、鏡のグラフィックが完全にバグります。
so it turns out that the answer is... the mirror just doesn't work, unless you're inside the area of the room on the other side of the mirror. Basically the mirror-geometry is only defined for that size of a space. pic.twitter.com/2g3ZxS2eqd
— foone (@Foone) March 19, 2021
you can see here that it's working fine, then you back up too much and it breaks, then it starts working again when you get closer pic.twitter.com/2mD8q8FVFs
— foone (@Foone) March 19, 2021
一連の処理について、foone氏は「ゲームの中身を見てどれほど大がかりな仕掛けが施されているのかを知るというのは、90年代のFPSの中で最も好きな部分です」とコメントしています。
This sort of thing was honestly my favorite part of FPSes in the 90s: Getting a game, then getting hold of the level editors and finding how much of it was just a big hack
— foone (@Foone) March 19, 2021
・関連記事
40年以上続く「FPSの進化の軌跡」がたった3分でわかるムービー - GIGAZINE
初代「DOOM」を80年代風に古くした「POOM」誕生、16色&128×128ピクセルの超クラシカルビジュアル - GIGAZINE
ニューラルネットワークで「DOOM」の主人公を「リアル化」して笑顔を取り戻すことに成功 - GIGAZINE
DOOMを一人称視点の初代ゼルダの伝説に魔改造するMODが無料公開 - GIGAZINE
ルンバに名作ゲームDOOMのマップを自動作成させるその名も「DOOMBA」爆誕 - GIGAZINE
・関連コンテンツ