Documentación Add-ons Beta Bedrock

De Minecraft Wiki
Saltar a: navegación, buscar

Geometría[editar | editar código]

Parámetros
Tipo Nombre Valor Por Defecto Descripción
Lista elementos Lista de elementos que conforman la geometría de este bloque.
boxes 
Descripción
Lista de cubos que conforman la geometría de este elemento.
faces 
Descripción
Lista de las 6 caras de la caja. Si se especifica, DEBE haber 6 caras (frente, atrás, lado izquierdo, lado derecho, arriba, abajo)
material 
Descripción
El material de esta cara si es diferente del de la caja.


rotation 
Descripción
Rotación UV de esta cara. Sólo los valores aceptables son 0, 90 y 270 grados. Esto permite reutilizar una textura y simplemente girarla para diferentes caras.


uv 
Descripción
Coordenadas de textura de esta cara, dadas como min x, min y, max x, max y con valores entre 0.0 y 1.0



material 
Descripción
El material de esta caja si es diferente del elemento.


origin 
Descripción
La posición del centro de la caja con respecto a la geometría.


size 
Descripción
Escala del cuadro en las coordenadas x, y y z. Un bloque típico es de escala 1, 1, 1.



material 
Descripción
El material de este elemento si es diferente del bloque.


name 
Descripción
Nombre del elemento


parent 
Descripción
Nombre del elemento padre de este elemento. Las posiciones del pivote y la caja se hacen en relación con el pivote del elemento padre


pivot 
Descripción
Posición en el espacio modelo del punto de pivote del elemento. Esto se utiliza como la posición "central" del elemento, así como el punto alrededor del cual rotar


rotation 
Descripción
La rotación de este elemento sobre su pivote.


String format_version 0.0.0.0 Versión de la geometría de bloque utilizada. Esto se usa para determinar si se necesita compatibilidad con versiones anteriores
Lista materiales #0 Lista de materiales utilizados por este modelo.
String padre Modelo padre de este modelo.

Versión: 1.8.0-beta.1[editar | editar código]

Esta es la documentación para una versión beta de Minecraft. Los nuevos nombres y parámetros de componentes, y los cambios de parámetros para los componentes antiguos en esta versión no son definitivos y pueden cambiar antes de la versión final. Asegúrese de consultar la documentación una vez que el lanzamiento esté fuera de la versión beta si su complemento no funciona correctamente.

Esta sección contiene la documentación más reciente para las nuevas funciones de complementos de la versión 1.8.0-beta.1 de Minecraft:

Documentación Entidad Del Cliente[editar | editar código]

Este documento contiene un tutorial sobre cómo crear nuevas definiciones de entidades de clientes en Minecraft.

Visión De Conjunto[editar | editar código]

El esquema debe seguir los paradigmas actuales de Minecraft; JSON. - Los campos deben estar en minúsculas y usar guiones bajos (sin espacios) - Los valores de los campos deben ser directos siempre que sea posible (los flotantes deben ser solo flotantes, no una cadena) - Todos los archivos JSON en la "entity" se requiere un directorio para que la entidad se represente en el mundo: para la Vista previa técnica de octubre, deberá habilitar el "Use Experimental Gameplay" Opción en el mundo para usar esta característica en los paquetes de recursos.

Empezando[editar | editar código]

Primero creé una nueva carpeta y nombrelá "entity" dentro de la raíz del paquete de recursos. En la carpeta de la entidad, cree un archivo JSON y asígnele un nombre. El archivo JSON necesita una versión de formato e información minecraft:client_entity.

Importante Para la Vista previa técnica de octubre, la versión del formato debe ser 1.8.0.-beta.1. Esto permite que se utilicen las definiciones JSON de la entidad del cliente cuando se usa el conmutador de juego experimental.

Ejemplo de client entity definitions JSON para el cerdo

