1. Wiki
  2. /Generación de mundos
  3. /Características y reglas de características

Características y reglas de características

Añade minerales, plantas, árboles y estructuras a la generación de mundos de Minecraft Bedrock con características (features) y reglas de características, con un ejemplo de mena de rubí y todos los tipos de característica.

Todo lo que decora el terreno es una característica (feature): vetas de mineral, árboles, flores, hierba, rocas, manantiales, coral. Si no es el terreno básico ni una criatura, seguramente es una característica.

Para que una característica aparezca en el mundo necesitas dos archivos:

  • Una característica dice qué colocar: una veta de mineral, un árbol, un solo bloque.
  • Una regla de característica (feature rule) dice dónde y con qué frecuencia: en qué biomas, cuántas veces por chunk, a qué altura.

En esta guía vas a hacer que aparezca mena de rubí bajo tierra en todos los biomas del mundo superior.

Los archivos

Paquete de comportamiento
BP/
  blocks/
    ruby_ore.json
  features/
    ruby_ore_feature.json
  feature_rules/
    ruby_ore_rule.json

Paso 1: el bloque de mena

Primero necesitas un bloque que colocar. Crea un bloque personalizado normal llamado wiki:ruby_ore con una textura y una tabla de botín. Si todavía no has hecho ningún bloque, sigue Tu primer bloque personalizado.

Paso 2: la característica

BP/features/ruby_ore_feature.json
{
  "format_version": "1.13.0",
  "minecraft:ore_feature": {
    "description": {
      "identifier": "wiki:ruby_ore_feature"
    },
    "count": 6,
    "replace_rules": [
      {
        "places_block": "wiki:ruby_ore",
        "may_replace": [
          "minecraft:stone",
          "minecraft:granite",
          "minecraft:diorite",
          "minecraft:andesite"
        ]
      }
    ]
  }
}
  • La clave raíz, aquí minecraft:ore_feature, es el tipo de característica. Cada archivo tiene exactamente uno. La tabla al final de esta página los enumera todos.
  • count es cuántos bloques intenta colocar una veta. Los diamantes usan vetas pequeñas y el carbón, grandes.
  • replace_rules dice qué bloque va dónde. La mena solo sustituye los bloques que aparecen en may_replace, así que nunca flota en las cuevas ni se come la tierra.

Una versión de pizarra profunda

Añade una segunda entrada a replace_rules con "places_block": "wiki:deepslate_ruby_ore" y "may_replace": ["minecraft:deepslate"]. Así una misma veta usa el aspecto correcto en las dos capas, igual que las menas del juego base.

Reglas de nombres

  • Una característica por archivo.
  • El nombre del archivo debe coincidir con la parte del nombre del identificador. wiki:ruby_ore_feature va en ruby_ore_feature.json. El espacio de nombres no cuenta para la coincidencia.
  • Si dos paquetes usan exactamente el mismo identificador, gana el paquete que está más arriba en la lista. Así es como puedes sustituir una característica del juego base.

Paso 3: la regla de característica

Una característica no hace nada hasta que una regla de característica la vincula a unos biomas:

BP/feature_rules/ruby_ore_rule.json
{
  "format_version": "1.13.0",
  "minecraft:feature_rules": {
    "description": {
      "identifier": "wiki:ruby_ore_rule",
      "places_feature": "wiki:ruby_ore_feature"
    },
    "conditions": {
      "placement_pass": "underground_pass",
      "minecraft:biome_filter": [
        {
          "test": "has_biome_tag",
          "operator": "==",
          "value": "overworld"
        }
      ]
    },
    "distribution": {
      "iterations": 4,
      "coordinate_eval_order": "zyx",
      "x": {
        "distribution": "uniform",
        "extent": [0, 16]
      },
      "y": {
        "distribution": "triangle",
        "extent": [-48, 16]
      },
      "z": {
        "distribution": "uniform",
        "extent": [0, 16]
      }
    }
  }
}

La regla tiene tres partes.

