Files
minecraft-bedrock-json-schemas/source/resource/animations/1.10.0/actor_animation.json
2021-02-10 02:02:46 +01:00

398 lines
14 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "blockception.minecraft.resource.1.10.0.actor_animation",
"additionalProperties": false,
"type": "object",
"title": "The minecraft resourcepack actor animation 1.10.0",
"description": "TODO description",
"definitions": {
"ParticleEffect": {
"type": "object",
"title": "Particle effect",
"additionalProperties": false,
"required": ["effect"],
"properties": {
"effect": {
"type": "string",
"title": "Particle id",
"description": "The name of a particle effect that should be played"
},
"locator": {
"type": "string",
"title": "Locator",
"description": "The name of a locator on the actor where the effect should be located"
},
"pre_effect_script": {
"title": "Pre effect script",
"description": "A molang script that will be run when the particle emitter is initialized",
"$ref": "../../../molang/1.8.0/string.json"
},
"bind_to_actor": {
"type": "boolean",
"title": "Bind to actor",
"description": "Set to false to have the effect spawned in the world without being bound to an actor (by default an effect is bound to the actor)."
}
}
},
"PositionV3": {
"title": "Position array",
"description": "An array of 3 items that describe the bones position",
"type": "array",
"items": [
{
"title": "Position X",
"description": "The position over the X-axis or forwards/backwards.\nCan be molang or a float",
"$ref": "../../../molang/1.8.0/number.json"
},
{
"title": "Position Y",
"description": "The position over the Y-axis, or up/down.\nCan be molang or a float",
"$ref": "../../../molang/1.8.0/number.json"
},
{
"title": "Position Z",
"description": "The position over the Z-axis, or left/right.\nCan be molang or a float",
"$ref": "../../../molang/1.8.0/number.json"
}
]
},
"RotationV3": {
"title": "Rotation array",
"description": "An array of 3 items that describe the bones rotation",
"type": "array",
"items": [
{
"title": "Rotation X",
"description": "The rotation over the X-axis, or up or down.\nCan be molang or a float",
"$ref": "../../../molang/1.8.0/number.json"
},
{
"title": "Rotation Y",
"description": "The rotation over the Y-axis, or yaw.\nCan be molang or a float",
"$ref": "../../../molang/1.8.0/number.json"
},
{
"title": "Rotation Z",
"description": "The rotation over the Z-axis, or roll.\nCan be molang or a float",
"$ref": "../../../molang/1.8.0/number.json"
}
]
},
"ScaleV3": {
"title": "Scale array",
"description": "An array of 3 items that describe the bones position",
"type": "array",
"items": [
{
"title": "Position X",
"description": "The position over the X-axis or forwards/backwards.\nCan be molang or a float",
"$ref": "../../../molang/1.8.0/number.json"
},
{
"title": "Position Y",
"description": "The position over the Y-axis, or up/down.\nCan be molang or a float",
"$ref": "../../../molang/1.8.0/number.json"
},
{
"title": "Position Z",
"description": "The position over the Z-axis, or left/right.\nCan be molang or a float",
"$ref": "../../../molang/1.8.0/number.json"
}
]
},
"SoundEffect": {
"title": "Sound effect",
"type": "object",
"additionalProperties": false,
"properties": {
"effect": {
"title": "Effect",
"type": "string",
"description": "Valid sound effect names should be listed in the entity's resource_definition json file."
}
}
}
},
"required": ["format_version", "animations"],
"properties": {
"format_version": {
"title": "The 1.10.0 format version",
"type": "string",
"const": "1.10.0",
"description": "A version that tells minecraft what type of data format can be expected when reading this file."
},
"animations": {
"title": "Animations schema",
"description": "The animation 1.10.0 specification",
"propertyNames": {
"pattern": "^animation\\.[a-z\\.]+"
},
"type": "object",
"additionalProperties": {
"additionalProperties": false,
"type": "object",
"title": "Animation 1.8.0",
"description": "The animation specification for 1.8.0",
"properties": {
"anim_time_update": {
"title": "Start delay",
"description": "How does time pass when playing the animation. Defaults to \"query.anim_time + query.delta_time\" which means advance in seconds.",
"$ref": "../../../molang/1.8.0/number.json"
},
"animation_length": {
"title": "Animation length",
"description": "Override calculated value (set as the last keyframe time) and set animation length in seconds.",
"type": "number"
},
"blend_weight": {
"title": "Blend weight",
"description": "TODO",
"$ref": "../../../molang/1.8.0/number.json"
},
"bones": {
"title": "Bones",
"description": "Defines how the bones in an animation move or transform",
"type": "object",
"additionalProperties": {
"title": "Bone transformation",
"description": "The bone definition that declare how it transforms during animation",
"type": "object",
"additionalProperties": false,
"properties": {
"position": {
"title": "Position",
"description": "The Position transformation during this animation",
"oneOf": [
{
"$ref": "#/definitions/PositionV3"
},
{
"$ref": "../../../molang/1.8.0/arraynumber3.json"
},
{
"type": "object",
"propertyNames": {
"pattern": "^[\\d.]+$"
},
"additionalProperties": {
"title": "Timeline object",
"description": "A single point in time",
"additionalProperties": false,
"properties": {
"lerp_mode": {
"type": "string",
"title": "Lerp mode",
"description": "TODO",
"enum": ["linear", "catmullrom"]
},
"pre": {
"title": "Pre",
"description": "TODO",
"$ref": "#/definitions/PositionV3"
},
"post": {
"title": "Pre",
"description": "TODO",
"$ref": "#/definitions/PositionV3"
}
}
}
}
]
},
"rotation": {
"title": "Rotation",
"description": "The rotation transformation during this animation",
"oneOf": [
{
"$ref": "#/definitions/RotationV3"
},
{
"$ref": "../../../molang/1.8.0/arraynumber3.json"
},
{
"type": "object",
"propertyNames": {
"pattern": "^[\\d.]+$"
},
"additionalProperties": {
"title": "Timeline object",
"description": "A single point in time",
"additionalProperties": false,
"properties": {
"lerp_mode": {
"type": "string",
"title": "Lerp mode",
"description": "TODO",
"enum": ["linear", "catmullrom"]
},
"pre": {
"title": "Pre",
"description": "TODO",
"$ref": "#/definitions/RotationV3"
},
"post": {
"title": "Pre",
"description": "TODO",
"$ref": "#/definitions/RotationV3"
}
}
}
}
]
},
"relative_to": {
"title": "Relative to",
"description": "If set, makes the bone rotation relative to the entity instead of the bone's parent",
"properties": {
"rotation": {
"title": "Rotation",
"description": "If set, makes the bone rotation relative to the entity instead of the bone's parent",
"type": "string"
}
}
},
"scale": {
"title": "Scale",
"description": "TODO",
"oneOf": [
{
"$ref": "../../../molang/1.8.0/number.json"
},
{
"$ref": "#/definitions/ScaleV3"
},
{
"type": "object",
"propertyNames": {
"pattern": "^[\\d.]+$"
},
"additionalProperties": {
"title": "Timeline object",
"description": "A single point in time",
"additionalProperties": false,
"properties": {
"lerp_mode": {
"type": "string",
"title": "Lerp mode",
"description": "TODO",
"enum": ["linear", "catmullrom"]
},
"pre": {
"title": "Pre",
"description": "TODO",
"$ref": "#/definitions/ScaleV3"
},
"post": {
"title": "Pre",
"description": "TODO",
"$ref": "#/definitions/ScaleV3"
}
}
}
}
]
}
}
}
},
"loop": {
"title": "Loop",
"description": "Should this animation stop, loop, or stay on the last frame when finished (true, false, hold_on_last_frame)",
"oneOf": [
{
"type": "boolean"
},
{
"type": "string",
"enum": ["hold_on_last_frame"]
}
]
},
"override_previous_animation": {
"title": "Override previous animation",
"description": "Reset bones in this animation to the default pose before applying this animation.",
"type": "boolean"
},
"particle_effects": {
"title": "Particle effects",
"description": "TODO",
"oneOf": [
{
"$ref": "#/definitions/ParticleEffect"
},
{
"type": "object",
"propertyNames": {
"pattern": "^[\\d.]+$"
},
"additionalProperties": {
"title": "Timeline object",
"description": "A single point in time",
"oneOf": [
{
"type": "object",
"$ref": "#/definitions/ParticleEffect"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/ParticleEffect"
}
}
]
}
}
]
},
"start_delay": {
"title": "Start delay",
"description": "How long to wait in seconds before playing this animation. Note that this expression is evaluated once before playing, and only re-evaluated if asked to play from the beginning again. A looping animation should use 'loop_delay' if it wants a delay between loops.",
"$ref": "../../../molang/1.8.0/number.json"
},
"sound_effects": {
"title": "Sound effect",
"description": "TODO",
"type": "object",
"propertyNames": {
"pattern": "^[\\d.]+$"
},
"additionalProperties": {
"$ref": "#/definitions/SoundEffect"
}
},
"timeline": {
"title": "Timeline",
"description": "The time line",
"type": "object",
"propertyNames": {
"pattern": "^(\\d+.\\d+|\\d+)$"
},
"additionalProperties": {
"oneOf": [
{
"type": "string",
"title": "Molang",
"description": "Variable definition",
"pattern": "^(v|variable)\\..*=.*;$"
},
{
"type": "array",
"title": "Collection timelime items",
"items": {
"type": "string",
"title": "Molang",
"description": "Variable definition",
"pattern": "^(v|variable)\\..*=.*;$"
}
}
]
}
}
}
}
}
}
}