2021-06-06 10:07:19 +00:00
{
2021-11-20 11:26:35 +01:00
"$schema" : "http://json-schema.org/draft-07/schema" ,
2021-06-06 10:07:19 +00:00
"$id" : "blockception.minecraft.resource.actor_animation" ,
2024-04-29 20:24:55 +07:00
"defaultSnippets" : [
{
"label" : "New animation" ,
"body" : {
"format_version" : "${1:1.10.0}" ,
"animations" : {
"animation.${2:${TM_FILENAME/[\\.].*//}}" : "^{$3}"
}
}
}
] ,
2023-11-28 19:49:09 +01:00
"examples" : [ { "format_version" : "1.20.41" , "animations" : { "animation.annie.idle" : { "loop" : true , "animation_length" : 2.12 , "bones" : { } } } } ] ,
2021-11-16 13:02:32 +01:00
"additionalProperties" : false ,
"type" : "object" ,
"title" : "Actor Animation" ,
2022-01-09 12:05:54 +01:00
"description" : "The RP animation that changes an actors models, or molang data." ,
2021-11-16 13:02:32 +01:00
"$comment" : "UNDOCUMENTED" ,
"definitions" : {
"ParticleEffect" : {
"type" : "object" ,
"title" : "Particle Effect" ,
"additionalProperties" : false ,
"required" : [ "effect" ] ,
"properties" : {
2022-07-22 19:41:04 +02:00
"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." } ,
2021-11-16 13:02:32 +01:00
"pre_effect_script" : {
"title" : "Pre Effect Script" ,
2022-07-22 19:41:04 +02:00
"description" : "A molang script that will be run when the particle emitter is initialized." ,
2021-11-16 13:06:51 +01:00
"$ref" : "../../molang/string.json"
2021-11-16 13:02:32 +01:00
} ,
"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" ,
2022-07-22 19:41:04 +02:00
"description" : "An array of 3 items that describe the bones position." ,
2021-11-16 13:02:32 +01:00
"type" : "array" ,
2022-01-09 12:05:54 +01:00
"examples" : [ [ 0 , 0 , 0 ] ] ,
2022-02-07 14:40:27 +01:00
"maxItems" : 3 ,
"minItems" : 3 ,
2021-11-16 13:02:32 +01:00
"items" : [
2022-01-09 12:05:54 +01:00
{ "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" }
2021-11-16 13:02:32 +01:00
]
} ,
"RotationV3" : {
"title" : "Rotation Array" ,
2022-07-22 19:41:04 +02:00
"description" : "An array of 3 items that describe the bones rotation." ,
2021-11-16 13:02:32 +01:00
"type" : "array" ,
2022-01-09 12:05:54 +01:00
"examples" : [ [ 0 , 0 , 0 ] ] ,
2022-02-07 14:40:27 +01:00
"maxItems" : 3 ,
"minItems" : 3 ,
2021-11-16 13:02:32 +01:00
"items" : [
2022-01-09 12:05:54 +01:00
{ "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" }
2021-11-16 13:02:32 +01:00
]
} ,
"ScaleV3" : {
"title" : "Scale Array" ,
2022-07-22 19:41:04 +02:00
"description" : "An array of 3 items that describe the bones scale." ,
2021-11-16 13:02:32 +01:00
"type" : "array" ,
2022-01-09 12:05:54 +01:00
"examples" : [ [ 0 , 0 , 0 ] ] ,
2022-02-07 14:40:27 +01:00
"maxItems" : 3 ,
"minItems" : 3 ,
2021-11-16 13:02:32 +01:00
"items" : [
2022-01-09 12:05:54 +01:00
{ "title" : "Scale X" , "description" : "The scale over the X-axis or forwards/backwards.\nCan be molang or a float" , "$ref" : "../../molang/number.json" } ,
{ "title" : "Scale Y" , "description" : "The scale over the Y-axis, or up/down.\nCan be molang or a float" , "$ref" : "../../molang/number.json" } ,
{ "title" : "Scale Z" , "description" : "The scale over the Z-axis, or left/right.\nCan be molang or a float" , "$ref" : "../../molang/number.json" }
2021-11-16 13:02:32 +01:00
]
} ,
"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" ,
2022-07-22 19:41:04 +02:00
"description" : "The animation specification." ,
2021-11-16 13:02:32 +01:00
"propertyNames" : { "pattern" : "^animation\\.[a-z\\.]+" } ,
"type" : "object" ,
"additionalProperties" : {
"additionalProperties" : false ,
"type" : "object" ,
"title" : "Animation" ,
2022-07-22 19:41:04 +02:00
"description" : "The animation specification." ,
2021-11-16 13:02:32 +01:00
"properties" : {
"anim_time_update" : {
2024-03-27 12:34:57 +05:00
"title" : "Animation Time Update" ,
2021-11-16 13:02:32 +01:00
"description" : "How does time pass when playing the animation. Defaults to `query.anim_time + query.delta_time` which means advance in seconds." ,
2021-11-16 13:06:51 +01:00
"$ref" : "../../molang/number.json"
2021-11-16 13:02:32 +01:00
} ,
"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" ,
2022-01-09 12:05:54 +01:00
"description" : "The weight of the animation when blending with other animations. Defaults to 1." ,
2021-11-16 13:02:32 +01:00
"$comment" : "UNDOCUMENTED" ,
2021-11-16 13:06:51 +01:00
"$ref" : "../../molang/number.json"
2021-11-16 13:02:32 +01:00
} ,
"bones" : {
"title" : "Bones" ,
2022-07-22 19:41:04 +02:00
"description" : "Defines how the bones in an animation move or transform." ,
2021-11-16 13:02:32 +01:00
"propertyNames" : { "examples" : [ "leftArm" ] } ,
"type" : "object" ,
"minProperties" : 1 ,
"additionalProperties" : {
"title" : "Bone Transformation" ,
2022-07-22 19:41:04 +02:00
"description" : "The bone definition that declare how it transforms during animation." ,
2021-11-16 13:02:32 +01:00
"type" : "object" ,
"additionalProperties" : false ,
"properties" : {
"position" : {
"title" : "Position" ,
2022-07-22 19:41:04 +02:00
"description" : "The Position transformation during this animation." ,
2021-11-16 13:02:32 +01:00
"oneOf" : [
{ "type" : "array" , "$ref" : "#/definitions/PositionV3" } ,
{
"type" : "object" ,
"propertyNames" : { "pattern" : "^(\\d+\\.\\d+|\\d+)$" , "examples" : [ "0.0" , "1.0" ] } ,
"additionalProperties" : {
"title" : "Timeline Object" ,
2022-07-22 19:41:04 +02:00
"description" : "A single point in time." ,
2021-11-16 13:02:32 +01:00
"oneOf" : [
2022-07-22 19:41:04 +02:00
{ "$ref" : "../../molang/number.json" , "description" : "Uniform position." } ,
2022-01-09 12:05:54 +01:00
{ "type" : "array" , "$ref" : "#/definitions/PositionV3" } ,
2021-11-16 13:02:32 +01:00
{
"additionalProperties" : false ,
"type" : "object" ,
"properties" : {
"lerp_mode" : {
"type" : "string" ,
"title" : "Lerp Mode" ,
2022-07-22 19:41:04 +02:00
"description" : "UNDOCUMENTED." ,
2021-11-16 13:02:32 +01:00
"$comment" : "UNDOCUMENTED" ,
"enum" : [ "linear" , "catmullrom" ]
} ,
"pre" : {
"title" : "Pre" ,
2022-07-22 19:41:04 +02:00
"description" : "UNDOCUMENTED." ,
2021-11-16 13:02:32 +01:00
"$comment" : "UNDOCUMENTED" ,
"$ref" : "#/definitions/PositionV3"
} ,
"post" : {
"title" : "Pre" ,
2022-07-22 19:41:04 +02:00
"description" : "UNDOCUMENTED." ,
2021-11-16 13:02:32 +01:00
"$comment" : "UNDOCUMENTED" ,
"$ref" : "#/definitions/PositionV3"
}
}
}
]
}
}
]
} ,
"rotation" : {
"title" : "Rotation" ,
2022-07-22 19:41:04 +02:00
"description" : "The rotation transformation during this animation." ,
2021-11-16 13:02:32 +01:00
"oneOf" : [
{ "type" : "array" , "$ref" : "#/definitions/RotationV3" } ,
{
"type" : "object" ,
"propertyNames" : { "pattern" : "^(\\d+\\.\\d+|\\d+)$" , "examples" : [ "0.0" , "1.0" ] } ,
"additionalProperties" : {
"title" : "Timeline Object" ,
2022-07-22 19:41:04 +02:00
"description" : "A single point in time." ,
2021-11-16 13:02:32 +01:00
"oneOf" : [
2022-07-22 19:41:04 +02:00
{ "$ref" : "../../molang/number.json" , "description" : "Uniform rotation." } ,
2021-11-16 13:02:32 +01:00
{
"type" : "array" ,
2022-07-22 19:41:04 +02:00
"description" : "UNDOCUMENTED." ,
2021-11-16 13:02:32 +01:00
"$comment" : "UNDOCUMENTED" ,
"$ref" : "#/definitions/RotationV3"
} ,
{
"additionalProperties" : false ,
"type" : "object" ,
"properties" : {
"lerp_mode" : {
"type" : "string" ,
"title" : "Lerp Mode" ,
2022-07-22 19:41:04 +02:00
"description" : "UNDOCUMENTED." ,
2021-11-16 13:02:32 +01:00
"$comment" : "UNDOCUMENTED" ,
"enum" : [ "linear" , "catmullrom" ]
} ,
"pre" : {
"title" : "Pre" ,
2022-07-22 19:41:04 +02:00
"description" : "UNDOCUMENTED." ,
2021-11-16 13:02:32 +01:00
"$comment" : "UNDOCUMENTED" ,
"$ref" : "#/definitions/RotationV3"
} ,
"post" : {
"title" : "Pre" ,
2022-07-22 19:41:04 +02:00
"description" : "UNDOCUMENTED." ,
2021-11-16 13:02:32 +01:00
"$comment" : "UNDOCUMENTED" ,
"$ref" : "#/definitions/RotationV3"
}
}
}
]
}
}
]
} ,
"relative_to" : {
"title" : "Relative To" ,
2022-07-22 19:41:04 +02:00
"description" : "If set, makes the bone rotation relative to the entity instead of the bone's parent." ,
2021-11-16 13:02:32 +01:00
"properties" : {
"rotation" : {
"title" : "Rotation" ,
2022-07-22 19:41:04 +02:00
"description" : "If set, makes the bone rotation relative to the entity instead of the bone's parent." ,
2021-11-16 13:02:32 +01:00
"type" : "string"
}
}
} ,
"scale" : {
"title" : "Scale" ,
2022-07-22 19:41:04 +02:00
"description" : "UNDOCUMENTED." ,
2021-11-16 13:02:32 +01:00
"$comment" : "UNDOCUMENTED" ,
"oneOf" : [
2022-07-22 19:41:04 +02:00
{ "$ref" : "../../molang/number.json" , "description" : "Uniform scale." } ,
2021-11-16 13:02:32 +01:00
{ "$ref" : "#/definitions/ScaleV3" } ,
{
"type" : "object" ,
"propertyNames" : { "pattern" : "^(\\d+\\.\\d+|\\d+)$" , "examples" : [ "0.0" , "1.0" ] } ,
"additionalProperties" : {
"title" : "Timeline Object" ,
2022-07-22 19:41:04 +02:00
"description" : "A single point in time." ,
2021-11-18 14:18:27 +01:00
"oneOf" : [
2022-07-22 19:41:04 +02:00
{ "$ref" : "../../molang/number.json" , "description" : "Uniform rotation." } ,
2021-11-18 14:18:27 +01:00
{
"type" : "array" ,
2022-07-22 19:41:04 +02:00
"description" : "UNDOCUMENTED." ,
2021-11-16 13:02:32 +01:00
"$comment" : "UNDOCUMENTED" ,
2021-11-18 14:18:27 +01:00
"$ref" : "#/definitions/ScaleV3"
2021-11-16 13:02:32 +01:00
} ,
2021-11-18 14:18:27 +01:00
{
"additionalProperties" : false ,
"type" : "object" ,
"properties" : {
"lerp_mode" : {
"type" : "string" ,
"title" : "Lerp Mode" ,
2022-07-22 19:41:04 +02:00
"description" : "UNDOCUMENTED." ,
2021-11-18 14:18:27 +01:00
"$comment" : "UNDOCUMENTED" ,
"enum" : [ "linear" , "catmullrom" ]
} ,
"pre" : {
"title" : "Pre" ,
2022-07-22 19:41:04 +02:00
"description" : "UNDOCUMENTED." ,
2021-11-18 14:18:27 +01:00
"$comment" : "UNDOCUMENTED" ,
"$ref" : "#/definitions/ScaleV3"
} ,
"post" : {
"title" : "Pre" ,
2022-07-22 19:41:04 +02:00
"description" : "UNDOCUMENTED." ,
2021-11-18 14:18:27 +01:00
"$comment" : "UNDOCUMENTED" ,
"$ref" : "#/definitions/ScaleV3"
}
}
}
]
2021-11-16 13:02:32 +01:00
}
}
]
}
}
}
} ,
"loop" : {
"title" : "Loop" ,
2022-07-22 19:41:04 +02:00
"description" : "Should this animation stop, loop, or stay on the last frame when finished (true, false, hold_on_last_frame)." ,
2021-11-16 13:02:32 +01:00
"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." ,
2021-11-16 13:06:51 +01:00
"$ref" : "../../molang/number.json"
2021-11-16 13:02:32 +01:00
} ,
"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" ,
2022-07-22 19:41:04 +02:00
"description" : "UNDOCUMENTED." ,
2021-11-16 13:02:32 +01:00
"$comment" : "UNDOCUMENTED" ,
"type" : "object" ,
"propertyNames" : { "pattern" : "^(\\d+\\.\\d+|\\d+)$" , "examples" : [ "0.0" , "1.0" ] } ,
"examples" : [ { "0.0" : { } } ] ,
"additionalProperties" : {
"title" : "Timeline Object" ,
2022-07-22 19:41:04 +02:00
"description" : "A single point in time." ,
2021-11-16 13:02:32 +01:00
"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." ,
2021-11-16 13:06:51 +01:00
"$ref" : "../../molang/number.json"
2021-11-16 13:02:32 +01:00
} ,
"sound_effects" : {
"title" : "Sound Effect" ,
2022-07-22 19:41:04 +02:00
"description" : "UNDOCUMENTED." ,
2021-11-16 13:02:32 +01:00
"$comment" : "UNDOCUMENTED" ,
"type" : "object" ,
"propertyNames" : { "pattern" : "^(\\d+\\.\\d+|\\d+)$" , "examples" : [ "0.0" , "1.0" ] } ,
"additionalProperties" : {
"title" : "Timeline Object" ,
2022-07-22 19:41:04 +02:00
"description" : "A single point in time." ,
2021-11-16 13:02:32 +01:00
"oneOf" : [
{ "type" : "object" , "$ref" : "#/definitions/SoundEffect" } ,
{ "type" : "array" , "items" : { "$ref" : "#/definitions/SoundEffect" } }
]
}
} ,
"timeline" : {
"title" : "Timeline" ,
2022-07-22 19:41:04 +02:00
"description" : "The time line." ,
2021-11-16 13:02:32 +01:00
"type" : "object" ,
"propertyNames" : { "pattern" : "^(\\d+\\.\\d+|\\d+)$" , "examples" : [ "0.0" , "1.0" ] } ,
2022-01-09 12:05:54 +01:00
"examples" : [ { "0.0" : { } } ] ,
2021-11-16 13:02:32 +01:00
"additionalProperties" : {
"oneOf" : [
2022-07-22 19:41:04 +02:00
{ "type" : "string" , "title" : "Molang" , "description" : "Variable definition." , "pattern" : "^(v|variable)\\..*=.*;$" } ,
2021-11-16 13:02:32 +01:00
{
"type" : "array" ,
"title" : "Collection Timelime Items" ,
2022-07-22 19:41:04 +02:00
"items" : { "type" : "string" , "title" : "Molang" , "description" : "Variable definition." , "pattern" : "^(v|variable)\\..*=.*;$" }
2021-11-16 13:02:32 +01:00
}
]
}
}
}
}
}
}
2021-06-06 10:07:19 +00:00
}