Saltearse al contenido

Máscaras de mundo

Descripción general

Los archivos de máscaras de mundo definen la estructura a gran escala del mundo procedural. El archivo principal Mask.json vincula la forma del continente, temperatura, intensidad y sub-máscaras de clima, y declara zonas únicas (puntos de aparición, templos). Los archivos de sub-máscaras usan generadores de ruido y caídas basadas en distancia para producir campos escalares que el generador del mundo muestrea para decidir qué bioma ocupa una coordenada dada. Un archivo complementario Zones.json mapea colores de máscara a listas de zonas nombradas.

Ubicación de archivos

Assets/Server/World/
Default/
Mask.json
World.json
Zones.json
Mask/
Blend_Inner.json
Blend_Outer.json
Continent.json
Intensity.json
Temperature.json
Climate/
Cold.json
Hot.json
Temperate.json
Island/
Tier1.json
Tier2.json
Tier3.json
Continent/
Blend_Inner.json
Blend_Outer.json
Continent_Inner.json
Continent_Outer.json
Temperature/
Temperature_Inner.json
Temperature_Outer.json
Flat/
Void/
Instance_Creative_Hub/
Instance_Dungeon_Goblin/
Instance_Forgotten_Temple/

Esquema

Mask.json (nivel superior)

FieldTypeRequiredDefaultDescription
RandomizerRandomizerNoAleatorizador de ruido global aplicado a todo el muestreo de máscaras.
NoiseNoiseConfigReferencias a las sub-máscaras de continente, temperatura e intensidad, más umbrales de tierra/océano.
ClimateClimateConfigDefiniciones de zonas climáticas y parámetros de mezcla.
UniqueZonesUniqueZone[]No[]Zonas nombradas colocadas en ubicaciones específicas del mundo (ej. aparición, templos).

Randomizer

FieldTypeRequiredDefaultDescription
GeneratorsGenerator[]Arreglo de generadores de ruido que contribuyen a la aleatorización.

Generator

FieldTypeRequiredDefaultDescription
SeedstringNoCadena de semilla determinista.
NoiseTypestringAlgoritmo de ruido: "SIMPLEX", "OLD_SIMPLEX", "POINT".
ScalenumberEscala espacial del ruido.
AmplitudenumberNo1Multiplicador de amplitud de salida.
OctavesnumberNo1Número de octavas fractales.
PersistencenumberNo0.5Decaimiento de amplitud por octava.
LacunaritynumberNo2.0Multiplicador de frecuencia por octava.

NoiseConfig

FieldTypeRequiredDefaultDescription
ThresholdsThresholdsUmbrales escalares que separan tierra, isla, playa y océano poco profundo.
ContinentFileRefReferencia a la sub-máscara de forma de continente.
TemperatureFileRefReferencia a la sub-máscara de gradiente de temperatura.
IntensityFileRefReferencia a la sub-máscara de intensidad.

Thresholds

FieldTypeRequiredDefaultDescription
LandnumberValor de ruido por encima del cual el terreno se considera tierra.
IslandnumberValor de ruido por encima del cual el terreno se considera una isla.
BeachSizenumberAncho de la banda de transición de playa.
ShallowOceanSizenumberAncho de la banda de océano poco profundo alrededor de la tierra.

ClimateConfig

FieldTypeRequiredDefaultDescription
FadeModestringNo"CHILDREN"Cómo se desvanecen los límites climáticos: "CHILDREN" usa configuraciones por hijo.
FadeRadiusnumberNoRadio de la zona de transición climática.
FadeDistancenumberNoDistancia sobre la cual ocurre el desvanecimiento.
ClimatesFileRef[]Referencias a archivos individuales de definición climática.

Definición de clima (ej. Cold.json)

FieldTypeRequiredDefaultDescription
NamestringNombre visible para este clima (ej. "Zone 3").
ColorstringColor hexadecimal usado para representar este clima en mapas de depuración.
PointsClimatePoint[]Coordenadas de temperatura/intensidad que definen dónde aparece este clima.
ChildrenClimateTier[]No[]Sub-niveles dentro de este clima con colores de bioma distintos y configuraciones de isla.

ClimateTier

FieldTypeRequiredDefaultDescription
NamestringNombre visible del nivel (ej. "Tier 1").
ColorstringColor hexadecimal para el bioma terrestre de este nivel.
ShorestringNoColor hexadecimal para áreas costeras en este nivel.
OceanstringNoColor hexadecimal para océano profundo en este nivel.
ShallowOceanstringNoColor hexadecimal para océano poco profundo en este nivel.
IslandFileRefNoReferencia a un archivo de máscara de isla para este nivel.
PointsClimatePoint[]Coordenadas climáticas con Modifier opcional.

ClimatePoint

FieldTypeRequiredDefaultDescription
TemperaturenumberValor del eje de temperatura (0–1).
IntensitynumberValor del eje de intensidad (0–1).
ModifiernumberNo1Modificador de mezcla para transiciones entre niveles.

UniqueZone

