マインクラフト非公式フォーラム

本フォーラムでは多彩なサービスを提供しています。

利用方法は「Wiki」より確認できます。

ぜひご登録をお願いいたします!

PocketMine-MP WorldのGenerator関連の用語や仕組みについて

きっかけ・目的​

今回はGeneratorについて初めて触ってみて、いろいろと詰まったりわからなかったりした点が多かったので備忘録のような形で解説・記録していきます。
追記形式です。
unknown.png
unknown.png

用語​

数学・アルゴリズム系統​

  • Random シードから算出される乱数を作るためのクラス。同一のシードから毎回同じ乱数が得られるためにこれが利用される。
  • Noise ノイズ生成に用いるクラス。後述のSimplexの親クラスであり、ノイズ生成用のメソッドを保有する。
  • Simplex パーリンノイズ用のクラス。Randomをもとにパーリンノイズ(解説:英語)を生成する。リンク先にわかりやすい説明があり、実際にoctavesとpersistence, expansionを変えるとどういう効果があるかがわかる。(余裕があれば後で画像を載せたい)
  • Gaussian ガウスぼかしの処理に用いられる。

PocketMine-MPやMinecraft内のオリジナル要素​

  • Generator 地形生成において中心的な役割を持つ。シードの変換、プリセットの保持、シードから生成されるRandomの保持はここで行われる。また後述のBiomePopulatorなどの登録をコンストラクタで行う。
  • Biome おなじみのバイオーム。そのバイオームで許容される高低差や気温・降水を保持する。さらにGroundCoverPopulatorを保持する。高低差はGaussianを利用することで制限される。
  • Populator Objectなどを生やすためのインターフェース。Populator::populate(ChunkManager $world, int $chunkX, int $chunkZ, Random $random)の形式で渡された$randomから乱数を取り出して、木などを生成する。PocketMine-MP公式のTreeがわかりやすい。
  • Object 特に様式があるわけではないがPopulatorで生成されるもの。生成の補助に用いる。
  • GroundCover 地表を覆うブロックを指定するもの、例えば草原ではデフォルトで[草,土,土,土,土]と指定されている。均一に広げられる。同一名称のPopulatorがある。
 
Top