{   
  "format_version": "1.8.0-beta.1",   
  "minecraft:client_entity": {
    "description": {
      "identifier": "minecraft:pig",
      "materials": { 
        "default": "pig"
      },
      "textures": {
        "default": "textures/entity/pig/pig",
        "saddled": "textures/entity/pig/pig_saddle"
      },
      "geometry": {
        "default": "geometry.pig"
      },
      "animations": {
        "setup": "animation.pig.setup",
        "walk": "animation.quadruped.walk",
        "look_at_target": "animation.common.look_at_target",
        "baby_transform": "animation.pig.baby_transform"
      },
      "animation_controllers": [
        {
          "setup": "controller.animation.pig.setup" 
        },
        {
          "move": "controller.animation.pig.move"
        },
        {
          "baby": "controller.animation.pig.baby"
        }
      ],
      "render_controllers": [ "controller.render.pig" ],
      "locators": {
        "lead": { 
          "head": [ 0.0, 14.0, -6.0 ]
        }
      },
      "spawn_egg": {
        "texture": "spawn_egg",
        "texture_index": 2
      }
    }
  }
}

La sección minecraft:client_entity contiene la descripción de la entidad. Bajo la descripción, hay una serie de cosas que puede establecer acerca de una entidad. Generalmente, este archivo define los recursos que requiere un mob y le da un nombre descriptivo a cada uno, que los otros archivos de definición pueden usar.

Identificador[editar | editar código]

El identificador se utiliza para registrar la entidad con el servidor. En el JSON de definiciones de entidades del cliente, el identificador establece el aspecto de la entidad (materiales, texturas, geometría, etc.) El identificador coincidente en el JSON de comportamiento de la entidad en el paquete de comportamiento es lo que le da a la entidad sus comportamientos.

min_engine_version[editar | editar código]

Cuando están presentes, los jugadores pueden configurar la versión mínima necesaria para permitir que se analice el JSON. La versión en la definición se compara con la versión del motor para la cual se creó el paquete de recursos superior. Si min_engine_version de una definición es más reciente que la versión del motor de ese paquete, entonces la definición no se analiza.

Varios archivos de definición pueden usar el mismo identificador, en cuyo caso solo se cargará una de esas definiciones. Se analizará la definición con min_engine_version igual o más cercana y no mayor, en comparación con la versión del motor del paquete de recursos superior; Todas las otras definiciones con el mismo identificador no serán analizadas.

Esto puede ser útil para continuar admitiendo una versión anterior de una entidad, cuando se usa un paquete de recursos más antiguo en la parte superior de la pila de paquetes de recursos, mientras que también admite una versión más reciente de la entidad en todos los demás casos.

Materiales, Texturas y Geometrías[editar | editar código]

Los jugadores pueden configurar los materiales, la textura y la geometría utilizados para la entidad en esta sección. Los jugadores pueden configurar uno o más materiales, texturas y geometrías que pueden ser utilizados por el mob. Los jugadores deben establecer nombres definidos por el usuario para ellos. Estos nombres se utilizan en los controladores de representación JSON. Los jugadores pueden hacer referencia a materiales, texturas y geometría del paquete de recursos de Minecraft Vanilla o crear el suyo propio. Los materiales, texturas y geometría personalizados deben estar en la carpeta correspondiente en la raíz del Paquete de recursos.

Scripts[editar | editar código]

Los scripts permiten a los jugadores usar MoLang para calcular cálculos una vez y almacenar ese valor. Este valor puede usarse una y otra vez sin la necesidad de volver a calcular constantemente los cálculos. Los scripts actualmente soportan pre-animación y escala. Más tipos de secuencias de comandos se añadirán más adelante. - Los scripts de pre-animación se evalúan inmediatamente antes de que se procesen las animaciones. - Escala establece la escala de la geometría del mob.

Ejemplo de script de pre-animación para cod.

       
"scripts": {
  "pre_animation": [
    "Entity.ZRot = !Entity.IsInWater ? Math.cos((Entity.Member.TimeStamp + Params.FrameAlpha) * 14.32) * 90 : 0.0;",
    "Entity.AnimationAmountBlend = Math.lerp(Entity.AnimationAmountPrev, Entity.AnimationAmount, Params.FrameAlpha);"
  ]
},

Ejemplo de script de escala para el murciélago

"scripts": {
  "scale": "0.35"
},

Animaciones[editar | editar código]

Permite al jugador asignar nombres para hacer referencia al nombre largo de las animaciones. Estos nombres son utilizados por el controlador de animación JSON. Los jugadores pueden hacer referencia a animaciones del paquete de recursos de Minecraft Vanilla o crear las suyas propias. Las animaciones personalizadas deben estar en la carpeta de animation en la raíz del Paquete de recursos.

Controladores De Animacion[editar | editar código]

