Noclipモード

Noclipモード （ノークリップモード、Noclippingとも呼ばれる ）は、コンピュータゲームにおいて、一人称のプレイヤーキャラクターのカメラが他のオブジェクトによって遮られるのを防ぎ、カメラを任意の方向に移動させることを許可し、壁や小道具、他のプレイヤーなどを通過することを可能にするチート。Noclippingは、チート、バグの回避（および開発者のデバッグの支援）、 イースター・エッグの発見、およびマップの物理的な境界を超えたエリアの表示に使用できる。 この用語は、1990年代にid Softwareのゲームによって普及した。名前はゲームコマンド「idclip」（以前は「idspispopd」）に由来しており、従来からDoom IIのPCゲーム機版でそのコマンドを入力してNoclipモードを起動していた。 このチートは、特に『Quake』や『Half-Life』などのアクション指向のファーストパーソン・シューティングゲームではよく見られる。 id Softwareのジョン・カーマックは、「動きベクトルのクリッピング」という概念からこの用語を派生させたとファンに語っている。Noclipコードの最初の例は、 id Softwareの人気ゲームシリーズ『コマンダー・キーン』から来ている。 Noclipモード（および同様のモード）は、多くの場合開発者がゲームをテストする手段として始まっている。新しい機能がゲームに実装されているが、それが機能するかどうかを判断するためにプレイすることが必要な場合、開発者が死を回避するかゲーム環境の時間のかかる領域を「飛ぶ」ことにより、ゲームの関連部分にすばやく到達できれば、時間を節約できる。神モードのこのソースは、多くの場合プレイヤーがこれらのモードを有効にするルート、たとえば、開発モードのフラグをたててゲームを実行することで現れる。 ゲームの同等のコードでもクリッピングをオフにできるが、これはプレイヤーが壁を歩いて通り抜けることができる理由ではない。このコードは、まったく別のトグルである衝突検出をオフにする。通常、このコードはバックフェースカリングをオフにしないため、プレイヤーが「衝突なし」モードを使用して壁を通過しても、片側の壁の反対側は描画されない。 一部の開発者はid Softwareの方法で継続している。 一般的に言えば、高度なゲーム内物理学が使用されていない限り、壁とオブジェクトには「実体」はない。衝突検出とは、壁やオブジェクトとプレーヤーのアバターが交差することを指す。交差する場合（衝突がオン）、ゲームはあたかもプレイヤーが交差するオブジェクトにぶつかったかのように、プレイヤーの動作を停止する。そうでない場合、アバターはオブジェクトと相互作用せずに通過する。これは、ゲーム内物理学を壁で実装する比較的簡単な方法である。 Noclippingは、ゲームの他の要素と競合する可能性がある。たとえば、MS-DOSに登録されている1.3Dバージョンの『Duke Nukem 3D』と『コマンダー・キーン』シリーズでは、Noclipモードがオンになっていて、ステージのエリア外を歩くと死に至る。プレイヤーが神モードを有効にしていると、神モードの実装方法によりゲームが無限ループに陥ったり、クラッシュしたりする。MS-DOS Plutonium Pak 1.4/Atomic Edition 1.5および『Duke Nukem 3D』のソース移植ではこの問題は修正され、代わりにDoomのように動作する。衝突検出を無効にすると、他の方法でゲームのプログラミングに干渉する可能性がある。プレイヤーは、事前にプログラムされたイベントを間違ったタイミングでトリガーしたり、重要なイベントがまったく作動しないようにしたり、誤ってゲーム世界の他のセクションへのアクセスを無効にしたりすることがある。 古典的な一人称シューティングゲーム『Doom』では、設計エラーまたはプレーヤーの実験の結果として「ミラーホール」と呼ばれる効果が発生する可能性がある。 当時のゲームは、プレイヤーの視点が常に密閉された領域内に完全に収まることを想定してプログラムされている。これにより、次のフレームを描画する前に画面の内容を消去する必要がなく、新しいフレームは前のフレームを完全に覆うことになる。ただし、この前提に反してプレーヤーがNoclipモードを使用して仮想カメラを操作すると、表示する内容がないところに「穴」が開いたフレームを生成する。これらのフレームは、古いフレームを完全に覆うことができず、一瞬前に描かれたものが画面の特定の領域にまだ残ってしまう。プレーヤーがさらに仮想カメラを動かすと、多数の消去されていない領域が混ざり合って物理的な鏡のホールで出会うパターンに似た視覚パターンが生成される。 Quakeエンジンのゲームで「gl_clear 1」と入力すると、最後にレンダリングされたイメージのバッファを空にすることができる。この設定では、マゼンタ色が世界の外に描画され、画面をクリアして、レベルの外にいるときのナビゲーションを支援する。 『ソニックアドベンチャー2』『デッドライジング』『ロストプラネット』 『塊魂』などのゲームにはキャラクターの影がすぐ下のフロアだけでなく、キャラクターの下のすべてのフロアに表示されるバグがある。 これは、『Half-Life 2』『Counter-Strike：Source』『Left 4 Dead』『Team Fortress 2』などのSourceエンジンゲームでも発生する可能性がある。マップメーカーがフロアに正しいプロパティを設定していない場合（シャドウイングを無効にするなど）、上にいるプレイヤーの影が透けて見えてしまう。これは、上の部屋にいるプレーヤーがその下のプレーヤーから隠れたり見つからないようにしたりしようとする場合には、少なくとも役に立たない。『Team Fortress 2』では、サーバーが有効にしている場合、Noclippingはスポーン内に建物を構築したり、壁を通って歩いたり、どこにでも浮かんだり、ヘルス、弾薬、金属を受け取ったり、敵のスポーンにプレイヤーを移動させたりするのに使用できる。『Counter-Strike』と『Left 4 Dead』シリーズでは、プレーヤーが死亡した後リスポーンを待っている際または観客として「フリーモード」を選択するオプションがある。これにより、プレーヤーはマップ上のどこにでも移動できる。この機能は通常のプレイでは到達できない、または見る事ができないマップの秘密エリアを見つけるのにも役立つ。たとえば、カウンターテロリストのスポーンの外にあるマップ「de_Dust2」（および他の多くのマップ）のクレジットを見る事ができる。 これは、カメラのクリアフラグが「クリアしない」に設定されている場合、 Unityゲームで発生する可能性がある。 多くのアンリアルエンジンのゲームでは、Noclipモードを有効にするために入力できるチートがいくつか存在し、最も一般的なのは、ghostチートの1回の入力である。チートを入力するとプレイヤーはステージ内を飛行し、ジオメトリを通過することができる。 MMORPGの『RuneScape』において、ほぼすべての障壁を通過することができ、ゲーム内のアクティビティでチート行為ができるようなNoclipの特定の特性をプレイヤーに与える不具合が発見された。この不具合は2008年の発見から数か月後に修正された。 Xbox 360やPlayStation 3用ゲーム『Call of Duty 4：Modern Warfare』『Call of Duty：World at War』および『Call of Duty：Black Ops』 において、プレーヤーはゲームのセーブデータをコンピューターにコピーして、オンラインマルチプレイの試合でNoclipを使用できるようにデータを改造することができた。Noclipモードは衝突判定をオフにする（事実上、無敵になる）だけでなく、非常に高速でマップを「飛ぶ」ことができ、通常は入ることができない部分に入ることができたためプレイヤーは主に同モードを使用してチートを行っていた。ただし、Noclipモードがアクティブである間、プレイヤーはゲーム環境とのやりとり（つまり、他のプレイヤーを撃つ）ができなかった。このエクスプロイトには、ノートパソコンのXbox 360とPlayStation 3の両方のバージョンのゲームにパッチが適用されている。ただし、『Team Fortress 2』などの一部のゲームでは、ゲーム機版にパッチを適用していない。PC版では、コンソールに「noclip」と入力することで、シングルプレイヤーマップでもNoclipモードにアクセスできるようになっている。 Noclipモードは、GPL下でのQuakeソースコードをベースとした多数のオープンソースゲームで使用できる。