Этот вопрос, возможно, задавали раньше. Я искал «руководства» или темы, охватывающие этот аспект создания пользовательского мира, однако найденные темы / руководства часто очень старые (3-4 года), что означает, что некоторые, если не большая часть руководства, на данный момент недействительны.
Теперь вернемся к нашему вопросу. Я создал метод для замены
getDefaultWorldGenerator(String worldName, String genId)
, этот метод возвращает мой собственный генератор фрагментов. Здесь il oop через все координаты в блоке (т.е. значения x 0-15 и значения z 0-15.), Затем я использую карты шума (карты шума Perlin) для представления дождя, температуры и влажности почвы
temperatureGen = new PerlinOctaveGenerator(world.getSeed(), 16);
temperatureGen.setScale(1.0 / 1200.0);
rainfallGen = new PerlinOctaveGenerator(world.getSeed() + 1, 15);
rainfallGen.setScale(1.0 / 1200.0);
moistureGen = new PerlinOctaveGenerator(world.getSeed() + 2, 14);
moistureGen.setScale(1.0 / 1200.0);
Все с частотой 0,5 и амплитудой 0,5, затем умноженной на 100 (moistureGen.noise(realX, realZ, 0.5, 0.5) * 100.0)
)
* Примечание. Это скопировано из руководства, поэтому, если у вас есть предложения по разным шкалам / количеству октав, будь моим гостем.
Затем я сравниваю значение этих шумовых карт со списком Enum для всех существующих биомов Minecraft, чтобы получить биом, который лучше всего подходит для использования кубического расстояния, поскольку есть 3 измерения.
Когда я нашел, какой биом это соответствует значениям влажности и температуры. Я активирую экземпляр biomeNoiseGenerator, который создает уникальный шум Перлина для этого биома. Однако это может привести к резким краям различных биомов, вызывающих неестественные обрывы.
Вопрос: Как сгладить этот обрыв / Есть ли лучший способ создать карту на основе биома?