[gd_scene load_steps=44 format=2]

[ext_resource path="res://modules/core/model_visuals/test_base_v3.tres" type="ModelVisual" id=1]
[ext_resource path="res://player/CharacterSkeletonAttachPoint.gd" type="Script" id=2]
[ext_resource path="res://modules/core/materials/3_standard_character_material.tres" type="Material" id=3]
[ext_resource path="res://modules/species/Human/models/dead.tres" type="ProceduralAnimation" id=4]
[ext_resource path="res://modules/species/Human/models/armature.gd" type="Script" id=5]
[ext_resource path="res://modules/species/Human/models/armature.gltf" type="PackedScene" id=6]
[ext_resource path="res://modules/core/materials/9_standard_character_material_notex.tres" type="Material" id=7]
[ext_resource path="res://player/CharacterSkeletonGD.gd" type="Script" id=8]
[ext_resource path="res://modules/species/Human/models/idle-loop.tres" type="ProceduralAnimation" id=9]
[ext_resource path="res://modules/species/Human/models/rest.tres" type="ProceduralAnimation" id=10]
[ext_resource path="res://modules/species/Human/models/cast-end.tres" type="ProceduralAnimation" id=11]
[ext_resource path="res://modules/species/Human/models/casting-loop.tres" type="ProceduralAnimation" id=12]
[ext_resource path="res://modules/species/Human/models/run-left-loop.tres" type="ProceduralAnimation" id=13]
[ext_resource path="res://modules/species/Human/models/run-right-loop.tres" type="ProceduralAnimation" id=14]
[ext_resource path="res://modules/species/Human/models/run-loop.tres" type="ProceduralAnimation" id=15]

[sub_resource type="AnimationNodeAnimation" id=1]
animation = "cast-end"

[sub_resource type="AnimationNodeAnimation" id=2]
animation = "cast-end"

[sub_resource type="AnimationNodeAnimation" id=3]
animation = "casting-loop"

[sub_resource type="AnimationNodeAnimation" id=4]
animation = "dead"

[sub_resource type="AnimationNodeAnimation" id=5]
animation = "idle-loop"

[sub_resource type="AnimationNodeAnimation" id=6]
animation = "run-left-loop"

[sub_resource type="AnimationNodeAnimation" id=7]
animation = "run-loop"

[sub_resource type="AnimationNodeAnimation" id=8]
animation = "run-loop"

[sub_resource type="AnimationNodeAnimation" id=9]
animation = "run-right-loop"

[sub_resource type="AnimationNodeBlendSpace2D" id=10]
blend_point_0/node = SubResource( 6 )
blend_point_0/pos = Vector2( -1, 0 )
blend_point_1/node = SubResource( 7 )
blend_point_1/pos = Vector2( 0, 1 )
blend_point_2/node = SubResource( 8 )
blend_point_2/pos = Vector2( 0, -1 )
blend_point_3/node = SubResource( 9 )
blend_point_3/pos = Vector2( 1, 0 )
blend_mode = 1

[sub_resource type="AnimationNodeStateMachineTransition" id=11]
xfade_time = 0.09

[sub_resource type="AnimationNodeStateMachineTransition" id=12]
xfade_time = 0.09

[sub_resource type="AnimationNodeStateMachineTransition" id=13]
xfade_time = 0.05

[sub_resource type="AnimationNodeStateMachineTransition" id=14]
auto_advance = true
xfade_time = 0.15

[sub_resource type="AnimationNodeStateMachineTransition" id=15]
auto_advance = true
xfade_time = 0.14

[sub_resource type="AnimationNodeStateMachineTransition" id=16]
xfade_time = 0.09

[sub_resource type="AnimationNodeStateMachineTransition" id=17]
xfade_time = 0.1

[sub_resource type="AnimationNodeStateMachineTransition" id=18]
xfade_time = 0.1

[sub_resource type="AnimationNodeStateMachineTransition" id=19]
xfade_time = 0.09

[sub_resource type="AnimationNodeStateMachineTransition" id=20]
xfade_time = 0.09

[sub_resource type="AnimationNodeStateMachineTransition" id=21]

[sub_resource type="AnimationNodeStateMachineTransition" id=22]
xfade_time = 0.12

[sub_resource type="AnimationNodeStateMachineTransition" id=23]
xfade_time = 0.12

[sub_resource type="AnimationNodeStateMachineTransition" id=24]
xfade_time = 0.12

[sub_resource type="AnimationNodeStateMachineTransition" id=25]
xfade_time = 0.12

