diff --git a/source/resource/animations/1.10.0/actor_animation.json b/source/resource/animations/1.10.0/actor_animation.json deleted file mode 100644 index 47911058..00000000 --- a/source/resource/animations/1.10.0/actor_animation.json +++ /dev/null @@ -1,368 +0,0 @@ -{ - "$id": "blockception.minecraft.resource.1.10.0.actor_animation", - "additionalProperties": false, - "type": "object", - "title": "Actor Animation 1.10.0", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "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/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).", - "const": false - } - } - }, - "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/number.json" - }, - { - "title": "Position Y", - "description": "The position over the Y-axis, or up/down.\nCan be molang or a float", - "$ref": "../../../molang/number.json" - }, - { - "title": "Position Z", - "description": "The position over the Z-axis, or left/right.\nCan be molang or a float", - "$ref": "../../../molang/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/number.json" - }, - { - "title": "Rotation Y", - "description": "The rotation over the Y-axis, or yaw.\nCan be molang or a float", - "$ref": "../../../molang/number.json" - }, - { - "title": "Rotation Z", - "description": "The rotation over the Z-axis, or roll.\nCan be molang or a float", - "$ref": "../../../molang/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/number.json" - }, - { - "title": "Position Y", - "description": "The position over the Y-axis, or up/down.\nCan be molang or a float", - "$ref": "../../../molang/number.json" - }, - { - "title": "Position Z", - "description": "The position over the Z-axis, or left/right.\nCan be molang or a float", - "$ref": "../../../molang/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": "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/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": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "$ref": "../../../molang/number.json" - }, - "bones": { - "title": "Bones", - "description": "Defines how the bones in an animation move or transform", - "propertyNames": { "examples": ["leftArm"] }, - "type": "object", - "minProperties": 1, - "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": [ - { "type": "array", "$ref": "#/definitions/PositionV3" }, - { - "type": "object", - "propertyNames": { "pattern": "^(\\d+\\.\\d+|\\d+)$", "examples": ["0.0", "1.0"] }, - "additionalProperties": { - "title": "Timeline Object", - "description": "A single point in time", - "oneOf": [ - { - "type": "array", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "$ref": "#/definitions/PositionV3" - }, - { - "additionalProperties": false, - "type": "object", - "properties": { - "lerp_mode": { - "type": "string", - "title": "Lerp Mode", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "enum": ["linear", "catmullrom"] - }, - "pre": { - "title": "Pre", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "$ref": "#/definitions/PositionV3" - }, - "post": { - "title": "Pre", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "$ref": "#/definitions/PositionV3" - } - } - } - ] - } - } - ] - }, - "rotation": { - "title": "Rotation", - "description": "The rotation transformation during this animation", - "oneOf": [ - { "type": "array", "$ref": "#/definitions/RotationV3" }, - { - "type": "object", - "propertyNames": { "pattern": "^(\\d+\\.\\d+|\\d+)$", "examples": ["0.0", "1.0"] }, - "additionalProperties": { - "title": "Timeline Object", - "description": "A single point in time", - "oneOf": [ - { - "type": "array", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "$ref": "#/definitions/RotationV3" - }, - { - "additionalProperties": false, - "type": "object", - "properties": { - "lerp_mode": { - "type": "string", - "title": "Lerp Mode", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "enum": ["linear", "catmullrom"] - }, - "pre": { - "title": "Pre", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "$ref": "#/definitions/RotationV3" - }, - "post": { - "title": "Pre", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "$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": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "oneOf": [ - { "$ref": "../../../molang/number.json" }, - { "$ref": "#/definitions/ScaleV3" }, - { - "type": "object", - "propertyNames": { "pattern": "^(\\d+\\.\\d+|\\d+)$", "examples": ["0.0", "1.0"] }, - "additionalProperties": { - "title": "Timeline Object", - "description": "A single point in time", - "additionalProperties": false, - "examples": [{ "0.0": {} }], - "type": "object", - "properties": { - "lerp_mode": { - "type": "string", - "title": "Lerp Mode", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "enum": ["linear", "catmullrom"] - }, - "pre": { "title": "Pre", "description": "UNDOCUMENTED", "$comment": "UNDOCUMENTED", "$ref": "#/definitions/ScaleV3" }, - "post": { "title": "Pre", "description": "UNDOCUMENTED", "$comment": "UNDOCUMENTED", "$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"] }] - }, - "loop_delay": { - "title": "Loop Delay", - "description": "How long to wait in seconds before looping this animation. Note that this expression is evaluated after each loop and on looping animation only.", - "$ref": "../../../molang/number.json" - }, - "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": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "object", - "propertyNames": { "pattern": "^(\\d+\\.\\d+|\\d+)$", "examples": ["0.0", "1.0"] }, - "examples": [{ "0.0": {} }], - "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/number.json" - }, - "sound_effects": { - "title": "Sound Effect", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "object", - "propertyNames": { "pattern": "^(\\d+\\.\\d+|\\d+)$", "examples": ["0.0", "1.0"] }, - "additionalProperties": { - "title": "Timeline Object", - "description": "A single point in time", - "oneOf": [ - { "type": "object", "$ref": "#/definitions/SoundEffect" }, - { "type": "array", "items": { "$ref": "#/definitions/SoundEffect" } } - ] - } - }, - "timeline": { - "title": "Timeline", - "description": "The time line", - "type": "object", - "propertyNames": { "pattern": "^(\\d+\\.\\d+|\\d+)$", "examples": ["0.0", "1.0"] }, - "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)\\..*=.*;$" } - } - ] - } - } - } - } - } - } -} diff --git a/source/resource/animations/1.8.0/actor_animation.json b/source/resource/animations/1.8.0/actor_animation.json deleted file mode 100644 index 40e68f7a..00000000 --- a/source/resource/animations/1.8.0/actor_animation.json +++ /dev/null @@ -1,372 +0,0 @@ -{ - "$id": "blockception.minecraft.resource.1.8.0.actor_animation", - "additionalProperties": false, - "type": "object", - "title": "Actor Animation 1.8.0", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "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/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).", - "const": false - } - } - }, - "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/number.json" - }, - { - "title": "Position Y", - "description": "The position over the Y-axis, or up/down.\nCan be molang or a float", - "$ref": "../../../molang/number.json" - }, - { - "title": "Position Z", - "description": "The position over the Z-axis, or left/right.\nCan be molang or a float", - "$ref": "../../../molang/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/number.json" - }, - { - "title": "Rotation Y", - "description": "The rotation over the Y-axis, or yaw.\nCan be molang or a float", - "$ref": "../../../molang/number.json" - }, - { - "title": "Rotation Z", - "description": "The rotation over the Z-axis, or roll.\nCan be molang or a float", - "$ref": "../../../molang/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/number.json" - }, - { - "title": "Position Y", - "description": "The position over the Y-axis, or up/down.\nCan be molang or a float", - "$ref": "../../../molang/number.json" - }, - { - "title": "Position Z", - "description": "The position over the Z-axis, or left/right.\nCan be molang or a float", - "$ref": "../../../molang/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": "1.8.0 Format Version", - "type": "string", - "const": "1.8.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.8.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": "Anim Time Update", - "description": "How does time pass when playing the animation. Defaults to `query.anim_time + query.delta_time` which means advance in seconds.", - "$ref": "../../../molang/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": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "$ref": "../../../molang/number.json" - }, - "bones": { - "title": "Bones", - "minProperties": 1, - "description": "Defines how the bones in an animation move or transform", - "propertyNames": { "examples": ["leftArm"] }, - "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": [ - { "type": "array", "$ref": "#/definitions/PositionV3" }, - { - "type": "object", - "propertyNames": { "pattern": "^(\\d+\\.\\d+|\\d+)$", "examples": ["0.0", "1.0"] }, - "additionalProperties": { - "title": "Timeline Object", - "description": "A single point in time", - "oneOf": [ - { - "type": "array", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "$ref": "#/definitions/PositionV3" - }, - { - "additionalProperties": false, - "type": "object", - "properties": { - "lerp_mode": { - "type": "string", - "title": "Lerp Mode", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "enum": ["linear", "catmullrom"] - }, - "pre": { - "title": "Pre", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "$ref": "#/definitions/PositionV3" - }, - "post": { - "title": "Pre", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "$ref": "#/definitions/PositionV3" - } - } - } - ] - } - } - ] - }, - "rotation": { - "title": "Rotation", - "description": "The rotation transformation during this animation", - "oneOf": [ - { "type": "array", "$ref": "#/definitions/RotationV3" }, - { - "type": "object", - "propertyNames": { "pattern": "^(\\d+\\.\\d+|\\d+)$", "examples": ["0.0", "1.0"] }, - "additionalProperties": { - "title": "Timeline Object", - "description": "A single point in time", - "oneOf": [ - { - "type": "array", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "$ref": "#/definitions/RotationV3" - }, - { - "additionalProperties": false, - "type": "object", - "properties": { - "lerp_mode": { - "type": "string", - "title": "Lerp Mode", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "enum": ["linear", "catmullrom"] - }, - "pre": { - "title": "Pre", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "$ref": "#/definitions/RotationV3" - }, - "post": { - "title": "Pre", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "$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": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "oneOf": [ - { - "type": "array", - "$ref": "../../../molang/number.json" - }, - { - "type": "array", - "$ref": "#/definitions/ScaleV3" - }, - { - "type": "object", - "propertyNames": { "pattern": "^(\\d+\\.\\d+|\\d+)$", "examples": ["0.0", "1.0"] }, - "additionalProperties": { - "title": "Timeline Object", - "description": "A single point in time", - "additionalProperties": false, - "type": "object", - "properties": { - "lerp_mode": { - "type": "string", - "title": "Lerp Mode", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "enum": ["linear", "catmullrom"] - }, - "pre": { "title": "Pre", "description": "UNDOCUMENTED", "$comment": "UNDOCUMENTED", "$ref": "#/definitions/ScaleV3" }, - "post": { "title": "Pre", "description": "UNDOCUMENTED", "$comment": "UNDOCUMENTED", "$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"] }] - }, - "loop_delay": { - "title": "Loop Delay", - "description": "How long to wait in seconds before looping this animation. Note that this expression is evaluated after each loop and on looping animation only.", - "$ref": "../../../molang/number.json" - }, - "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": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "object", - "propertyNames": { "pattern": "^(\\d+\\.\\d+|\\d+)$", "examples": ["0.0", "1.0"] }, - "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/number.json" - }, - "sound_effects": { - "title": "Sound Effect", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "object", - "propertyNames": { "pattern": "^(\\d+\\.\\d+|\\d+)$", "examples": ["0.0", "1.0"] }, - "additionalProperties": { - "title": "Timeline Object", - "description": "A single point in time", - "oneOf": [ - { "type": "object", "$ref": "#/definitions/SoundEffect" }, - { "type": "array", "items": { "$ref": "#/definitions/SoundEffect" } } - ] - } - }, - "timeline": { - "title": "Timeline", - "description": "The time line", - "type": "object", - "propertyNames": { "pattern": "^(\\d+\\.\\d+|\\d+)$", "examples": ["0.0", "1.0"] }, - "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)\\..*=.*;$" } - } - ] - } - } - } - } - } - } -} diff --git a/source/resource/animations/actor_animation.json b/source/resource/animations/actor_animation.json index e8a1621f..d5f7b259 100644 --- a/source/resource/animations/actor_animation.json +++ b/source/resource/animations/actor_animation.json @@ -1,9 +1,375 @@ { "$id": "blockception.minecraft.resource.actor_animation", - "examples": [{ "format_version": "1.8.0", "animations": { "animation.annie.idle": { "loop": true, "animation_length": 2.12, "bones": {} } } }], - "allOf": [ - { "if": { "properties": { "format_version": { "type": "string", "const": "1.8.0" } } }, "then": { "$ref": "./1.8.0/actor_animation.json" } }, - { "if": { "properties": { "format_version": { "type": "string", "const": "1.10.0" } } }, "then": { "$ref": "./1.10.0/actor_animation.json" } }, - { "properties": { "format_version": { "$ref": "../../general/format_version.json" } } } - ] + "examples": [{ "format_version": "1.17.0", "animations": { "animation.annie.idle": { "loop": true, "animation_length": 2.12, "bones": {} } } }], + "additionalProperties": false, + "type": "object", + "title": "Actor Animation", + "description": "UNDOCUMENTED", + "$comment": "UNDOCUMENTED", + "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/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).", + "const": false + } + } + }, + "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/number.json" + }, + { + "title": "Position Y", + "description": "The position over the Y-axis, or up/down.\nCan be molang or a float", + "$ref": "../../../molang/number.json" + }, + { + "title": "Position Z", + "description": "The position over the Z-axis, or left/right.\nCan be molang or a float", + "$ref": "../../../molang/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/number.json" + }, + { + "title": "Rotation Y", + "description": "The rotation over the Y-axis, or yaw.\nCan be molang or a float", + "$ref": "../../../molang/number.json" + }, + { + "title": "Rotation Z", + "description": "The rotation over the Z-axis, or roll.\nCan be molang or a float", + "$ref": "../../../molang/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/number.json" + }, + { + "title": "Position Y", + "description": "The position over the Y-axis, or up/down.\nCan be molang or a float", + "$ref": "../../../molang/number.json" + }, + { + "title": "Position Z", + "description": "The position over the Z-axis, or left/right.\nCan be molang or a float", + "$ref": "../../../molang/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": { "$ref": "../../general/format_version.json" }, + "animations": { + "title": "Animations Schema", + "description": "The animation specification", + "propertyNames": { "pattern": "^animation\\.[a-z\\.]+" }, + "type": "object", + "additionalProperties": { + "additionalProperties": false, + "type": "object", + "title": "Animation", + "description": "The animation specification", + "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/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": "UNDOCUMENTED", + "$comment": "UNDOCUMENTED", + "$ref": "../../../molang/number.json" + }, + "bones": { + "title": "Bones", + "description": "Defines how the bones in an animation move or transform", + "propertyNames": { "examples": ["leftArm"] }, + "type": "object", + "minProperties": 1, + "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": [ + { "type": "array", "$ref": "#/definitions/PositionV3" }, + { + "type": "object", + "propertyNames": { "pattern": "^(\\d+\\.\\d+|\\d+)$", "examples": ["0.0", "1.0"] }, + "additionalProperties": { + "title": "Timeline Object", + "description": "A single point in time", + "oneOf": [ + { + "$ref": "../../../molang/number.json", + "description": "Uniform position" + }, + { + "type": "array", + "description": "UNDOCUMENTED", + "$comment": "UNDOCUMENTED", + "$ref": "#/definitions/PositionV3" + }, + { + "additionalProperties": false, + "type": "object", + "properties": { + "lerp_mode": { + "type": "string", + "title": "Lerp Mode", + "description": "UNDOCUMENTED", + "$comment": "UNDOCUMENTED", + "enum": ["linear", "catmullrom"] + }, + "pre": { + "title": "Pre", + "description": "UNDOCUMENTED", + "$comment": "UNDOCUMENTED", + "$ref": "#/definitions/PositionV3" + }, + "post": { + "title": "Pre", + "description": "UNDOCUMENTED", + "$comment": "UNDOCUMENTED", + "$ref": "#/definitions/PositionV3" + } + } + } + ] + } + } + ] + }, + "rotation": { + "title": "Rotation", + "description": "The rotation transformation during this animation", + "oneOf": [ + { "type": "array", "$ref": "#/definitions/RotationV3" }, + { + "type": "object", + "propertyNames": { "pattern": "^(\\d+\\.\\d+|\\d+)$", "examples": ["0.0", "1.0"] }, + "additionalProperties": { + "title": "Timeline Object", + "description": "A single point in time", + "oneOf": [ + { + "$ref": "../../../molang/number.json", + "description": "Uniform rotation" + }, + { + "type": "array", + "description": "UNDOCUMENTED", + "$comment": "UNDOCUMENTED", + "$ref": "#/definitions/RotationV3" + }, + { + "additionalProperties": false, + "type": "object", + "properties": { + "lerp_mode": { + "type": "string", + "title": "Lerp Mode", + "description": "UNDOCUMENTED", + "$comment": "UNDOCUMENTED", + "enum": ["linear", "catmullrom"] + }, + "pre": { + "title": "Pre", + "description": "UNDOCUMENTED", + "$comment": "UNDOCUMENTED", + "$ref": "#/definitions/RotationV3" + }, + "post": { + "title": "Pre", + "description": "UNDOCUMENTED", + "$comment": "UNDOCUMENTED", + "$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": "UNDOCUMENTED", + "$comment": "UNDOCUMENTED", + "oneOf": [ + { + "$ref": "../../../molang/number.json", + "description": "Uniform scale" + }, + { "$ref": "#/definitions/ScaleV3" }, + { + "type": "object", + "propertyNames": { "pattern": "^(\\d+\\.\\d+|\\d+)$", "examples": ["0.0", "1.0"] }, + "additionalProperties": { + "title": "Timeline Object", + "description": "A single point in time", + "additionalProperties": false, + "examples": [{ "0.0": {} }], + "type": "object", + "properties": { + "lerp_mode": { + "type": "string", + "title": "Lerp Mode", + "description": "UNDOCUMENTED", + "$comment": "UNDOCUMENTED", + "enum": ["linear", "catmullrom"] + }, + "pre": { "title": "Pre", "description": "UNDOCUMENTED", "$comment": "UNDOCUMENTED", "$ref": "#/definitions/ScaleV3" }, + "post": { "title": "Pre", "description": "UNDOCUMENTED", "$comment": "UNDOCUMENTED", "$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"] }] + }, + "loop_delay": { + "title": "Loop Delay", + "description": "How long to wait in seconds before looping this animation. Note that this expression is evaluated after each loop and on looping animation only.", + "$ref": "../../../molang/number.json" + }, + "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": "UNDOCUMENTED", + "$comment": "UNDOCUMENTED", + "type": "object", + "propertyNames": { "pattern": "^(\\d+\\.\\d+|\\d+)$", "examples": ["0.0", "1.0"] }, + "examples": [{ "0.0": {} }], + "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/number.json" + }, + "sound_effects": { + "title": "Sound Effect", + "description": "UNDOCUMENTED", + "$comment": "UNDOCUMENTED", + "type": "object", + "propertyNames": { "pattern": "^(\\d+\\.\\d+|\\d+)$", "examples": ["0.0", "1.0"] }, + "additionalProperties": { + "title": "Timeline Object", + "description": "A single point in time", + "oneOf": [ + { "type": "object", "$ref": "#/definitions/SoundEffect" }, + { "type": "array", "items": { "$ref": "#/definitions/SoundEffect" } } + ] + } + }, + "timeline": { + "title": "Timeline", + "description": "The time line", + "type": "object", + "propertyNames": { "pattern": "^(\\d+\\.\\d+|\\d+)$", "examples": ["0.0", "1.0"] }, + "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)\\..*=.*;$" } + } + ] + } + } + } + } + } + } }