Files
VR-Mess/scenes/main.tscn
T
FoxyzandClaude Opus 5.5 81a9b1fca2 Body step 1: one-time T-pose calibration (prefs.json, forced gate) + True Body solver + shared ArmSolver
- BodyProfile (Winter anthropometry, T-pose: arm = (span - shoulder width)/2 - 1.5 cm) and
  Prefs (gitignored prefs.json next to the executable / project folder in editor builds)
- Calibration node: loads prefs, else head-locked prompt + jitter-proof TPoseDetector; body
  systems wait for BodyProfile.Current; Recalibrate() in group "calibration"; recal rebuilds arms
- ArmSolver: PhysicsArms' elbow solve extracted (behaviour-identical) + min reach |U-F| fix
- TrueBody: derived real-body pose (neck, chest yaw + crouch lean at neck pivot, lagging pelvis,
  moving shoulder girdle with scapulohumeral shrug, arms) + debug skeleton
- PhysicsArms/PhysicsTorso/BodyRig now profile-driven (arm length no longer from head height)
- TrueBodySpike PASS x3; all spikes PASS x3 (arm spike thresholds re-based for correct 0.57 m arms;
  CollapseSpike uses a fixed standing profile)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 05:47:20 +03:00

144 lines
5.1 KiB
Plaintext

[gd_scene load_steps=23 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"]
[ext_resource type="Script" path="res://scripts/Locomotion.cs" id="3_locomotion"]
[ext_resource type="Script" path="res://scripts/WorldPanel.cs" id="4_worldpanel"]
[ext_resource type="Script" path="res://scripts/AnchorMoveMode.cs" id="5_anchormove"]
[ext_resource type="Script" path="res://scripts/PropShop.cs" id="6_propshop"]
[ext_resource type="Script" path="res://scripts/PropGrabber.cs" id="7_propgrabber"]
[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"]
[ext_resource type="Script" path="res://scripts/Calibration.cs" id="12_calibration"]
[ext_resource type="Script" path="res://scripts/TrueBody.cs" id="13_truebody"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_sky"]
sky_horizon_color = Color(0.66, 0.72, 0.81, 1)
ground_horizon_color = Color(0.66, 0.72, 0.81, 1)
[sub_resource type="Sky" id="Sky_main"]
sky_material = SubResource("ProceduralSkyMaterial_sky")
[sub_resource type="Environment" id="Environment_main"]
background_mode = 2
sky = SubResource("Sky_main")
[sub_resource type="StandardMaterial3D" id="Material_floor"]
albedo_color = Color(0.35, 0.35, 0.38, 1)
[sub_resource type="PlaneMesh" id="PlaneMesh_floor"]
material = SubResource("Material_floor")
size = Vector2(10, 10)
[sub_resource type="BoxShape3D" id="BoxShape_floor"]
size = Vector3(10, 0.1, 10)
[sub_resource type="SphereMesh" id="SphereMesh_hand"]
radius = 0.04
height = 0.08
[sub_resource type="StandardMaterial3D" id="Material_hand_left"]
albedo_color = Color(0.9, 0.3, 0.35, 1)
[sub_resource type="StandardMaterial3D" id="Material_hand_right"]
albedo_color = Color(0.3, 0.5, 0.9, 1)
[node name="Main" type="Node3D"]
script = ExtResource("1_main")
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_main")
[node name="Sun" type="DirectionalLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.642788, 0.766044, 0, -0.766044, 0.642788, 0, 8, 0)
shadow_enabled = true
directional_shadow_max_distance = 10.0
shadow_bias = 0.04
shadow_normal_bias = 0.5
[node name="Floor" type="StaticBody3D" parent="."]
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)
shape = SubResource("BoxShape_floor")
[node name="FloorMesh" type="MeshInstance3D" parent="Floor"]
mesh = SubResource("PlaneMesh_floor")
[node name="XROrigin3D" type="XROrigin3D" parent="."]
[node name="XRCamera3D" type="XRCamera3D" parent="XROrigin3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.7, 0)
[node name="LeftHand" type="XRController3D" parent="XROrigin3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 1, -0.5)
tracker = &"left_hand"
pose = &"default"
[node name="RightHand" type="XRController3D" parent="XROrigin3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 1, -0.5)
tracker = &"right_hand"
pose = &"default"
[node name="WorldPanel" type="Node3D" parent="XROrigin3D"]
script = ExtResource("4_worldpanel")
[node name="SpawnPoint" type="Marker3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2.5)
[node name="TeleportMarkers" type="Node3D" parent="."]
[node name="Marker1" parent="TeleportMarkers" instance=ExtResource("2_marker")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -3)
MarkerLabel = "1"
[node name="Marker2" parent="TeleportMarkers" instance=ExtResource("2_marker")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, -3)
MarkerLabel = "2"
[node name="Marker3" parent="TeleportMarkers" instance=ExtResource("2_marker")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -4)
MarkerLabel = "3"
[node name="Locomotion" type="Node" parent="."]
script = ExtResource("3_locomotion")
[node name="AnchorMoveMode" type="Node" parent="."]
script = ExtResource("5_anchormove")
[node name="PropShop" type="Node3D" parent="."]
script = ExtResource("6_propshop")
[node name="PropGrabber" type="Node" parent="."]
script = ExtResource("7_propgrabber")
[node name="PhysicsHands" type="Node" parent="."]
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="Calibration" type="Node" parent="."]
script = ExtResource("12_calibration")
[node name="TrueBody" type="Node3D" parent="."]
script = ExtResource("13_truebody")
[node name="BodyRig" type="Node3D" parent="."]
script = ExtResource("9_bodyrig")
[node name="FadeLayer" type="CanvasLayer" parent="."]
[node name="Fade" type="ColorRect" parent="FadeLayer"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
color = Color(0, 0, 0, 0)
mouse_filter = 2