{
  "format_version": "1.10.0",
  "animation_controllers": {
    "controller.animation.silverlabs_nat.moose.move": {
      "initial_state": "idle",
      "states": {
        "idle": {
          "animations": [
            { "idle": "!q.is_baby" },
            { "baby_idle": "q.is_baby" },
            "look_at_target"
          ],
          "blend_transition": 0.2,
          "blend_via_shortest_path": true,
          "transitions": [
            {
              "sit": "q.is_sitting"
            },
            {
              "run": "v.is_running"
            },
            {
              "walk": "v.is_walking"
            },
            {
              "belling": "v.is_belling"
            }
          ]
        },
        "walk": {
          "animations": [
            { "walk": "!q.is_baby" },
            { "baby_walk": "q.is_baby" },
            "look_at_target"
          ],
          "blend_transition": 0.2,
          "blend_via_shortest_path": true,
          "transitions": [
            {
              "sit": "q.is_sitting"
            },
            {
              "idle": "v.is_idling"
            },
            {
              "run": "v.is_running"
            },
            {
              "belling": "v.is_belling"
            }
          ]
        },
        "run": {
          "animations": [
            { "run": "!q.is_baby" },
            { "baby_run": "q.is_baby" },
            "look_at_target"
          ],
          "blend_transition": 0.2,
          "blend_via_shortest_path": true,
          "transitions": [
            {
              "sit": "q.is_sitting"
            },
            {
              "idle": "v.is_idling"
            },
            {
              "walk": "v.is_walking"
            },
            {
              "belling": "v.is_belling"
            }
          ]
        },
        "belling": {
          "animations": [
            "bellow"
          ],
          "blend_transition": 0.2,
          "blend_via_shortest_path": true,
          "transitions": [
            {
              "sit": "q.is_sitting"
            },
            {
              "idle": "!v.is_belling || (q.all_animations_finished && v.is_idling)"
            },
            {
              "run": "!v.is_belling || (q.all_animations_finished && v.is_running)"
            },
            {
              "walk": "!v.is_belling || (q.all_animations_finished && v.is_walking)"
            }
          ]
        },
        "sit": {
          "animations": [
            { "sit": "!q.is_baby" },
            { "baby_sit": "q.is_baby" },
            "look_at_target"
          ],
          "on_entry": [
            "v.sit_start_time = q.life_time;"
          ],
          "blend_transition": 0.0,
          "blend_via_shortest_path": true,
          "transitions": [
            {
              "sit_loop": "q.is_sitting && (q.is_baby ? q.state_time >= 0.7917 : q.state_time >= 1)"
            },
            {
              "unsit": "!q.is_sitting && q.is_baby"
            },
            {
              "idle": "!q.is_sitting && !q.is_baby && v.is_idling"
            },
            {
              "walk": "!q.is_sitting && !q.is_baby && v.is_walking"
            },
            {
              "run": "!q.is_sitting && !q.is_baby && v.is_running"
            }
          ]
        },
        "sit_loop": {
          "animations": [
            { "sit_idle": "!q.is_baby" },
            { "baby_sit_idle": "q.is_baby" },
            "look_at_target"
          ],
          "blend_transition": 0.0,
          "blend_via_shortest_path": true,
          "transitions": [
            {
              "unsit": "!q.is_sitting"
            },
            {
              "idle": "!q.is_sitting && !q.is_baby && v.is_idling"
            },
            {
              "walk": "!q.is_sitting && !q.is_baby && v.is_walking"
            },
            {
              "run": "!q.is_sitting && !q.is_baby && v.is_running"
            }
          ]
        },
        "unsit": {
          "animations": [
            { "unsit": "!q.is_baby" },
            { "baby_unsit": "q.is_baby" },
            "look_at_target"
          ],
          "on_entry": [
            "v.unsit_start_time = q.life_time;"
          ],
          "blend_transition": 0.2,
          "blend_via_shortest_path": true,
          "transitions": [
            {
              "walk": "(q.is_baby ? q.state_time >= 0.9167 : q.state_time >= 1.2083) && v.is_walking"
            },
            {
              "run": "(q.is_baby ? q.state_time >= 0.9167 : q.state_time >= 1.2083) && v.is_running"
            },
            {
              "idle": "(q.is_baby ? q.state_time >= 0.9167 : q.state_time >= 1.2083)"
            }
          ]
        }
      }
    },
    "controller.animation.silverlabs_nat.moose.attack": {
      "initial_state": "default",
      "states": {
        "default": {
          "blend_transition": 0.2,
          "blend_via_shortest_path": true,
          "transitions": [
            {
              "attack": "v.is_attacking"
            }
          ]
        },
        "attack": {
          "blend_transition": 0.2,
          "blend_via_shortest_path": true,
          "animations": [
            "attack"
          ],
          "transitions": [
            {
              "default": "!v.is_attacking && q.all_animations_finished"
            }
          ]
        }
      }
    }
  }
}
