body works kinda :P

This commit is contained in:
Rosia E Evans 2024-08-18 23:16:53 +01:00
parent 0ec9bb53d8
commit 941c2a0bed
3 changed files with 36 additions and 15 deletions

View file

@ -88,4 +88,3 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 1, 13)
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.00578, 2, 18.619)
current = true

View file

@ -1,9 +1,25 @@
[gd_scene load_steps=4 format=3 uid="uid://xpl5i3rcmscw"]
[gd_scene load_steps=8 format=3 uid="uid://d3oxojt0ld7cm"]
[ext_resource type="PackedScene" uid="uid://bt6d30ro3uit" path="res://assets/lorge_lad.glb" id="1_yl7yu"]
[ext_resource type="Script" path="res://scripts/robot.gd" id="2_gcxpt"]
[ext_resource type="Script" path="res://scripts/arm.gd" id="2_kj7im"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_kq614"]
albedo_color = Color(0.266601, 0.598777, 0.75751, 1)
[sub_resource type="SphereMesh" id="SphereMesh_f8ndx"]
material = SubResource("StandardMaterial3D_kq614")
radius = 0.25
height = 0.5
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5u7os"]
albedo_color = Color(0.937332, 0.253354, 0.593443, 1)
[sub_resource type="SphereMesh" id="SphereMesh_sih0d"]
material = SubResource("StandardMaterial3D_5u7os")
radius = 0.25
height = 0.5
[node name="Robot" node_paths=PackedStringArray("arms", "skeleton") instance=ExtResource("1_yl7yu")]
script = ExtResource("2_gcxpt")
arms = [NodePath("Skeleton3D/BackRightIK"), NodePath("Skeleton3D/FrontRightIK"), NodePath("Skeleton3D/FrontLeftIK"), NodePath("Skeleton3D/BackLeftIK")]
@ -12,32 +28,35 @@ skeleton = NodePath("Skeleton3D")
body_bone = &"Bone"
[node name="Skeleton3D" parent="." index="0"]
bones/0/position = Vector3(-1.38368e-07, 0.100132, 1.53269e-07)
bones/25/rotation = Quaternion(-1.26218e-29, 4.893e-22, -2.98023e-08, 1)
bones/27/rotation = Quaternion(0.5, -0.5, -0.5, -0.5)
bones/28/rotation = Quaternion(2.37545e-17, 2.18557e-08, 6.01506e-30, 1)
bones/53/rotation = Quaternion(-6.7435e-08, 0.707107, 0.707107, -6.7435e-08)
[node name="BackRightSocket" parent="Skeleton3D" index="0"]
transform = Transform3D(0.707107, -3.09086e-08, -0.707106, 1.0842e-15, 1, -4.37114e-08, 0.707107, 3.09086e-08, 0.707107, 0.598254, 0.00174576, 0.598254)
transform = Transform3D(0.656004, -0.263929, -0.707106, 0.373252, 0.92773, -5.82077e-08, 0.656004, -0.263929, 0.707107, 0.593707, 0.125032, 0.593707)
[node name="FrontRightSocket" parent="Skeleton3D" index="1"]
transform = Transform3D(0.707107, -1.09501e-22, -0.707107, -2.68658e-22, 1, -4.23516e-22, 0.707107, 4.89441e-22, 0.707107, 0.598254, 0.00174576, -0.598254)
transform = Transform3D(0.707107, -0.263928, -0.656004, 1.16415e-08, 0.92773, -0.373251, 0.707107, 0.263928, 0.656004, 0.593707, 0.125032, -0.593707)
[node name="FrontLeftSocket" parent="Skeleton3D" index="2"]
transform = Transform3D(0.707107, 3.09086e-08, -0.707106, -4.7509e-17, 1, 4.37114e-08, 0.707106, -3.09086e-08, 0.707107, -0.598254, 0.00174576, -0.598253)
transform = Transform3D(0.656004, 0.263928, -0.707107, -0.373251, 0.92773, 1.28057e-07, 0.656004, 0.263928, 0.707106, -0.593708, 0.125032, -0.593707)
[node name="Body_001" parent="Skeleton3D" index="3"]
transform = Transform3D(0.707107, 0, -0.707106, 0, 1, 0, 0.707106, 0, 0.707107, 1.19412e-07, -2.32831e-09, 1.78611e-07)
transform = Transform3D(0.707107, 0, -0.707106, 0, 1, 0, 0.707106, 0, 0.707107, 1.19412e-07, 0.106696, 1.78611e-07)
[node name="Body_001" parent="Skeleton3D/Body_001" index="0"]
visible = false
[node name="center_bone_marker" type="MeshInstance3D" parent="Skeleton3D/Body_001" index="0"]
transform = Transform3D(0.707107, 0, 0.707107, 0, 1, 0, -0.707107, 0, 0.707107, -2.10734e-07, -0.106696, -4.186e-08)
mesh = SubResource("SphereMesh_f8ndx")
skeleton = NodePath("../../..")
[node name="Camera3D" type="Camera3D" parent="Skeleton3D/Body_001" index="1"]
[node name="Camera3D" type="Camera3D" parent="Skeleton3D/Body_001" index="2"]
transform = Transform3D(-0.707107, 0, 0.707107, 0, 1, 0, -0.707107, 0, -0.707107, 2.82843, 2.32831e-09, -2.82843)
current = true
[node name="BackLeftSocket" parent="Skeleton3D" index="4"]
transform = Transform3D(0.707107, -1.66533e-14, -0.707107, 1.11022e-14, 1, 1.05557e-15, 0.707106, 2.22045e-14, 0.707107, -0.598254, 0.00174576, 0.598254)
transform = Transform3D(0.707107, 0.263929, -0.656004, 4.52232e-08, 0.92773, 0.373251, 0.707106, -0.263929, 0.656004, -0.593707, 0.125032, 0.593708)
[node name="BackRightIK" type="SkeletonIK3D" parent="Skeleton3D" index="9"]
root_bone = &"BackRight_Root"
@ -58,7 +77,6 @@ script = ExtResource("2_kj7im")
action = &"ActivateFrontRight"
[node name="FrontLeftIK" type="SkeletonIK3D" parent="Skeleton3D" index="11"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
root_bone = &"FrontLeft_Root"
tip_bone = &"FrontLeft_Tip"
use_magnet = true
@ -87,3 +105,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, -0.744633, -1.5)
[node name="BackLeftTarget" type="Marker3D" parent="Skeleton3D" index="16"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, -0.744633, 1.5)
[node name="tip_average_marker" type="MeshInstance3D" parent="." index="1"]
mesh = SubResource("SphereMesh_sih0d")

View file

@ -45,11 +45,12 @@ func _physics_process(delta: float) -> void:
#var m = MeshInstance3D.new()
var body_bone_id: int = skeleton.find_bone(body_bone)
var body_bone_transform = skeleton.get_bone_global_pose(body_bone_id)
var velocity = global_position - previous_position
print(global_position, previous_position, velocity, avg_tip_pos)
var global_pos = avg_tip_pos + velocity * body_offset
#var velocity = global_position - previous_position
var global_pos = skeleton.to_local(avg_tip_pos)# + velocity
$tip_average_marker.set_global_position(global_pos)
#$center_bone_marker.set_global_position()
body_bone_transform.origin = global_pos
skeleton.set_bone_global_pose(body_bone_id, body_bone_transform)
previous_position = global_pos
#previous_position = global_pos
#m.global_position = avg_tip_pos
#skeleton.global_basis = avg_tip_basis