[gd_scene load_steps=22 format=2] [ext_resource path="res://addons/sade/editor_gizmo_texture.png" type="Texture" id=1] [ext_resource path="res://button_change_scene.gd" type="Script" id=2] [ext_resource path="res://fps/example_player.gd" type="Script" id=3] [ext_resource path="res://addons/sade/ik_look_at.gd" type="Script" id=4] [ext_resource path="res://addons/sade/ik_look_at.png" type="Texture" id=5] [ext_resource path="res://addons/sade/ik_fabrik.gd" type="Script" id=6] [ext_resource path="res://addons/sade/ik_fabrik.png" type="Texture" id=7] [ext_resource path="res://fps/weapon_pistol.gltf" type="PackedScene" id=8] [ext_resource path="res://model/godot_battle_bot.gltf" type="PackedScene" id=11] [sub_resource type="PlaneMesh" id=1] size = Vector2( 40, 40 ) [sub_resource type="SpatialMaterial" id=2] albedo_texture = ExtResource( 1 ) roughness = 0.2 uv1_scale = Vector3( 0.25, 0.25, 0.25 ) uv1_triplanar = true uv1_triplanar_sharpness = 1.0 [sub_resource type="BoxShape" id=3] extents = Vector3( 20, 1, 20 ) [sub_resource type="CubeMesh" id=4] size = Vector3( 4, 4, 4 ) [sub_resource type="SpatialMaterial" id=5] albedo_color = Color( 0.148438, 1, 0, 1 ) albedo_texture = ExtResource( 1 ) uv1_triplanar = true uv1_triplanar_sharpness = 1.0 [sub_resource type="BoxShape" id=6] extents = Vector3( 2, 2, 2 ) [sub_resource type="SpatialMaterial" id=7] albedo_color = Color( 0, 0.882813, 1, 1 ) albedo_texture = ExtResource( 1 ) uv1_triplanar = true uv1_triplanar_sharpness = 1.0 [sub_resource type="CapsuleShape" id=8] radius = 4.0 height = 6.0 [sub_resource type="Curve3D" id=9] _data = { "points": PoolVector3Array( 0, 0, 0, 0, 0, 0, -2.43129, -0.955339, 0, 0, 0, 0, 0, 0, 0, -0.670561, 0.183959, 0, 0, 0, 0, 0, 0, 0, 0.64629, 0.228347, 0, 0, 0, 0, 0, 0, 0, 2.31825, -0.925747, 0 ), "tilts": PoolRealArray( 0, 0, 0, 0 ) } [sub_resource type="Animation" id=10] tracks/0/type = "value" tracks/0/path = NodePath("LeanPath/PathFollow/IK_LookAt_Chest/AimPos:translation") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 1 ), "transitions": PoolRealArray( 1, 1 ), "update": 0, "values": [ Vector3( 0.570504, -2.2654, 2.93826 ), Vector3( 0, -1.36445, 3.78817 ) ] } tracks/1/type = "value" tracks/1/path = NodePath("LeanPath/PathFollow/IK_LookAt_Chest/AimPos:rotation_degrees") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0, 1 ), "transitions": PoolRealArray( 1, 1 ), "update": 0, "values": [ Vector3( 0, -2, 0 ), Vector3( 0, 0, 0 ) ] } tracks/2/type = "value" tracks/2/path = NodePath("LeanPath/PathFollow/IK_LookAt_Chest/Camera:fov") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false tracks/2/enabled = true tracks/2/keys = { "times": PoolRealArray( 0, 1 ), "transitions": PoolRealArray( 1, 1 ), "update": 0, "values": [ 80.0, 60.0 ] } [sub_resource type="Animation" id=11] tracks/0/type = "value" tracks/0/path = NodePath("LeanPath/PathFollow/IK_LookAt_Chest/Camera:fov") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 1 ), "transitions": PoolRealArray( 1, 1 ), "update": 0, "values": [ 60.0, 80.0 ] } tracks/1/type = "value" tracks/1/path = NodePath("LeanPath/PathFollow/IK_LookAt_Chest/AimPos:translation") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0, 1 ), "transitions": PoolRealArray( 1, 1 ), "update": 0, "values": [ Vector3( 0, -1.36445, 3.78817 ), Vector3( 0.570504, -2.2654, 2.93826 ) ] } tracks/2/type = "value" tracks/2/path = NodePath("LeanPath/PathFollow/IK_LookAt_Chest/AimPos:rotation_degrees") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false tracks/2/enabled = true tracks/2/keys = { "times": PoolRealArray( 0, 1 ), "transitions": PoolRealArray( 1, 1 ), "update": 0, "values": [ Vector3( 0, 0, 0 ), Vector3( 0, -2, 0 ) ] } [sub_resource type="Animation" id=12] tracks/0/type = "value" tracks/0/path = NodePath("LeanPath/PathFollow/IK_LookAt_Chest/AimPos:translation") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, "values": [ Vector3( 0.570504, -2.2654, 2.93826 ) ] } tracks/1/type = "value" tracks/1/path = NodePath("LeanPath/PathFollow/IK_LookAt_Chest/AimPos:rotation_degrees") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false tracks/1/enabled = true tracks/1/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, "values": [ Vector3( 0, -2, 0 ) ] } tracks/2/type = "value" tracks/2/path = NodePath("LeanPath/PathFollow/IK_LookAt_Chest/Camera:fov") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false tracks/2/enabled = true tracks/2/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, "values": [ 80.0 ] } [node name="FPSExample" type="Spatial"] [node name="Level" type="Spatial" parent="."] [node name="Floor" type="MeshInstance" parent="Level"] transform = Transform( 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0 ) mesh = SubResource( 1 ) material/0 = SubResource( 2 ) [node name="StaticBody" type="StaticBody" parent="Level/Floor"] [node name="CollisionShape" type="CollisionShape" parent="Level/Floor/StaticBody"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.956119, 0 ) shape = SubResource( 3 ) [node name="Walls" type="Spatial" parent="Level"] [node name="LargeWall" type="MeshInstance" parent="Level/Walls"] transform = Transform( 1, 0, 0, 0, 10, 0, 0, 0, 10, -39.9997, 20.0003, 20.0002 ) mesh = SubResource( 4 ) material/0 = SubResource( 5 ) [node name="StaticBody" type="StaticBody" parent="Level/Walls/LargeWall"] [node name="CollisionShape" type="CollisionShape" parent="Level/Walls/LargeWall/StaticBody"] shape = SubResource( 6 ) [node name="LargeWall2" type="MeshInstance" parent="Level/Walls"] transform = Transform( 1, 0, 0, 0, 10, 0, 0, 0, 10, -39.9997, 20.0003, -19.9998 ) mesh = SubResource( 4 ) material/0 = SubResource( 5 ) [node name="StaticBody" type="StaticBody" parent="Level/Walls/LargeWall2"] [node name="CollisionShape" type="CollisionShape" parent="Level/Walls/LargeWall2/StaticBody"] shape = SubResource( 6 ) [node name="LargeWall3" type="MeshInstance" parent="Level/Walls"] transform = Transform( -4.37114e-08, 0, -10, 0, 10, 0, 1, 0, -4.37114e-07, -18.9997, 20.0003, -40.9998 ) mesh = SubResource( 4 ) material/0 = SubResource( 5 ) [node name="StaticBody" type="StaticBody" parent="Level/Walls/LargeWall3"] [node name="CollisionShape" type="CollisionShape" parent="Level/Walls/LargeWall3/StaticBody"] shape = SubResource( 6 ) [node name="LargeWall4" type="MeshInstance" parent="Level/Walls"] transform = Transform( -4.37114e-08, 0, -10, 0, 10, 0, 1, 0, -4.37114e-07, 21.0003, 20.0003, -40.9998 ) mesh = SubResource( 4 ) material/0 = SubResource( 5 ) [node name="StaticBody" type="StaticBody" parent="Level/Walls/LargeWall4"] [node name="CollisionShape" type="CollisionShape" parent="Level/Walls/LargeWall4/StaticBody"] shape = SubResource( 6 ) [node name="LargeWall5" type="MeshInstance" parent="Level/Walls"] transform = Transform( -1, 0, 8.74228e-07, 0, 10, 0, -8.74228e-08, 0, -10, 41.0003, 20.0003, -19.9998 ) mesh = SubResource( 4 ) material/0 = SubResource( 5 ) [node name="StaticBody" type="StaticBody" parent="Level/Walls/LargeWall5"] [node name="CollisionShape" type="CollisionShape" parent="Level/Walls/LargeWall5/StaticBody"] shape = SubResource( 6 ) [node name="LargeWall6" type="MeshInstance" parent="Level/Walls"] transform = Transform( -1, 0, 8.74228e-07, 0, 10, 0, -8.74228e-08, 0, -10, 41.0003, 20.0003, 20.0002 ) mesh = SubResource( 4 ) material/0 = SubResource( 5 ) [node name="StaticBody" type="StaticBody" parent="Level/Walls/LargeWall6"] [node name="CollisionShape" type="CollisionShape" parent="Level/Walls/LargeWall6/StaticBody"] shape = SubResource( 6 ) [node name="LargeWall7" type="MeshInstance" parent="Level/Walls"] transform = Transform( 1.31134e-07, 0, 10, 0, 10, 0, -1, 0, 1.31134e-06, 21.0003, 20.0003, 40.0002 ) mesh = SubResource( 4 ) material/0 = SubResource( 5 ) [node name="StaticBody" type="StaticBody" parent="Level/Walls/LargeWall7"] [node name="CollisionShape" type="CollisionShape" parent="Level/Walls/LargeWall7/StaticBody"] shape = SubResource( 6 ) [node name="LargeWall8" type="MeshInstance" parent="Level/Walls"] transform = Transform( 1.31134e-07, 0, 10, 0, 10, 0, -1, 0, 1.31134e-06, -18.9997, 20.0003, 40.0002 ) mesh = SubResource( 4 ) material/0 = SubResource( 5 ) [node name="StaticBody" type="StaticBody" parent="Level/Walls/LargeWall8"] [node name="CollisionShape" type="CollisionShape" parent="Level/Walls/LargeWall8/StaticBody"] shape = SubResource( 6 ) [node name="Wall" type="MeshInstance" parent="Level/Walls"] transform = Transform( 7.54979e-08, 0, 4, 0, 4, 0, -1, 0, 3.01992e-07, -9.9997, 8.00032, 22.0005 ) mesh = SubResource( 4 ) material/0 = SubResource( 7 ) [node name="StaticBody" type="StaticBody" parent="Level/Walls/Wall"] [node name="CollisionShape" type="CollisionShape" parent="Level/Walls/Wall/StaticBody"] shape = SubResource( 6 ) [node name="Wall2" type="MeshInstance" parent="Level/Walls"] transform = Transform( 1, 0, -4.76837e-07, 0, 4, 0, 1.19209e-07, 0, 4, -19.9997, 8.00032, 16.0005 ) mesh = SubResource( 4 ) material/0 = SubResource( 7 ) [node name="StaticBody" type="StaticBody" parent="Level/Walls/Wall2"] [node name="CollisionShape" type="CollisionShape" parent="Level/Walls/Wall2/StaticBody"] shape = SubResource( 6 ) [node name="Wall3" type="MeshInstance" parent="Level/Walls"] transform = Transform( 1, 0, -3.57627e-07, 0, 4, 0, 1.19209e-07, 0, 3, -19.9997, 8.00032, 2.00049 ) mesh = SubResource( 4 ) material/0 = SubResource( 7 ) [node name="StaticBody" type="StaticBody" parent="Level/Walls/Wall3"] [node name="CollisionShape" type="CollisionShape" parent="Level/Walls/Wall3/StaticBody"] shape = SubResource( 6 ) [node name="Wall4" type="MeshInstance" parent="Level/Walls"] transform = Transform( 1, 0, -4.76837e-07, 0, 4, 0, 1.19209e-07, 0, 4, -19.9997, 8.00032, -21.9995 ) mesh = SubResource( 4 ) material/0 = SubResource( 7 ) [node name="StaticBody" type="StaticBody" parent="Level/Walls/Wall4"] [node name="CollisionShape" type="CollisionShape" parent="Level/Walls/Wall4/StaticBody"] shape = SubResource( 6 ) [node name="Wall5" type="MeshInstance" parent="Level/Walls"] transform = Transform( -1.62921e-07, 0, -4, 0, 4, 0, 1, 0, -6.51683e-07, -9.9997, 8.00032, -27.9995 ) mesh = SubResource( 4 ) material/0 = SubResource( 7 ) [node name="StaticBody" type="StaticBody" parent="Level/Walls/Wall5"] [node name="CollisionShape" type="CollisionShape" parent="Level/Walls/Wall5/StaticBody"] shape = SubResource( 6 ) [node name="Wall6" type="MeshInstance" parent="Level/Walls"] transform = Transform( -1, 0, 8.26528e-07, 0, 4, 0, -2.06632e-07, 0, -4, 0.000319004, 8.00032, -21.9995 ) mesh = SubResource( 4 ) material/0 = SubResource( 7 ) [node name="StaticBody" type="StaticBody" parent="Level/Walls/Wall6"] [node name="CollisionShape" type="CollisionShape" parent="Level/Walls/Wall6/StaticBody"] shape = SubResource( 6 ) [node name="Wall7" type="MeshInstance" parent="Level/Walls"] transform = Transform( -1.62921e-07, 0, -4, 0, 4, 0, 1, 0, -6.51683e-07, 10.0003, 8.00032, -15.9995 ) mesh = SubResource( 4 ) material/0 = SubResource( 7 ) [node name="StaticBody" type="StaticBody" parent="Level/Walls/Wall7"] [node name="CollisionShape" type="CollisionShape" parent="Level/Walls/Wall7/StaticBody"] shape = SubResource( 6 ) [node name="Wall9" type="MeshInstance" parent="Level/Walls"] transform = Transform( 1, 0, -4.76837e-07, 0, 4, 0, 1.19209e-07, 0, 4, 25.0003, 8.00032, -25.9995 ) mesh = SubResource( 4 ) material/0 = SubResource( 7 ) [node name="StaticBody" type="StaticBody" parent="Level/Walls/Wall9"] [node name="CollisionShape" type="CollisionShape" parent="Level/Walls/Wall9/StaticBody"] shape = SubResource( 6 ) [node name="Wall10" type="MeshInstance" parent="Level/Walls"] transform = Transform( 0.573577, 0, 3.27661, 0, 4, 0, -0.819152, 0, 2.29431, 23.0003, 8.00032, 3.00049 ) mesh = SubResource( 4 ) material/0 = SubResource( 7 ) [node name="StaticBody" type="StaticBody" parent="Level/Walls/Wall10"] [node name="CollisionShape" type="CollisionShape" parent="Level/Walls/Wall10/StaticBody"] shape = SubResource( 6 ) [node name="Wall11" type="MeshInstance" parent="Level/Walls"] transform = Transform( -0.819152, 0, 2.29431, 0, 4, 0, -0.573577, 0, -3.27661, 22.2126, 8.00032, 14.7123 ) mesh = SubResource( 4 ) material/0 = SubResource( 7 ) [node name="StaticBody" type="StaticBody" parent="Level/Walls/Wall11"] [node name="CollisionShape" type="CollisionShape" parent="Level/Walls/Wall11/StaticBody"] shape = SubResource( 6 ) [node name="Wall12" type="MeshInstance" parent="Level/Walls"] transform = Transform( -0.627507, 2.10616, 2.29431, 0.642788, 3.06418, 0, -0.439385, 1.47475, -3.27661, 14.8402, 8.00032, 9.55015 ) mesh = SubResource( 4 ) material/0 = SubResource( 7 ) [node name="StaticBody" type="StaticBody" parent="Level/Walls/Wall12"] [node name="CollisionShape" type="CollisionShape" parent="Level/Walls/Wall12/StaticBody"] shape = SubResource( 6 ) [node name="DirectionalLight" type="DirectionalLight" parent="."] transform = Transform( 0.388878, -0.754027, 0.529355, 0, 0.574581, 0.818448, -0.921289, -0.318277, 0.223442, -9.77531, 11.5204, 11.766 ) light_color = Color( 1, 0.925598, 0.820313, 1 ) shadow_enabled = true directional_shadow_mode = 0 [node name="Control" type="Control" parent="."] anchor_right = 1.0 anchor_bottom = 1.0 [node name="Panel" type="Panel" parent="Control"] modulate = Color( 1, 1, 1, 0.784314 ) anchor_top = 1.0 anchor_right = 1.0 anchor_bottom = 1.0 margin_left = -2.0 margin_top = -70.0 margin_right = 4.0 [node name="Label" type="Label" parent="Control/Panel"] anchor_right = 1.0 anchor_bottom = 1.0 margin_left = 12.0 margin_top = 10.0 margin_right = -18.0 margin_bottom = -29.0 text = "F.A.B.R.I.K IK Example use case: Dynamic FPS Animations Controls: WASD/Arrows to move, left click to fire, right click to look down sights, Q/E to lean left/right Escape to free/lock mouse cursor" align = 1 valign = 1 [node name="ButtonPrev" type="Button" parent="Control"] anchor_top = 1.0 anchor_bottom = 1.0 margin_left = 10.0 margin_top = -60.0 margin_right = 129.0 margin_bottom = -10.0 text = "Previous scene" script = ExtResource( 2 ) __meta__ = { "_edit_use_anchors_": false } scene_to_change_to = "res://skeleton_ik.tscn" [node name="Crosshair" type="Control" parent="Control"] modulate = Color( 1, 1, 1, 0.784314 ) anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 anchor_bottom = 0.5 margin_left = -20.0 margin_top = -20.0 margin_right = 20.0 margin_bottom = 20.0 __meta__ = { "_edit_use_anchors_": false } [node name="ColorRect" type="ColorRect" parent="Control/Crosshair"] margin_left = 19.0 margin_right = 21.0 margin_bottom = 40.0 __meta__ = { "_edit_use_anchors_": false } [node name="ColorRect2" type="ColorRect" parent="Control/Crosshair"] margin_left = 40.0 margin_top = 18.0 margin_right = 42.0 margin_bottom = 58.0 rect_rotation = 90.0 [node name="KinematicBody" type="KinematicBody" parent="."] script = ExtResource( 3 ) [node name="CollisionShape" type="CollisionShape" parent="KinematicBody"] transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 7, 0 ) shape = SubResource( 8 ) [node name="CameraHolder" type="Spatial" parent="KinematicBody"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 13, 0 ) [node name="LeanPath" type="Path" parent="KinematicBody/CameraHolder"] curve = SubResource( 9 ) [node name="PathFollow" type="PathFollow" parent="KinematicBody/CameraHolder/LeanPath"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0412404, 0.205172, 0 ) offset = 2.71865 rotation_mode = 0 loop = false [node name="IK_LookAt_Chest" type="Spatial" parent="KinematicBody/CameraHolder/LeanPath/PathFollow"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.451559, 0 ) script = ExtResource( 4 ) __meta__ = { "_editor_icon": ExtResource( 5 ) } skeleton_path = NodePath("../../../../GodotBattleBot/Z_UP/Armature/Skeleton") bone_name = "Chest" look_at_axis = 2 additional_rotation = Vector3( -10, 0, 0 ) additional_bone_length = 1 [node name="Camera" type="Camera" parent="KinematicBody/CameraHolder/LeanPath/PathFollow/IK_LookAt_Chest"] transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0 ) fov = 74.0 [node name="AimPos" type="Spatial" parent="KinematicBody/CameraHolder/LeanPath/PathFollow/IK_LookAt_Chest"] transform = Transform( 0.999391, 0, -0.0348995, 0, 1, 0, 0.0348995, 0, 0.999391, 0.570504, -2.2654, 2.93826 ) [node name="IK_FABRIK" type="Spatial" parent="KinematicBody/CameraHolder/LeanPath/PathFollow/IK_LookAt_Chest/AimPos"] script = ExtResource( 6 ) __meta__ = { "_editor_icon": ExtResource( 7 ) } skeleton_path = NodePath("../../../../../../GodotBattleBot/Z_UP/Armature/Skeleton") bones_in_chain = PoolStringArray( "Left_UpperArm", "Left_LowerArm", "Left_Hand" ) bones_in_chain_lengths = PoolRealArray( 1.97, 3, 0.1 ) chain_iterations = 10 limit_chain_iterations = false use_middle_joint_target = true [node name="Target" type="Spatial" parent="KinematicBody/CameraHolder/LeanPath/PathFollow/IK_LookAt_Chest/AimPos/IK_FABRIK"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.54883, -0.0335302, -0.934144 ) [node name="IK_LookAt" type="Spatial" parent="KinematicBody/CameraHolder/LeanPath/PathFollow/IK_LookAt_Chest/AimPos/IK_FABRIK/Target"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.300601, 0, 0.714191 ) script = ExtResource( 4 ) __meta__ = { "_editor_icon": ExtResource( 5 ) } skeleton_path = NodePath("../../../../../../../../GodotBattleBot/Z_UP/Armature/Skeleton") bone_name = "Left_Hand" use_negative_our_rot = true additional_rotation = Vector3( 0, 0, 90 ) additional_bone_length = 1 [node name="MiddleJoint" type="Spatial" parent="KinematicBody/CameraHolder/LeanPath/PathFollow/IK_LookAt_Chest/AimPos/IK_FABRIK"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 5.85263, -2.91316, -2.77555 ) [node name="Left_UpperArm" type="Spatial" parent="KinematicBody/CameraHolder/LeanPath/PathFollow/IK_LookAt_Chest/AimPos/IK_FABRIK"] transform = Transform( -0.985848, -0.0154234, 0.16693, -0.0140715, 0.999858, 0.00927825, -0.167049, 0.00679813, -0.985925, 1.5529, -1.84646, -6.07288 ) [node name="Left_LowerArm" type="Spatial" parent="KinematicBody/CameraHolder/LeanPath/PathFollow/IK_LookAt_Chest/AimPos/IK_FABRIK"] transform = Transform( -0.980952, 0.0992109, 0.167001, 0.116307, 0.988573, 0.0958931, -0.155579, 0.11349, -0.981282, 1.2349, -1.86413, -4.19466 ) [node name="Left_Hand" type="Spatial" parent="KinematicBody/CameraHolder/LeanPath/PathFollow/IK_LookAt_Chest/AimPos/IK_FABRIK"] transform = Transform( -0.962426, 0.0909643, 0.255854, 0.128209, 0.982809, 0.132853, -0.23937, 0.160664, -0.957543, 0.737802, -2.14957, -1.27378 ) [node name="IK_FABRIK_RightArm" type="Spatial" parent="KinematicBody/CameraHolder/LeanPath/PathFollow/IK_LookAt_Chest/AimPos"] script = ExtResource( 6 ) __meta__ = { "_editor_icon": ExtResource( 7 ) } skeleton_path = NodePath("../../../../../../GodotBattleBot/Z_UP/Armature/Skeleton") bones_in_chain = PoolStringArray( "Right_UpperArm", "Right_LowerArm", "Right_Hand" ) bones_in_chain_lengths = PoolRealArray( 1.97, 3, 0.1 ) chain_iterations = 10 limit_chain_iterations = false use_middle_joint_target = true [node name="Target" type="Spatial" parent="KinematicBody/CameraHolder/LeanPath/PathFollow/IK_LookAt_Chest/AimPos/IK_FABRIK_RightArm"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.285662, -0.0335302, -1.05271 ) [node name="IK_LookAt" type="Spatial" parent="KinematicBody/CameraHolder/LeanPath/PathFollow/IK_LookAt_Chest/AimPos/IK_FABRIK_RightArm/Target"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00396007, 0, 0.834561 ) script = ExtResource( 4 ) __meta__ = { "_editor_icon": ExtResource( 5 ) } skeleton_path = NodePath("../../../../../../../../GodotBattleBot/Z_UP/Armature/Skeleton") bone_name = "Right_Hand" use_negative_our_rot = true additional_rotation = Vector3( 0, 0, 90 ) additional_bone_length = 1 [node name="MiddleJoint" type="Spatial" parent="KinematicBody/CameraHolder/LeanPath/PathFollow/IK_LookAt_Chest/AimPos/IK_FABRIK_RightArm"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5.73318, -2.91316, -2.77555 ) [node name="Right_UpperArm" type="Spatial" parent="KinematicBody/CameraHolder/LeanPath/PathFollow/IK_LookAt_Chest/AimPos/IK_FABRIK_RightArm"] [node name="Right_LowerArm" type="Spatial" parent="KinematicBody/CameraHolder/LeanPath/PathFollow/IK_LookAt_Chest/AimPos/IK_FABRIK_RightArm"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 5.85263, -2.91316, -2.77555 ) [node name="Right_Hand" type="Spatial" parent="KinematicBody/CameraHolder/LeanPath/PathFollow/IK_LookAt_Chest/AimPos/IK_FABRIK_RightArm"] [node name="RemoteTransform" type="RemoteTransform" parent="KinematicBody/CameraHolder/LeanPath/PathFollow/IK_LookAt_Chest/AimPos"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.505047, 0.268441 ) remote_path = NodePath("../../../../../Weapon/Pistol") [node name="IK_LookAt_Head" type="Spatial" parent="KinematicBody/CameraHolder/LeanPath/PathFollow"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -3.14041, -2.57003 ) script = ExtResource( 4 ) __meta__ = { "_editor_icon": ExtResource( 5 ) } skeleton_path = NodePath("../../../../GodotBattleBot/Z_UP/Armature/Skeleton") bone_name = "Head" additional_bone_length = 1 [node name="AnimationPlayer" type="AnimationPlayer" parent="KinematicBody/CameraHolder"] autoplay = "Start" playback_speed = 4.0 anims/Aiming = SubResource( 10 ) anims/Idle = SubResource( 11 ) anims/Start = SubResource( 12 ) [node name="Weapon" type="Spatial" parent="KinematicBody/CameraHolder"] [node name="Pistol" parent="KinematicBody/CameraHolder/Weapon" instance=ExtResource( 8 )] transform = Transform( 0.999391, 0, -0.0348995, 0, 1, 0, 0.0348995, 0, 0.999391, 0.519895, -1.10362, 3.20654 ) [node name="PistolEnd" type="Spatial" parent="KinematicBody/CameraHolder/Weapon/Pistol"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0161836, 0.315914, 1.41329 ) [node name="GodotBattleBot" parent="KinematicBody" instance=ExtResource( 11 )] [editable path="KinematicBody/CameraHolder/Weapon/Pistol"] [editable path="KinematicBody/GodotBattleBot"]