Add ramp scene and implement Phase 6 for dynamic IK and terrain-following locomotion
- Created a new scene file `ramp.scene` with terrain and stickman objects, including event rules for ragdoll and recovery actions. - Documented Phase 6 implementation in `PHASE_6_GROUND_SNAPPING.md`, detailing the continuous dynamic IK, terrain-following locomotion, and constraints for stickman rigs. - Defined scene structure, layered IK ownership, probe contracts, and per-frame solve order for terrain interaction. - Verified functionality for terrain snapping, stance/swing blending, pelvis/root compensation, and navigation synchronization.
This commit is contained in:
+12
-4
@@ -190,7 +190,7 @@ tracks/1/keys = {
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("IK_Targets/Right_Leg:position")
|
||||
tracks/2/path = NodePath("AnimationTargets/Right_Leg_Base:position")
|
||||
tracks/2/interp = 2
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
@@ -202,7 +202,7 @@ tracks/2/keys = {
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("IK_Targets/Left_Leg:position")
|
||||
tracks/3/path = NodePath("AnimationTargets/Left_Leg_Base:position")
|
||||
tracks/3/interp = 2
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
@@ -266,7 +266,7 @@ tracks/1/keys = {
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("IK_Targets/Right_Leg:position")
|
||||
tracks/2/path = NodePath("AnimationTargets/Right_Leg_Base:position")
|
||||
tracks/2/interp = 2
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
@@ -278,7 +278,7 @@ tracks/2/keys = {
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("IK_Targets/Left_Leg:position")
|
||||
tracks/3/path = NodePath("AnimationTargets/Left_Leg_Base:position")
|
||||
tracks/3/interp = 2
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
@@ -555,6 +555,14 @@ position = Vector2(110, 390)
|
||||
[node name="Left_Leg" type="Marker2D" parent="IK_Targets" unique_id=63598929]
|
||||
position = Vector2(-110, 380)
|
||||
|
||||
[node name="AnimationTargets" type="Node2D" parent="."]
|
||||
|
||||
[node name="Right_Leg_Base" type="Marker2D" parent="AnimationTargets"]
|
||||
position = Vector2(110, 390)
|
||||
|
||||
[node name="Left_Leg_Base" type="Marker2D" parent="AnimationTargets"]
|
||||
position = Vector2(-110, 380)
|
||||
|
||||
[node name="RayCast_LeftLeg" type="RayCast2D" parent="IK_Targets" unique_id=2000000001]
|
||||
position = Vector2(-96, 200)
|
||||
target_position = Vector2(0, 200)
|
||||
|
||||
Reference in New Issue
Block a user