タイルベースの2Dプラットフォーマーの地形生成


15

私は現在、Terrariaに似たタイルベースの2Dプラットフォーマーにいくつかの点で取り組んでいますが、地形の生成に苦労しています。基本的なことはいくつか済ませていますが、有用なものとしては出ていません。

Perlin Noiseのようないくつかの異なる手法を試してみて、Midpoint Displacementなどの他のいくつかについて読んでみましたが、どれが最適か、または異なる領域を生成するための異なる手法の組み合わせについてはわかりません。(地形の一般的な形状の場合は中点変位、洞窟の場合はパーリンノイズなど)

Accidental Noise LibraryでC ++になっているにもかかわらず、どのようにレイヤー化できるかについて優れた説明を見つけました。また、C#から使用できるDLLにコンパイルするのに十分なC ++がわかりません。私はこれをC#でコピーしようとしましたが、2つの効果(一般的なベースの勾配、次に詳細なフラクタル)を一緒にマージする方法はわかりません。

現在、私はプラズマフラクタルを使用しており、結果は非常に多様です。たとえば、表面がほとんどない地形を生成したり、表面がまったくない地形を生成したりできます。

ただし、大丈夫なマップの例では、さらに改善することで改善されます。(黒は固体、白は空気):

良い地図

ひどい地図の例。(黒は固体、白は空気):

ひどい地図

基本的に、私が求めているのは、地形を生成するためのより良い方法であるか、生成時間を可能な限り速くして、合理的な量の表面積があることを確認することです。または、偶然のノイズライブラリと同じ結果をC#で実現する方法もあります。

どんな例でも大歓迎です。


こんにちは、どうやってこれを作ったのかと思っていました。このような世界を生成する方法を理解しようとしていますが、あなたが得ている結果が気に入っています。パーリンノイズ2Dのように見えず、パーリンノイズ1Dではないため、どのアルゴリズムを使用していますか。
G3tinmybelly

回答:


8

特定の高度で特定の平均密度を確保するために、Perlinノイズに固執することを試みますが、高さに基づいて重みを追加します。Minecraftの地形生成に関する Notchの投稿の一部を引用するには:

そこで、システムを3D Perlinノイズに基づいた同様のシステムに切り替えました。「地面の高さ」をサンプリングする代わりに、ノイズ値を「密度」として扱いました。0より低い値は空気であり、0以上の値は地面です。一番下のレイヤーがしっかりしていて、一番上がそうでないことを確認するために、サンプリングされた結果に高さ(水位によるオフセット)を追加します。

基本的に、Minecraftの地形の小さなスライスを撮影しています。そうノイズ2Dパーリンを生成するが、ある点以上のものになるように重み付けおそらく空気であることが、ある点以下のものである可能性が高い地球することができます。

これにより、いくつかの洞窟や浮島だけでなく、いくつかの張り出しや興味深い特徴を備えた、良好な地上地形が得られます。(フローティングアイランドが必要ない場合は、手動でテストして削除できます。)この方法ではトンネルのようなものは得られません。したがって、ランダムウォーク


私がPerlin Noiseを最大限に活用していることは完全にはわかりません。あなたが説明したとおりにした後、たくさんの洞窟ができ、たくさんの浮島ができました。実際の地形タイプの定義はありません。勾配を使用して結果を比較すると、この結果が得られます。
網掛け寸法

@Shaded Dimensions-Perlin Noiseパラメーターを調整する必要があります。あなたが望むものがはるかに滑らかで広いパターンであるとき、あなたは非常に非常に可変的なノイズを持っています。freespace.virgin.net/hugo.elias/models/m_perlin.htmをチェックして、いくつかのパラメーターをいじってみてください。持続性を低くし、オクターブを減らしてみてください。(これらの用語は異なる場合があるため、その記事をお読みください。)
dlras2

さて、リンクをありがとう。また、いくつかのパラメーターを変更した後、重量が意図したとおりに機能しないこともわかりました。
網掛け寸法

さて、パラメータをかなり変更しましたが、少なくとも今のところは、かなり受け入れられるものがあります。最初に実際の地形を完成させたいので、このテストのためだけに洞窟の生成も削除しました。これが最終結果です。それらの浮島を削除するには、チェックを追加するだけです。再度、感謝します。
網掛け寸法

@Shaded Dimensions-いいね!多くの場合、良好な地形は、パラメーターを微調整し、ノイズを重ねるだけです。あなたがとても満足しているものを手に入れるにはしばらく時間がかかりますが、あなたは今持っているものをいつでも使用して、最後の微調整を加えるために戻ってくることができます。幸運を!
dlras2
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.