ゲーム

FPS草創期の傑作「Duke Nukem 3D」には鏡の中の世界が存在する


地球を侵略するエイリアンに対して警察や軍隊が全く歯が立たない中、ムキムキマッチョ&タンクトップで金髪刈り上げな主人公がたった一人で立ち向かって美女を救い出すというストーリーのFPSが「Duke Nukem 3D」です。同じくFPS草創期の傑作「DOOM」「Wolfenstein」などのシリアスなストーリーのゲームに比べて、B級ハリウッド映画のようなコメディ色の強い展開や「ストリッパーにチップを払える」などのマップギミックの豊富さなどが高い評価を受けて「バカゲー系FPS」の草分け的存在になったといわれる本作ですが、そんな本作に登場する「鏡の中の世界」の不思議な実装について、Twitterユーザーのfoone氏が解説しています。

foone氏によると、ステージ1の映画館には男子用スペースと女子用スペースがひとつなぎになった奇妙なトイレが存在するとのこと。


このトイレでは用を足すこともできますが、foone氏の分析によると、このトイレが設置された真の理由は巨大な「鏡」にあるとのこと。


この鏡はこんな感じで、主人公だけでなく敵の姿までもリアルタイムで描写してくれます。この鏡は「映り込みをリアルタイムで描写できるというエンジンの進歩を強調するために設置された」というのがfoone氏の見立てなわけです。


この鏡は銃撃によって弾痕を付けるだけでなく、手榴弾などでぶっ壊すことも可能。


中でも最も興味深いポイントは、壁や重力の存在などを無視して移動できるようにするチートコード「Noclip」を使うと、「鏡の中の世界」に入り込めるという点。


ここで疑問になるのが、「鏡の中の世界にいるときに、鏡を壊すと何が起きるのか?」ということ。実際にやってみると、合わせ鏡の中に入り込んだかのようにゲームが崩壊します。


また、鏡の中の世界を一定以上進行すると強制死亡します。この強制死亡は、絶対に死なないようにするチートコードの「God Mode」でも避けられないとのこと。


foone氏が行っているのは、この現象の背景に存在する「鏡の処理」についての解説です。問題の鏡はマップエディターの3Dモードで見ると以下のように、「Sector Effector」と呼ばれる特殊なスプライトが貼り付けられているという構造とのこと。


マップエディターの平面図で見ると、鏡の中の世界は「巨大な部屋」として設計されています。


foone氏によると、「Duke Nukem 3D」に使われているBuildエンジンでは、ステージのロード時に鏡の反対側の部屋にジオメトリをコピーするという処理になっているとのこと。「遠くに行きすぎると死ぬ」という現象は、鏡の中として設定された部屋の領域外にまで歩を進めてしまったことが原因というわけです。


この処理には、「必要なジオメトリを全部コピーできるだけのスペース」が必要なので、鏡の中の世界は元のトイレに比べて不釣り合いなほど巨大な部屋に設定されています。ならば、鏡の中の世界を「必要なジオメトリをコピーできないほど狭い部屋」に設定すると何が起こるのでしょうか、とfoone氏。


結果は以下のように、「鏡の中の世界」における部屋外の位置に主人公がいた場合、鏡のグラフィックが完全にバグります。


一連の処理について、foone氏は「ゲームの中身を見てどれほど大がかりな仕掛けが施されているのかを知るというのは、90年代のFPSの中で最も好きな部分です」とコメントしています。

この記事のタイトルとURLをコピーする

・関連記事
40年以上続く「FPSの進化の軌跡」がたった3分でわかるムービー - GIGAZINE

初代「DOOM」を80年代風に古くした「POOM」誕生、16色&128×128ピクセルの超クラシカルビジュアル - GIGAZINE

ニューラルネットワークで「DOOM」の主人公を「リアル化」して笑顔を取り戻すことに成功 - GIGAZINE

DOOMを一人称視点の初代ゼルダの伝説に魔改造するMODが無料公開 - GIGAZINE

ルンバに名作ゲームDOOMのマップを自動作成させるその名も「DOOMBA」爆誕 - GIGAZINE

in 動画,   ゲーム, Posted by darkhorse_log

You can read the machine translated English article here.