Los controladores de animación deciden qué animaciones reproducir y cuando. Cada controlador contiene una lista de estados que reproducen una o más animaciones. Permite al jugador asignar nombres para hacer referencia a los nombres largos para los controladores de animación. Los nombres son obligatorios y deben ser únicos de todos los demás nombres en los controladores de animación para este mob. Los jugadores pueden hacer referencia a los controladores de animación del paquete de recursos de Minecraft Vanilla o crear los suyos propios. Los controladores de animación personalizados deben estar en la carpeta animation_controllers en la raíz del Paquete de recursos.

Partícula[editar | editar código]

Permite al jugador asignar una clave para hacer referencia al nombre largo de las partículas. Cuando están presentes, la partícula se crea cuando se genera la entidad. las claves son necesarias y deben ser únicas de todas las demás claves de los controladores de animación. Los jugadores pueden hacer referencia a partículas del paquete de recursos de Minecraft Vanilla o crear las suyas propias. Las partículas personalizadas deben estar en la carpeta particles en la raíz del Paquete de recursos.

Controladores de Render[editar | editar código]

Especifica los nombres de los controladores de render. Este nombre debe coincidir con el nombre de un JSON correspondiente ubicado en la carpeta Render Controllers. Los jugadores pueden hacer referencia a los controladores de renderización del paquete de recursos de Minecraft Vanilla o crear los suyos propios. Los controladores de render personalizados deben estar en la carpeta de texto en la raíz del paquete de recursos.

Localizadores[editar | editar código]

Las compensaciones del localizador ( locator offsets) se especifican en el espacio modelo. Un ejemplo de un localizador es el "lead" localizador utilizado para especificar dónde se unirá el attach gráficamente.

Ejemplo

"locators": {
  "lead": {
    "head": [ 0.0, 14.0, -6.0 ] 
  }
}

Habilitar Archivos Adjuntos[editar | editar código]

Esto determina si la entidad puede equipar elementos adjuntos cuando esto se establece en verdadero. Esto permite que la entidad rinda armadura.

Ejemplo

"enable_attachables": true

Generador o Spawn[editar | editar código]

Esto establece el color o la textura utilizada para el huevo o generador de la creatura. Hay 2 formas de hacer esto. El primero es usar el valor hexadecimal para el color base y el color de superposición.

Ejemplo de huevo usando valor hexadecimal.

"spawn_egg": {
  "base_color": "#53443E",
  "overlay_color": "#2E6854"
}

La otra forma es especificar una textura.

Ejemplo de Huevo de Spawn o Generador especificando una textura. La textura está localizada en "items_texture" JSON en la carpeta de texturas del Paquete de Recursos. Cuando hay más de una textura asociada con un nombre de textura, puede utilizar un índice para seleccionar la que desee. Si no se especifica ningún índice, se supone que es 0 y se utiliza la primera textura de la lista.

"spawn_egg": {
  "texture": "spawn_egg",
  "texture_index": 2
}

Documentación De Animación Dirigida Dirigida Por Datos[editar | editar código]

Este documento contiene una explicación detallada del sistema de animación impulsada por datos para Minecraft.

Visión De Conjunto[editar | editar código]

El esquema debe seguir los paradigmas actuales de Minecraft JSON. - Los campos deben ir en minúsculas y usar guiones bajos (sin espacios) - Todos los archivos JSON en el directorio de definiciones y el subárbol serán leídos e interpretados por el sistema de animación - Para la Vista previa técnica de octubre, deberá habilitar la "Use Experimental Gameplay" opción en el mundo

Empezando[editar | editar código]

Hay una serie de nuevos directorios en paquetes de recursos con la adición de animaciones. - resource_pack_root\ - animation_controllers - animations - entity

Las animaciones se almacenan en la carpeta 'animations' de un paquete de recursos en formato .json, y se hace referencia a ellas mediante el archivo de definición .json de la entidad. Los paquetes de recursos en la pila sobrescribirán las animaciones previamente especificadas del mismo nombre en orden de pila (parte superior de sobrescritura en la parte inferior). Se pueden organizar en cualquier número de archivos con cualquier nombre (que termina en .json).

Añadiendo Animaciones[editar | editar código]

Para definir qué animaciones tiene una entidad, debe agregar animaciones y controladores de animación al archivo entity definition.

