Body physics Stage 2: physical arm segments (chase-driven upper arm + forearm, hierarchical budgets, layer 5)
- PhysicsArms: per side 2.0 kg upper arm + 1.2 kg forearm RigidBody3D PD-chasing their analytic 2-bone IK pose, solved per physics tick from the physical chest shoulders to the physical hands; no joints (Box3D has no usable shoulder/wrist joint; AGENTS forbids joints between tracked bodies). Budgets from a 60 kg mass stat: hand 90 < forearm 180 < upper arm 360 < chest 2400 N. Owns calibration + reach budget (moved from BodyRig); 1 m snap, non-finite reset, BodyMath.RotationError servo. - Layer 5 = player arms (mask 1); props/table/floor masks include it; no self-collision. - BodyRig: visuals only, arms drawn shoulder -> physical elbow -> wrist. - ArmSpike: track gap 0, swing lag <= 6 cm, arm pushes prop with hand clear, forearm blocked by bar without tunneling and quiet when pinned, teleport snap, NaN reset — PASS x3. - CollapseSpike now runs the full body (49/49 x3); all six spikes PASS x3. - HANDOFF/AGENTS: Stage 2 entry (item 10), layers, tuning table, Stage 2b next steps. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
cb518999e5
commit
7589b13aba
11 files changed
+708
-174
No files matched your search
+6
-2
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=20 format=3]
|
||||
[gd_scene load_steps=21 format=3]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/Main.cs" id="1_main"]
|
||||
[ext_resource type="PackedScene" path="res://scenes/teleport_marker.tscn" id="2_marker"]
|
||||
@@ -10,6 +10,7 @@
|
||||
[ext_resource type="Script" path="res://scripts/PhysicsHands.cs" id="8_physicshands"]
|
||||
[ext_resource type="Script" path="res://scripts/BodyRig.cs" id="9_bodyrig"]
|
||||
[ext_resource type="Script" path="res://scripts/PhysicsTorso.cs" id="10_physicsTorso"]
|
||||
[ext_resource type="Script" path="res://scripts/PhysicsArms.cs" id="11_physicsArms"]
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_sky"]
|
||||
sky_horizon_color = Color(0.66, 0.72, 0.81, 1)
|
||||
@@ -56,7 +57,7 @@ shadow_bias = 0.04
|
||||
shadow_normal_bias = 0.5
|
||||
|
||||
[node name="Floor" type="StaticBody3D" parent="."]
|
||||
collision_mask = 13
|
||||
collision_mask = 29
|
||||
|
||||
[node name="FloorShape" type="CollisionShape3D" parent="Floor"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0)
|
||||
@@ -118,6 +119,9 @@ script = ExtResource("8_physicshands")
|
||||
[node name="PhysicsTorso" type="Node" parent="."]
|
||||
script = ExtResource("10_physicsTorso")
|
||||
|
||||
[node name="PhysicsArms" type="Node" parent="."]
|
||||
script = ExtResource("11_physicsArms")
|
||||
|
||||
[node name="BodyRig" type="Node3D" parent="."]
|
||||
script = ExtResource("9_bodyrig")
|
||||
|
||||
|
||||
Reference in new issue
Block a user