[sub_resource type="AnimationNodeStateMachineTransition" id=26]
xfade_time = 0.12

[sub_resource type="AnimationNodeStateMachine" id=27]
states/cast-end/node = SubResource( 2 )
states/cast-end/position = Vector2( 117.871, -197.811 )
"states/cast-end 2/node" = SubResource( 1 )
"states/cast-end 2/position" = Vector2( 317.871, -197.811 )
states/casting-loop/node = SubResource( 3 )
states/casting-loop/position = Vector2( -76.129, -197.811 )
states/dead/node = SubResource( 4 )
states/dead/position = Vector2( -129.129, 73.189 )
states/idle-loop/node = SubResource( 5 )
states/idle-loop/position = Vector2( -255.566, -317.817 )
states/run-loop/node = SubResource( 10 )
states/run-loop/position = Vector2( 31.871, -340.817 )
transitions = [ "idle-loop", "casting-loop", SubResource( 11 ), "casting-loop", "idle-loop", SubResource( 12 ), "casting-loop", "cast-end", SubResource( 13 ), "cast-end", "cast-end 2", SubResource( 14 ), "cast-end 2", "idle-loop", SubResource( 15 ), "idle-loop", "cast-end", SubResource( 16 ), "idle-loop", "run-loop", SubResource( 17 ), "run-loop", "idle-loop", SubResource( 18 ), "casting-loop", "run-loop", SubResource( 19 ), "run-loop", "casting-loop", SubResource( 20 ), "run-loop", "cast-end", SubResource( 21 ), "idle-loop", "dead", SubResource( 22 ), "casting-loop", "dead", SubResource( 23 ), "cast-end 2", "dead", SubResource( 24 ), "run-loop", "dead", SubResource( 25 ), "dead", "idle-loop", SubResource( 26 ) ]
start_node = "idle-loop"
graph_offset = Vector2( -679.129, -439.651 )

[sub_resource type="AnimationNodeStateMachinePlayback" id=28]

[node name="character" type="CharacterSkeleton3D"]
entity_type = 1
model_dirty = true
animation_player_path = NodePath("armature/AnimationPlayer")
animation_tree_path = NodePath("AnimationTree")
attach_point_paths/0_left_hand = NodePath("armature/Armature/Skeleton/LeftHandAttachment/LeftHandAP")
attach_point_paths/1_right_hand = NodePath("armature/Armature/Skeleton/RightHandAttachment/RightHandAP")
attach_point_paths/2_torso = NodePath("armature/Armature/Skeleton/NeckAttachment/TorsoAP")
attach_point_paths/3_root = NodePath("armature/Armature/Skeleton/RootAttachment/RootAP")
attach_point_paths/4_right_hip = NodePath("armature/Armature/Skeleton/RightHipAttachment/Spatial")
attach_point_paths/5_left_hip = NodePath("")
attach_point_paths/6_spine_2 = NodePath("armature/Armature/Skeleton/BoneAttachment/Spine2AP")
attach_point_paths/7_weapon_left = NodePath("armature/Armature/Skeleton/LeftWeapon")
attach_point_paths/8_weapon_right = NodePath("armature/Armature/Skeleton/RightWeapon")
attach_point_paths/9_weapon_left_back = NodePath("armature/Armature/Skeleton/LeftWeaponBack")
attach_point_paths/10_weapon_right_back = NodePath("armature/Armature/Skeleton/RightWeaponBack")
attach_point_paths/11_weapon_shield_left = NodePath("armature/Armature/Skeleton/Shield")
script = ExtResource( 8 )
automatic_build = true
mesh_instance_path = NodePath("armature/Armature/Skeleton/MeshInstance")
skeleton_path = NodePath("armature/Armature/Skeleton")
materials = [ ExtResource( 3 ), ExtResource( 3 ), ExtResource( 7 ) ]
viss = [ ExtResource( 1 ) ]

[node name="armature" parent="." instance=ExtResource( 6 )]
script = ExtResource( 5 )

[node name="Skeleton" parent="armature/Armature" index="0"]
transform = Transform( 1, -6.84064e-18, 1.54087e-25, 6.84064e-18, 1, 1.05378e-42, -1.54087e-25, 0, 1, 0, 0, 0 )
bones/0/bound_children = [ NodePath("RootAttachment") ]
bones/1/bound_children = [ NodePath("RightHipAttachment"), NodePath("LeftHipAttachment") ]
bones/10/bound_children = [ NodePath("RightBackAttachment"), NodePath("LeftBackAttachment") ]
bones/14/bound_children = [ NodePath("RightHandAttachment") ]
bones/21/bound_children = [ NodePath("ShieldAttachment") ]
bones/22/bound_children = [ NodePath("LeftHandAttachment") ]
bones/27/bound_children = [ NodePath("NeckAttachment") ]