Aquí puede ver la entity definition para pig.json:

 
{
  "format_version": "1.8.0-beta.1",
  "minecraft:client_entity": {
    "description": {
      "identifier": "minecraft:pig",
      "materials": { "default": "pig" },
      "textures": {
        "default": "textures/entity/pig/pig",
        "saddled": "textures/entity/pig/pig_saddle"
      },
      "geometry": {
        "default": "geometry.pig"
      },
      "animations": {
        "setup": "animation.pig.setup",
        "walk": "animation.quadruped.walk",
        "look_at_target": "animation.common.look_at_target",
        "baby_transform": "animation.pig.baby_transform"
      },
      "animation_controllers": [
        { "setup": "controller.animation.pig.setup" },
        { "move": "controller.animation.pig.move" },
        { "baby": "controller.animation.pig.baby" }
      ],
      "render_controllers": [ "controller.render.pig" ],
      "locators": {
        "lead": { 
          "head": [ 0.0, 14.0, -6.0 ] 
        }
      },
      "spawn_egg": {
        "texture": "spawn_egg",
        "texture_index": 2
      }
    }
  }
}

Nota: La animación de caminar para el cerdo es la misma que para las vacas y ovejas, y por lo tanto utiliza animation.quadruped.walk en lugar de definir su propia cuenta. Esto significa que tampoco verá la animación de movimiento en el archivo de animación pig.json. Si desea realizar un paseo personalizado, puede cambiar esta línea para que apunte a su animación personalizada.

Las animaciones se especifican como un nombre corto, seguido de su nombre completo. El nombre corto se usa en el controlador de animación, mientras que el nombre largo se usa en el archivo de animaciones.

Controlador de Animaciones[editar | editar código]

Uno debe poder controlar cómo se reproducen las animaciones, cuándo y cómo interactúan con otras animaciones. Los controladores de animación permiten la mezcla de múltiples animaciones basadas en parámetros como los expuestos por la entidad (por ejemplo: velocidad de avance, velocidad de rotación, etc.).

Aquí está el controlador de animaciones del cerdo:

{
  "format_version": "1.8.0-beta.1",
  "animation_controllers": {
    "controller.animation.pig.setup": {
      "states": {
        "default": {
          "animations": {
            "setup": {}
          }
        }
      }
    },
    "controller.animation.pig.baby": {
      "states": {
        "baby": {
          "parameters": [ "Entity.Flags.BABY" ],
          "animations": {
            "baby_transform": [
              {
                "0.0": 0.0,
                "1.0": 1.0
              }
            ]
          }
        }
      }
    },
    "controller.animation.pig.move": {
      "states": {
        "default": {
          "parameters": [ "Entity.Member.WalkSpeed" ],
          "animations": {
            "walk": [
              {
                "0.0": 0.0,
                "1.0": 1.0
              }
            ],
            "look_at_target": {}
          }
        }
      }
    }
  }
}

Animaciones[editar | editar código]

Al comienzo de cada cuadro, el esqueleto se restablece a su pose predeterminada desde su definición de geometría y luego las animaciones se aplican de forma aditiva en orden.

Aquí hay un ejemplo de pig.json en la carpeta de animación del paquete de recursos Vanilla:

 
{   
  "format_version": "1.8.0-beta.1",
  "animations": {
    "animation.pig.setup": {
      "loop": true,
	  "bones": {
	    "body": {
          "rotation": [ "-this", 0.0, 0.0 ]
        }       
      }
    },
    "animation.pig.idle": {       
      "loop": true, 
	  "bones": {
        "head": { 
          "rotation": [ "Math.cos(Params.AnimTime * 38.17) * 2.0 + Math.cos(Params.AnimTime * 27.0) * 2.0", "Math.cos(Params.AnimTime * 15.1) * 4.0", 0.0 ] 
        }
      }     
    },     
    "animation.pig.baby_transform": {       
      "loop": true,
	  "bones": {         
        "head": {          
          "scale": 2.0, "position": [ 0.0, 8.0, 4.0 ]         
        }       
      }     
    }   
  } 
}
  • Tenga en cuenta que los datos de animación pueden ser datos en bruto:
     
"rotation": [90.0, 0.0, 0.0]  // by default, if three values are specified, then values are in degrees, in euler X then Y then Z format     
"rotation": [0.373, 0.577, 0.687, 0.235]  // if four values are specified, then values represent a quaternion.  This behaviour is overrideable per component