DungeonCrawler/player.tscn
Andre 394b3a89b8 Souls/RPG-Hybrid Bewegungssystem, Kamera, Animationen & Dokumentation
Bewegung:
- Souls-Modus (kein Ziel): Charakter dreht sich zur Laufrichtung relativ zu
  camera_pivot.world_yaw; bei RMB gehalten → Strafe statt Drehung
- Walk-Toggle (NumLock): RPG-Strafe-Modus mit langsamerer Geschwindigkeit
- Lock-On (Ziel markiert): Spieler dreht sich smooth zum Gegner, WASD = Strafe
- Ausweichrolle (Shift): rollt in Eingaberichtung (world_yaw-relativ im Souls-Modus)
- Sofort-180°-Snap statt animierter Drehung bei >150° Winkelunterschied

Kamera (camera_pivot.gd):
- world_yaw: absolute Weltausrichtung, unabhängig von Spielerrotation (kein Feedback-Loop)
- LMB gehalten: Kamera orbitet, Spieler dreht sich nicht
- RMB gehalten: Spieler + Kamera drehen sich gemeinsam
- Soft Lock-On: camera_pivot dreht Spieler smooth zum Ziel

Animationen:
- Neue FBX-Animationen: Quick Roll, Running Jump, Walking Jump,
  Running Strafe L/R, Running Turn 180
- Animationen im Souls-Modus: immer "run" vorwärts; S = walk_back
- Root-Motion-Strip: XZ-Bewegung auf Knochen-Tracks wird genullt

Welt:
- Boden-Shader: Schachbrettmuster in World-Space (INV_VIEW_MATRIX)
- ProceduralSkyMaterial + WorldEnvironment per Code
- Alte assets/animations und assets/models durch Warrior+Animation ersetzt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 22:26:10 +01:00

31 lines
1.4 KiB
Text

[gd_scene format=3 uid="uid://dniyuebl8yhtv"]
[ext_resource type="Script" uid="uid://cwe8o6mk0hsi4" path="res://player.gd" id="1_player"]
[ext_resource type="Script" uid="uid://bwtwon54po4w3" path="res://camera_pivot.gd" id="2_campivot"]
[ext_resource type="PackedScene" uid="uid://bej3excyoxrdh" path="res://hud.tscn" id="3_hud"]
[ext_resource type="PackedScene" uid="uid://daeym1tdcnhhd" path="res://assets/Warrior+Animation/castle_guard_01.fbx" id="4_model"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_1"]
radius = 0.4
height = 1.8
[node name="Player" type="CharacterBody3D" unique_id=1565111917]
script = ExtResource("1_player")
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=481888033]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9, 0)
shape = SubResource("CapsuleShape3D_1")
[node name="Model" type="Node3D" parent="." unique_id=297754421]
[node name="castle_guard_01" parent="Model" unique_id=1352499997 instance=ExtResource("4_model")]
transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0)
[node name="CameraPivot" type="Node3D" parent="." unique_id=2063743808]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
script = ExtResource("2_campivot")
[node name="Camera3D" type="Camera3D" parent="CameraPivot" unique_id=1026091049]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 7)
[node name="HUD" parent="." unique_id=904219504 instance=ExtResource("3_hud")]