diff --git a/demo/demo/agents/agent_base.tscn b/demo/demo/agents/agent_base.tscn index 1ce6383..6572eae 100644 --- a/demo/demo/agents/agent_base.tscn +++ b/demo/demo/agents/agent_base.tscn @@ -1,14 +1,27 @@ -[gd_scene load_steps=13 format=3 uid="uid://ooigbfhfy4wa"] +[gd_scene load_steps=21 format=3 uid="uid://ooigbfhfy4wa"] [ext_resource type="Texture2D" uid="uid://dlo1ine6p5di4" path="res://demo/assets/agent_bobby.png" id="1_1u51b"] +[ext_resource type="Script" path="res://demo/agents/scripts/agent_base.gd" id="1_n8vy2"] [ext_resource type="Texture2D" uid="uid://dj4oayt5ttvh8" path="res://demo/assets/fx.png" id="2_lv102"] +[ext_resource type="Script" path="res://demo/agents/scripts/health.gd" id="4_qwtrf"] +[ext_resource type="Script" path="res://demo/agents/scripts/hitbox.gd" id="5_taq6b"] +[ext_resource type="Script" path="res://demo/agents/scripts/hurtbox.gd" id="6_jnvxm"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_2k81i"] +size = Vector2(100, 35) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_26abe"] +size = Vector2(70, 35) + +[sub_resource type="CircleShape2D" id="CircleShape2D_so8wt"] +radius = 78.7753 [sub_resource type="Animation" id="Animation_nvm4d"] resource_name = "RESET" tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("Rig/LegR:position") +tracks/0/path = NodePath("Root/Rig/LegR:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { @@ -20,7 +33,7 @@ tracks/0/keys = { tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("Rig/LegR:rotation") +tracks/1/path = NodePath("Root/Rig/LegR:rotation") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { @@ -32,7 +45,7 @@ tracks/1/keys = { tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true -tracks/2/path = NodePath("Rig/LegR:scale") +tracks/2/path = NodePath("Root/Rig/LegR:scale") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { @@ -44,19 +57,19 @@ tracks/2/keys = { tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true -tracks/3/path = NodePath("Rig:position") +tracks/3/path = NodePath("Root/Rig/Body:position") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, -"values": [Vector2(0, 0)] +"values": [Vector2(5, 53)] } tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true -tracks/4/path = NodePath("Rig:rotation") +tracks/4/path = NodePath("Root/Rig/Body:rotation") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { @@ -68,7 +81,7 @@ tracks/4/keys = { tracks/5/type = "value" tracks/5/imported = false tracks/5/enabled = true -tracks/5/path = NodePath("Rig:scale") +tracks/5/path = NodePath("Root/Rig/Body:scale") tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/keys = { @@ -80,19 +93,19 @@ tracks/5/keys = { tracks/6/type = "value" tracks/6/imported = false tracks/6/enabled = true -tracks/6/path = NodePath("Rig/Body:position") +tracks/6/path = NodePath("Root/Rig/Body/Hat:position") tracks/6/interp = 1 tracks/6/loop_wrap = true tracks/6/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, -"values": [Vector2(5, 53)] +"values": [Vector2(2, -91)] } tracks/7/type = "value" tracks/7/imported = false tracks/7/enabled = true -tracks/7/path = NodePath("Rig/Body:rotation") +tracks/7/path = NodePath("Root/Rig/Body/Hat:rotation") tracks/7/interp = 1 tracks/7/loop_wrap = true tracks/7/keys = { @@ -104,7 +117,7 @@ tracks/7/keys = { tracks/8/type = "value" tracks/8/imported = false tracks/8/enabled = true -tracks/8/path = NodePath("Rig/Body:scale") +tracks/8/path = NodePath("Root/Rig/Body/Hat:scale") tracks/8/interp = 1 tracks/8/loop_wrap = true tracks/8/keys = { @@ -116,19 +129,19 @@ tracks/8/keys = { tracks/9/type = "value" tracks/9/imported = false tracks/9/enabled = true -tracks/9/path = NodePath("Rig/Body/Hat:position") +tracks/9/path = NodePath("Root/Rig/Body/HandL:position") tracks/9/interp = 1 tracks/9/loop_wrap = true tracks/9/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, -"values": [Vector2(2, -91)] +"values": [Vector2(-60, -53)] } tracks/10/type = "value" tracks/10/imported = false tracks/10/enabled = true -tracks/10/path = NodePath("Rig/Body/Hat:rotation") +tracks/10/path = NodePath("Root/Rig/Body/HandL:rotation") tracks/10/interp = 1 tracks/10/loop_wrap = true tracks/10/keys = { @@ -140,7 +153,7 @@ tracks/10/keys = { tracks/11/type = "value" tracks/11/imported = false tracks/11/enabled = true -tracks/11/path = NodePath("Rig/Body/Hat:scale") +tracks/11/path = NodePath("Root/Rig/Body/HandL:scale") tracks/11/interp = 1 tracks/11/loop_wrap = true tracks/11/keys = { @@ -152,19 +165,19 @@ tracks/11/keys = { tracks/12/type = "value" tracks/12/imported = false tracks/12/enabled = true -tracks/12/path = NodePath("Rig/Body/HandL:position") +tracks/12/path = NodePath("Root/Rig/Body/HandR:position") tracks/12/interp = 1 tracks/12/loop_wrap = true tracks/12/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, -"values": [Vector2(-60, -53)] +"values": [Vector2(51, -51)] } tracks/13/type = "value" tracks/13/imported = false tracks/13/enabled = true -tracks/13/path = NodePath("Rig/Body/HandL:rotation") +tracks/13/path = NodePath("Root/Rig/Body/HandR:rotation") tracks/13/interp = 1 tracks/13/loop_wrap = true tracks/13/keys = { @@ -176,7 +189,7 @@ tracks/13/keys = { tracks/14/type = "value" tracks/14/imported = false tracks/14/enabled = true -tracks/14/path = NodePath("Rig/Body/HandL:scale") +tracks/14/path = NodePath("Root/Rig/Body/HandR:scale") tracks/14/interp = 1 tracks/14/loop_wrap = true tracks/14/keys = { @@ -188,19 +201,19 @@ tracks/14/keys = { tracks/15/type = "value" tracks/15/imported = false tracks/15/enabled = true -tracks/15/path = NodePath("Rig/Body/HandR:position") +tracks/15/path = NodePath("Root/Rig/LegL:position") tracks/15/interp = 1 tracks/15/loop_wrap = true tracks/15/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, -"values": [Vector2(51, -51)] +"values": [Vector2(-29, 65)] } tracks/16/type = "value" tracks/16/imported = false tracks/16/enabled = true -tracks/16/path = NodePath("Rig/Body/HandR:rotation") +tracks/16/path = NodePath("Root/Rig/LegL:rotation") tracks/16/interp = 1 tracks/16/loop_wrap = true tracks/16/keys = { @@ -212,7 +225,7 @@ tracks/16/keys = { tracks/17/type = "value" tracks/17/imported = false tracks/17/enabled = true -tracks/17/path = NodePath("Rig/Body/HandR:scale") +tracks/17/path = NodePath("Root/Rig/LegL:scale") tracks/17/interp = 1 tracks/17/loop_wrap = true tracks/17/keys = { @@ -224,31 +237,31 @@ tracks/17/keys = { tracks/18/type = "value" tracks/18/imported = false tracks/18/enabled = true -tracks/18/path = NodePath("Rig/LegL:position") +tracks/18/path = NodePath("Root/FX/Cloud:visible") tracks/18/interp = 1 tracks/18/loop_wrap = true tracks/18/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(-29, 65)] +"update": 1, +"values": [false] } tracks/19/type = "value" tracks/19/imported = false tracks/19/enabled = true -tracks/19/path = NodePath("Rig/LegL:rotation") +tracks/19/path = NodePath("Root/FX/Cloud:modulate") tracks/19/interp = 1 tracks/19/loop_wrap = true tracks/19/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, -"values": [0.0] +"values": [Color(1, 1, 1, 1)] } tracks/20/type = "value" tracks/20/imported = false tracks/20/enabled = true -tracks/20/path = NodePath("Rig/LegL:scale") +tracks/20/path = NodePath("Root/FX/Cloud:scale") tracks/20/interp = 1 tracks/20/loop_wrap = true tracks/20/keys = { @@ -257,54 +270,6 @@ tracks/20/keys = { "update": 0, "values": [Vector2(1, 1)] } -tracks/21/type = "value" -tracks/21/imported = false -tracks/21/enabled = true -tracks/21/path = NodePath("Rig:modulate") -tracks/21/interp = 1 -tracks/21/loop_wrap = true -tracks/21/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(1, 1, 1, 1)] -} -tracks/22/type = "value" -tracks/22/imported = false -tracks/22/enabled = true -tracks/22/path = NodePath("Rig/FX/Cloud:visible") -tracks/22/interp = 1 -tracks/22/loop_wrap = true -tracks/22/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 1, -"values": [false] -} -tracks/23/type = "value" -tracks/23/imported = false -tracks/23/enabled = true -tracks/23/path = NodePath("Rig/FX/Cloud:modulate") -tracks/23/interp = 1 -tracks/23/loop_wrap = true -tracks/23/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(1, 1, 1, 1)] -} -tracks/24/type = "value" -tracks/24/imported = false -tracks/24/enabled = true -tracks/24/path = NodePath("Rig/FX/Cloud:scale") -tracks/24/interp = 1 -tracks/24/loop_wrap = true -tracks/24/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(1, 1)] -} [sub_resource type="Animation" id="Animation_g7a0r"] resource_name = "attack" @@ -313,175 +278,175 @@ step = 0.05 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("Rig:position") -tracks/0/interp = 1 +tracks/0/path = NodePath("Root/Rig/Body:position") +tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(0, 0)] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("Rig:rotation") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [0.0] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("Rig:scale") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(1, 1)] -} -tracks/3/type = "value" -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/path = NodePath("Rig/Body:position") -tracks/3/interp = 2 -tracks/3/loop_wrap = true -tracks/3/keys = { "times": PackedFloat32Array(0, 0.2, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector2(5, 53), Vector2(-5, 40), Vector2(-5, 40)] } -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("Rig/Body:rotation") -tracks/4/interp = 2 -tracks/4/loop_wrap = true -tracks/4/keys = { +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Root/Rig/Body:rotation") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/keys = { "times": PackedFloat32Array(0, 0.2, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [0.0, -0.349066, 0.436332] } -tracks/5/type = "value" -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/path = NodePath("Rig/Body:scale") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/keys = { +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Root/Rig/Body:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { "times": PackedFloat32Array(0, 0.2, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector2(1, 1), Vector2(0.9, 1.1), Vector2(1.1, 0.9)] } -tracks/6/type = "value" -tracks/6/imported = false -tracks/6/enabled = true -tracks/6/path = NodePath("Rig/Body/Hat:position") -tracks/6/interp = 1 -tracks/6/loop_wrap = true -tracks/6/keys = { +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Root/Rig/Body/Hat:position") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(2, -91)] } -tracks/7/type = "value" -tracks/7/imported = false -tracks/7/enabled = true -tracks/7/path = NodePath("Rig/Body/Hat:rotation") -tracks/7/interp = 1 -tracks/7/loop_wrap = true -tracks/7/keys = { +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Root/Rig/Body/Hat:rotation") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [0.0] } -tracks/8/type = "value" -tracks/8/imported = false -tracks/8/enabled = true -tracks/8/path = NodePath("Rig/Body/Hat:scale") -tracks/8/interp = 1 -tracks/8/loop_wrap = true -tracks/8/keys = { +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Root/Rig/Body/Hat:scale") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(1, 1)] } -tracks/9/type = "value" -tracks/9/imported = false -tracks/9/enabled = true -tracks/9/path = NodePath("Rig/Body/HandL:position") -tracks/9/interp = 2 -tracks/9/loop_wrap = true -tracks/9/keys = { +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Root/Rig/Body/HandL:position") +tracks/6/interp = 2 +tracks/6/loop_wrap = true +tracks/6/keys = { "times": PackedFloat32Array(0, 0.2, 0.25, 0.3), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Vector2(-60, -53), Vector2(-93.4894, -42.3521), Vector2(6.40698, 1.6281), Vector2(68.5276, -75.9627)] } -tracks/10/type = "value" -tracks/10/imported = false -tracks/10/enabled = true -tracks/10/path = NodePath("Rig/Body/HandL:rotation") -tracks/10/interp = 2 -tracks/10/loop_wrap = true -tracks/10/keys = { +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Root/Rig/Body/HandL:rotation") +tracks/7/interp = 2 +tracks/7/loop_wrap = true +tracks/7/keys = { "times": PackedFloat32Array(0, 0.2, 0.25, 0.3), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [0.0, 1.70101, 0.0, 0.0] } +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Root/Rig/Body/HandL:scale") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0, 0.2, 0.3), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(1, 1), Vector2(2, 2), Vector2(3, 3)] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Root/Rig/Body/HandR:position") +tracks/9/interp = 2 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0, 0.2, 0.3), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(51, -51), Vector2(-1.40495, -52.6598), Vector2(-66.8689, -27.8787)] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Root/Rig/Body/HandR:rotation") +tracks/10/interp = 2 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0, 0.2, 0.3), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, 0.0, 0.0] +} tracks/11/type = "value" tracks/11/imported = false tracks/11/enabled = true -tracks/11/path = NodePath("Rig/Body/HandL:scale") +tracks/11/path = NodePath("Root/Rig/Body/HandR:scale") tracks/11/interp = 1 tracks/11/loop_wrap = true tracks/11/keys = { "times": PackedFloat32Array(0, 0.2, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [Vector2(1, 1), Vector2(2, 2), Vector2(3, 3)] +"values": [Vector2(1, 1), Vector2(1, 1), Vector2(1, 1)] } tracks/12/type = "value" tracks/12/imported = false tracks/12/enabled = true -tracks/12/path = NodePath("Rig/Body/HandR:position") +tracks/12/path = NodePath("Root/Rig/LegL:position") tracks/12/interp = 2 tracks/12/loop_wrap = true tracks/12/keys = { "times": PackedFloat32Array(0, 0.2, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [Vector2(51, -51), Vector2(-1.40495, -52.6598), Vector2(-66.8689, -27.8787)] +"values": [Vector2(-29, 65), Vector2(-57, 59), Vector2(37, 63)] } tracks/13/type = "value" tracks/13/imported = false tracks/13/enabled = true -tracks/13/path = NodePath("Rig/Body/HandR:rotation") +tracks/13/path = NodePath("Root/Rig/LegL:rotation") tracks/13/interp = 2 tracks/13/loop_wrap = true tracks/13/keys = { "times": PackedFloat32Array(0, 0.2, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [0.0, 0.0, 0.0] +"values": [0.0, 0.706805, -0.742333] } tracks/14/type = "value" tracks/14/imported = false tracks/14/enabled = true -tracks/14/path = NodePath("Rig/Body/HandR:scale") +tracks/14/path = NodePath("Root/Rig/LegL:scale") tracks/14/interp = 1 tracks/14/loop_wrap = true tracks/14/keys = { @@ -493,31 +458,31 @@ tracks/14/keys = { tracks/15/type = "value" tracks/15/imported = false tracks/15/enabled = true -tracks/15/path = NodePath("Rig/LegL:position") +tracks/15/path = NodePath("Root/Rig/LegR:position") tracks/15/interp = 2 tracks/15/loop_wrap = true tracks/15/keys = { "times": PackedFloat32Array(0, 0.2, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [Vector2(-29, 65), Vector2(-57, 59), Vector2(37, 63)] +"values": [Vector2(31, 65), Vector2(31, 65), Vector2(-45, 39)] } tracks/16/type = "value" tracks/16/imported = false tracks/16/enabled = true -tracks/16/path = NodePath("Rig/LegL:rotation") +tracks/16/path = NodePath("Root/Rig/LegR:rotation") tracks/16/interp = 2 tracks/16/loop_wrap = true tracks/16/keys = { "times": PackedFloat32Array(0, 0.2, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [0.0, 0.706805, -0.742333] +"values": [0.0, -0.477383, 1.06217] } tracks/17/type = "value" tracks/17/imported = false tracks/17/enabled = true -tracks/17/path = NodePath("Rig/LegL:scale") +tracks/17/path = NodePath("Root/Rig/LegR:scale") tracks/17/interp = 1 tracks/17/loop_wrap = true tracks/17/keys = { @@ -529,58 +494,10 @@ tracks/17/keys = { tracks/18/type = "value" tracks/18/imported = false tracks/18/enabled = true -tracks/18/path = NodePath("Rig/LegR:position") -tracks/18/interp = 2 +tracks/18/path = NodePath("Root/FX/Cloud:visible") +tracks/18/interp = 1 tracks/18/loop_wrap = true tracks/18/keys = { -"times": PackedFloat32Array(0, 0.2, 0.3), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Vector2(31, 65), Vector2(31, 65), Vector2(-45, 39)] -} -tracks/19/type = "value" -tracks/19/imported = false -tracks/19/enabled = true -tracks/19/path = NodePath("Rig/LegR:rotation") -tracks/19/interp = 2 -tracks/19/loop_wrap = true -tracks/19/keys = { -"times": PackedFloat32Array(0, 0.2, 0.3), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [0.0, -0.477383, 1.06217] -} -tracks/20/type = "value" -tracks/20/imported = false -tracks/20/enabled = true -tracks/20/path = NodePath("Rig/LegR:scale") -tracks/20/interp = 1 -tracks/20/loop_wrap = true -tracks/20/keys = { -"times": PackedFloat32Array(0, 0.2, 0.3), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Vector2(1, 1), Vector2(1, 1), Vector2(1, 1)] -} -tracks/21/type = "value" -tracks/21/imported = false -tracks/21/enabled = true -tracks/21/path = NodePath("Rig:modulate") -tracks/21/interp = 1 -tracks/21/loop_wrap = true -tracks/21/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(1, 1, 1, 1)] -} -tracks/22/type = "value" -tracks/22/imported = false -tracks/22/enabled = true -tracks/22/path = NodePath("Rig/FX/Cloud:visible") -tracks/22/interp = 1 -tracks/22/loop_wrap = true -tracks/22/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, @@ -594,175 +511,175 @@ step = 0.05 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("Rig:position") -tracks/0/interp = 1 +tracks/0/path = NodePath("Root/Rig/Body:position") +tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(0, 0)] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("Rig:rotation") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [0.0] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("Rig:scale") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(1, 1)] -} -tracks/3/type = "value" -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/path = NodePath("Rig/Body:position") -tracks/3/interp = 2 -tracks/3/loop_wrap = true -tracks/3/keys = { "times": PackedFloat32Array(0, 0.2, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector2(5, 53), Vector2(-5, 40), Vector2(-5, 40)] } -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("Rig/Body:rotation") -tracks/4/interp = 2 -tracks/4/loop_wrap = true -tracks/4/keys = { +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Root/Rig/Body:rotation") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/keys = { "times": PackedFloat32Array(0, 0.2, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [0.0, -0.349066, 0.436332] } -tracks/5/type = "value" -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/path = NodePath("Rig/Body:scale") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/keys = { +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Root/Rig/Body:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { "times": PackedFloat32Array(0, 0.2, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector2(1, 1), Vector2(0.9, 1.1), Vector2(1.1, 0.9)] } -tracks/6/type = "value" -tracks/6/imported = false -tracks/6/enabled = true -tracks/6/path = NodePath("Rig/Body/Hat:position") -tracks/6/interp = 1 -tracks/6/loop_wrap = true -tracks/6/keys = { +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Root/Rig/Body/Hat:position") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(2, -91)] } -tracks/7/type = "value" -tracks/7/imported = false -tracks/7/enabled = true -tracks/7/path = NodePath("Rig/Body/Hat:rotation") -tracks/7/interp = 1 -tracks/7/loop_wrap = true -tracks/7/keys = { +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Root/Rig/Body/Hat:rotation") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [0.0] } -tracks/8/type = "value" -tracks/8/imported = false -tracks/8/enabled = true -tracks/8/path = NodePath("Rig/Body/Hat:scale") -tracks/8/interp = 1 -tracks/8/loop_wrap = true -tracks/8/keys = { +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Root/Rig/Body/Hat:scale") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(1, 1)] } -tracks/9/type = "value" -tracks/9/imported = false -tracks/9/enabled = true -tracks/9/path = NodePath("Rig/Body/HandL:position") -tracks/9/interp = 2 -tracks/9/loop_wrap = true -tracks/9/keys = { +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Root/Rig/Body/HandL:position") +tracks/6/interp = 2 +tracks/6/loop_wrap = true +tracks/6/keys = { "times": PackedFloat32Array(0, 0.2, 0.25, 0.3), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Vector2(-60, -53), Vector2(-93.4894, -42.3521), Vector2(6.40698, 1.6281), Vector2(68.5276, -75.9627)] } -tracks/10/type = "value" -tracks/10/imported = false -tracks/10/enabled = true -tracks/10/path = NodePath("Rig/Body/HandL:rotation") -tracks/10/interp = 2 -tracks/10/loop_wrap = true -tracks/10/keys = { +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Root/Rig/Body/HandL:rotation") +tracks/7/interp = 2 +tracks/7/loop_wrap = true +tracks/7/keys = { "times": PackedFloat32Array(0, 0.2, 0.25, 0.3), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [0.0, 1.70101, 0.0, 0.0] } +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Root/Rig/Body/HandL:scale") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0, 0.2, 0.3), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(1, 1), Vector2(2, 2), Vector2(3, 3)] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Root/Rig/Body/HandR:position") +tracks/9/interp = 2 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0, 0.2, 0.3), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(51, -51), Vector2(-1.40495, -52.6598), Vector2(-66.8689, -27.8787)] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Root/Rig/Body/HandR:rotation") +tracks/10/interp = 2 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0, 0.2, 0.3), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, 0.0, 0.0] +} tracks/11/type = "value" tracks/11/imported = false tracks/11/enabled = true -tracks/11/path = NodePath("Rig/Body/HandL:scale") +tracks/11/path = NodePath("Root/Rig/Body/HandR:scale") tracks/11/interp = 1 tracks/11/loop_wrap = true tracks/11/keys = { "times": PackedFloat32Array(0, 0.2, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [Vector2(1, 1), Vector2(2, 2), Vector2(3, 3)] +"values": [Vector2(1, 1), Vector2(1, 1), Vector2(1, 1)] } tracks/12/type = "value" tracks/12/imported = false tracks/12/enabled = true -tracks/12/path = NodePath("Rig/Body/HandR:position") +tracks/12/path = NodePath("Root/Rig/LegL:position") tracks/12/interp = 2 tracks/12/loop_wrap = true tracks/12/keys = { "times": PackedFloat32Array(0, 0.2, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [Vector2(51, -51), Vector2(-1.40495, -52.6598), Vector2(-66.8689, -27.8787)] +"values": [Vector2(-29, 65), Vector2(-57, 59), Vector2(37, 63)] } tracks/13/type = "value" tracks/13/imported = false tracks/13/enabled = true -tracks/13/path = NodePath("Rig/Body/HandR:rotation") +tracks/13/path = NodePath("Root/Rig/LegL:rotation") tracks/13/interp = 2 tracks/13/loop_wrap = true tracks/13/keys = { "times": PackedFloat32Array(0, 0.2, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [0.0, 0.0, 0.0] +"values": [0.0, 0.706805, -0.742333] } tracks/14/type = "value" tracks/14/imported = false tracks/14/enabled = true -tracks/14/path = NodePath("Rig/Body/HandR:scale") +tracks/14/path = NodePath("Root/Rig/LegL:scale") tracks/14/interp = 1 tracks/14/loop_wrap = true tracks/14/keys = { @@ -774,31 +691,31 @@ tracks/14/keys = { tracks/15/type = "value" tracks/15/imported = false tracks/15/enabled = true -tracks/15/path = NodePath("Rig/LegL:position") +tracks/15/path = NodePath("Root/Rig/LegR:position") tracks/15/interp = 2 tracks/15/loop_wrap = true tracks/15/keys = { "times": PackedFloat32Array(0, 0.2, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [Vector2(-29, 65), Vector2(-57, 59), Vector2(37, 63)] +"values": [Vector2(31, 65), Vector2(31, 65), Vector2(-45, 39)] } tracks/16/type = "value" tracks/16/imported = false tracks/16/enabled = true -tracks/16/path = NodePath("Rig/LegL:rotation") +tracks/16/path = NodePath("Root/Rig/LegR:rotation") tracks/16/interp = 2 tracks/16/loop_wrap = true tracks/16/keys = { "times": PackedFloat32Array(0, 0.2, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [0.0, 0.706805, -0.742333] +"values": [0.0, -0.477383, 1.06217] } tracks/17/type = "value" tracks/17/imported = false tracks/17/enabled = true -tracks/17/path = NodePath("Rig/LegL:scale") +tracks/17/path = NodePath("Root/Rig/LegR:scale") tracks/17/interp = 1 tracks/17/loop_wrap = true tracks/17/keys = { @@ -810,58 +727,10 @@ tracks/17/keys = { tracks/18/type = "value" tracks/18/imported = false tracks/18/enabled = true -tracks/18/path = NodePath("Rig/LegR:position") -tracks/18/interp = 2 +tracks/18/path = NodePath("Root/FX/Cloud:visible") +tracks/18/interp = 1 tracks/18/loop_wrap = true tracks/18/keys = { -"times": PackedFloat32Array(0, 0.2, 0.3), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Vector2(31, 65), Vector2(31, 65), Vector2(-45, 39)] -} -tracks/19/type = "value" -tracks/19/imported = false -tracks/19/enabled = true -tracks/19/path = NodePath("Rig/LegR:rotation") -tracks/19/interp = 2 -tracks/19/loop_wrap = true -tracks/19/keys = { -"times": PackedFloat32Array(0, 0.2, 0.3), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [0.0, -0.477383, 1.06217] -} -tracks/20/type = "value" -tracks/20/imported = false -tracks/20/enabled = true -tracks/20/path = NodePath("Rig/LegR:scale") -tracks/20/interp = 1 -tracks/20/loop_wrap = true -tracks/20/keys = { -"times": PackedFloat32Array(0, 0.2, 0.3), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Vector2(1, 1), Vector2(1, 1), Vector2(1, 1)] -} -tracks/21/type = "value" -tracks/21/imported = false -tracks/21/enabled = true -tracks/21/path = NodePath("Rig:modulate") -tracks/21/interp = 1 -tracks/21/loop_wrap = true -tracks/21/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(1, 1, 1, 1)] -} -tracks/22/type = "value" -tracks/22/imported = false -tracks/22/enabled = true -tracks/22/path = NodePath("Rig/FX/Cloud:visible") -tracks/22/interp = 1 -tracks/22/loop_wrap = true -tracks/22/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, @@ -875,7 +744,7 @@ step = 0.05 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("Rig/LegL:position") +tracks/0/path = NodePath("Root/Rig/LegL:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { @@ -887,7 +756,7 @@ tracks/0/keys = { tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("Rig/LegL:rotation") +tracks/1/path = NodePath("Root/Rig/LegL:rotation") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { @@ -899,7 +768,7 @@ tracks/1/keys = { tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true -tracks/2/path = NodePath("Rig/LegL:scale") +tracks/2/path = NodePath("Root/Rig/LegL:scale") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { @@ -911,7 +780,7 @@ tracks/2/keys = { tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true -tracks/3/path = NodePath("Rig/LegR:position") +tracks/3/path = NodePath("Root/Rig/LegR:position") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { @@ -923,7 +792,7 @@ tracks/3/keys = { tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true -tracks/4/path = NodePath("Rig/LegR:rotation") +tracks/4/path = NodePath("Root/Rig/LegR:rotation") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { @@ -935,7 +804,7 @@ tracks/4/keys = { tracks/5/type = "value" tracks/5/imported = false tracks/5/enabled = true -tracks/5/path = NodePath("Rig/LegR:scale") +tracks/5/path = NodePath("Root/Rig/LegR:scale") tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/keys = { @@ -947,7 +816,7 @@ tracks/5/keys = { tracks/6/type = "value" tracks/6/imported = false tracks/6/enabled = true -tracks/6/path = NodePath("Rig/Body:position") +tracks/6/path = NodePath("Root/Rig/Body:position") tracks/6/interp = 1 tracks/6/loop_wrap = true tracks/6/keys = { @@ -959,7 +828,7 @@ tracks/6/keys = { tracks/7/type = "value" tracks/7/imported = false tracks/7/enabled = true -tracks/7/path = NodePath("Rig/Body:rotation") +tracks/7/path = NodePath("Root/Rig/Body:rotation") tracks/7/interp = 1 tracks/7/loop_wrap = true tracks/7/keys = { @@ -971,7 +840,7 @@ tracks/7/keys = { tracks/8/type = "value" tracks/8/imported = false tracks/8/enabled = true -tracks/8/path = NodePath("Rig/Body:scale") +tracks/8/path = NodePath("Root/Rig/Body:scale") tracks/8/interp = 1 tracks/8/loop_wrap = true tracks/8/keys = { @@ -983,7 +852,7 @@ tracks/8/keys = { tracks/9/type = "value" tracks/9/imported = false tracks/9/enabled = true -tracks/9/path = NodePath("Rig/Body/Hat:position") +tracks/9/path = NodePath("Root/Rig/Body/Hat:position") tracks/9/interp = 1 tracks/9/loop_wrap = true tracks/9/keys = { @@ -995,7 +864,7 @@ tracks/9/keys = { tracks/10/type = "value" tracks/10/imported = false tracks/10/enabled = true -tracks/10/path = NodePath("Rig/Body/Hat:rotation") +tracks/10/path = NodePath("Root/Rig/Body/Hat:rotation") tracks/10/interp = 1 tracks/10/loop_wrap = true tracks/10/keys = { @@ -1007,7 +876,7 @@ tracks/10/keys = { tracks/11/type = "value" tracks/11/imported = false tracks/11/enabled = true -tracks/11/path = NodePath("Rig/Body/Hat:scale") +tracks/11/path = NodePath("Root/Rig/Body/Hat:scale") tracks/11/interp = 1 tracks/11/loop_wrap = true tracks/11/keys = { @@ -1019,7 +888,7 @@ tracks/11/keys = { tracks/12/type = "value" tracks/12/imported = false tracks/12/enabled = true -tracks/12/path = NodePath("Rig/Body/HandL:position") +tracks/12/path = NodePath("Root/Rig/Body/HandL:position") tracks/12/interp = 1 tracks/12/loop_wrap = true tracks/12/keys = { @@ -1031,7 +900,7 @@ tracks/12/keys = { tracks/13/type = "value" tracks/13/imported = false tracks/13/enabled = true -tracks/13/path = NodePath("Rig/Body/HandL:rotation") +tracks/13/path = NodePath("Root/Rig/Body/HandL:rotation") tracks/13/interp = 1 tracks/13/loop_wrap = true tracks/13/keys = { @@ -1043,7 +912,7 @@ tracks/13/keys = { tracks/14/type = "value" tracks/14/imported = false tracks/14/enabled = true -tracks/14/path = NodePath("Rig/Body/HandL:scale") +tracks/14/path = NodePath("Root/Rig/Body/HandL:scale") tracks/14/interp = 1 tracks/14/loop_wrap = true tracks/14/keys = { @@ -1055,7 +924,7 @@ tracks/14/keys = { tracks/15/type = "value" tracks/15/imported = false tracks/15/enabled = true -tracks/15/path = NodePath("Rig/Body/HandR:position") +tracks/15/path = NodePath("Root/Rig/Body/HandR:position") tracks/15/interp = 1 tracks/15/loop_wrap = true tracks/15/keys = { @@ -1067,7 +936,7 @@ tracks/15/keys = { tracks/16/type = "value" tracks/16/imported = false tracks/16/enabled = true -tracks/16/path = NodePath("Rig/Body/HandR:rotation") +tracks/16/path = NodePath("Root/Rig/Body/HandR:rotation") tracks/16/interp = 1 tracks/16/loop_wrap = true tracks/16/keys = { @@ -1079,7 +948,7 @@ tracks/16/keys = { tracks/17/type = "value" tracks/17/imported = false tracks/17/enabled = true -tracks/17/path = NodePath("Rig/Body/HandR:scale") +tracks/17/path = NodePath("Root/Rig/Body/HandR:scale") tracks/17/interp = 1 tracks/17/loop_wrap = true tracks/17/keys = { @@ -1091,82 +960,34 @@ tracks/17/keys = { tracks/18/type = "value" tracks/18/imported = false tracks/18/enabled = true -tracks/18/path = NodePath("Rig:position") -tracks/18/interp = 2 +tracks/18/path = NodePath("Root/FX/Cloud:visible") +tracks/18/interp = 1 tracks/18/loop_wrap = true tracks/18/keys = { -"times": PackedFloat32Array(0, 0.1, 0.2), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Vector2(0, 0), Vector2(0, -33), Vector2(0, 0)] -} -tracks/19/type = "value" -tracks/19/imported = false -tracks/19/enabled = true -tracks/19/path = NodePath("Rig:rotation") -tracks/19/interp = 2 -tracks/19/loop_wrap = true -tracks/19/keys = { -"times": PackedFloat32Array(0, 0.1, 0.2), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [0.0, -0.343579, -1.57433] -} -tracks/20/type = "value" -tracks/20/imported = false -tracks/20/enabled = true -tracks/20/path = NodePath("Rig:scale") -tracks/20/interp = 1 -tracks/20/loop_wrap = true -tracks/20/keys = { -"times": PackedFloat32Array(0, 0.1, 0.2), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Vector2(1, 1), Vector2(0.8, 1.2), Vector2(1, 1)] -} -tracks/21/type = "value" -tracks/21/imported = false -tracks/21/enabled = true -tracks/21/path = NodePath("Rig:modulate") -tracks/21/interp = 1 -tracks/21/loop_wrap = true -tracks/21/keys = { -"times": PackedFloat32Array(0, 0.2, 0.25, 0.3, 0.35, 0.4, 0.5), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), -"update": 0, -"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0.513726), Color(1, 1, 1, 1), Color(1, 1, 1, 0.513726), Color(1, 1, 1, 1), Color(1, 1, 1, 0)] -} -tracks/22/type = "value" -tracks/22/imported = false -tracks/22/enabled = true -tracks/22/path = NodePath("Rig/FX/Cloud:visible") -tracks/22/interp = 1 -tracks/22/loop_wrap = true -tracks/22/keys = { "times": PackedFloat32Array(0, 0.3), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [false, true] } -tracks/23/type = "value" -tracks/23/imported = false -tracks/23/enabled = true -tracks/23/path = NodePath("Rig/FX/Cloud:modulate") -tracks/23/interp = 1 -tracks/23/loop_wrap = true -tracks/23/keys = { +tracks/19/type = "value" +tracks/19/imported = false +tracks/19/enabled = true +tracks/19/path = NodePath("Root/FX/Cloud:modulate") +tracks/19/interp = 1 +tracks/19/loop_wrap = true +tracks/19/keys = { "times": PackedFloat32Array(0, 0.3, 0.45, 0.5), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)] } -tracks/24/type = "value" -tracks/24/imported = false -tracks/24/enabled = true -tracks/24/path = NodePath("Rig/FX/Cloud:scale") -tracks/24/interp = 1 -tracks/24/loop_wrap = true -tracks/24/keys = { +tracks/20/type = "value" +tracks/20/imported = false +tracks/20/enabled = true +tracks/20/path = NodePath("Root/FX/Cloud:scale") +tracks/20/interp = 1 +tracks/20/loop_wrap = true +tracks/20/keys = { "times": PackedFloat32Array(0, 0.3, 0.5), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, @@ -1180,103 +1001,103 @@ step = 0.05 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("Rig:position") -tracks/0/interp = 1 +tracks/0/path = NodePath("Root/Rig/Body:position") +tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), +"times": PackedFloat32Array(0, 0.1), +"transitions": PackedFloat32Array(1, 1), "update": 0, -"values": [Vector2(0, 0)] +"values": [Vector2(5, 53), Vector2(-9, 29)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("Rig:rotation") -tracks/1/interp = 1 +tracks/1/path = NodePath("Root/Rig/Body:rotation") +tracks/1/interp = 2 tracks/1/loop_wrap = true tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), +"times": PackedFloat32Array(0, 0.1), +"transitions": PackedFloat32Array(1, 1), "update": 0, -"values": [0.0] +"values": [0.0, -0.459832] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true -tracks/2/path = NodePath("Rig:scale") +tracks/2/path = NodePath("Root/Rig/Body:scale") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), +"times": PackedFloat32Array(0, 0.1), +"transitions": PackedFloat32Array(1, 1), "update": 0, -"values": [Vector2(1, 1)] +"values": [Vector2(1, 1), Vector2(0.9, 1.1)] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true -tracks/3/path = NodePath("Rig/Body:position") +tracks/3/path = NodePath("Root/Rig/Body/Hat:position") tracks/3/interp = 2 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0, 0.1), "transitions": PackedFloat32Array(1, 1), "update": 0, -"values": [Vector2(5, 53), Vector2(-9, 29)] +"values": [Vector2(2, -91), Vector2(-23.375, -110.918)] } tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true -tracks/4/path = NodePath("Rig/Body:rotation") +tracks/4/path = NodePath("Root/Rig/Body/Hat:rotation") tracks/4/interp = 2 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(0, 0.1), "transitions": PackedFloat32Array(1, 1), "update": 0, -"values": [0.0, -0.459832] +"values": [0.0, -0.169267] } tracks/5/type = "value" tracks/5/imported = false tracks/5/enabled = true -tracks/5/path = NodePath("Rig/Body:scale") +tracks/5/path = NodePath("Root/Rig/Body/Hat:scale") tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/keys = { "times": PackedFloat32Array(0, 0.1), "transitions": PackedFloat32Array(1, 1), "update": 0, -"values": [Vector2(1, 1), Vector2(0.9, 1.1)] +"values": [Vector2(1, 1), Vector2(1, 1)] } tracks/6/type = "value" tracks/6/imported = false tracks/6/enabled = true -tracks/6/path = NodePath("Rig/Body/Hat:position") +tracks/6/path = NodePath("Root/Rig/Body/HandL:position") tracks/6/interp = 2 tracks/6/loop_wrap = true tracks/6/keys = { "times": PackedFloat32Array(0, 0.1), "transitions": PackedFloat32Array(1, 1), "update": 0, -"values": [Vector2(2, -91), Vector2(-23.375, -110.918)] +"values": [Vector2(-60, -53), Vector2(-86.123, -33.8822)] } tracks/7/type = "value" tracks/7/imported = false tracks/7/enabled = true -tracks/7/path = NodePath("Rig/Body/Hat:rotation") +tracks/7/path = NodePath("Root/Rig/Body/HandL:rotation") tracks/7/interp = 2 tracks/7/loop_wrap = true tracks/7/keys = { "times": PackedFloat32Array(0, 0.1), "transitions": PackedFloat32Array(1, 1), "update": 0, -"values": [0.0, -0.169267] +"values": [0.0, 0.0] } tracks/8/type = "value" tracks/8/imported = false tracks/8/enabled = true -tracks/8/path = NodePath("Rig/Body/Hat:scale") +tracks/8/path = NodePath("Root/Rig/Body/HandL:scale") tracks/8/interp = 1 tracks/8/loop_wrap = true tracks/8/keys = { @@ -1288,19 +1109,19 @@ tracks/8/keys = { tracks/9/type = "value" tracks/9/imported = false tracks/9/enabled = true -tracks/9/path = NodePath("Rig/Body/HandL:position") +tracks/9/path = NodePath("Root/Rig/Body/HandR:position") tracks/9/interp = 2 tracks/9/loop_wrap = true tracks/9/keys = { "times": PackedFloat32Array(0, 0.1), "transitions": PackedFloat32Array(1, 1), "update": 0, -"values": [Vector2(-60, -53), Vector2(-86.123, -33.8822)] +"values": [Vector2(51, -51), Vector2(-4.62756, -33.3235)] } tracks/10/type = "value" tracks/10/imported = false tracks/10/enabled = true -tracks/10/path = NodePath("Rig/Body/HandL:rotation") +tracks/10/path = NodePath("Root/Rig/Body/HandR:rotation") tracks/10/interp = 2 tracks/10/loop_wrap = true tracks/10/keys = { @@ -1312,7 +1133,7 @@ tracks/10/keys = { tracks/11/type = "value" tracks/11/imported = false tracks/11/enabled = true -tracks/11/path = NodePath("Rig/Body/HandL:scale") +tracks/11/path = NodePath("Root/Rig/Body/HandR:scale") tracks/11/interp = 1 tracks/11/loop_wrap = true tracks/11/keys = { @@ -1324,130 +1145,82 @@ tracks/11/keys = { tracks/12/type = "value" tracks/12/imported = false tracks/12/enabled = true -tracks/12/path = NodePath("Rig/Body/HandR:position") -tracks/12/interp = 2 +tracks/12/path = NodePath("Root/Rig/LegL:position") +tracks/12/interp = 1 tracks/12/loop_wrap = true tracks/12/keys = { -"times": PackedFloat32Array(0, 0.1), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Vector2(51, -51), Vector2(-4.62756, -33.3235)] -} -tracks/13/type = "value" -tracks/13/imported = false -tracks/13/enabled = true -tracks/13/path = NodePath("Rig/Body/HandR:rotation") -tracks/13/interp = 2 -tracks/13/loop_wrap = true -tracks/13/keys = { -"times": PackedFloat32Array(0, 0.1), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [0.0, 0.0] -} -tracks/14/type = "value" -tracks/14/imported = false -tracks/14/enabled = true -tracks/14/path = NodePath("Rig/Body/HandR:scale") -tracks/14/interp = 1 -tracks/14/loop_wrap = true -tracks/14/keys = { -"times": PackedFloat32Array(0, 0.1), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Vector2(1, 1), Vector2(1, 1)] -} -tracks/15/type = "value" -tracks/15/imported = false -tracks/15/enabled = true -tracks/15/path = NodePath("Rig/LegL:position") -tracks/15/interp = 1 -tracks/15/loop_wrap = true -tracks/15/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(-29, 65)] } -tracks/16/type = "value" -tracks/16/imported = false -tracks/16/enabled = true -tracks/16/path = NodePath("Rig/LegL:rotation") -tracks/16/interp = 1 -tracks/16/loop_wrap = true -tracks/16/keys = { +tracks/13/type = "value" +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/path = NodePath("Root/Rig/LegL:rotation") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [0.0] } -tracks/17/type = "value" -tracks/17/imported = false -tracks/17/enabled = true -tracks/17/path = NodePath("Rig/LegL:scale") -tracks/17/interp = 1 -tracks/17/loop_wrap = true -tracks/17/keys = { +tracks/14/type = "value" +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/path = NodePath("Root/Rig/LegL:scale") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(1, 1)] } -tracks/18/type = "value" -tracks/18/imported = false -tracks/18/enabled = true -tracks/18/path = NodePath("Rig/LegR:position") -tracks/18/interp = 2 -tracks/18/loop_wrap = true -tracks/18/keys = { +tracks/15/type = "value" +tracks/15/imported = false +tracks/15/enabled = true +tracks/15/path = NodePath("Root/Rig/LegR:position") +tracks/15/interp = 2 +tracks/15/loop_wrap = true +tracks/15/keys = { "times": PackedFloat32Array(0, 0.1), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector2(31, 65), Vector2(37, 14)] } -tracks/19/type = "value" -tracks/19/imported = false -tracks/19/enabled = true -tracks/19/path = NodePath("Rig/LegR:rotation") -tracks/19/interp = 2 -tracks/19/loop_wrap = true -tracks/19/keys = { +tracks/16/type = "value" +tracks/16/imported = false +tracks/16/enabled = true +tracks/16/path = NodePath("Root/Rig/LegR:rotation") +tracks/16/interp = 2 +tracks/16/loop_wrap = true +tracks/16/keys = { "times": PackedFloat32Array(0, 0.1), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [0.0, -0.896359] } -tracks/20/type = "value" -tracks/20/imported = false -tracks/20/enabled = true -tracks/20/path = NodePath("Rig/LegR:scale") -tracks/20/interp = 1 -tracks/20/loop_wrap = true -tracks/20/keys = { +tracks/17/type = "value" +tracks/17/imported = false +tracks/17/enabled = true +tracks/17/path = NodePath("Root/Rig/LegR:scale") +tracks/17/interp = 1 +tracks/17/loop_wrap = true +tracks/17/keys = { "times": PackedFloat32Array(0, 0.1), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector2(1, 1), Vector2(1, 1)] } -tracks/21/type = "value" -tracks/21/imported = false -tracks/21/enabled = true -tracks/21/path = NodePath("Rig:modulate") -tracks/21/interp = 1 -tracks/21/loop_wrap = true -tracks/21/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(1, 1, 1, 1)] -} -tracks/22/type = "value" -tracks/22/imported = false -tracks/22/enabled = true -tracks/22/path = NodePath("Rig/FX/Cloud:visible") -tracks/22/interp = 1 -tracks/22/loop_wrap = true -tracks/22/keys = { +tracks/18/type = "value" +tracks/18/imported = false +tracks/18/enabled = true +tracks/18/path = NodePath("Root/FX/Cloud:visible") +tracks/18/interp = 1 +tracks/18/loop_wrap = true +tracks/18/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, @@ -1461,7 +1234,7 @@ loop_mode = 1 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("Rig/LegR:position") +tracks/0/path = NodePath("Root/Rig/LegR:position") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { @@ -1473,7 +1246,7 @@ tracks/0/keys = { tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("Rig/LegR:rotation") +tracks/1/path = NodePath("Root/Rig/LegR:rotation") tracks/1/interp = 2 tracks/1/loop_wrap = true tracks/1/keys = { @@ -1485,7 +1258,7 @@ tracks/1/keys = { tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true -tracks/2/path = NodePath("Rig/LegR:scale") +tracks/2/path = NodePath("Root/Rig/LegR:scale") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { @@ -1497,127 +1270,127 @@ tracks/2/keys = { tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true -tracks/3/path = NodePath("Rig:position") +tracks/3/path = NodePath("Root/Rig/Body:position") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(0, 0)] -} -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("Rig:rotation") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [0.0] -} -tracks/5/type = "value" -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/path = NodePath("Rig:scale") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(1, 1)] -} -tracks/6/type = "value" -tracks/6/imported = false -tracks/6/enabled = true -tracks/6/path = NodePath("Rig/Body:position") -tracks/6/interp = 1 -tracks/6/loop_wrap = true -tracks/6/keys = { "times": PackedFloat32Array(0, 0.2, 0.4), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector2(5, 53), Vector2(5, 49), Vector2(5, 53)] } -tracks/7/type = "value" -tracks/7/imported = false -tracks/7/enabled = true -tracks/7/path = NodePath("Rig/Body:rotation") -tracks/7/interp = 1 -tracks/7/loop_wrap = true -tracks/7/keys = { +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Root/Rig/Body:rotation") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { "times": PackedFloat32Array(0, 0.2, 0.4), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [0.0, 0.0, 0.0] } -tracks/8/type = "value" -tracks/8/imported = false -tracks/8/enabled = true -tracks/8/path = NodePath("Rig/Body:scale") -tracks/8/interp = 1 -tracks/8/loop_wrap = true -tracks/8/keys = { +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Root/Rig/Body:scale") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { "times": PackedFloat32Array(0, 0.2, 0.4), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector2(1, 1), Vector2(0.95, 1.05), Vector2(1, 1)] } -tracks/9/type = "value" -tracks/9/imported = false -tracks/9/enabled = true -tracks/9/path = NodePath("Rig/Body/Hat:position") -tracks/9/interp = 1 -tracks/9/loop_wrap = true -tracks/9/keys = { +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Root/Rig/Body/Hat:position") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(2, -91)] } -tracks/10/type = "value" -tracks/10/imported = false -tracks/10/enabled = true -tracks/10/path = NodePath("Rig/Body/Hat:rotation") -tracks/10/interp = 1 -tracks/10/loop_wrap = true -tracks/10/keys = { +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Root/Rig/Body/Hat:rotation") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [0.0] } -tracks/11/type = "value" -tracks/11/imported = false -tracks/11/enabled = true -tracks/11/path = NodePath("Rig/Body/Hat:scale") -tracks/11/interp = 1 -tracks/11/loop_wrap = true -tracks/11/keys = { +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Root/Rig/Body/Hat:scale") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(1, 1)] } +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Root/Rig/Body/HandL:position") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0, 0.2, 0.4), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(-60, -53), Vector2(-62, -55), Vector2(-60, -53)] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Root/Rig/Body/HandL:rotation") +tracks/10/interp = 2 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0, 0.2, 0.4), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, 0.0, 0.0] +} +tracks/11/type = "value" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath("Root/Rig/Body/HandL:scale") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { +"times": PackedFloat32Array(0, 0.2, 0.4), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(1, 1), Vector2(1, 1), Vector2(1, 1)] +} tracks/12/type = "value" tracks/12/imported = false tracks/12/enabled = true -tracks/12/path = NodePath("Rig/Body/HandL:position") +tracks/12/path = NodePath("Root/Rig/Body/HandR:position") tracks/12/interp = 1 tracks/12/loop_wrap = true tracks/12/keys = { "times": PackedFloat32Array(0, 0.2, 0.4), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [Vector2(-60, -53), Vector2(-62, -55), Vector2(-60, -53)] +"values": [Vector2(51, -51), Vector2(49, -53), Vector2(51, -51)] } tracks/13/type = "value" tracks/13/imported = false tracks/13/enabled = true -tracks/13/path = NodePath("Rig/Body/HandL:rotation") +tracks/13/path = NodePath("Root/Rig/Body/HandR:rotation") tracks/13/interp = 2 tracks/13/loop_wrap = true tracks/13/keys = { @@ -1629,7 +1402,7 @@ tracks/13/keys = { tracks/14/type = "value" tracks/14/imported = false tracks/14/enabled = true -tracks/14/path = NodePath("Rig/Body/HandL:scale") +tracks/14/path = NodePath("Root/Rig/Body/HandR:scale") tracks/14/interp = 1 tracks/14/loop_wrap = true tracks/14/keys = { @@ -1641,19 +1414,19 @@ tracks/14/keys = { tracks/15/type = "value" tracks/15/imported = false tracks/15/enabled = true -tracks/15/path = NodePath("Rig/Body/HandR:position") -tracks/15/interp = 1 +tracks/15/path = NodePath("Root/Rig/LegL:position") +tracks/15/interp = 2 tracks/15/loop_wrap = true tracks/15/keys = { "times": PackedFloat32Array(0, 0.2, 0.4), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [Vector2(51, -51), Vector2(49, -53), Vector2(51, -51)] +"values": [Vector2(-29, 65), Vector2(-29, 65), Vector2(-29, 65)] } tracks/16/type = "value" tracks/16/imported = false tracks/16/enabled = true -tracks/16/path = NodePath("Rig/Body/HandR:rotation") +tracks/16/path = NodePath("Root/Rig/LegL:rotation") tracks/16/interp = 2 tracks/16/loop_wrap = true tracks/16/keys = { @@ -1665,70 +1438,22 @@ tracks/16/keys = { tracks/17/type = "value" tracks/17/imported = false tracks/17/enabled = true -tracks/17/path = NodePath("Rig/Body/HandR:scale") +tracks/17/path = NodePath("Root/Rig/LegL:scale") tracks/17/interp = 1 tracks/17/loop_wrap = true tracks/17/keys = { "times": PackedFloat32Array(0, 0.2, 0.4), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [Vector2(1, 1), Vector2(1, 1), Vector2(1, 1)] +"values": [Vector2(1, 1), Vector2(0.9, 1.1), Vector2(1, 1)] } tracks/18/type = "value" tracks/18/imported = false tracks/18/enabled = true -tracks/18/path = NodePath("Rig/LegL:position") -tracks/18/interp = 2 +tracks/18/path = NodePath("Root/FX/Cloud:visible") +tracks/18/interp = 1 tracks/18/loop_wrap = true tracks/18/keys = { -"times": PackedFloat32Array(0, 0.2, 0.4), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Vector2(-29, 65), Vector2(-29, 65), Vector2(-29, 65)] -} -tracks/19/type = "value" -tracks/19/imported = false -tracks/19/enabled = true -tracks/19/path = NodePath("Rig/LegL:rotation") -tracks/19/interp = 2 -tracks/19/loop_wrap = true -tracks/19/keys = { -"times": PackedFloat32Array(0, 0.2, 0.4), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [0.0, 0.0, 0.0] -} -tracks/20/type = "value" -tracks/20/imported = false -tracks/20/enabled = true -tracks/20/path = NodePath("Rig/LegL:scale") -tracks/20/interp = 1 -tracks/20/loop_wrap = true -tracks/20/keys = { -"times": PackedFloat32Array(0, 0.2, 0.4), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Vector2(1, 1), Vector2(0.9, 1.1), Vector2(1, 1)] -} -tracks/21/type = "value" -tracks/21/imported = false -tracks/21/enabled = true -tracks/21/path = NodePath("Rig:modulate") -tracks/21/interp = 1 -tracks/21/loop_wrap = true -tracks/21/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(1, 1, 1, 1)] -} -tracks/22/type = "value" -tracks/22/imported = false -tracks/22/enabled = true -tracks/22/path = NodePath("Rig/FX/Cloud:visible") -tracks/22/interp = 1 -tracks/22/loop_wrap = true -tracks/22/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, @@ -1741,199 +1466,199 @@ length = 0.3 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("Rig:position") -tracks/0/interp = 1 +tracks/0/path = NodePath("Root/Rig/LegL:position") +tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(0, 0)] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("Rig:rotation") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [0.0] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("Rig:scale") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(1, 1)] -} -tracks/3/type = "value" -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/path = NodePath("Rig/LegL:position") -tracks/3/interp = 2 -tracks/3/loop_wrap = true -tracks/3/keys = { "times": PackedFloat32Array(0, 0.3), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector2(-29, 65), Vector2(-57, 44)] } -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("Rig/LegL:rotation") -tracks/4/interp = 2 -tracks/4/loop_wrap = true -tracks/4/keys = { +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Root/Rig/LegL:rotation") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/keys = { "times": PackedFloat32Array(0, 0.3), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [0.0, 0.730707] } -tracks/5/type = "value" -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/path = NodePath("Rig/LegL:scale") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/keys = { +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Root/Rig/LegL:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { "times": PackedFloat32Array(0, 0.3), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector2(1, 1), Vector2(1, 1)] } +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Root/Rig/LegR:position") +tracks/3/interp = 2 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.2, 0.3), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(31, 65), Vector2(46, 48), Vector2(31, 65)] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Root/Rig/LegR:rotation") +tracks/4/interp = 2 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.2, 0.3), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, -0.718681, 0.0] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Root/Rig/LegR:scale") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0, 0.2, 0.3), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(1, 1), Vector2(1, 1), Vector2(1, 1)] +} tracks/6/type = "value" tracks/6/imported = false tracks/6/enabled = true -tracks/6/path = NodePath("Rig/LegR:position") +tracks/6/path = NodePath("Root/Rig/Body:position") tracks/6/interp = 2 tracks/6/loop_wrap = true tracks/6/keys = { "times": PackedFloat32Array(0, 0.2, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [Vector2(31, 65), Vector2(46, 48), Vector2(31, 65)] +"values": [Vector2(5, 53), Vector2(4, 46), Vector2(4, 46)] } tracks/7/type = "value" tracks/7/imported = false tracks/7/enabled = true -tracks/7/path = NodePath("Rig/LegR:rotation") +tracks/7/path = NodePath("Root/Rig/Body:rotation") tracks/7/interp = 2 tracks/7/loop_wrap = true tracks/7/keys = { "times": PackedFloat32Array(0, 0.2, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [0.0, -0.718681, 0.0] +"values": [0.0, -0.330061, 0.363712] } tracks/8/type = "value" tracks/8/imported = false tracks/8/enabled = true -tracks/8/path = NodePath("Rig/LegR:scale") +tracks/8/path = NodePath("Root/Rig/Body:scale") tracks/8/interp = 1 tracks/8/loop_wrap = true tracks/8/keys = { "times": PackedFloat32Array(0, 0.2, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [Vector2(1, 1), Vector2(1, 1), Vector2(1, 1)] +"values": [Vector2(1, 1), Vector2(0.8, 1.2), Vector2(1.1, 0.9)] } tracks/9/type = "value" tracks/9/imported = false tracks/9/enabled = true -tracks/9/path = NodePath("Rig/Body:position") -tracks/9/interp = 2 +tracks/9/path = NodePath("Root/Rig/Body/Hat:position") +tracks/9/interp = 1 tracks/9/loop_wrap = true tracks/9/keys = { -"times": PackedFloat32Array(0, 0.2, 0.3), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Vector2(5, 53), Vector2(4, 46), Vector2(4, 46)] -} -tracks/10/type = "value" -tracks/10/imported = false -tracks/10/enabled = true -tracks/10/path = NodePath("Rig/Body:rotation") -tracks/10/interp = 2 -tracks/10/loop_wrap = true -tracks/10/keys = { -"times": PackedFloat32Array(0, 0.2, 0.3), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [0.0, -0.330061, 0.363712] -} -tracks/11/type = "value" -tracks/11/imported = false -tracks/11/enabled = true -tracks/11/path = NodePath("Rig/Body:scale") -tracks/11/interp = 1 -tracks/11/loop_wrap = true -tracks/11/keys = { -"times": PackedFloat32Array(0, 0.2, 0.3), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Vector2(1, 1), Vector2(0.8, 1.2), Vector2(1.1, 0.9)] -} -tracks/12/type = "value" -tracks/12/imported = false -tracks/12/enabled = true -tracks/12/path = NodePath("Rig/Body/Hat:position") -tracks/12/interp = 1 -tracks/12/loop_wrap = true -tracks/12/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(2, -91)] } -tracks/13/type = "value" -tracks/13/imported = false -tracks/13/enabled = true -tracks/13/path = NodePath("Rig/Body/Hat:rotation") -tracks/13/interp = 1 -tracks/13/loop_wrap = true -tracks/13/keys = { +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Root/Rig/Body/Hat:rotation") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [0.0] } -tracks/14/type = "value" -tracks/14/imported = false -tracks/14/enabled = true -tracks/14/path = NodePath("Rig/Body/Hat:scale") -tracks/14/interp = 1 -tracks/14/loop_wrap = true -tracks/14/keys = { +tracks/11/type = "value" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath("Root/Rig/Body/Hat:scale") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(1, 1)] } +tracks/12/type = "value" +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/path = NodePath("Root/Rig/Body/HandL:position") +tracks/12/interp = 2 +tracks/12/loop_wrap = true +tracks/12/keys = { +"times": PackedFloat32Array(0, 0.2, 0.3), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(-60, -53), Vector2(-53.8926, -21.1176), Vector2(-19.8796, -43.7927)] +} +tracks/13/type = "value" +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/path = NodePath("Root/Rig/Body/HandL:rotation") +tracks/13/interp = 2 +tracks/13/loop_wrap = true +tracks/13/keys = { +"times": PackedFloat32Array(0, 0.2, 0.3), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, 0.0, 0.0] +} +tracks/14/type = "value" +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/path = NodePath("Root/Rig/Body/HandL:scale") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/keys = { +"times": PackedFloat32Array(0, 0.2, 0.3), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(1, 1), Vector2(1, 1), Vector2(1, 1)] +} tracks/15/type = "value" tracks/15/imported = false tracks/15/enabled = true -tracks/15/path = NodePath("Rig/Body/HandL:position") +tracks/15/path = NodePath("Root/Rig/Body/HandR:position") tracks/15/interp = 2 tracks/15/loop_wrap = true tracks/15/keys = { "times": PackedFloat32Array(0, 0.2, 0.3), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [Vector2(-60, -53), Vector2(-53.8926, -21.1176), Vector2(-19.8796, -43.7927)] +"values": [Vector2(51, -51), Vector2(47.6296, -15.5481), Vector2(47.0064, -56.4127)] } tracks/16/type = "value" tracks/16/imported = false tracks/16/enabled = true -tracks/16/path = NodePath("Rig/Body/HandL:rotation") +tracks/16/path = NodePath("Root/Rig/Body/HandR:rotation") tracks/16/interp = 2 tracks/16/loop_wrap = true tracks/16/keys = { @@ -1945,7 +1670,7 @@ tracks/16/keys = { tracks/17/type = "value" tracks/17/imported = false tracks/17/enabled = true -tracks/17/path = NodePath("Rig/Body/HandL:scale") +tracks/17/path = NodePath("Root/Rig/Body/HandR:scale") tracks/17/interp = 1 tracks/17/loop_wrap = true tracks/17/keys = { @@ -1954,42 +1679,6 @@ tracks/17/keys = { "update": 0, "values": [Vector2(1, 1), Vector2(1, 1), Vector2(1, 1)] } -tracks/18/type = "value" -tracks/18/imported = false -tracks/18/enabled = true -tracks/18/path = NodePath("Rig/Body/HandR:position") -tracks/18/interp = 2 -tracks/18/loop_wrap = true -tracks/18/keys = { -"times": PackedFloat32Array(0, 0.2, 0.3), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Vector2(51, -51), Vector2(47.6296, -15.5481), Vector2(47.0064, -56.4127)] -} -tracks/19/type = "value" -tracks/19/imported = false -tracks/19/enabled = true -tracks/19/path = NodePath("Rig/Body/HandR:rotation") -tracks/19/interp = 2 -tracks/19/loop_wrap = true -tracks/19/keys = { -"times": PackedFloat32Array(0, 0.2, 0.3), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [0.0, 0.0, 0.0] -} -tracks/20/type = "value" -tracks/20/imported = false -tracks/20/enabled = true -tracks/20/path = NodePath("Rig/Body/HandR:scale") -tracks/20/interp = 1 -tracks/20/loop_wrap = true -tracks/20/keys = { -"times": PackedFloat32Array(0, 0.2, 0.3), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Vector2(1, 1), Vector2(1, 1), Vector2(1, 1)] -} [sub_resource type="Animation" id="Animation_5mxvi"] resource_name = "summon" @@ -1997,19 +1686,19 @@ length = 0.5 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("Rig:position") +tracks/0/path = NodePath("Root/Rig/LegL:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.5), "transitions": PackedFloat32Array(1, 1), "update": 0, -"values": [Vector2(0, 0), Vector2(0, 0)] +"values": [Vector2(-29, 65), Vector2(-29, 65)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("Rig:rotation") +tracks/1/path = NodePath("Root/Rig/LegL:rotation") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { @@ -2021,7 +1710,7 @@ tracks/1/keys = { tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true -tracks/2/path = NodePath("Rig:scale") +tracks/2/path = NodePath("Root/Rig/LegL:scale") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { @@ -2033,175 +1722,175 @@ tracks/2/keys = { tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true -tracks/3/path = NodePath("Rig/LegL:position") -tracks/3/interp = 1 +tracks/3/path = NodePath("Root/Rig/LegR:position") +tracks/3/interp = 2 tracks/3/loop_wrap = true tracks/3/keys = { -"times": PackedFloat32Array(0, 0.5), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Vector2(-29, 65), Vector2(-29, 65)] -} -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("Rig/LegL:rotation") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = { -"times": PackedFloat32Array(0, 0.5), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [0.0, 0.0] -} -tracks/5/type = "value" -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/path = NodePath("Rig/LegL:scale") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/keys = { -"times": PackedFloat32Array(0, 0.5), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Vector2(1, 1), Vector2(1, 1)] -} -tracks/6/type = "value" -tracks/6/imported = false -tracks/6/enabled = true -tracks/6/path = NodePath("Rig/LegR:position") -tracks/6/interp = 2 -tracks/6/loop_wrap = true -tracks/6/keys = { "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), "update": 0, "values": [Vector2(31, 65), Vector2(47, 54), Vector2(43, 56.75), Vector2(47, 54), Vector2(43, 56.75), Vector2(31, 65)] } -tracks/7/type = "value" -tracks/7/imported = false -tracks/7/enabled = true -tracks/7/path = NodePath("Rig/LegR:rotation") -tracks/7/interp = 2 -tracks/7/loop_wrap = true -tracks/7/keys = { +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Root/Rig/LegR:rotation") +tracks/4/interp = 2 +tracks/4/loop_wrap = true +tracks/4/keys = { "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), "update": 0, "values": [0.0, -0.40126, -0.768424, -0.40126, -0.768424, 0.0] } +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Root/Rig/LegR:scale") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), +"update": 0, +"values": [Vector2(1, 1), Vector2(1, 1), Vector2(1, 1), Vector2(1, 1), Vector2(1, 1), Vector2(1, 1)] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Root/Rig/Body:position") +tracks/6/interp = 2 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0, 0.1, 0.3, 0.5), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [Vector2(5, 53), Vector2(5, 53), Vector2(5, 53), Vector2(5, 53)] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Root/Rig/Body:rotation") +tracks/7/interp = 2 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0, 0.1, 0.3, 0.5), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [0.0, -0.179614, -0.179614, 0.0] +} tracks/8/type = "value" tracks/8/imported = false tracks/8/enabled = true -tracks/8/path = NodePath("Rig/LegR:scale") +tracks/8/path = NodePath("Root/Rig/Body:scale") tracks/8/interp = 1 tracks/8/loop_wrap = true tracks/8/keys = { "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), "update": 0, -"values": [Vector2(1, 1), Vector2(1, 1), Vector2(1, 1), Vector2(1, 1), Vector2(1, 1), Vector2(1, 1)] +"values": [Vector2(1, 1), Vector2(1, 1), Vector2(0.9, 1.1), Vector2(1, 1), Vector2(0.9, 1.1), Vector2(1, 1)] } tracks/9/type = "value" tracks/9/imported = false tracks/9/enabled = true -tracks/9/path = NodePath("Rig/Body:position") +tracks/9/path = NodePath("Root/Rig/Body/Hat:position") tracks/9/interp = 2 tracks/9/loop_wrap = true tracks/9/keys = { -"times": PackedFloat32Array(0, 0.1, 0.3, 0.5), -"transitions": PackedFloat32Array(1, 1, 1, 1), -"update": 0, -"values": [Vector2(5, 53), Vector2(5, 53), Vector2(5, 53), Vector2(5, 53)] -} -tracks/10/type = "value" -tracks/10/imported = false -tracks/10/enabled = true -tracks/10/path = NodePath("Rig/Body:rotation") -tracks/10/interp = 2 -tracks/10/loop_wrap = true -tracks/10/keys = { -"times": PackedFloat32Array(0, 0.1, 0.3, 0.5), -"transitions": PackedFloat32Array(1, 1, 1, 1), -"update": 0, -"values": [0.0, -0.179614, -0.179614, 0.0] -} -tracks/11/type = "value" -tracks/11/imported = false -tracks/11/enabled = true -tracks/11/path = NodePath("Rig/Body:scale") -tracks/11/interp = 1 -tracks/11/loop_wrap = true -tracks/11/keys = { -"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), -"update": 0, -"values": [Vector2(1, 1), Vector2(1, 1), Vector2(0.9, 1.1), Vector2(1, 1), Vector2(0.9, 1.1), Vector2(1, 1)] -} -tracks/12/type = "value" -tracks/12/imported = false -tracks/12/enabled = true -tracks/12/path = NodePath("Rig/Body/Hat:position") -tracks/12/interp = 2 -tracks/12/loop_wrap = true -tracks/12/keys = { "times": PackedFloat32Array(0, 0.5), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector2(2, -91), Vector2(2, -91)] } -tracks/13/type = "value" -tracks/13/imported = false -tracks/13/enabled = true -tracks/13/path = NodePath("Rig/Body/Hat:rotation") -tracks/13/interp = 2 -tracks/13/loop_wrap = true -tracks/13/keys = { +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Root/Rig/Body/Hat:rotation") +tracks/10/interp = 2 +tracks/10/loop_wrap = true +tracks/10/keys = { "times": PackedFloat32Array(0, 0.5), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [0.0, 0.0] } -tracks/14/type = "value" -tracks/14/imported = false -tracks/14/enabled = true -tracks/14/path = NodePath("Rig/Body/Hat:scale") -tracks/14/interp = 1 -tracks/14/loop_wrap = true -tracks/14/keys = { +tracks/11/type = "value" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath("Root/Rig/Body/Hat:scale") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { "times": PackedFloat32Array(0, 0.5), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector2(1, 1), Vector2(1, 1)] } +tracks/12/type = "value" +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/path = NodePath("Root/Rig/Body/HandL:position") +tracks/12/interp = 2 +tracks/12/loop_wrap = true +tracks/12/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), +"update": 0, +"values": [Vector2(-60, -53), Vector2(-71.1271, -84.0591), Vector2(-76.1533, -94.4691), Vector2(-71.1271, -84.0591), Vector2(-76.1533, -94.4691), Vector2(-60, -53)] +} +tracks/13/type = "value" +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/path = NodePath("Root/Rig/Body/HandL:rotation") +tracks/13/interp = 2 +tracks/13/loop_wrap = true +tracks/13/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), +"update": 0, +"values": [0.0, 0.0, -0.836345, 0.0, -0.836345, 0.0] +} +tracks/14/type = "value" +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/path = NodePath("Root/Rig/Body/HandL:scale") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), +"update": 0, +"values": [Vector2(1, 1), Vector2(1, 1), Vector2(1, 1), Vector2(1, 1), Vector2(1, 1), Vector2(1, 1)] +} tracks/15/type = "value" tracks/15/imported = false tracks/15/enabled = true -tracks/15/path = NodePath("Rig/Body/HandL:position") +tracks/15/path = NodePath("Root/Rig/Body/HandR:position") tracks/15/interp = 2 tracks/15/loop_wrap = true tracks/15/keys = { "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), "update": 0, -"values": [Vector2(-60, -53), Vector2(-71.1271, -84.0591), Vector2(-76.1533, -94.4691), Vector2(-71.1271, -84.0591), Vector2(-76.1533, -94.4691), Vector2(-60, -53)] +"values": [Vector2(51, -51), Vector2(61.8744, -83.286), Vector2(62.8802, -95.0655), Vector2(61.8744, -83.286), Vector2(62.8802, -95.0655), Vector2(51, -51)] } tracks/16/type = "value" tracks/16/imported = false tracks/16/enabled = true -tracks/16/path = NodePath("Rig/Body/HandL:rotation") +tracks/16/path = NodePath("Root/Rig/Body/HandR:rotation") tracks/16/interp = 2 tracks/16/loop_wrap = true tracks/16/keys = { "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), "update": 0, -"values": [0.0, 0.0, -0.836345, 0.0, -0.836345, 0.0] +"values": [0.0, 0.0, -0.887813, 0.0, -0.887813, 0.0] } tracks/17/type = "value" tracks/17/imported = false tracks/17/enabled = true -tracks/17/path = NodePath("Rig/Body/HandL:scale") +tracks/17/path = NodePath("Root/Rig/Body/HandR:scale") tracks/17/interp = 1 tracks/17/loop_wrap = true tracks/17/keys = { @@ -2210,42 +1899,6 @@ tracks/17/keys = { "update": 0, "values": [Vector2(1, 1), Vector2(1, 1), Vector2(1, 1), Vector2(1, 1), Vector2(1, 1), Vector2(1, 1)] } -tracks/18/type = "value" -tracks/18/imported = false -tracks/18/enabled = true -tracks/18/path = NodePath("Rig/Body/HandR:position") -tracks/18/interp = 2 -tracks/18/loop_wrap = true -tracks/18/keys = { -"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), -"update": 0, -"values": [Vector2(51, -51), Vector2(61.8744, -83.286), Vector2(62.8802, -95.0655), Vector2(61.8744, -83.286), Vector2(62.8802, -95.0655), Vector2(51, -51)] -} -tracks/19/type = "value" -tracks/19/imported = false -tracks/19/enabled = true -tracks/19/path = NodePath("Rig/Body/HandR:rotation") -tracks/19/interp = 2 -tracks/19/loop_wrap = true -tracks/19/keys = { -"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), -"update": 0, -"values": [0.0, 0.0, -0.887813, 0.0, -0.887813, 0.0] -} -tracks/20/type = "value" -tracks/20/imported = false -tracks/20/enabled = true -tracks/20/path = NodePath("Rig/Body/HandR:scale") -tracks/20/interp = 1 -tracks/20/loop_wrap = true -tracks/20/keys = { -"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5), -"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), -"update": 0, -"values": [Vector2(1, 1), Vector2(1, 1), Vector2(1, 1), Vector2(1, 1), Vector2(1, 1), Vector2(1, 1)] -} [sub_resource type="Animation" id="Animation_fh06e"] resource_name = "walk" @@ -2254,127 +1907,127 @@ loop_mode = 1 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("Rig:position") +tracks/0/path = NodePath("Root/Rig/Body:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0, 0.6), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Vector2(0, 0), Vector2(0, 0)] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("Rig:rotation") -tracks/1/interp = 1 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0, 0.6), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [0.0, 0.0] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("Rig:scale") -tracks/2/interp = 1 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0, 0.6), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [Vector2(1, 1), Vector2(1, 1)] -} -tracks/3/type = "value" -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/path = NodePath("Rig/Body:position") -tracks/3/interp = 1 -tracks/3/loop_wrap = true -tracks/3/keys = { "times": PackedFloat32Array(0, 0.3, 0.6), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector2(5, 53), Vector2(5, 47), Vector2(5, 53)] } -tracks/4/type = "value" -tracks/4/imported = false -tracks/4/enabled = true -tracks/4/path = NodePath("Rig/Body:rotation") -tracks/4/interp = 1 -tracks/4/loop_wrap = true -tracks/4/keys = { +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Root/Rig/Body:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { "times": PackedFloat32Array(0, 0.3, 0.6), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [0.0, 0.0, 0.0] } -tracks/5/type = "value" -tracks/5/imported = false -tracks/5/enabled = true -tracks/5/path = NodePath("Rig/Body:scale") -tracks/5/interp = 1 -tracks/5/loop_wrap = true -tracks/5/keys = { +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Root/Rig/Body:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { "times": PackedFloat32Array(0, 0.3, 0.6), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector2(1, 1), Vector2(0.92, 1.08), Vector2(1, 1)] } -tracks/6/type = "value" -tracks/6/imported = false -tracks/6/enabled = true -tracks/6/path = NodePath("Rig/Body/Hat:position") -tracks/6/interp = 1 -tracks/6/loop_wrap = true -tracks/6/keys = { +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Root/Rig/Body/Hat:position") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { "times": PackedFloat32Array(0, 0.6), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector2(2, -91), Vector2(2, -91)] } -tracks/7/type = "value" -tracks/7/imported = false -tracks/7/enabled = true -tracks/7/path = NodePath("Rig/Body/Hat:rotation") -tracks/7/interp = 1 -tracks/7/loop_wrap = true -tracks/7/keys = { +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Root/Rig/Body/Hat:rotation") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { "times": PackedFloat32Array(0, 0.6), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [0.0, 0.0] } -tracks/8/type = "value" -tracks/8/imported = false -tracks/8/enabled = true -tracks/8/path = NodePath("Rig/Body/Hat:scale") -tracks/8/interp = 1 -tracks/8/loop_wrap = true -tracks/8/keys = { +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Root/Rig/Body/Hat:scale") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { "times": PackedFloat32Array(0, 0.6), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector2(1, 1), Vector2(1, 1)] } +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Root/Rig/Body/HandL:position") +tracks/6/interp = 2 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0, 0.3, 0.6), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(-60, -53), Vector2(17, -22), Vector2(-60, -53)] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Root/Rig/Body/HandL:rotation") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0, 0.3, 0.6), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, 0.0, 0.0] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Root/Rig/Body/HandL:scale") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0, 0.3, 0.6), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(1, 1), Vector2(1, 1), Vector2(1, 1)] +} tracks/9/type = "value" tracks/9/imported = false tracks/9/enabled = true -tracks/9/path = NodePath("Rig/Body/HandL:position") +tracks/9/path = NodePath("Root/Rig/Body/HandR:position") tracks/9/interp = 2 tracks/9/loop_wrap = true tracks/9/keys = { "times": PackedFloat32Array(0, 0.3, 0.6), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [Vector2(-60, -53), Vector2(17, -22), Vector2(-60, -53)] +"values": [Vector2(51, -51), Vector2(-26, -29), Vector2(51, -51)] } tracks/10/type = "value" tracks/10/imported = false tracks/10/enabled = true -tracks/10/path = NodePath("Rig/Body/HandL:rotation") +tracks/10/path = NodePath("Root/Rig/Body/HandR:rotation") tracks/10/interp = 1 tracks/10/loop_wrap = true tracks/10/keys = { @@ -2386,7 +2039,7 @@ tracks/10/keys = { tracks/11/type = "value" tracks/11/imported = false tracks/11/enabled = true -tracks/11/path = NodePath("Rig/Body/HandL:scale") +tracks/11/path = NodePath("Root/Rig/Body/HandR:scale") tracks/11/interp = 1 tracks/11/loop_wrap = true tracks/11/keys = { @@ -2398,130 +2051,82 @@ tracks/11/keys = { tracks/12/type = "value" tracks/12/imported = false tracks/12/enabled = true -tracks/12/path = NodePath("Rig/Body/HandR:position") +tracks/12/path = NodePath("Root/Rig/LegL:position") tracks/12/interp = 2 tracks/12/loop_wrap = true tracks/12/keys = { "times": PackedFloat32Array(0, 0.3, 0.6), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [Vector2(51, -51), Vector2(-26, -29), Vector2(51, -51)] +"values": [Vector2(-29, 65), Vector2(33, 65), Vector2(-29, 65)] } tracks/13/type = "value" tracks/13/imported = false tracks/13/enabled = true -tracks/13/path = NodePath("Rig/Body/HandR:rotation") -tracks/13/interp = 1 +tracks/13/path = NodePath("Root/Rig/LegL:rotation") +tracks/13/interp = 2 tracks/13/loop_wrap = true tracks/13/keys = { "times": PackedFloat32Array(0, 0.3, 0.6), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [0.0, 0.0, 0.0] +"values": [0.0, -0.991068, 0.0] } tracks/14/type = "value" tracks/14/imported = false tracks/14/enabled = true -tracks/14/path = NodePath("Rig/Body/HandR:scale") +tracks/14/path = NodePath("Root/Rig/LegL:scale") tracks/14/interp = 1 tracks/14/loop_wrap = true tracks/14/keys = { "times": PackedFloat32Array(0, 0.3, 0.6), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [Vector2(1, 1), Vector2(1, 1), Vector2(1, 1)] +"values": [Vector2(1.1, 1.1), Vector2(1, 1), Vector2(1.1, 1.1)] } tracks/15/type = "value" tracks/15/imported = false tracks/15/enabled = true -tracks/15/path = NodePath("Rig/LegL:position") +tracks/15/path = NodePath("Root/Rig/LegR:position") tracks/15/interp = 2 tracks/15/loop_wrap = true tracks/15/keys = { "times": PackedFloat32Array(0, 0.3, 0.6), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [Vector2(-29, 65), Vector2(33, 65), Vector2(-29, 65)] +"values": [Vector2(31, 65), Vector2(-30, 65), Vector2(31, 65)] } tracks/16/type = "value" tracks/16/imported = false tracks/16/enabled = true -tracks/16/path = NodePath("Rig/LegL:rotation") +tracks/16/path = NodePath("Root/Rig/LegR:rotation") tracks/16/interp = 2 tracks/16/loop_wrap = true tracks/16/keys = { "times": PackedFloat32Array(0, 0.3, 0.6), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [0.0, -0.991068, 0.0] +"values": [0.0, 1.13756, 0.0] } tracks/17/type = "value" tracks/17/imported = false tracks/17/enabled = true -tracks/17/path = NodePath("Rig/LegL:scale") +tracks/17/path = NodePath("Root/Rig/LegR:scale") tracks/17/interp = 1 tracks/17/loop_wrap = true tracks/17/keys = { "times": PackedFloat32Array(0, 0.3, 0.6), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, -"values": [Vector2(1.1, 1.1), Vector2(1, 1), Vector2(1.1, 1.1)] +"values": [Vector2(1, 1), Vector2(1.1, 1.1), Vector2(1, 1)] } tracks/18/type = "value" tracks/18/imported = false tracks/18/enabled = true -tracks/18/path = NodePath("Rig/LegR:position") -tracks/18/interp = 2 +tracks/18/path = NodePath("Root/FX/Cloud:visible") +tracks/18/interp = 1 tracks/18/loop_wrap = true tracks/18/keys = { -"times": PackedFloat32Array(0, 0.3, 0.6), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Vector2(31, 65), Vector2(-30, 65), Vector2(31, 65)] -} -tracks/19/type = "value" -tracks/19/imported = false -tracks/19/enabled = true -tracks/19/path = NodePath("Rig/LegR:rotation") -tracks/19/interp = 2 -tracks/19/loop_wrap = true -tracks/19/keys = { -"times": PackedFloat32Array(0, 0.3, 0.6), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [0.0, 1.13756, 0.0] -} -tracks/20/type = "value" -tracks/20/imported = false -tracks/20/enabled = true -tracks/20/path = NodePath("Rig/LegR:scale") -tracks/20/interp = 1 -tracks/20/loop_wrap = true -tracks/20/keys = { -"times": PackedFloat32Array(0, 0.3, 0.6), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Vector2(1, 1), Vector2(1.1, 1.1), Vector2(1, 1)] -} -tracks/21/type = "value" -tracks/21/imported = false -tracks/21/enabled = true -tracks/21/path = NodePath("Rig:modulate") -tracks/21/interp = 1 -tracks/21/loop_wrap = true -tracks/21/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), -"update": 0, -"values": [Color(1, 1, 1, 1)] -} -tracks/22/type = "value" -tracks/22/imported = false -tracks/22/enabled = true -tracks/22/path = NodePath("Rig/FX/Cloud:visible") -tracks/22/interp = 1 -tracks/22/loop_wrap = true -tracks/22/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, @@ -2541,61 +2146,98 @@ _data = { "walk": SubResource("Animation_fh06e") } -[node name="Agent" type="CharacterBody2D"] +[sub_resource type="BlackboardPlan" id="BlackboardPlan_v0ck1"] -[node name="Rig" type="Node2D" parent="."] +[node name="Agent" type="CharacterBody2D"] +script = ExtResource("1_n8vy2") + +[node name="Root" type="Node2D" parent="."] metadata/_edit_lock_ = true -[node name="LegL" type="Sprite2D" parent="Rig"] +[node name="Rig" type="Node2D" parent="Root"] +position = Vector2(0, -76) +metadata/_edit_lock_ = true + +[node name="LegL" type="Sprite2D" parent="Root/Rig"] position = Vector2(-29, 65) texture = ExtResource("1_1u51b") region_enabled = true region_rect = Rect2(104, 67, 35, 28) -[node name="LegR" type="Sprite2D" parent="Rig"] +[node name="LegR" type="Sprite2D" parent="Root/Rig"] position = Vector2(31, 65) texture = ExtResource("1_1u51b") region_enabled = true region_rect = Rect2(105, 97, 34, 27) -[node name="Body" type="Sprite2D" parent="Rig"] +[node name="Body" type="Sprite2D" parent="Root/Rig"] position = Vector2(5, 53) texture = ExtResource("1_1u51b") offset = Vector2(-5, -53) region_enabled = true region_rect = Rect2(4.03712, 4.21556, 94.9839, 121.271) -[node name="Hat" type="Sprite2D" parent="Rig/Body"] +[node name="Hat" type="Sprite2D" parent="Root/Rig/Body"] position = Vector2(2, -91) texture = ExtResource("1_1u51b") offset = Vector2(-1, -20) region_enabled = true region_rect = Rect2(163, 20, 170, 102) -[node name="HandL" type="Sprite2D" parent="Rig/Body"] +[node name="HandL" type="Sprite2D" parent="Root/Rig/Body"] position = Vector2(-60, -53) texture = ExtResource("1_1u51b") region_enabled = true region_rect = Rect2(111.022, 6.27016, 27.6329, 27.1423) -[node name="HandR" type="Sprite2D" parent="Rig/Body"] +[node name="HandR" type="Sprite2D" parent="Root/Rig/Body"] show_behind_parent = true position = Vector2(51, -51) texture = ExtResource("1_1u51b") region_enabled = true region_rect = Rect2(111, 34, 26.9272, 26.6298) -[node name="FX" type="Node2D" parent="Rig"] +[node name="FX" type="Node2D" parent="Root"] +position = Vector2(0, -68) metadata/_edit_lock_ = true -[node name="Cloud" type="Sprite2D" parent="Rig/FX"] +[node name="Cloud" type="Sprite2D" parent="Root/FX"] visible = false texture = ExtResource("2_lv102") region_enabled = true region_rect = Rect2(300, 0, 100, 70) +[node name="Hitbox" type="Area2D" parent="Root"] +position = Vector2(50, 0) +script = ExtResource("5_taq6b") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Root/Hitbox"] +shape = SubResource("RectangleShape2D_2k81i") +debug_color = Color(0.933131, 0.0801983, 0.605982, 0.42) +metadata/_edit_lock_ = true + +[node name="Hurtbox" type="Area2D" parent="Root" node_paths=PackedStringArray("health")] +script = ExtResource("6_jnvxm") +health = NodePath("../../Health") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Root/Hurtbox"] +shape = SubResource("RectangleShape2D_26abe") +debug_color = Color(0.466325, 0.590206, 0.107862, 0.42) +metadata/_edit_lock_ = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(-1, -7) +scale = Vector2(0.6, 0.16) +shape = SubResource("CircleShape2D_so8wt") + +[node name="Health" type="Node" parent="."] +script = ExtResource("4_qwtrf") + [node name="AnimationPlayer" type="AnimationPlayer" parent="."] libraries = { "": SubResource("AnimationLibrary_ws2ti") } autoplay = "idle" + +[node name="BTPlayer" type="BTPlayer" parent="."] +blackboard_plan = SubResource("BlackboardPlan_v0ck1") diff --git a/demo/demo/agents/agent_charger.tscn b/demo/demo/agents/agent_charger.tscn index e23bd9e..cc9b04e 100644 --- a/demo/demo/agents/agent_charger.tscn +++ b/demo/demo/agents/agent_charger.tscn @@ -5,20 +5,20 @@ [node name="Bobby" instance=ExtResource("1_n83hi")] -[node name="LegL" parent="Rig" index="0"] +[node name="LegL" parent="Root/Rig" index="0"] texture = ExtResource("2_y7pic") -[node name="LegR" parent="Rig" index="1"] +[node name="LegR" parent="Root/Rig" index="1"] texture = ExtResource("2_y7pic") -[node name="Body" parent="Rig" index="2"] +[node name="Body" parent="Root/Rig" index="2"] texture = ExtResource("2_y7pic") -[node name="Hat" parent="Rig/Body" index="0"] +[node name="Hat" parent="Root/Rig/Body" index="0"] texture = ExtResource("2_y7pic") -[node name="HandL" parent="Rig/Body" index="1"] +[node name="HandL" parent="Root/Rig/Body" index="1"] texture = ExtResource("2_y7pic") -[node name="HandR" parent="Rig/Body" index="2"] +[node name="HandR" parent="Root/Rig/Body" index="2"] texture = ExtResource("2_y7pic") diff --git a/demo/demo/agents/agent_demon.tscn b/demo/demo/agents/agent_demon.tscn index 85c496a..e9af0c2 100644 --- a/demo/demo/agents/agent_demon.tscn +++ b/demo/demo/agents/agent_demon.tscn @@ -5,20 +5,20 @@ [node name="Bobby" instance=ExtResource("1_115kp")] -[node name="LegL" parent="Rig" index="0"] +[node name="LegL" parent="Root/Rig" index="0"] texture = ExtResource("2_cb5f2") -[node name="LegR" parent="Rig" index="1"] +[node name="LegR" parent="Root/Rig" index="1"] texture = ExtResource("2_cb5f2") -[node name="Body" parent="Rig" index="2"] +[node name="Body" parent="Root/Rig" index="2"] texture = ExtResource("2_cb5f2") -[node name="Hat" parent="Rig/Body" index="0"] +[node name="Hat" parent="Root/Rig/Body" index="0"] texture = ExtResource("2_cb5f2") -[node name="HandL" parent="Rig/Body" index="1"] +[node name="HandL" parent="Root/Rig/Body" index="1"] texture = ExtResource("2_cb5f2") -[node name="HandR" parent="Rig/Body" index="2"] +[node name="HandR" parent="Root/Rig/Body" index="2"] texture = ExtResource("2_cb5f2") diff --git a/demo/demo/agents/agent_fencer.tscn b/demo/demo/agents/agent_fencer.tscn index 4d6be4e..0b630a4 100644 --- a/demo/demo/agents/agent_fencer.tscn +++ b/demo/demo/agents/agent_fencer.tscn @@ -5,20 +5,20 @@ [node name="Bobby" instance=ExtResource("1_fkh4o")] -[node name="LegL" parent="Rig" index="0"] +[node name="LegL" parent="Root/Rig" index="0"] texture = ExtResource("2_r3phr") -[node name="LegR" parent="Rig" index="1"] +[node name="LegR" parent="Root/Rig" index="1"] texture = ExtResource("2_r3phr") -[node name="Body" parent="Rig" index="2"] +[node name="Body" parent="Root/Rig" index="2"] texture = ExtResource("2_r3phr") -[node name="Hat" parent="Rig/Body" index="0"] +[node name="Hat" parent="Root/Rig/Body" index="0"] texture = ExtResource("2_r3phr") -[node name="HandL" parent="Rig/Body" index="1"] +[node name="HandL" parent="Root/Rig/Body" index="1"] texture = ExtResource("2_r3phr") -[node name="HandR" parent="Rig/Body" index="2"] +[node name="HandR" parent="Root/Rig/Body" index="2"] texture = ExtResource("2_r3phr") diff --git a/demo/demo/agents/agent_imp.tscn b/demo/demo/agents/agent_imp.tscn index 8e92e07..7c7f237 100644 --- a/demo/demo/agents/agent_imp.tscn +++ b/demo/demo/agents/agent_imp.tscn @@ -5,20 +5,20 @@ [node name="Bobby" instance=ExtResource("1_y8fj3")] -[node name="LegL" parent="Rig" index="0"] +[node name="LegL" parent="Root/Rig" index="0"] texture = ExtResource("2_iv43q") -[node name="LegR" parent="Rig" index="1"] +[node name="LegR" parent="Root/Rig" index="1"] texture = ExtResource("2_iv43q") -[node name="Body" parent="Rig" index="2"] +[node name="Body" parent="Root/Rig" index="2"] texture = ExtResource("2_iv43q") -[node name="Hat" parent="Rig/Body" index="0"] +[node name="Hat" parent="Root/Rig/Body" index="0"] texture = ExtResource("2_iv43q") -[node name="HandL" parent="Rig/Body" index="1"] +[node name="HandL" parent="Root/Rig/Body" index="1"] texture = ExtResource("2_iv43q") -[node name="HandR" parent="Rig/Body" index="2"] +[node name="HandR" parent="Root/Rig/Body" index="2"] texture = ExtResource("2_iv43q") diff --git a/demo/demo/agents/agent_melee_nuanced.tscn b/demo/demo/agents/agent_melee_nuanced.tscn index 56ac02d..622771e 100644 --- a/demo/demo/agents/agent_melee_nuanced.tscn +++ b/demo/demo/agents/agent_melee_nuanced.tscn @@ -5,20 +5,20 @@ [node name="Bobby" instance=ExtResource("1_afx5l")] -[node name="LegL" parent="Rig" index="0"] +[node name="LegL" parent="Root/Rig" index="0"] texture = ExtResource("2_e51r0") -[node name="LegR" parent="Rig" index="1"] +[node name="LegR" parent="Root/Rig" index="1"] texture = ExtResource("2_e51r0") -[node name="Body" parent="Rig" index="2"] +[node name="Body" parent="Root/Rig" index="2"] texture = ExtResource("2_e51r0") -[node name="Hat" parent="Rig/Body" index="0"] +[node name="Hat" parent="Root/Rig/Body" index="0"] texture = ExtResource("2_e51r0") -[node name="HandL" parent="Rig/Body" index="1"] +[node name="HandL" parent="Root/Rig/Body" index="1"] texture = ExtResource("2_e51r0") -[node name="HandR" parent="Rig/Body" index="2"] +[node name="HandR" parent="Root/Rig/Body" index="2"] texture = ExtResource("2_e51r0") diff --git a/demo/demo/agents/agent_melee_simple.tscn b/demo/demo/agents/agent_melee_simple.tscn index 8ccef50..830db0b 100644 --- a/demo/demo/agents/agent_melee_simple.tscn +++ b/demo/demo/agents/agent_melee_simple.tscn @@ -3,22 +3,22 @@ [ext_resource type="PackedScene" uid="uid://ooigbfhfy4wa" path="res://demo/agents/agent_base.tscn" id="1_l180o"] [ext_resource type="Texture2D" uid="uid://cw8s50856x8ct" path="res://demo/assets/agent_melee_simple.png" id="2_bvbes"] -[node name="Bobby" instance=ExtResource("1_l180o")] +[node name="AgentMeleeSimple" instance=ExtResource("1_l180o")] -[node name="LegL" parent="Rig" index="0"] +[node name="LegL" parent="Root/Rig" index="0"] texture = ExtResource("2_bvbes") -[node name="LegR" parent="Rig" index="1"] +[node name="LegR" parent="Root/Rig" index="1"] texture = ExtResource("2_bvbes") -[node name="Body" parent="Rig" index="2"] +[node name="Body" parent="Root/Rig" index="2"] texture = ExtResource("2_bvbes") -[node name="Hat" parent="Rig/Body" index="0"] +[node name="Hat" parent="Root/Rig/Body" index="0"] texture = ExtResource("2_bvbes") -[node name="HandL" parent="Rig/Body" index="1"] +[node name="HandL" parent="Root/Rig/Body" index="1"] texture = ExtResource("2_bvbes") -[node name="HandR" parent="Rig/Body" index="2"] +[node name="HandR" parent="Root/Rig/Body" index="2"] texture = ExtResource("2_bvbes") diff --git a/demo/demo/agents/agent_ranged.tscn b/demo/demo/agents/agent_ranged.tscn index ef5156c..4a52945 100644 --- a/demo/demo/agents/agent_ranged.tscn +++ b/demo/demo/agents/agent_ranged.tscn @@ -5,20 +5,20 @@ [node name="Bobby" instance=ExtResource("1_oa4xm")] -[node name="LegL" parent="Rig" index="0"] +[node name="LegL" parent="Root/Rig" index="0"] texture = ExtResource("2_37lvn") -[node name="LegR" parent="Rig" index="1"] +[node name="LegR" parent="Root/Rig" index="1"] texture = ExtResource("2_37lvn") -[node name="Body" parent="Rig" index="2"] +[node name="Body" parent="Root/Rig" index="2"] texture = ExtResource("2_37lvn") -[node name="Hat" parent="Rig/Body" index="0"] +[node name="Hat" parent="Root/Rig/Body" index="0"] texture = ExtResource("2_37lvn") -[node name="HandL" parent="Rig/Body" index="1"] +[node name="HandL" parent="Root/Rig/Body" index="1"] texture = ExtResource("2_37lvn") -[node name="HandR" parent="Rig/Body" index="2"] +[node name="HandR" parent="Root/Rig/Body" index="2"] texture = ExtResource("2_37lvn") diff --git a/demo/demo/agents/agent_skirmisher.tscn b/demo/demo/agents/agent_skirmisher.tscn index f1d910e..80552ac 100644 --- a/demo/demo/agents/agent_skirmisher.tscn +++ b/demo/demo/agents/agent_skirmisher.tscn @@ -5,20 +5,20 @@ [node name="Bobby" instance=ExtResource("1_2ir76")] -[node name="LegL" parent="Rig" index="0"] +[node name="LegL" parent="Root/Rig" index="0"] texture = ExtResource("2_w8tqw") -[node name="LegR" parent="Rig" index="1"] +[node name="LegR" parent="Root/Rig" index="1"] texture = ExtResource("2_w8tqw") -[node name="Body" parent="Rig" index="2"] +[node name="Body" parent="Root/Rig" index="2"] texture = ExtResource("2_w8tqw") -[node name="Hat" parent="Rig/Body" index="0"] +[node name="Hat" parent="Root/Rig/Body" index="0"] texture = ExtResource("2_w8tqw") -[node name="HandL" parent="Rig/Body" index="1"] +[node name="HandL" parent="Root/Rig/Body" index="1"] texture = ExtResource("2_w8tqw") -[node name="HandR" parent="Rig/Body" index="2"] +[node name="HandR" parent="Root/Rig/Body" index="2"] texture = ExtResource("2_w8tqw") diff --git a/demo/demo/agents/agent_summoner.tscn b/demo/demo/agents/agent_summoner.tscn index ae60c2c..04d4571 100644 --- a/demo/demo/agents/agent_summoner.tscn +++ b/demo/demo/agents/agent_summoner.tscn @@ -5,20 +5,20 @@ [node name="Bobby" instance=ExtResource("1_neifu")] -[node name="LegL" parent="Rig" index="0"] +[node name="LegL" parent="Root/Rig" index="0"] texture = ExtResource("2_fcti4") -[node name="LegR" parent="Rig" index="1"] +[node name="LegR" parent="Root/Rig" index="1"] texture = ExtResource("2_fcti4") -[node name="Body" parent="Rig" index="2"] +[node name="Body" parent="Root/Rig" index="2"] texture = ExtResource("2_fcti4") -[node name="Hat" parent="Rig/Body" index="0"] +[node name="Hat" parent="Root/Rig/Body" index="0"] texture = ExtResource("2_fcti4") -[node name="HandL" parent="Rig/Body" index="1"] +[node name="HandL" parent="Root/Rig/Body" index="1"] texture = ExtResource("2_fcti4") -[node name="HandR" parent="Rig/Body" index="2"] +[node name="HandR" parent="Root/Rig/Body" index="2"] texture = ExtResource("2_fcti4") diff --git a/demo/demo/agents/scripts/agent_base.gd b/demo/demo/agents/scripts/agent_base.gd new file mode 100644 index 0000000..20c6abb --- /dev/null +++ b/demo/demo/agents/scripts/agent_base.gd @@ -0,0 +1,21 @@ +extends CharacterBody2D + +## Base agent script. + +@onready var animation_player: AnimationPlayer = $AnimationPlayer +@onready var bt_player: BTPlayer = $BTPlayer +@onready var health: Health = $Health + + +func _ready() -> void: + health.damaged.connect(_damaged) + health.death.connect(_die) + + +func _damaged(_amount: float) -> void: + animation_player.play(&"hit") + + +func _die() -> void: + animation_player.play(&"death") + bt_player.active = false diff --git a/demo/demo/agents/scripts/health.gd b/demo/demo/agents/scripts/health.gd new file mode 100644 index 0000000..9c45789 --- /dev/null +++ b/demo/demo/agents/scripts/health.gd @@ -0,0 +1,29 @@ +class_name Health +extends Node + +## Tracks health and emits signal when damaged or dead. + +signal death +signal damaged(amount: float) + +@export var max_health: float = 10.0 + +var _current: float + + +func _ready() -> void: + _current = max_health + + +func take_damage(amount: float) -> void: + _current -= amount + _current = max(_current, 0.0) + + if _current <= 0.0: + death.emit() + else: + damaged.emit(amount) + + +func get_current() -> float: + return _current diff --git a/demo/demo/agents/scripts/hitbox.gd b/demo/demo/agents/scripts/hitbox.gd new file mode 100644 index 0000000..66a53bb --- /dev/null +++ b/demo/demo/agents/scripts/hitbox.gd @@ -0,0 +1,14 @@ +class_name Hitbox +extends Area2D + +## Area that deals damage. + +@export var damage: float = 1.0 + +func _ready() -> void: + area_entered.connect(_on_area_entered) + + +func _on_area_entered(area: Area2D) -> void: + var hurtbox := area as Hurtbox + hurtbox.take_damage(damage, self) diff --git a/demo/demo/agents/scripts/hurtbox.gd b/demo/demo/agents/scripts/hurtbox.gd new file mode 100644 index 0000000..63196f7 --- /dev/null +++ b/demo/demo/agents/scripts/hurtbox.gd @@ -0,0 +1,12 @@ +class_name Hurtbox +extends Area2D + +## Area that registers damage. + +@export var health: Health + +func take_damage(amount: float, source: Area2D) -> void: + if source.owner == owner: + # Don't damage yourself. + return + health.take_damage(amount)