[node name="MeshInstance" type="MeshInstance" parent="armature/Armature/Skeleton" index="0"]
visible = false

[node name="LeftHandAttachment" type="BoneAttachment" parent="armature/Armature/Skeleton" index="1"]
transform = Transform( 0.190725, 0.147102, -0.970559, 0.0931773, -0.986957, -0.131278, -0.97721, -0.065396, -0.201944, 0.244939, 0.774361, -0.0217047 )
bone_name = "left_hand"

[node name="LeftHandAP" type="Spatial" parent="armature/Armature/Skeleton/LeftHandAttachment"]
transform = Transform( -0.0646502, 0.683772, 0.726832, -0.148514, -0.726783, 0.670508, 0.986758, -0.0646467, 0.148575, -0.0226043, 0.107657, 0.0283146 )
script = ExtResource( 2 )
positions = [  ]

[node name="ShieldAttachment" type="BoneAttachment" parent="armature/Armature/Skeleton" index="2"]
transform = Transform( -0.0433176, 0.125638, 0.99113, -0.0774754, -0.989496, 0.122045, 0.996052, -0.0715015, 0.0525965, 0.214702, 1.0125, -0.00449639 )
bone_name = "left_forearm"

[node name="LeftHandShield" type="Spatial" parent="armature/Armature/Skeleton/ShieldAttachment"]
transform = Transform( 0.122585, 0.992132, -0.0242311, 0.987746, -0.124342, -0.0941345, -0.0964273, -0.0123912, -0.995239, 0.0157415, 0.108918, 0.0213161 )

[node name="RightHandAttachment" type="BoneAttachment" parent="armature/Armature/Skeleton" index="3"]
transform = Transform( -0.0270232, -0.0924786, -0.995348, -0.0997119, -0.990496, 0.0947352, -0.99465, 0.101808, 0.0175453, -0.248237, 0.77238, -0.0111511 )
bone_name = "right_hand"

[node name="RightHandAP" type="Spatial" parent="armature/Armature/Skeleton/RightHandAttachment"]
transform = Transform( 0.0789363, 0.493983, 0.86583, -0.0571054, -0.864836, 0.498656, 0.995268, -0.0888088, -0.0400836, -0.0131918, 0.0790432, -0.0425565 )
script = ExtResource( 2 )
positions = [  ]

[node name="RootAttachment" type="BoneAttachment" parent="armature/Armature/Skeleton" index="4"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -3.23883e-05, 0, 0.000216131 )
bone_name = "root"

[node name="RootAP" type="Spatial" parent="armature/Armature/Skeleton/RootAttachment"]
transform = Transform( 1, 0, 0, 0, -1.62921e-07, 1, 0, -1, -1.62921e-07, 0, 0, 0 )
script = ExtResource( 2 )
positions = [  ]

[node name="NeckAttachment" type="BoneAttachment" parent="armature/Armature/Skeleton" index="5"]
transform = Transform( 0.999992, 0.00218317, -0.00333621, -0.0019591, 0.997835, 0.0657461, 0.00347252, -0.065739, 0.997831, 0.000876503, 1.31821, 0.00123351 )
bone_name = "neck"

[node name="TorsoAP" type="Spatial" parent="armature/Armature/Skeleton/NeckAttachment"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.04, -0.09 )
script = ExtResource( 2 )
positions = [  ]

[node name="RightHipAttachment" type="BoneAttachment" parent="armature/Armature/Skeleton" index="6"]
transform = Transform( 0.999504, 0.0314799, 1.49316e-08, -0.0314799, 0.999504, 4.7162e-07, -7.76685e-11, -4.71856e-07, 1, 0, 0.776724, 0 )
bone_name = "pelvis"

[node name="Spatial" type="Spatial" parent="armature/Armature/Skeleton/RightHipAttachment"]
transform = Transform( 0.993372, -0.0110498, 0.114411, 0.0109836, 0.999939, 0.00120905, -0.114417, 5.56017e-05, 0.993433, -0.141825, 0.176866, 0.16621 )

[node name="LeftHipAttachment" type="BoneAttachment" parent="armature/Armature/Skeleton" index="7"]
transform = Transform( 0.999504, 0.0314799, 1.49316e-08, -0.0314799, 0.999504, 4.7162e-07, -7.76685e-11, -4.71856e-07, 1, 0, 0.776724, 0 )
bone_name = "pelvis"