description

  • identifier da nombre a la regla. Igual que con las características, la parte del nombre debe coincidir con el nombre del archivo.
  • places_feature es la característica que coloca esta regla. Una regla controla una característica.

conditions

minecraft:biome_filter elige los biomas. Es una lista de pruebas de filtro, y la que usarás casi siempre es has_biome_tag. Cada bioma comprueba el filtro: los que lo pasan reciben la característica.

Puedes combinar pruebas con all_of y any_of. Este elige biomas cálidos del mundo superior que no sean océanos:

Dentro de conditions
"minecraft:biome_filter": [
  { "test": "has_biome_tag", "operator": "==", "value": "overworld" },
  {
    "any_of": [
      { "test": "has_biome_tag", "operator": "==", "value": "desert" },
      { "test": "has_biome_tag", "operator": "==", "value": "mesa" }
    ]
  },
  { "test": "has_biome_tag", "operator": "!=", "value": "ocean" }
]

Para poner mena de rubí solo en la Arboleda de Rubí, comprueba su propia etiqueta: "value": "ruby_grove".

placement_pass dice cuándo se coloca la característica respecto a las demás. Las pasadas se ejecutan en este orden:

PasadaIdeal para
first_passCosas sobre las que debe construirse todo lo demás.
before_underground_pass, underground_pass, after_underground_passMenas, bolsas de tierra o grava, decoraciones de cuevas.
before_surface_pass, surface_pass, after_surface_passÁrboles, flores, hierba, rocas.
before_sky_pass, sky_pass, after_sky_passCosas en el aire.
final_passÚltimos retoques, después de todo lo demás.
pregeneration_passSolo para excavadores de cuevas.

Las características de una misma pasada no tienen un orden fijo entre ellas.

distribution

Esto decide cuántas copias intentan generarse en cada chunk y dónde.

CampoQué hace
iterationsCuántas veces se intenta por chunk. Aquí, 4 vetas.
x, y, zDónde cae cada intento. Un número fijo, un rango o una expresión de Molang.
scatter_chanceProbabilidad opcional para todo el chunk, como { "numerator": 1, "denominator": 4 } para 1 de cada 4 chunks. Si falla, no se hace ningún intento.
coordinate_eval_orderEl orden en que se calculan las coordenadas, como "xzy" (el valor por defecto) o "zyx". Importa cuando una coordenada usa otra.

En una regla de característica, x y z se cuentan desde la esquina del chunk, así que [0, 16] cubre el chunk entero. y es la altura del mundo.

Cada rango tiene un tipo de distribution que da forma a dónde caen los valores:

TipoResultado
uniformTodos los valores igual de probables.
triangleLa mayoría de los valores cerca del centro del rango, menos en los extremos. Genial para menas.
gaussianAgrupados alrededor del centro, como una campana.
inverse_gaussianAgrupados en los dos extremos, pocos en el centro.
fixed_gridPasos espaciados por igual, definidos con step_size y grid_offset.
jittered_gridUna cuadrícula en la que cada punto se desplaza un poco al azar.

Para cosas que van en el suelo, como plantas, define y con Molang para que caigan en la superficie:

Dentro de distribution
"y": "query.heightmap(variable.worldx, variable.worldz)"

Mena solo en chunks nuevos

Las características se generan una sola vez, cuando se crea un chunk. Explora lejos o crea un mundo nuevo para ver tu mena. El terreno ya explorado nunca la recibe.

Pruebas

  1. Activa el paquete en un mundo nuevo.
  2. Pasa al modo espectador con /gamemode spectator y vuela bajo tierra cerca de Y 0.
  3. Busca la textura de rubí en la piedra. ¿Demasiado rara? Sube iterations o count.

Si no aparece nada, abre el registro de contenido. Las causas habituales son un nombre de archivo que no coincide con el identificador, un nombre incorrecto en places_feature o una errata en el nombre del bloque en places_block.

Todos los tipos de característica

