ゼルダのような2Dゲームは、彼の一部だけが表示されている建物の後ろにいるキャラクターをどのように処理しますか?


28

単純なゼルダスタイルのゲームを開発しようとしています。この非常に便利なトピックを見つけました

LoZ:A Link to the Pastはどのようにサブタイル衝突を処理しましたか?

衝突検出メカニズムを開発するためのリファレンスとして使用しています。ただし、理解できなかったことがあります。リンクが建物の背後にある場合、彼の一部のみが表示されます。誰もこの効果を達成する方法を理解するのを助けてくれますか?建物は背景の一部ではありませんか?


レンダリングスタイルは、グラウンドレイヤー(草、タイルのフローリングなど)、オブジェクトレイヤー(ポット、敵、シャーブ、リンクなど)、およびスカイレイヤー(屋根の上、持ち上げられたポット、ツリートップ)を持つと考えるのが好きですなど)。レイヤー間で物事を移動するためのロジックは、ポットの例では少し奇妙になりますが、それは別の問題です。
ベンジャミンデンジャージョンソン

回答:


32

通常、2Dタイルゲームには複数のレイヤーがあり、それらは異なるレイヤーでレンダリングされます-一部はプレーヤーの背景にレンダリングされます。

屋根のその部分はプレイヤーの上にレンダリングされるため、プレイヤーはその建物の後ろに行くことができます。

以下は、私のゲームのより良い説明のための画像の例です。 ここに画像の説明を入力してください


建物自体を背景の一部にすることはできますが、屋根はスプライトのあるレイヤーの上に描画された別のレイヤーの一部ですか?
Tinadm

2
@Tinadmそれは必ずしも屋根全体である必要はありません。他のすべての後にレンダリングされるプレーヤーの上に描画される屋根のセクションである可能性があります。
Tetrad

7
素晴らしいグラフィックのために+1。視覚学習者を本当に助けます。
アンダースコア

1
古いSNES JRPGでも同じ手法が使用されていたと確信しています。FF2、FF5など。この手法はまだ有効です。
半蔵H

1
これは、ZSNESなどのエミュレーターを使用して、個々のレイヤーを手動でオン/オフに切り替えることができるエミュレーターで非常によく見ることができます。
トビアスキンツラー

5

一方でBlodyavengerの回答、それが最も可能性の高いどのように行われるかカバー、ここでは簡単な視点の切り替え(例えば4つのまたは8つの異なる方向、またはいくつかのカメラの標高レベル)を可能にする別の可能性があります:

たとえば、マップのトップダウンビューを検討してください。

  ABCDEFGHIJKL
1 +-----=----+
2 |  .    .  |
3 |    X   o |
4 | .        ||
5 |    .   . |
6 +--=-------+

たとえば、X高い柱を示しています。オブジェクトごとに、考えられるすべてのパースペクティブの画像を保存します(または同じものを使用します)。描画するときは、現在のパースペクティブの背面にある列または行から始めます。たとえば、南から見た場合の行1です。その後、後ろから2番目に行/列を描画します。この方法では、何かが1つのタイルよりも高い(現在のパースペクティブに引き伸ばされている)場合、背後にあるものを単純にオーバードローします。

(すてきな写真がないのでごめんなさい、私は応用グラフィックスがあまり得意ではありません...)


オブジェクトのテクスチャを引き伸ばすことで、この方法でカメラの仰角を簡単に変更できる方法に注意してください
トビアスキーンツラー

1

depthの変数があり、最初に最大深度の画像が描画され、次に他の最小深度の画像が描画されます。そして、各オブジェクトの深さは、そのy座標の負の値に等しくなければなりません。

Depth=-y

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