Added SkeletonIK example to IK demo. Updated the anchors on all of the UI so it can scale to any sized window. Removed the project settings keeping the aspect ratio the same

This commit is contained in:
TwistedTwigleg
2020-01-29 17:37:04 -05:00
parent 59e85689ba
commit 40bcc0f55f
6 changed files with 340 additions and 131 deletions

View File

@@ -165,21 +165,28 @@ mesh = SubResource( 5 )
material/0 = SubResource( 6 )
[node name="Control" type="Control" parent="."]
margin_right = 40.0
margin_bottom = 40.0
anchor_right = 1.0
anchor_bottom = 1.0
__meta__ = {
"_edit_use_anchors_": false
}
[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 = 530.0
margin_right = 1028.0
margin_bottom = 600.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 = 1012.0
margin_bottom = 41.0
margin_right = -18.0
margin_bottom = -29.0
text = "F.A.B.R.I.K IK
Move mouse to move IK targets
(Using 3 bones in the right hand, only 2 in the left. 3+ recommended)"
@@ -187,10 +194,12 @@ align = 1
valign = 1
[node name="Label_extra" type="Label" parent="Control/Panel"]
anchor_right = 1.0
anchor_bottom = 1.0
margin_left = 12.0
margin_top = 80.0
margin_right = 1012.0
margin_bottom = 128.0
margin_right = -18.0
margin_bottom = 58.0
text = "NOTE: You will get a few errors when saving with FABRIK IK nodes in your scene
This is a known bug. Please ignore the errors for now, as they do not do anything
(They're just annoying. If you find a fix, please add it to the demo repository!)"
@@ -198,9 +207,11 @@ align = 1
valign = 1
[node name="Label_left" type="Label" parent="Control/Panel"]
margin_left = 782.0
anchor_left = 1.0
anchor_right = 1.0
margin_left = -248.0
margin_top = 4.0
margin_right = 895.0
margin_right = -135.0
margin_bottom = 18.0
text = "Left Hand"
align = 1
@@ -214,19 +225,25 @@ text = "Right Hand"
align = 1
[node name="Button_Next" type="Button" parent="Control"]
margin_left = 900.0
margin_top = 540.0
margin_right = 1019.0
margin_bottom = 590.0
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
margin_left = -124.0
margin_top = -60.0
margin_right = -5.0
margin_bottom = -10.0
text = "Next scene"
script = ExtResource( 10 )
scene_to_change_to = "res://fps/fps_example.tscn"
scene_to_change_to = "res://skeleton_ik.tscn"
[node name="Button_Prev" type="Button" parent="Control"]
anchor_top = 1.0
anchor_bottom = 1.0
margin_left = 10.0
margin_top = 540.0
margin_top = -60.0
margin_right = 129.0
margin_bottom = 590.0
margin_bottom = -10.0
text = "Previous scene"
script = ExtResource( 10 )
scene_to_change_to = "res://look_at_ik.tscn"

View File

@@ -14,35 +14,35 @@
[ext_resource path="res://battle_bot_color.tres" type="Material" id=12]
[ext_resource path="res://battle_bot_emission.tres" type="Material" id=13]
[sub_resource type="PlaneMesh" id=5]
[sub_resource type="PlaneMesh" id=1]
size = Vector2( 40, 40 )
[sub_resource type="SpatialMaterial" id=6]
[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
[sub_resource type="BoxShape" id=7]
[sub_resource type="BoxShape" id=3]
extents = Vector3( 20, 1, 20 )
[sub_resource type="CubeMesh" id=8]
[sub_resource type="CubeMesh" id=4]
size = Vector3( 4, 4, 4 )
[sub_resource type="SpatialMaterial" id=9]
[sub_resource type="SpatialMaterial" id=5]
albedo_color = Color( 0.148438, 1, 0, 1 )
albedo_texture = ExtResource( 1 )
uv1_triplanar = true
[sub_resource type="BoxShape" id=10]
[sub_resource type="BoxShape" id=6]
extents = Vector3( 2, 2, 2 )
[sub_resource type="SpatialMaterial" id=11]
[sub_resource type="SpatialMaterial" id=7]
albedo_color = Color( 0, 0.882813, 1, 1 )
albedo_texture = ExtResource( 1 )
uv1_triplanar = true
[sub_resource type="ProceduralSky" id=3]
[sub_resource type="ProceduralSky" id=8]
sky_top_color = Color( 0.0470588, 0.454902, 0.976471, 1 )
sky_horizon_color = Color( 0.556863, 0.823529, 0.909804, 1 )
sky_curve = 0.25
@@ -50,9 +50,9 @@ ground_bottom_color = Color( 0.101961, 0.145098, 0.188235, 1 )
ground_horizon_color = Color( 0.482353, 0.788235, 0.952941, 1 )
ground_curve = 0.01
[sub_resource type="Environment" id=4]
[sub_resource type="Environment" id=9]
background_mode = 2
background_sky = SubResource( 3 )
background_sky = SubResource( 8 )
ambient_light_color = Color( 1, 0.909804, 0.784314, 1 )
ambient_light_energy = 1.4
ambient_light_sky_contribution = 0.72
@@ -65,17 +65,17 @@ glow_intensity = 0.2
glow_bloom = 0.03
glow_blend_mode = 0
[sub_resource type="CapsuleShape" id=12]
[sub_resource type="CapsuleShape" id=10]
radius = 4.0
height = 6.0
[sub_resource type="Curve3D" id=13]
[sub_resource type="Curve3D" id=11]
_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=14]
[sub_resource type="Animation" id=12]
tracks/0/type = "value"
tracks/0/path = NodePath("Lean_Path/PathFollow/IK_LookAt_Chest/Aim_pos:translation")
tracks/0/interp = 1
@@ -113,7 +113,7 @@ tracks/2/keys = {
"values": [ 80.0, 60.0 ]
}
[sub_resource type="Animation" id=15]
[sub_resource type="Animation" id=13]
tracks/0/type = "value"
tracks/0/path = NodePath("Lean_Path/PathFollow/IK_LookAt_Chest/Camera:fov")
tracks/0/interp = 1
@@ -151,7 +151,7 @@ tracks/2/keys = {
"values": [ Vector3( 0, 0, 0 ), Vector3( 0, -2, 0 ) ]
}
[sub_resource type="Animation" id=16]
[sub_resource type="Animation" id=14]
tracks/0/type = "value"
tracks/0/path = NodePath("Lean_Path/PathFollow/IK_LookAt_Chest/Aim_pos:translation")
tracks/0/interp = 1
@@ -195,206 +195,206 @@ tracks/2/keys = {
[node name="Floor_plane" type="MeshInstance" parent="Level"]
transform = Transform( 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0 )
mesh = SubResource( 5 )
material/0 = SubResource( 6 )
mesh = SubResource( 1 )
material/0 = SubResource( 2 )
[node name="StaticBody" type="StaticBody" parent="Level/Floor_plane"]
[node name="CollisionShape" type="CollisionShape" parent="Level/Floor_plane/StaticBody"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.956119, 0 )
shape = SubResource( 7 )
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( 8 )
material/0 = SubResource( 9 )
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( 10 )
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( 8 )
material/0 = SubResource( 9 )
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( 10 )
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( 8 )
material/0 = SubResource( 9 )
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( 10 )
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( 8 )
material/0 = SubResource( 9 )
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( 10 )
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( 8 )
material/0 = SubResource( 9 )
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( 10 )
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( 8 )
material/0 = SubResource( 9 )
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( 10 )
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( 8 )
material/0 = SubResource( 9 )
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( 10 )
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( 8 )
material/0 = SubResource( 9 )
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( 10 )
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( 8 )
material/0 = SubResource( 11 )
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( 10 )
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( 8 )
material/0 = SubResource( 11 )
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( 10 )
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( 8 )
material/0 = SubResource( 11 )
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( 10 )
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( 8 )
material/0 = SubResource( 11 )
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( 10 )
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( 8 )
material/0 = SubResource( 11 )
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( 10 )
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( 8 )
material/0 = SubResource( 11 )
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( 10 )
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( 8 )
material/0 = SubResource( 11 )
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( 10 )
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( 8 )
material/0 = SubResource( 11 )
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( 10 )
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( 8 )
material/0 = SubResource( 11 )
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( 10 )
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( 8 )
material/0 = SubResource( 11 )
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( 10 )
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( 8 )
material/0 = SubResource( 11 )
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( 10 )
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 )
@@ -402,50 +402,66 @@ light_color = Color( 1, 0.925598, 0.820313, 1 )
shadow_enabled = true
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource( 4 )
environment = SubResource( 9 )
[node name="Control" type="Control" parent="."]
margin_right = 40.0
margin_bottom = 40.0
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 = 530.0
margin_right = 1028.0
margin_bottom = 600.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 = 1012.0
margin_bottom = 41.0
text = "Example use case: Dynamic FPS Animations
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="Button_Prev" type="Button" parent="Control"]
anchor_top = 1.0
anchor_bottom = 1.0
margin_left = 10.0
margin_top = 540.0
margin_top = -60.0
margin_right = 129.0
margin_bottom = 590.0
margin_bottom = -10.0
text = "Previous scene"
script = ExtResource( 2 )
scene_to_change_to = "res://fabrik_ik.tscn"
[node name="Crosshair" type="Control" parent="Control"]
modulate = Color( 1, 1, 1, 0.784314 )
margin_left = 492.0
margin_top = 280.0
margin_right = 532.0
margin_bottom = 320.0
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
@@ -459,13 +475,13 @@ 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( 12 )
shape = SubResource( 10 )
[node name="CameraHolder" type="Spatial" parent="KinematicBody"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 13, 0 )
[node name="Lean_Path" type="Path" parent="KinematicBody/CameraHolder"]
curve = SubResource( 13 )
curve = SubResource( 11 )
[node name="PathFollow" type="PathFollow" parent="KinematicBody/CameraHolder/Lean_Path"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0412404, 0.205172, 0 )
@@ -499,7 +515,6 @@ __meta__ = {
skeleton_path = NodePath("../../../../../../BattleBot/Armature/Skeleton")
bones_in_chain = PoolStringArray( "Left_UpperArm", "Left_LowerArm", "Left_Hand" )
bones_in_chain_lengths = PoolRealArray( 1.97, 3, 0.1 )
chain_iterations = 5
limit_chain_iterations = false
use_middle_joint_target = true
@@ -537,7 +552,6 @@ __meta__ = {
skeleton_path = NodePath("../../../../../../BattleBot/Armature/Skeleton")
bones_in_chain = PoolStringArray( "Right_UpperArm", "Right_LowerArm", "Right_Hand" )
bones_in_chain_lengths = PoolRealArray( 1.97, 3, 0.1 )
chain_iterations = 3
limit_chain_iterations = false
use_middle_joint_target = true
@@ -581,9 +595,9 @@ bone_name = "Head"
[node name="AnimationPlayer" type="AnimationPlayer" parent="KinematicBody/CameraHolder"]
autoplay = "Start"
playback_speed = 4.0
anims/Aiming = SubResource( 14 )
anims/Idle = SubResource( 15 )
anims/Start = SubResource( 16 )
anims/Aiming = SubResource( 12 )
anims/Idle = SubResource( 13 )
anims/Start = SubResource( 14 )
[node name="Weapon" type="Spatial" parent="KinematicBody/CameraHolder"]

View File

@@ -95,31 +95,42 @@ bone_name = "Right_UpperArm"
additional_rotation = Vector3( 0, 0, 180 )
[node name="Control" type="Control" parent="."]
margin_right = 40.0
margin_bottom = 40.0
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 = 530.0
margin_right = 1028.0
margin_bottom = 600.0
margin_top = -70.0
margin_right = 4.0
__meta__ = {
"_edit_use_anchors_": false
}
[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 = 1012.0
margin_bottom = 41.0
margin_right = -18.0
margin_bottom = -29.0
text = "LookAt IK
Move mouse to move IK targets"
align = 1
valign = 1
[node name="Button_Next" type="Button" parent="Control"]
margin_left = 900.0
margin_top = 540.0
margin_right = 1019.0
margin_bottom = 590.0
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
margin_left = -124.0
margin_top = -60.0
margin_right = -5.0
margin_bottom = -10.0
text = "Next scene"
script = ExtResource( 8 )
scene_to_change_to = "res://fabrik_ik.tscn"

View File

@@ -19,11 +19,6 @@ config/name="3D IK"
run/main_scene="res://look_at_ik.tscn"
config/icon="res://icon.png"
[display]
window/stretch/mode="2d"
window/stretch/aspect="keep"
[editor_plugins]
enabled=PoolStringArray( "sade" )

168
3d/ik/skeleton_ik.tscn Normal file
View File

@@ -0,0 +1,168 @@
[gd_scene load_steps=16 format=2]
[ext_resource path="res://skeleton_ik_runner.gd" type="Script" id=1]
[ext_resource path="res://addons/sade/ik_look_at.png" type="Texture" id=2]
[ext_resource path="res://addons/sade/editor_gizmo_texture.png" type="Texture" id=3]
[ext_resource path="res://godot_battle_bot.dae" type="PackedScene" id=4]
[ext_resource path="res://target_from_mousepos.gd" type="Script" id=5]
[ext_resource path="res://battle_bot_color.tres" type="Material" id=6]
[ext_resource path="res://battle_bot_emission.tres" type="Material" id=7]
[ext_resource path="res://button_change_scene.gd" type="Script" id=8]
[ext_resource path="res://addons/sade/ik_look_at.gd" type="Script" id=9]
[sub_resource type="PlaneMesh" id=1]
size = Vector2( 40, 40 )
[sub_resource type="SpatialMaterial" id=2]
albedo_texture = ExtResource( 3 )
roughness = 0.2
uv1_scale = Vector3( 0.25, 0.25, 0.25 )
uv1_triplanar = true
[sub_resource type="ProceduralSky" id=3]
sky_top_color = Color( 0.0470588, 0.454902, 0.976471, 1 )
sky_horizon_color = Color( 0.556863, 0.823529, 0.909804, 1 )
sky_curve = 0.25
ground_bottom_color = Color( 0.101961, 0.145098, 0.188235, 1 )
ground_horizon_color = Color( 0.482353, 0.788235, 0.952941, 1 )
ground_curve = 0.01
[sub_resource type="Environment" id=4]
background_mode = 2
background_sky = SubResource( 3 )
ambient_light_color = Color( 1, 0.909804, 0.784314, 1 )
ambient_light_energy = 1.4
ambient_light_sky_contribution = 0.72
tonemap_mode = 3
glow_enabled = true
glow_levels/1 = true
glow_levels/2 = true
glow_levels/5 = false
glow_intensity = 0.2
glow_bloom = 0.03
glow_blend_mode = 0
[sub_resource type="CubeMesh" id=5]
size = Vector3( 1, 1, 1 )
[sub_resource type="SpatialMaterial" id=6]
albedo_color = Color( 0, 0.191406, 0.765625, 1 )
roughness = 0.0
[node name="Skeleton_IK" type="Spatial"]
[node name="Floor_plane" type="MeshInstance" parent="."]
mesh = SubResource( 1 )
material/0 = SubResource( 2 )
[node name="DirectionalLight" type="DirectionalLight" parent="."]
transform = Transform( 0.56827, 0.673454, -0.472789, 0, 0.574581, 0.818448, 0.822842, -0.465099, 0.326517, -9.77531, 11.5204, 11.766 )
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource( 4 )
[node name="BattleBot" parent="." instance=ExtResource( 4 )]
[node name="godot_battle_bot" parent="BattleBot/Armature/Skeleton" index="0"]
material/0 = ExtResource( 6 )
material/1 = ExtResource( 7 )
[node name="SkeletonIK_Left" type="SkeletonIK" parent="BattleBot/Armature/Skeleton" index="1"]
process_priority = 1
root_bone = "Left_UpperArm"
tip_bone = "Left_Hand"
target_node = NodePath("../../../../Camera/targets/Target_Left")
script = ExtResource( 1 )
[node name="SkeletonIK_Right" type="SkeletonIK" parent="BattleBot/Armature/Skeleton" index="2"]
process_priority = 1
root_bone = "Right_UpperArm"
tip_bone = "Right_Hand"
target_node = NodePath("../../../../Camera/targets/Target_Right")
script = ExtResource( 1 )
[node name="Camera" type="Camera" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 11.5, 11 )
fov = 74.0
script = ExtResource( 5 )
MOVEMENT_SPEED = -8.0
flip_axis = true
[node name="targets" type="Spatial" parent="Camera"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -8 )
[node name="IK_LookAt_Head" type="Spatial" parent="Camera/targets"]
script = ExtResource( 9 )
__meta__ = {
"_editor_icon": ExtResource( 2 )
}
skeleton_path = NodePath("../../../../Skeleton_IK/BattleBot/Armature/Skeleton")
bone_name = "Head"
additional_rotation = Vector3( 90, 0, 0 )
[node name="MeshInstance" type="MeshInstance" parent="Camera/targets"]
mesh = SubResource( 5 )
material/0 = SubResource( 6 )
[node name="Target_Left" type="Position3D" parent="Camera/targets"]
transform = Transform( -0.179447, 0.98366, -0.0145678, 0.981822, 0.178142, -0.0654973, -0.0618319, -0.0260563, -0.997746, 0.653517, -0.112305, -0.760886 )
[node name="Target_Right" type="Position3D" parent="Camera/targets"]
transform = Transform( -0.0217688, 0.998559, -0.0490576, 0.992503, 0.0274873, 0.119085, 0.120262, -0.0460975, -0.991671, -0.683053, 0.0251284, -0.811513 )
[node name="Control" type="Control" parent="."]
anchor_right = 1.0
anchor_bottom = 1.0
__meta__ = {
"_edit_use_anchors_": false
}
[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 = "SkeletonIK node
Move mouse to move IK targets"
align = 1
valign = 1
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Button_Next" type="Button" parent="Control"]
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
margin_left = -124.0
margin_top = -60.0
margin_right = -5.0
margin_bottom = -10.0
text = "Next scene"
script = ExtResource( 8 )
scene_to_change_to = "res://fps/fps_example.tscn"
[node name="Button_Prev" 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( 8 )
scene_to_change_to = "res://fabrik_ik.tscn"
[editable path="BattleBot"]

View File

@@ -0,0 +1,4 @@
extends SkeletonIK
func _ready():
start(false)