FieldTypeRequiredDefaultDescription
NamestringIdentificador de zona referenciado por el bioma y el mapeo de colores de Zones.json.
ParentstringNoNombre de una zona única padre para colocación relativa.
ColorstringColor hexadecimal para renderizado en mapa de depuración.
RadiusnumberRadio de la zona en chunks.
OriginXnumberOrigen X para cálculos de distancia.
OriginYnumberOrigen Y para cálculos de distancia.
DistancenumberDistancia máxima desde el origen para buscar colocación.
MinDistancenumberNo0Distancia mínima desde el origen (crea un área de búsqueda anular).
RulePlacementRuleRestricciones sobre valores de continente, temperatura, intensidad y desvanecimiento.

PlacementRule

Cada clave (Continent, Temperature, Intensity, Fade) contiene:

FieldTypeRequiredDefaultDescription
TargetnumberValor ideal de máscara para colocación.
RadiusnumberDesviación aceptable del objetivo.
WeightnumberImportancia de esta restricción relativa a las demás.

Tipos de sub-máscara

Los archivos de sub-máscara usan un campo Type para definir su comportamiento:

TypeDescriptionKey Fields
DISTORTEDMáscara basada en puntos con distorsión de ruidoNoise (con NoiseType, X, Y, InnerRadius, OuterRadius), Randomizer
BLENDMezcla dos máscaras hijas usando una máscara alfaAlpha (FileRef), Noise (FileRef[]), Thresholds, Normalize

Zones.json

FieldTypeRequiredDefaultDescription
GridGeneratorGridGeneratorControla la cuadrícula estilo Voronoi usada para asignar zonas.
MaskMappingobjectMapa de cadenas de color hexadecimal a arreglos de cadenas de nombres de zona.

GridGenerator

FieldTypeRequiredDefaultDescription
ScalenumberTamaño de celda de la cuadrícula.
JitternumberNo0Desplazamiento aleatorio aplicado a los puntos de la cuadrícula (0–1).
RandomizerRandomizerNoGeneradores de ruido para la variación de la cuadrícula.

World.json

FieldTypeRequiredDefaultDescription
Masksstring[]Arreglo de referencias a archivos de máscara (ej. ["Mask.json"]).
PrefabStorestringNo"ASSETS"Fuente de datos de prefabs: "ASSETS" o "DISK".
HeightnumberAltura del mundo en regiones.
WidthnumberAncho del mundo en regiones.
OffsetXnumberNo0Desplazamiento horizontal del origen.
OffsetYnumberNo0Desplazamiento vertical del origen.
RandomizerRandomizerNoAleatorizador adicional para ruido a nivel del mundo.

Ejemplos

Máscara de nivel superior (Assets/Server/World/Default/Mask.json, condensado):

{
"Randomizer": {
"Generators": [
{ "Seed": "RANDOMIZER", "NoiseType": "SIMPLEX", "Scale": 0.01, "Amplitude": 16.0 }
]
},
"Noise": {
"Thresholds": {
"Land": 0.5,
"Island": 0.75,
"BeachSize": 0.02,
"ShallowOceanSize": 0.08
},
"Continent": { "File": "Mask.Continent" },
"Temperature": { "File": "Mask.Temperature" },
"Intensity": { "File": "Mask.Intensity" }
},
"Climate": {
"FadeMode": "CHILDREN",
"FadeRadius": 50.0,
"FadeDistance": 100.0,
"Climates": [
{ "File": "Mask.Climate.Temperate" },
{ "File": "Mask.Climate.Cold" },
{ "File": "Mask.Climate.Hot" }
]
},
"UniqueZones": [
{
"Name": "Zone1_Spawn",
"Color": "#ff0000",
"Radius": 35,
"OriginX": 0,
"OriginY": 0,
"Distance": 3000,
"Rule": {
"Continent": { "Target": 0.0, "Radius": 0.3, "Weight": 1.0 },
"Temperature": { "Target": 0.5, "Radius": 0.2, "Weight": 1.0 },
"Intensity": { "Target": 0.1, "Radius": 0.3, "Weight": 1.0 },
"Fade": { "Target": 1.0, "Radius": 0.5, "Weight": 0.5 }
}
}
]
}

Sub-máscara de mezcla de continente (Assets/Server/World/Default/Mask/Blend_Inner.json):

{
"Type": "DISTORTED",
"Noise": {
"NoiseType": "POINT",
"X": 0.0,
"Y": 0.0,
"InnerRadius": 1700.0,
"OuterRadius": 2500.0
},
"Randomizer": {
"Generators": [
{
"Seed": "CONTINENT-INNER-WARP-1",
"NoiseType": "SIMPLEX",
"Scale": 0.00085,
"Octaves": 1,
"Persistence": 0.5,
"Lacunarity": 2.5,
"Amplitude": 450
}
]
}
}

Páginas relacionadas

  • Generación de mundos — el pipeline HytaleGenerator que consume estas máscaras
  • Ambientes — archivos de ambiente asignados a zonas definidas por máscaras
  • Instancias — configuraciones de instancia que seleccionan una definición de mundo