Modding:Конфигурация WorldGen

From Vintage Story Wiki
This page is a translated version of the page Modding:WorldGen Configuration and the translation is 100% complete.

Эта страница проверялась в последний раз для версии Vintage Story 1.15.

Other languages:

== Рельеф ==

Формы рельефа определяют форму местности. Давайте посмотрим на существующую форму рельефа.

{
	"code": "landforms",
	"variants": 
	[
		{
			"code":  "humongous mountain",
			"comment": "humongous mountains with caverns in them",
			"hexcolor": "#5BC184",
			"weight": 2,
			"useClimateMap": false,
			"terrainOctaves":          [0, 0, 0, 0, 1,   1, 1, 1, 0.6, 0.2],
			"terrainOctaveThresholds": [0, 0, 0, 0, 0.5, 0, 0,   0,   0, 0],
			"terrainYKeyPositions":    [0, 0.33, 0.37, 0.42, 0.43, 0.5, 0.6, 0.7, 0.9, 0.97, 1],
			"terrainYKeyThresholds":   [1,    1, 0.87, 0.84, 0.7, 0.94, 1, 1, 0.1, 0.05, 0]
		},
	]
}


В работе есть 2 системы, которые позволяют вам контролировать форму ландшафта — октавы и Y-пороги.

Октавы

Если вы знаете шум перлина, вы знаете, что это такое, но краткое объяснение низких октав даст вам очень гладкую местность, тогда как высокие октавы дадут вам пересеченную / хаотичную местность. Вы можете свободно смешивать матч между ними. Примеры:

  • terrainOctaves: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0] даст вам очень постепенно меняющийся ландшафт
  • terrainOctaves: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1] дало бы вам очень пересеченную и хаотичную местность

Пороги октавы

Они действуют как вычитатель октав. Это позволяет вам, например, создать плоскую местность с несколькими редкими неровностями, установив что-то вроде этого:

terrainOctaves: [1, 1, 1, 0, 0, 0, 1, 0, 0, 0],
terrainOctaveThresholds: [0, 0, 0, 0, 0, 0, 0.7, 0, 0, 0],

Это приводит к тому, что 7-я октава активна только 30% времени, так как большая ее часть вычитается.

Примечание. Количество октав всегда фиксировано и равно 10. Вы не можете настроить меньше или больше 10.

Y-пороги

Представьте, что у вас есть вид на гору сбоку, и вы можете сделать ее шире и тоньше на любой заданной высоте. Примерно так работает система y-порога. TerrainYKeyPositions — это относительные (0 = дно, 1 = вершина мира) координаты, а TerrainYKeyThresholds определяют, сколько процентов ландшафта должно быть сплошными блоками (0 = всегда твердый, 1 = всегда воздух), или, другими словами, его плотность. Мы также можем построить график этого:

Densitygraph.png

В этом примере на максимальной высоте мира плотность равна 0, поэтому всегда будут воздушные блоки. Посередине у нас есть прыжок, где изменяется положение по оси Y, но не плотность, так что это создаст обрывы в горе. На нижнем конце происходит обратное. Y-позиция меняется очень мало, но ее плотность сильно увеличивается. Если это положение окажется на уровне моря, мы получим плоские пляжи. Положение Y на уровне моря по умолчанию равно 0,43. И ниже определенного y-положения плотность всегда равна 1. Если бы мы установили это значение на более низкое значение, мы получили бы очень глубокие озера.

Количество настраиваемых Y-порогов произвольно, вы можете использовать любое количество, просто убедитесь, что оба списка имеют одинаковое количество элементов. Однако не имеет смысла настраивать более 256 порогов для высоты мира в 256 блоков.

Вы можете построить такой график, используя новый инструмент генерации мира

Тестирование форм рельефа

Вы можете пробовать и ошибаться очень быстро, без необходимости перезапускать игру каждый раз, когда вы вносите изменения в landforms.json. <ол>

  • /wgen autogen 0 — отключает автоматическую генерацию фрагментов
  • /wgen del 10 - удалить все фрагменты радиусом 10 фрагментов (Внимание: нельзя отменить!)
  • /wgen regen 5 – перезагружает файл landforms.json, затем удаляет и создает заново все фрагменты с радиусом 5 фрагментов.
  • Icon Sign.png

    Wondering where some links have gone?
    The modding navbox is going through some changes! Check out Navigation Box Updates for more info and help finding specific pages.

    Modding
    Modding Introduction Getting Started Пакет тем
    Content Modding Content Mods Developing a Content Mod Basic Tutorials Intermediate Tutorials Advanced Tutorials Content Mod Concepts
    Code Modding Code Mods Setting up your Development Environment
    Property Overview ItemEntityBlockBlock BehaviorsBlock ClassesBlock EntitiesBlock Entity BehaviorsWorld properties
    Workflows & Infrastructure Modding Efficiency TipsMod-engine compatibilityMod ExtensibilityVS Engine
    Additional Resources Community Resources Modding API Updates Programming Languages List of server commandsList of client commandsClient startup parametersServer startup parameters
    Example ModsAPI DocsGitHub Repository