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

From Vintage Story Wiki
Revision as of 05:54, 21 September 2022 by Mirotworez (talk | contribs) (Created page with "Вы можете построить такой график, используя новый [http://tyron.at/vs/landformcreator.html инструмент генерации м...")

Эта страница проверялась в последний раз для версии 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 блоков.

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

Testing Landforms

You can trial&error landforms very quickly without the need to restart the game every time you made changes to the landforms.json

  1. /wgen autogen 0 - disables automatic generation of chunks
  2. /wgen del 10 - delete all chunks with a radius 10 chunks (Warning: Cannot be undone!)
  3. /wgen regen 5 - Reloads the landforms.json then deletes and regenerates all chunks with a radius of 5 chunks
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