「世界からの脱落」を引き起こした原因とそれを修正した理由


14

初期の3Dゲームの多くは、あなたが楽しそうに歩き回り、突然すべてが黒くなるという問題を抱えていました。そして、あなたが歩いていたシーンの中空のファサードのシェルのように見える島が上の距離まで上昇しました。あなたが世界から落ちたからです。これはBethesda Softworksにとって長年にわたる特定の問題であったことを覚えていますが、彼らだけではありませんでした。野生で見たのは久しぶりなので、私たちはそれを過ぎてしまったようです。私の質問は2つの部分です。

1)この原因は何ですか?(私の推測では、ポイントモデリングされたキャラクターの位置と相互作用する、ポリゴン間の浮動小数点精度に関連するシーム、つまり、フロアチャンクAが位置1.0で終了し、フロアチャンクBが位置0.9998で開始し、マイクロ秒の位置が0.99992、そしてブーム、あなたは世界を転落します。しかし、それは単なる推測です。)

2)どのように修正されましたか?


モロウィンド。Vivec。思い出...
トビアスKienzler

3
ベセスダといえば、床を転がり落ちて、スカイリムの不幸なNPCです
クリス

いつもスケート3のことを考えさせられます。
user1118321

回答:


14

主にジオメトリの「クラック」。これらのゲームには共通点がいくつかあり、重力があり、衝突を検出します。

これらの異常は、何らかの方法で衝突検出が失敗した場所です。鋭いエッジ、ギャップ、または他の多くのジオメトリの異常である可能性があります。物理エンジンのタイムステップの問題でさえあり、更新が非同期になり、キャラクターが完全に良好なジオメトリを通過することが許可されました。

これは、プレーヤーがレベルデザイナーが予期していないことを行う場合によく起こります。想定外の場所にジャンプしたり、想定外の落下を生き延びたりします。または、プレイヤーがゲーム内のテレポートや飛行などの機能を使用して場所に到達するとき、レベルデザイナーはプレイヤーが到達できるとは思わなかった。Skyrimとして最近(ビデオ:11:25世界から抜け出すために、音声をミュートすることをお勧めします...)。

衝突の検出が失敗すると、重力から押し戻すことは何もないので、転倒し​​ます。崖から歩いているようです。

それは実際には「固定」ではありません。これを回避する手法はありますが、ほとんどの場合、ランドスケープ用の優れたツールとジオメトリ作成ツールであるため、これらの異常は導入されません。


5

世界を切り抜ける特定の理由があると言うことはできないと思います。ゲーム間のゲームエンジン/物理手順の違いにより、さまざまな理由がこれにつながります。

これを避けるために、私は世界からの脱落が必ずしも排除されていないことを確信しています。

いくつかの大規模なゲームエンジン(Unreal、CryEngineなど)を使用すると、これらのエンジンが常に機能しているため、予期しない問題が少なくなる可能性があります。しかし、開発者が機能や興味深い変更を環境に追加することを阻止するものは何もありません。これにより、最も機能しているゲームエンジンでも世界のクリッピングが発生する可能性があります。

編集:1.私の知る限り、これの根本的な原因は、これを可能にするゲームエンジンが、プレイヤーが間違って動いているかどうかを検出する限られた方法を持っているという事実に関係しています。多くの場合、グラウンドプレーンは単なるプレーンであるため、以前のゲームエンジンではこれに関してより多くの問題が発生していました。プレイヤーが上記の飛行機に乗っていた場合、彼は降りません。何らかの理由で、彼の垂直位置が少し下になると、彼は永遠に倒れます。浮動小数点計算に関してあなたが言っていることのほとんど。エンジンはより堅牢で、プレーヤーが立ち入り禁止の地域全体にいるかどうかを確認する余裕があるため、エラーがトリガーされる可能性は低くなります。


1
うん、十分なバッファがない場合、または文字がポイントとして表されている場合、浮動小数点計算は簡単にこれを引き起こす可能性があります。+1
マイケルハウス

5

私の推測では、古いエンジンはおそらく、ジオメトリとの衝突を検出するために、迅速かつ単純な光線対三角形テストを使用したでしょう。つまり、わずかなギャップ(または計算の精度エラー)でさえ、プレーヤーが時折通り抜けることができることを意味します。

最近のゲームでは、おそらくプレーヤーを表す球体またはカプセルを使用したより高価なテストを使用しますが、これは小さな隙間には収まりません。多くの現代のゲームでは、独自のテストを作成する代わりに、十分にテストされた物理ミドルウェアも使用します。

物理更新の大きなタイムステップは、場合によっては間違いなく非難されることもあります。少なくとも1つのエリートゲームでは、そのために、場合によっては惑星を飛び回ることができたことを覚えているようです。これは、継続的な衝突検出を使用することで修正できますが、これには余分なCPU時間もかかります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.