プレーヤーが走る無限の道をどのように実装しますか?


17

私は男が長い道を走っているような錯覚、つまりこの写真を作りたい

http://camlinecambridgelimited.web.officelive.com/images/road%20graphic1.jpg

iPhoneでTemple Runをプレイした場合、これは同じ原理ですが、テンプルの代わりに通常の道です。

これがどのように実装されているか知りたい。たとえば、この道路画像をループで繰り返すだけですか?

回答:


16

私は地面に単一のテクスチャ付きクワッドを描画し(XZ平面上にある)、可視領域と同じ大きさにし、頂点テクスチャ座標でテクスチャアドレスモードをwrapに設定して)遊んでみます。テクスチャの繰り返しとテクスチャのスクロールの両方を自動的に処理します。

  1. 以下のために、繰り返しの代わりに、[1、0]から座標あなたの垂直のテクスチャを設定し、よりNはあなたが繰り返しにテクスチャを希望する回数である[0 Nへ]に設定します。テクスチャの高さと比較したクワッドの高さに応じて、この値を調整します。
  2. 以下のためにスクロール私は単に代わりから[0 Nへ]の範囲で、それはの値とから[INC N + INCへ]の範囲となるように、垂直テクスチャ座標スクロールしたいINC増分または各フレームをデクリメントされます。オーバーフロー/アンダーフローを防ぐために、ときどきincを元に戻します。

編集私はちょうどこれをXNAで説明したとおりに正確に実装しようとしましたが、うまく機能しました。このデモのビデオをご覧ください。興味がある人のためのソースコードはこちら


たとえば、Nが3の場合、次の画像のようになります(繰り返しが発生する場所を確認できるように、中央のセクションを赤で塗りました)。次に、単にincの値を変更すると、増加または減少したかどうかに応じて、道路が一方向または他方向にスクロールします。

ここに画像の説明を入力してください


同じ手法を使用して、タンクスレッドのアニメーションを偽造することができます。もちろん、すべてのチェーンセグメントをモデル化すると使用できなくなります
...-Exilyth

1

果てしない道を「現実に」作りたい場合は、3つのサーフェスを作成し、各サーフェスがビューの外側に移動するときにそれらをループさせます。サーフェスをワールド空間で端から端に配置し、それらをすべてカメラに向かって移動します。最も近い端がカメラから離れるにつれて、その位置を最も遠いサーフェスの端にリセットします。

動きの錯覚を伴うスプライトとして実装したい場合は、次のように見えるさまざまなテクスチャをいくつか作成する必要があります。

ビューが前方に移動すると、テクスチャを順番にループします。


0

画像を繰り返すことをお勧めします。画面に表示する必要がある繰り返しの数を把握し、その回数だけ画像を描画します。道路がスクロールすると、1つの画像がカメラの背後に完全に隠れて見えなくなるポイントがあります。その時点で、その画像を足の裏から有限の画像ストリップの遠端に移動します。

私たちがそれに取り組んでいる間、あなたは走っている人の不安定な視点を真似ることによって、それから最高の効果を得るでしょう。あなたの目の視点から走っているあなたの映画を録画し、研究してください。


2
彼のイメージは遠近法なので、それは実際には機能しません。アニメーションとして再生するには、さまざまな画像が必要です。
ボビー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.