Unveränderter Ausgangsstand inklusive Masterprompt und Konzeptbildern unter assets/. .godot/ und docs/screenshots/ bleiben laut .gitignore unversioniert; letztere sind unter ../backups gesichert. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
33 lines
1.3 KiB
GDScript
33 lines
1.3 KiB
GDScript
extends Node
|
|
## Captures the actual imported character and in-game inspection controls.
|
|
var studio: Control
|
|
var frame: int = 0
|
|
const FPS: float = 30.0
|
|
const SCHEDULE = [["idle",2.5],["start",1.2],["walk",4.2],["stop",1.2],["attack_a",3.8],["attack_b",3.8],["hit",1.5],["ability",3.7],["death",3.4]]
|
|
func _ready() -> void:
|
|
get_window().size = Vector2i(1280,800)
|
|
Soundscape.enabled = false
|
|
WaveManager.set_physics_process(false)
|
|
var main: Node3D = preload("res://scenes/main.tscn").instantiate()
|
|
add_child(main)
|
|
studio = main.hud.model_inspector
|
|
studio.show_model("w04")
|
|
studio._rotate = false
|
|
studio._clip_paused = true
|
|
func _process(_delta: float) -> void:
|
|
if studio == null:return
|
|
var time: float = frame/FPS
|
|
var cursor: float = 0.0
|
|
for item: Array in SCHEDULE:
|
|
if time < cursor+float(item[1]):
|
|
var clip: String = item[0]
|
|
for i: int in range(studio._clip_selector.item_count):
|
|
if studio._clip_selector.get_item_metadata(i)==clip:studio._clip_selector.select(i)
|
|
var local_time: float = time-cursor
|
|
var length: float = studio._figure.clip_length(clip)
|
|
studio._clip_time = minf(local_time,length) if clip=="death" else fmod(local_time,length+.12)
|
|
studio._turntable.rotation.y = -.25+.16*sin(time*.28)
|
|
frame += 1
|
|
return
|
|
cursor += item[1]
|
|
get_tree().quit()
|