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.animation_controller" ,
"examples" : [
{
2021-10-11 16:51:59 +02:00
"format_version" : "" ,
2021-06-06 10:07:19 +00:00
"animation_controllers" : {
"controller.animation.example" : {
"states" : {
"default" : { "transitions" : [ { "state_1" : "query.is_baby" } ] } ,
"state_1" : { "animations" : [ "state_1" ] , "transitions" : [ { "default" : "query.all_animations_finished" } ] }
}
}
}
}
] ,
2021-10-11 16:51:59 +02:00
"type" : "object" ,
"title" : "Animation Controller" ,
"description" : "UNDOCUMENTED" ,
"$comment" : "UNDOCUMENTED" ,
"definitions" : {
"animationspec" : {
"anyOf" : [
{ "title" : "Animation Specification" , "description" : "A single string that specifies which animation there are" , "type" : "string" } ,
{
"type" : "object" ,
"title" : "Animation Specification" ,
"description" : "A object specification on how to transition" ,
"maxProperties" : 1 ,
"minProperties" : 1 ,
"additionalProperties" : {
"oneOf" : [
2021-10-11 18:39:23 +02:00
{ "type" : "string" , "$ref" : "../../molang/string.json" } ,
2021-10-11 16:51:59 +02:00
{ "type" : "number" , "description" : "A blend weight" }
]
}
}
]
} ,
"particle_effect_spec" : {
"additionalProperties" : false ,
"type" : "object" ,
"required" : [ "effect" ] ,
"properties" : {
"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
} ,
"effect" : { "type" : "string" , "title" : "Effect" , "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" : {
"type" : "string" ,
"title" : "Pre Effect Script" ,
"description" : "A molang script that will be run when the particle emitter is initialized" ,
"pattern" : "^.+;$"
}
}
2021-06-06 10:07:19 +00:00
} ,
2021-10-11 16:51:59 +02:00
"commands" : { "type" : "string" , "description" : "The event or commands to execute" , "pattern" : "^(@s .+|/.+)$" }
} ,
"required" : [ "format_version" , "animation_controllers" ] ,
"additionalProperties" : false ,
"properties" : {
"format_version" : { "$ref" : "../../general/format_version.json" } ,
"animation_controllers" : {
"type" : "object" ,
"title" : "Animation Controllers Schema" ,
"description" : "The animation controllers schema for" ,
"propertyNames" : {
"pattern" : "^controller\\.animation\\.[a-z\\.]+" ,
"examples" : [ "controller.animation.example" , "controller.animation.example.foo" ]
} ,
"additionalProperties" : {
"additionalProperties" : false ,
"type" : "object" ,
"title" : "A Animation Controller" ,
"description" : "A single animation controller" ,
"required" : [ "states" ] ,
"minProperties" : 1 ,
"examples" : [
{
"controller.animation.some_name" : {
"initial_state" : "default" ,
"states" : {
"default" : { "transitions" : [ { "state_1" : "query.is_baby" } ] } ,
"state_1" : { "animations" : [ "state_1" ] , "transitions" : [ { "default" : "query.all_animations_finished" } ] }
}
}
}
] ,
"properties" : {
"states" : {
"title" : "States" ,
"description" : "The states of this animation controller" ,
"propertyNames" : { "pattern" : "[a-z\\.]+" , "examples" : [ "default" ] } ,
"minProperties" : 1 ,
"type" : "object" ,
"additionalProperties" : {
"additionalProperties" : false ,
"title" : "Animation State" ,
"description" : "Animation state" ,
"type" : "object" ,
"properties" : {
"animations" : {
"title" : "Animations" ,
"description" : "The animations definition for" ,
"type" : "array" ,
"items" : { "$ref" : "#/definitions/animationspec" , "title" : "Animations" }
} ,
"blend_transition" : {
"title" : "Blend Transition" ,
"oneOf" : [
{
"type" : "number" ,
"description" : "A short-hand version of blend_out that simply sets the amount of time to fade out if the animation is interrupted"
} ,
{
"type" : "object" ,
"description" : "Specifies the cross-fade time in seconds when transitioning to another state" ,
"additionalProperties" : {
"type" : "number" ,
"description" : "Mapping of time since the animation was canceled, to the blend value at that time. A default key of time=0 to a blend value of 1.0 is provided if any other key is set and a blend value at time=0 hasn't already been set."
}
}
]
} ,
"blend_via_shortest_path" : {
"description" : "When blending a transition to another state, animate each euler axis through the shortest rotation, instead of by value" ,
"type" : "boolean" ,
"title" : "Blend Via Shortest Path"
} ,
"particle_effects" : {
"description" : "The effects to be emitted" ,
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/particle_effect_spec" ,
"description" : "UNDOCUMENTED: particle effects" ,
"title" : "Particle Effects"
} ,
"title" : "Particle Effects"
} ,
"sound_effects" : {
"type" : "array" ,
"description" : "Collection of sounds to trigger on entry to this animation state." ,
"items" : {
"type" : "object" ,
"additionalProperties" : false ,
"required" : [ "effect" ] ,
"properties" : {
"effect" : {
"description" : "Valid sound effect names should be listed in the entity's resource_definition json file." ,
"type" : "string"
}
}
}
} ,
"transitions" : {
"title" : "Transition" ,
"description" : "The transition definition for" ,
"minProperties" : 1 ,
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/animationspec" ,
"description" : "The specification on when to transition to a new state" ,
"title" : "Transitions"
}
} ,
"variables" : {
"type" : "object" ,
"additionalProperties" : {
"additionalProperties" : false ,
"type" : "object" ,
"required" : [ "input" ] ,
"properties" : {
2021-10-11 18:39:23 +02:00
"input" : { "$ref" : "../../molang/number.json" } ,
2021-10-11 16:51:59 +02:00
"remap_curve" : {
"title" : "Remap Curve" ,
"type" : "object" ,
"additionalProperties" : { "propertyNames" : { "pattern" : "^([\\-\\+0-9]+|[\\-\\+0-9]+.[0-9]+)$" } , "type" : "number" }
}
}
}
} ,
"on_entry" : {
"title" : "On Entry" ,
"description" : "Sets molang on data on entry" ,
"$comment" : "UNDOCUMENTED" ,
"type" : "array" ,
"items" : { "pattern" : "^.+=.+;$" , "title" : "Molang" , "description" : "UNDOCUMENTED" , "$comment" : "UNDOCUMENTED" , "type" : "string" }
} ,
"on_exit" : {
"title" : "On Exit" ,
"description" : "Sets molang on data on exit" ,
"$comment" : "UNDOCUMENTED" ,
"type" : "array" ,
"items" : { "pattern" : "^.+=.+;$" , "title" : "Molang" , "description" : "UNDOCUMENTED" , "$comment" : "UNDOCUMENTED" , "type" : "string" }
}
}
}
} ,
"initial_state" : {
"type" : "string" ,
"description" : "The state to start with, if not specified state at position 0 in the array is used" ,
"title" : "Initial State"
}
}
}
}
}
2021-06-06 10:07:19 +00:00
}