[gd_scene load_steps=26 format=2] [ext_resource path="res://addons/sade/editor_gizmo_texture.png" type="Texture2D" 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="Texture2D" 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="Texture2D" id=7] [ext_resource path="res://fps/weapon_pistol.dae" type="PackedScene" id=8] [ext_resource path="res://fps/gun_color.tres" type="Material" id=9] [ext_resource path="res://fps/gun_emission.tres" type="Material" id=10] [ext_resource path="res://model/godot_battle_bot.dae" type="PackedScene" id=11] [ext_resource path="res://model/battle_bot_color.tres" type="Material" id=12] [ext_resource path="res://model/battle_bot_emission.tres" type="Material" id=13] [sub_resource type="PlaneMesh" id=1] size = Vector2(40, 40) [sub_resource type="StandardMaterial3D" id=2] albedo_texture = ExtResource( 1 ) roughness = 0.2 uv1_scale = Vector3(0.25, 0.25, 0.25) uv1_triplanar = true [sub_resource type="BoxShape3D" id=3] extents = Vector3(20, 1, 20) [sub_resource type="BoxMesh" id=4] size = Vector3(4, 4, 4) [sub_resource type="StandardMaterial3D" id=5] albedo_color = Color(0.148438, 1, 0, 1) albedo_texture = ExtResource( 1 ) uv1_triplanar = true [sub_resource type="BoxShape3D" id=6] extents = Vector3(2, 2, 2) [sub_resource type="StandardMaterial3D" id=7] albedo_color = Color(0, 0.882813, 1, 1) albedo_texture = ExtResource( 1 ) uv1_triplanar = true [sub_resource type="CapsuleShape3D" id=8] radius = 4.0 height = 6.0 [sub_resource type="Curve3D" id=9] _data = { "points": PackedVector3Array(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": PackedFloat32Array(0, 0, 0, 0) } [sub_resource type="Animation" id=10] tracks/0/type = "value" tracks/0/path = NodePath("LeanPath/PathFollow3D/IK_LookAt_Chest/AimPos:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0, 1), "transitions": PackedFloat32Array(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/PathFollow3D/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": PackedFloat32Array(0, 1), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector3(0, -2, 0), Vector3(0, 0, 0)] } tracks/2/type = "value" tracks/2/path = NodePath("LeanPath/PathFollow3D/IK_LookAt_Chest/Camera3D:fov") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false tracks/2/enabled = true tracks/2/keys = { "times": PackedFloat32Array(0, 1), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [80.0, 60.0] } [sub_resource type="Animation" id=11] tracks/0/type = "value" tracks/0/path = NodePath("LeanPath/PathFollow3D/IK_LookAt_Chest/Camera3D:fov") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0, 1), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [60.0, 80.0] } tracks/1/type = "value" tracks/1/path = NodePath("LeanPath/PathFollow3D/IK_LookAt_Chest/AimPos:position") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false tracks/1/enabled = true tracks/1/keys = { "times": PackedFloat32Array(0, 1), "transitions": PackedFloat32Array(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/PathFollow3D/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": PackedFloat32Array(0, 1), "transitions": PackedFloat32Array(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/PathFollow3D/IK_LookAt_Chest/AimPos:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector3(0.570504, -2.2654, 2.93826)] } tracks/1/type = "value" tracks/1/path = NodePath("LeanPath/PathFollow3D/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": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector3(0, -2, 0)] } tracks/2/type = "value" tracks/2/path = NodePath("LeanPath/PathFollow3D/IK_LookAt_Chest/Camera3D:fov") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/imported = false tracks/2/enabled = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [80.0] } [node name="FPSExample" type="Node3D"] [node name="Level" type="Node3D" parent="."] [node name="Floor" type="MeshInstance3D" parent="Level"] transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0) mesh = SubResource( 1 ) surface_material_override/0 = SubResource( 2 ) [node name="StaticBody3D" type="StaticBody3D" parent="Level/Floor"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Floor/StaticBody3D"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.956119, 0) shape = SubResource( 3 ) [node name="Walls" type="Node3D" parent="Level"] [node name="LargeWall" type="MeshInstance3D" parent="Level/Walls"] transform = Transform3D(1, 0, 0, 0, 10, 0, 0, 0, 10, -39.9997, 20.0003, 20.0002) mesh = SubResource( 4 ) surface_material_override/0 = SubResource( 5 ) [node name="StaticBody3D" type="StaticBody3D" parent="Level/Walls/LargeWall"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Walls/LargeWall/StaticBody3D"] shape = SubResource( 6 ) [node name="LargeWall2" type="MeshInstance3D" parent="Level/Walls"] transform = Transform3D(1, 0, 0, 0, 10, 0, 0, 0, 10, -39.9997, 20.0003, -19.9998) mesh = SubResource( 4 ) surface_material_override/0 = SubResource( 5 ) [node name="StaticBody3D" type="StaticBody3D" parent="Level/Walls/LargeWall2"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Walls/LargeWall2/StaticBody3D"] shape = SubResource( 6 ) [node name="LargeWall3" type="MeshInstance3D" parent="Level/Walls"] transform = Transform3D(-4.37114e-08, 0, -10, 0, 10, 0, 1, 0, -4.37114e-07, -18.9997, 20.0003, -40.9998) mesh = SubResource( 4 ) surface_material_override/0 = SubResource( 5 ) [node name="StaticBody3D" type="StaticBody3D" parent="Level/Walls/LargeWall3"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Walls/LargeWall3/StaticBody3D"] shape = SubResource( 6 ) [node name="LargeWall4" type="MeshInstance3D" parent="Level/Walls"] transform = Transform3D(-4.37114e-08, 0, -10, 0, 10, 0, 1, 0, -4.37114e-07, 21.0003, 20.0003, -40.9998) mesh = SubResource( 4 ) surface_material_override/0 = SubResource( 5 ) [node name="StaticBody3D" type="StaticBody3D" parent="Level/Walls/LargeWall4"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Walls/LargeWall4/StaticBody3D"] shape = SubResource( 6 ) [node name="LargeWall5" type="MeshInstance3D" parent="Level/Walls"] transform = Transform3D(-1, 0, 8.74228e-07, 0, 10, 0, -8.74228e-08, 0, -10, 41.0003, 20.0003, -19.9998) mesh = SubResource( 4 ) surface_material_override/0 = SubResource( 5 ) [node name="StaticBody3D" type="StaticBody3D" parent="Level/Walls/LargeWall5"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Walls/LargeWall5/StaticBody3D"] shape = SubResource( 6 ) [node name="LargeWall6" type="MeshInstance3D" parent="Level/Walls"] transform = Transform3D(-1, 0, 8.74228e-07, 0, 10, 0, -8.74228e-08, 0, -10, 41.0003, 20.0003, 20.0002) mesh = SubResource( 4 ) surface_material_override/0 = SubResource( 5 ) [node name="StaticBody3D" type="StaticBody3D" parent="Level/Walls/LargeWall6"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Walls/LargeWall6/StaticBody3D"] shape = SubResource( 6 ) [node name="LargeWall7" type="MeshInstance3D" parent="Level/Walls"] transform = Transform3D(1.31134e-07, 0, 10, 0, 10, 0, -1, 0, 1.31134e-06, 21.0003, 20.0003, 40.0002) mesh = SubResource( 4 ) surface_material_override/0 = SubResource( 5 ) [node name="StaticBody3D" type="StaticBody3D" parent="Level/Walls/LargeWall7"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Walls/LargeWall7/StaticBody3D"] shape = SubResource( 6 ) [node name="LargeWall8" type="MeshInstance3D" parent="Level/Walls"] transform = Transform3D(1.31134e-07, 0, 10, 0, 10, 0, -1, 0, 1.31134e-06, -18.9997, 20.0003, 40.0002) mesh = SubResource( 4 ) surface_material_override/0 = SubResource( 5 ) [node name="StaticBody3D" type="StaticBody3D" parent="Level/Walls/LargeWall8"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Walls/LargeWall8/StaticBody3D"] shape = SubResource( 6 ) [node name="Wall" type="MeshInstance3D" parent="Level/Walls"] transform = Transform3D(7.54979e-08, 0, 4, 0, 4, 0, -1, 0, 3.01992e-07, -9.9997, 8.00032, 22.0005) mesh = SubResource( 4 ) surface_material_override/0 = SubResource( 7 ) [node name="StaticBody3D" type="StaticBody3D" parent="Level/Walls/Wall"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Walls/Wall/StaticBody3D"] shape = SubResource( 6 ) [node name="Wall2" type="MeshInstance3D" parent="Level/Walls"] transform = Transform3D(1, 0, -4.76837e-07, 0, 4, 0, 1.19209e-07, 0, 4, -19.9997, 8.00032, 16.0005) mesh = SubResource( 4 ) surface_material_override/0 = SubResource( 7 ) [node name="StaticBody3D" type="StaticBody3D" parent="Level/Walls/Wall2"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Walls/Wall2/StaticBody3D"] shape = SubResource( 6 ) [node name="Wall3" type="MeshInstance3D" parent="Level/Walls"] transform = Transform3D(1, 0, -3.57627e-07, 0, 4, 0, 1.19209e-07, 0, 3, -19.9997, 8.00032, 2.00049) mesh = SubResource( 4 ) surface_material_override/0 = SubResource( 7 ) [node name="StaticBody3D" type="StaticBody3D" parent="Level/Walls/Wall3"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Walls/Wall3/StaticBody3D"] shape = SubResource( 6 ) [node name="Wall4" type="MeshInstance3D" parent="Level/Walls"] transform = Transform3D(1, 0, -4.76837e-07, 0, 4, 0, 1.19209e-07, 0, 4, -19.9997, 8.00032, -21.9995) mesh = SubResource( 4 ) surface_material_override/0 = SubResource( 7 ) [node name="StaticBody3D" type="StaticBody3D" parent="Level/Walls/Wall4"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Walls/Wall4/StaticBody3D"] shape = SubResource( 6 ) [node name="Wall5" type="MeshInstance3D" parent="Level/Walls"] transform = Transform3D(-1.62921e-07, 0, -4, 0, 4, 0, 1, 0, -6.51683e-07, -9.9997, 8.00032, -27.9995) mesh = SubResource( 4 ) surface_material_override/0 = SubResource( 7 ) [node name="StaticBody3D" type="StaticBody3D" parent="Level/Walls/Wall5"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Walls/Wall5/StaticBody3D"] shape = SubResource( 6 ) [node name="Wall6" type="MeshInstance3D" parent="Level/Walls"] transform = Transform3D(-1, 0, 8.26528e-07, 0, 4, 0, -2.06632e-07, 0, -4, 0.000319004, 8.00032, -21.9995) mesh = SubResource( 4 ) surface_material_override/0 = SubResource( 7 ) [node name="StaticBody3D" type="StaticBody3D" parent="Level/Walls/Wall6"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Walls/Wall6/StaticBody3D"] shape = SubResource( 6 ) [node name="Wall7" type="MeshInstance3D" parent="Level/Walls"] transform = Transform3D(-1.62921e-07, 0, -4, 0, 4, 0, 1, 0, -6.51683e-07, 10.0003, 8.00032, -15.9995) mesh = SubResource( 4 ) surface_material_override/0 = SubResource( 7 ) [node name="StaticBody3D" type="StaticBody3D" parent="Level/Walls/Wall7"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Walls/Wall7/StaticBody3D"] shape = SubResource( 6 ) [node name="Wall9" type="MeshInstance3D" parent="Level/Walls"] transform = Transform3D(1, 0, -4.76837e-07, 0, 4, 0, 1.19209e-07, 0, 4, 25.0003, 8.00032, -25.9995) mesh = SubResource( 4 ) surface_material_override/0 = SubResource( 7 ) [node name="StaticBody3D" type="StaticBody3D" parent="Level/Walls/Wall9"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Walls/Wall9/StaticBody3D"] shape = SubResource( 6 ) [node name="Wall10" type="MeshInstance3D" parent="Level/Walls"] transform = Transform3D(0.573577, 0, 3.27661, 0, 4, 0, -0.819152, 0, 2.29431, 23.0003, 8.00032, 3.00049) mesh = SubResource( 4 ) surface_material_override/0 = SubResource( 7 ) [node name="StaticBody3D" type="StaticBody3D" parent="Level/Walls/Wall10"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Walls/Wall10/StaticBody3D"] shape = SubResource( 6 ) [node name="Wall11" type="MeshInstance3D" parent="Level/Walls"] transform = Transform3D(-0.819152, 0, 2.29431, 0, 4, 0, -0.573577, 0, -3.27661, 22.2126, 8.00032, 14.7123) mesh = SubResource( 4 ) surface_material_override/0 = SubResource( 7 ) [node name="StaticBody3D" type="StaticBody3D" parent="Level/Walls/Wall11"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Walls/Wall11/StaticBody3D"] shape = SubResource( 6 ) [node name="Wall12" type="MeshInstance3D" parent="Level/Walls"] transform = Transform3D(-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 ) surface_material_override/0 = SubResource( 7 ) [node name="StaticBody3D" type="StaticBody3D" parent="Level/Walls/Wall12"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Level/Walls/Wall12/StaticBody3D"] shape = SubResource( 6 ) [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] transform = Transform3D(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 offset_left = -2.0 offset_top = -70.0 offset_right = 4.0 [node name="Label" type="Label" parent="Control/Panel"] anchor_right = 1.0 anchor_bottom = 1.0 offset_left = 12.0 offset_top = 10.0 offset_right = -18.0 offset_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 offset_left = 10.0 offset_top = -60.0 offset_right = 129.0 offset_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 offset_left = -20.0 offset_top = -20.0 offset_right = 20.0 offset_bottom = 20.0 __meta__ = { "_edit_use_anchors_": false } [node name="ColorRect" type="ColorRect" parent="Control/Crosshair"] offset_left = 19.0 offset_right = 21.0 offset_bottom = 40.0 __meta__ = { "_edit_use_anchors_": false } [node name="ColorRect2" type="ColorRect" parent="Control/Crosshair"] offset_left = 40.0 offset_top = 18.0 offset_right = 42.0 offset_bottom = 58.0 rotation = 90.0 [node name="CharacterBody3D" type="CharacterBody3D" parent="."] script = ExtResource( 3 ) [node name="CollisionShape3D" type="CollisionShape3D" parent="CharacterBody3D"] transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 7, 0) shape = SubResource( 8 ) [node name="CameraHolder" type="Node3D" parent="CharacterBody3D"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 13, 0) [node name="LeanPath" type="Path3D" parent="CharacterBody3D/CameraHolder"] curve = SubResource( 9 ) [node name="PathFollow3D" type="PathFollow3D" parent="CharacterBody3D/CameraHolder/LeanPath"] transform = Transform3D(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="Node3D" parent="CharacterBody3D/CameraHolder/LeanPath/PathFollow3D"] transform = Transform3D(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/Armature/Skeleton3D") bone_name = "Chest" look_at_axis = 2 additional_rotation = Vector3(-10, 0, 0) [node name="Camera3D" type="Camera3D" parent="CharacterBody3D/CameraHolder/LeanPath/PathFollow3D/IK_LookAt_Chest"] transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0) fov = 74.0 [node name="AimPos" type="Node3D" parent="CharacterBody3D/CameraHolder/LeanPath/PathFollow3D/IK_LookAt_Chest"] transform = Transform3D(0.999391, 0, -0.0348995, 0, 1, 0, 0.0348995, 0, 0.999391, 0.570504, -2.2654, 2.93826) [node name="IK_FABRIK" type="Node3D" parent="CharacterBody3D/CameraHolder/LeanPath/PathFollow3D/IK_LookAt_Chest/AimPos"] script = ExtResource( 6 ) __meta__ = { "_editor_icon": ExtResource( 7 ) } skeleton_path = NodePath("../../../../../../GodotBattleBot/Armature/Skeleton3D") bones_in_chain = PackedStringArray("Left_UpperArm", "Left_LowerArm", "Left_Hand") bones_in_chain_lengths = PackedFloat32Array(1.97, 3, 0.1) limit_chain_iterations = false use_middle_joint_target = true [node name="Target" type="Node3D" parent="CharacterBody3D/CameraHolder/LeanPath/PathFollow3D/IK_LookAt_Chest/AimPos/IK_FABRIK"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.54883, -0.0335302, -0.934144) [node name="IK_LookAt" type="Node3D" parent="CharacterBody3D/CameraHolder/LeanPath/PathFollow3D/IK_LookAt_Chest/AimPos/IK_FABRIK/Target"] transform = Transform3D(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/Armature/Skeleton3D") bone_name = "Left_Hand" use_negative_our_rot = true additional_rotation = Vector3(0, 0, 90) [node name="MiddleJoint" type="Node3D" parent="CharacterBody3D/CameraHolder/LeanPath/PathFollow3D/IK_LookAt_Chest/AimPos/IK_FABRIK"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.85263, -2.91316, -2.77555) [node name="Left_UpperArm" type="Node3D" parent="CharacterBody3D/CameraHolder/LeanPath/PathFollow3D/IK_LookAt_Chest/AimPos/IK_FABRIK"] transform = Transform3D(-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="Node3D" parent="CharacterBody3D/CameraHolder/LeanPath/PathFollow3D/IK_LookAt_Chest/AimPos/IK_FABRIK"] transform = Transform3D(-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="Node3D" parent="CharacterBody3D/CameraHolder/LeanPath/PathFollow3D/IK_LookAt_Chest/AimPos/IK_FABRIK"] transform = Transform3D(-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="Node3D" parent="CharacterBody3D/CameraHolder/LeanPath/PathFollow3D/IK_LookAt_Chest/AimPos"] script = ExtResource( 6 ) __meta__ = { "_editor_icon": ExtResource( 7 ) } skeleton_path = NodePath("../../../../../../GodotBattleBot/Armature/Skeleton3D") bones_in_chain = PackedStringArray("Right_UpperArm", "Right_LowerArm", "Right_Hand") bones_in_chain_lengths = PackedFloat32Array(1.97, 3, 0.1) chain_iterations = 8 limit_chain_iterations = false use_middle_joint_target = true [node name="Target" type="Node3D" parent="CharacterBody3D/CameraHolder/LeanPath/PathFollow3D/IK_LookAt_Chest/AimPos/IK_FABRIK_RightArm"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.285662, -0.0335302, -1.05271) [node name="IK_LookAt" type="Node3D" parent="CharacterBody3D/CameraHolder/LeanPath/PathFollow3D/IK_LookAt_Chest/AimPos/IK_FABRIK_RightArm/Target"] transform = Transform3D(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/Armature/Skeleton3D") bone_name = "Right_Hand" use_negative_our_rot = true additional_rotation = Vector3(0, 0, 90) [node name="MiddleJoint" type="Node3D" parent="CharacterBody3D/CameraHolder/LeanPath/PathFollow3D/IK_LookAt_Chest/AimPos/IK_FABRIK_RightArm"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.73318, -2.91316, -2.77555) [node name="Right_UpperArm" type="Node3D" parent="CharacterBody3D/CameraHolder/LeanPath/PathFollow3D/IK_LookAt_Chest/AimPos/IK_FABRIK_RightArm"] [node name="Right_LowerArm" type="Node3D" parent="CharacterBody3D/CameraHolder/LeanPath/PathFollow3D/IK_LookAt_Chest/AimPos/IK_FABRIK_RightArm"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.85263, -2.91316, -2.77555) [node name="Right_Hand" type="Node3D" parent="CharacterBody3D/CameraHolder/LeanPath/PathFollow3D/IK_LookAt_Chest/AimPos/IK_FABRIK_RightArm"] [node name="RemoteTransform3D" type="RemoteTransform3D" parent="CharacterBody3D/CameraHolder/LeanPath/PathFollow3D/IK_LookAt_Chest/AimPos"] transform = Transform3D(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="Node3D" parent="CharacterBody3D/CameraHolder/LeanPath/PathFollow3D"] transform = Transform3D(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/Armature/Skeleton3D") bone_name = "Head" [node name="AnimationPlayer" type="AnimationPlayer" parent="CharacterBody3D/CameraHolder"] autoplay = "Start" playback_speed = 4.0 anims/Aiming = SubResource( 10 ) anims/Idle = SubResource( 11 ) anims/Start = SubResource( 12 ) [node name="Weapon" type="Node3D" parent="CharacterBody3D/CameraHolder"] [node name="Pistol" parent="CharacterBody3D/CameraHolder/Weapon" instance=ExtResource( 8 )] transform = Transform3D(0.999391, 0, -0.0348995, 0, 1, 0, 0.0348995, 0, 0.999391, 0.519895, -1.10362, 3.20654) [node name="Pistol_textured" parent="CharacterBody3D/CameraHolder/Weapon/Pistol" index="0"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) surface_material_override/0 = ExtResource( 9 ) material/1 = ExtResource( 10 ) [node name="PistolEnd" type="Node3D" parent="CharacterBody3D/CameraHolder/Weapon/Pistol"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0161836, 0.315914, 1.41329) [node name="GodotBattleBot" parent="CharacterBody3D" instance=ExtResource( 11 )] [node name="godot_battle_bot" parent="CharacterBody3D/GodotBattleBot/Armature/Skeleton3D" index="0"] surface_material_override/0 = ExtResource( 12 ) material/1 = ExtResource( 13 ) [editable path="CharacterBody3D/CameraHolder/Weapon/Pistol"] [editable path="CharacterBody3D/GodotBattleBot"]