Animal Crossingのような「落下」3D地形を作成するにはどうすればよいですか?


15

Animal Crossingには、世界地図をスクロールするユニークな方法があります。キャラクターが下に移動すると、世界は段ボールのチューブにくっついているように、上部を回転します。

アニマルクロッシングのシリンダーの世界

このビデオは、それがどのように動くかを示しています。

この効果を作成するにはどうすればよいですか?


1
私には効果のように見えませんが、カメラがちょうど追従している非常にシンプルな3Dの世界のように見えます。
ジェームズ

ゲームをハッキングすると、衝突の不具合が発生し、世界が終わる海に歩いて行くことができます。あなたは、世界の端を越えた空虚に「湾曲した」レンダリングされた世界のビットを見ることができます。ビデオはこちら
アンコ

回答:


6

私は、Deathspankをプレイした後に少し実験をしていましたが、これには同様の効果があります。うまく機能するように調整できるかどうかを確認するほど深く掘り下げたことはありませんが、1つの可能性は、深度に基づいて頂点シェーダーのアイテムを変更することです。cos(depth)をY軸の変更にマッピングする関数が機能します。世界を遠くに落とすだけでなく、ある深さよりも近くなると、世界が特に丸みを帯びるように調整できます。X軸の値についても同じようにして、より球形に見えるようにできます。これがそのようなゲームが実際にそれを行う方法であるかどうかはわかりません。私の実験では満足のいく結果が得られませんでしたが、比率であまり遊んでいなかったので、フォールオフ率を変更して改善するのと同じくらい簡単だったかもしれません。


これは私がやる方法だからです。ただし、「深さ」の意味を明確にしたい場合があります。カメラからの距離、またはキャラクターからの距離です。両方を試してみるといいと思います。
DaleyPaley

申し訳ありませんが、6年遅れのようにパーティーに遅れていますが、ACの場合、「深度」はカメラからの距離に基づいて計算されます...しかし、カメラの位置はキャラクターの位置に基づいているため、すべてが接続されています。
lvictorino

5

「フラットな世界」を取得し、円筒座標にマッピングしているようです。シリンダーで世界を本質的に包みます。フラットな世界で似たようなことをしましたが、球に包みました。

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

球に対して行った方法は、円柱に対して行った方法と似ています。ワールドに適した半径(円筒座標のρまたは「rho」)を選択します。各頂点について、ワールドのXZ座標を取得し(Yが高さであると仮定)、XZと半径とYを使用して円柱座標に変換します。Yを追加しない場合、平らな円柱になります。次に、デカルト座標に変換してゲームに描画します。


3
言及する別のこととして、動物の交差における世界のY次元は、円筒の円周よりもはるかに大きいです(水平線が非常に近いため、ちょうど目で見て)。したがって、世界地図の一部は、キャラクターに最も近い領域のみにトリミングされ、そのトリミングされた領域はシリンダー全体に巻き付けられます。これは、2Dタイルベースのマップを表示部分のみにトリミングすることに似ています。
ChrisC

素晴らしい点。必要に応じて世界をロード/アンロードすることで、メモリフットプリントを小さく保つためにも使用できると思います。
マイケルハウス

5

平面の世界から円筒形の世界に行きたい。

x軸の周りの回転(同次座標)は次のようになります。

     | 1   0   0   0 |
Rx = | 0  ca  -sa  0 |
     | 0  sa   ca  0 |
     | 0   0    0  1 |

どこ:

ca = cos(angle) and sa = sin(angle)

角度を計算するには、画像を見てください。pi / 2はキャンセルされ、次のようになります。

angle = offset_from_character.z - radius

また、画像を見てください。投影された点の角度はキャラクターからの水平距離に依存し、球からの距離は垂直に依存します。

new_position = character_position - vec3(0,radius,0) + Rx * vec3(0,radius+_old_position.y,0)

地平線上にあるものを間引くことを忘れないでください。そうしないと、全世界が包囲されます。

免責事項:私はこれをテストしておらず、数学の専門家でもありませんが、答えはこのようなものです。私が間違っている場合、誰かが私を修正してください。

球形の世界

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