3Dの偽造の例


17

3Dが2Dで偽造されている良い例を知っている人はいますか(必ずしもコードではありませんが、検索できるゲーム)。プレイヤーは、画面に「入り込み」、物が出てくるという視点を持っています。現時点では、2Dの敵を単純にスケーリングして、彼らが近づいているように見せかけていますが、それでもかなりフラットな感じがします。実際に3Dエンジンを使用せずに3D錯覚を与える方法に関するヒントはありますか?

編集:「Mode7」という用語に出会ったばかりで、このビデオは私が理解しようとしていることのほとんどを示しています。(特に0:13と1:03のゲーム)。このようなものを実装する良い方法は何ですか?


1
90年代半ば以前の多くのコンピューターゲームは3Dを「偽造」し、第5世代の時代(プレイステーション/ N64)より前のほとんどすべてのコンソールゲームはそうでした。スクリーンショットなどを使って今何をしているのかを明確にするのに役立つかもしれません...
thedaian

1
見つけたばかりのビデオで投稿を更新しました。
XSL

2
コンピューターゲームの3Dはすべて偽装3Dです。そのようなものは実際には存在しません!(私はすべてのゲームで3Dの「偽造」が「本物」です何を考えているの相対的なだけであるという意味で、このことを意味Mode7は、それらの間のちょうど中間の地面されているのと同じ基本的な数学を。。。)
DampeS8N

回答:


13

私のお気に入りの古典的なアーケードゲームの1つは、たまたま偽の3Dを行った:Space Harrier

そのビデオでは、彼らが使用したいくつかのトリックを見ることができますが、最も効果的な視覚効果の1つは非常にシームレスであるため、その発生に気付かないかもしれません:プレーヤー(または重要なカメラ)が移動すると、視差を使用してオブジェクトを与えますシーンに奥行き感。

つまり、近くのオブジェクトは、遠くのオブジェクトよりも速く左右に動きます。視差の典型的な例は、動く車の窓の外を見ることです:道路標識のような近くのものはぼやけて鞭打ち、遠くの木々はよりゆっくりと動きますが、山のような遠くのものはほとんど動いていないように見えます。

さらに、オブジェクトは近づくにつれて直線的に拡大縮小しません。つまり、オブジェクトは遠くにいる間は少ししか拡大せず、近くにいるほど速く拡大します。全体的に同じ速度でスケールアップする場合、線形にスケーリングします。オブジェクトが近づくにつれて、すでにオブジェクトをスケーリングしていると言いますが、オブジェクトを線形にスケーリングしていて、フラットに見えるかもしれません。

追加:Afterburnerは、同じグラフィックトリックを多く使用した別の古典的なアーケードゲームです。


1
影は、物を3Dのように見せるための非常に重要な部分でもあります。ゲームスタイルによって、これはそれほど簡単ではないかもしれませんが、キャラクターは地面に影を落とすことができますか、それとも船は惑星に影を落とすのに十分な大きさですか?これはバンプまたは法線マッピングの背後にある一般的な概念です。(ハイエンドの例のように、それを行うことを示唆していません)キャラクターの影が背景でわずかに木を越えますが、遠くの丘の道ではなく、探しているエッジを追加するだけです。
ジェームズ

6

これらのゲームのほとんどは、有名な「モード7」トリックを使用しています。それは単なるrotozoomです。この操作はコンソールのコプロセッサーによって行われたため、これらのハードウェアでは非常に高速でした。実際の3D操作はコストがかかりすぎました。しかし、実際のハードウェアを使用すると、実際の3Dでシミュレートする方が簡単です。

rotozoomは、スプライトの回転とズームです。この説明またはこのSDL 実装をご覧ください。

Google「MODE-7フロアマップ」で検索して、サンプルとコードを見つけてください。

F-Zero Mode 7は、Snesで使用した最初のゲームの1つでした。


5

数年前に、例と説明を含むこれらの手法の素晴らしいレビューを見つけました。あなたの質問は、再び検索するように促しました:Lou's Pseudo 3d Page。彼は以前は機能するアウトランエンジンを使用していましたが、何らかの理由でそれを削除しました(友人がここにいる場合は、ウェイバックマシン

あなたの質問にさらに答えるために、ここに彼のページからのゲームのリストがあります:

  • Street Fighter II(アーケード)(道場の「ラスタ効果」)
  • アウトラン(アーケード)
  • スペースハリアー(アーケード)
  • スーパーハングオン(アーケード)
  • エンデューロ(Atari 2600)
  • ポールポジション(アーケード、Atari 2600)
  • ロードラッシュ(3DO)
  • パワードリフト(アーケード)
  • Racin 'Force(アーケード)
  • ハイドラ(アーケード)
  • アウトランナー(アーケード)
  • ターボ(アーケード)
  • スパイハンターII(アーケード)
  • ピットストップII(コモドール64)
  • エンデューロレーサー(アーケード)
  • ロータス(コモドールアミガ)
  • テストドライブII(Amigaコモドール?)
  • スピードバギー

繰り返しますが、私のリストではありません。すべての功績は、素晴らしい研究のためにLouis Gorenfeldに委ねるべきです。


4

すべての3Dゲームは偽の3Dです。P私は冗談を言っています。「偽の3D」とはどういう意味か知っています。

さて、8/16ビットには、視差を模倣するために、異なる速度で移動するレイヤーに背景を表示する非常に一般的な手法のいくつかの例があります。見ることも非常に一般的でした。実際、それらのコンソール用に作られたレーシングゲームを見るよりも、説明するよりも簡単です。

フラッシュのシナリオでは、同じ精神で新しいものがいくつか出てきます。見てみましょうミサイルゲームの3Dを

この効果を達成するためにどのような経路をとるかはわかりませんが、プログラミングを開始し、グラフィックス(APIかもしれませんか?)にアクセスできることを提案しているようです。したがって、画面全体の動きと時間の関数としてのスケーリングに適したパラメーターを見つけるだけです。ゲームの特定の状況(通常の速度、レース、飛行機、トンネルなど)に大きく依存する可能性があるため、そのための特定の方程式を見つけることはないと思います。時間に関連する画面上の関数のスケールと軌跡を見つけるための最善の方法です。


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