[node name="Spatial" type="Spatial" parent="armature/Armature/Skeleton/LeftHipAttachment"]
transform = Transform( 0.99343, -0.00240871, -0.114417, 0.00240855, 0.999997, -0.000139626, 0.114417, -0.00013687, 0.993433, 0.144429, 0.18077, 0.165634 )

[node name="RightBackAttachment" type="BoneAttachment" parent="armature/Armature/Skeleton" index="8"]
transform = Transform( 0.999993, 0.00165794, -0.00337115, -0.00168643, 0.999963, -0.00847085, 0.00335698, 0.00847647, 0.999959, 0.000565477, 1.13062, -0.000356666 )
bone_name = "spine_2"

[node name="RightBackAP" type="Spatial" parent="armature/Armature/Skeleton/RightBackAttachment"]
transform = Transform( 0.999997, -0.00244424, -0.000479204, 0.00243884, 0.999966, -3.47705e-05, 0.000479292, 3.44458e-05, 1, 0.000560207, -0.00363708, -0.120332 )

[node name="LeftBackAttachment" type="BoneAttachment" parent="armature/Armature/Skeleton" index="9"]
transform = Transform( 0.999993, 0.00165794, -0.00337115, -0.00168643, 0.999963, -0.00847085, 0.00335698, 0.00847647, 0.999959, 0.000565477, 1.13062, -0.000356666 )
bone_name = "spine_2"

[node name="LeftBackAP" type="Spatial" parent="armature/Armature/Skeleton/LeftBackAttachment"]
transform = Transform( 0.999994, -0.00350821, -0.000687771, 0.00350043, 0.999949, -5.02995e-05, 0.000687948, 4.91154e-05, 1, 0.000822697, -0.00513983, -0.097967 )

[node name="LeftWeapon" type="Spatial" parent="armature/Armature/Skeleton" index="10"]
transform = Transform( 0.993142, 0.0242247, -0.11438, -0.0240499, 0.999706, 0.00290812, 0.114417, -0.000137342, 0.993433, 0.151114, 0.951937, 0.165634 )
script = ExtResource( 2 )
positions = [ NodePath("../LeftHipAttachment/Spatial"), NodePath("../LeftHandAttachment/LeftHandAP") ]

[node name="RightWeapon" type="Spatial" parent="armature/Armature/Skeleton" index="11"]
script = ExtResource( 2 )
positions = [ NodePath("../RightHipAttachment/Spatial"), NodePath("../RightHandAttachment/RightHandAP") ]

[node name="LeftWeaponBack" type="Spatial" parent="armature/Armature/Skeleton" index="12"]
transform = Transform( 1, 0, 0, 0, 0.999886, 0, 0, 0, 1, 0, 0, 0 )
script = ExtResource( 2 )
positions = [ NodePath("../LeftBackAttachment/LeftBackAP"), NodePath("../LeftHandAttachment/LeftHandAP") ]

[node name="Shield" type="Spatial" parent="armature/Armature/Skeleton" index="13"]
transform = Transform( 1, 0, 0, 0, 0.999886, 0, 0, 0, 1, 0, 0, 0 )
script = ExtResource( 2 )
positions = [ NodePath("../LeftBackAttachment/LeftBackAP"), NodePath("../ShieldAttachment/LeftHandShield") ]

[node name="RightWeaponBack" type="Spatial" parent="armature/Armature/Skeleton" index="14"]
transform = Transform( 1, 0, 0, 0, 0.999899, 0, 0, 0, 1, 0, 0, 0 )
script = ExtResource( 2 )
positions = [ NodePath("../RightBackAttachment/RightBackAP"), NodePath("../RightHandAttachment/RightHandAP") ]

[node name="AnimationPlayer" parent="armature" index="1"]
autoplay = "rest"
anims/cast-end = ExtResource( 11 )
anims/casting-loop = ExtResource( 12 )
anims/dead = ExtResource( 4 )
anims/idle-loop = ExtResource( 9 )
anims/rest = ExtResource( 10 )
anims/run-left-loop = ExtResource( 13 )
anims/run-loop = ExtResource( 15 )
anims/run-right-loop = ExtResource( 14 )

[node name="AnimationTree" type="AnimationTree" parent="."]
tree_root = SubResource( 27 )
anim_player = NodePath("../armature/AnimationPlayer")
active = true
parameters/playback = SubResource( 28 )
parameters/run-loop/blend_position = Vector2( 0, -0.0172414 )

[editable path="armature"]