Cada archivo de característica usa exactamente uno de estos como clave raíz. Algunos colocan bloques; otros solo eligen entre otras características, las mueven o las repiten. La mayoría de las decoraciones del juego base encadenan varias: por ejemplo, una característica de dispersión que ejecuta una de búsqueda que a su vez ejecuta un árbol.

TipoQué hace
minecraft:aggregate_featureColoca una lista de características en el mismo punto, sin un orden fijo.
minecraft:beards_and_shaversAñade o recorta terreno para dejar un sitio llano y despejado para otra característica, normalmente una estructura.
minecraft:cave_carver_featureExcava cuevas del mundo superior a través de este chunk y sus vecinos. Necesita pregeneration_pass.
minecraft:conditional_listRevisa una lista de características en orden y coloca la primera cuya condición se cumpla.
minecraft:fossil_featureConstruye un esqueleto enterrado con bloques de hueso y un bloque de mena que tú eliges.
minecraft:geode_featureCrea una geoda redonda con capas de corteza y un relleno interior que puedes cambiar.
minecraft:growing_plant_featureHace crecer una columna de planta desde el suelo hacia arriba o desde el techo hacia abajo, con cuerpo y punta, como las enredaderas de las cuevas.
minecraft:height_difference_filter_featureSolo deja colocar otra característica si el terreno alrededor del punto supera unas comprobaciones de altura.
minecraft:horizontal_tree_decoration_featurePega un bloque en el lateral de algo, mirando en una dirección aleatoria, como los hongos repisa en un tronco.
minecraft:multi_block_featureColoca un bloque formado por varias partes, girado opcionalmente en una dirección aleatoria.
minecraft:multiface_featureColoca bloques finos que se pegan a suelos, paredes o techos, como el liquen luminoso.
minecraft:multipart_block_column_featureApila una columna de hasta cuatro tipos de bloque (base, medio, parte que se estrecha y punta), en cualquier dirección.
minecraft:nether_cave_carver_featureExcava cuevas en el Nether. Necesita pregeneration_pass.
minecraft:ore_featureColoca una veta de bloques que solo sustituye los bloques que permitas. Se usa para todas las menas.
minecraft:partially_exposed_blob_featureColoca un pegote de un bloque casi enterrado en el suelo, con solo una cara a la vista.
minecraft:rect_layoutLlena la superficie de un chunk con una cuadrícula de zonas, cada una con una característica, dejando algo de espacio vacío.
minecraft:scan_surfaceRecorre todas las columnas de la superficie de un chunk e intenta colocar una característica en cada una.
minecraft:scatter_featureColoca otra característica muchas veces alrededor de un punto, con los mismos rangos x, y, z que una regla de característica.
minecraft:sculk_patch_featureExtiende una mancha de sculk. El juego todavía no la documenta.
minecraft:search_featureBusca en una caja de espacio, capa por capa, un sitio donde quepa otra característica.
minecraft:sequence_featureColoca características una detrás de otra, cada una empezando donde terminó la anterior.
minecraft:single_block_featureColoca un bloque, o uno elegido al azar de una lista con pesos, con reglas sobre dónde puede apoyarse.
minecraft:snap_to_surface_featureMueve el punto al suelo, techo o pared más cercano antes de colocar otra característica.
minecraft:structure_template_featureColoca un .mcstructure guardado de la carpeta structures de un paquete de comportamiento.
minecraft:surface_relative_threshold_featureSolo coloca otra característica si el punto está lo bastante por debajo de la superficie.
minecraft:tree_featureConstruye un árbol con tronco, copa y raíces opcionales, con muchas opciones de forma.
minecraft:underwater_cave_carver_featureExcava cuevas por debajo del nivel del mar. Necesita pregeneration_pass.
minecraft:vegetation_patch_featureCubre una zona del suelo con un bloque y luego hace crecer plantas encima, como las manchas de musgo.
minecraft:weighted_random_featureElige una característica de una lista al azar. Los pesos más altos salen más a menudo.

Siguientes pasos

We use cookies to improve your experience and analyse site traffic. Learn more