Repository navigation
Conversation
…l polish Add dynamic procedural 32x32 hardware RTS cursors (default, move, attack, harvest, repair) and contextual right-click dispatch into RtsDeviceInput for responsive RTS controls. Add color-coded animated ground click feedback pings to SelectionMarkerView and target rings under visible attack targets. Add sound cues for building completion, base-under-attack warnings, low-power alerts, and round victory/defeat in UnitViewManager, ResourceBarHud, and MatchFrameHud. Upgrade 3D visual presence with crystalline Aetherium clusters, progressive construction scaffolding, placement holograms, texture brightness preservation, high-contrast healthbars on hover, and sci-fi HUD styling.
The simulation measures headings mathematically (SimTrig.Atan2: 0 = +X, counter-clockwise), Unity's yaw starts at +Z and turns clockwise. The view fed the sim angle straight into Quaternion.Euler, which mirrored every unit across the north-east diagonal: a tank driving east looked north. ViewHeading is now the single place that maps a sim heading to a Unity yaw (90 deg minus sim degrees). EditMode tests pin the mapping for eight compass directions and an oblique one. A PlayMode test drives six real prefabs in six directions through pathfinding and asserts every moving view faces its measured displacement; with the old mapping it fails (up to 180 deg off). Refs D-110. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A recipe-driven Blender pass (tools/art/asset_pass.py, headless) splits every model into named, pivoted nodes (Body, Turret, Gun, Wheel_*, Arm_*, Spin_*, Scan_*), removes needles and floating debris, smooths the faceted Tripo normals and lifts the far too dark base colour onto the D-072 palettes; it also writes the _MSK mask and a new _EM emission map. The source is always the untouched conversion outside the repo, so a rerun is reproducible. UnitRigAnimator drives those nodes from view-only input: turrets yaw toward the visible attack target, guns recoil on visible shots, wheels roll, the suspension pitches and leans, infantry bob in step, harvester and builder arms work, dishes spin or sweep, and buildings breathe through their light strips, faster while producing (own buildings only, so the glow cannot leak production through the fog). Import keeps the FBX hierarchy (a collapsed single root drops its axis rotation) and forces bakeAxisConversion off (it turns the older FBX by 180 deg and survives in .meta otherwise). Art materials render double sided because the Tripo shells have real gaps. ArtPreviewCapture photographs every prefab through URP headless for review. Verified locally: headless 768/768, EditMode 676/676, PlayMode 16/16; all 34 prefabs inspected at rest and in a drive/fight pose. Not played. Decision: D-110. Protocol and limits: docs/assets/AssetPass_2026-10-17.md Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The emissive accents of the art pass never glowed: the URP renderer had no postProcessData since UrpProjectSetup created it, so URP rendered every camera without post-processing; there was no volume profile, the main camera had post-processing off, and URP's material validation stripped _EMISSION because the GI flags were None. UrpPostProcessingSetup (reflection only, D-061 allows no URP reference) wires the renderer data, a bloom profile as the pipeline asset's default volume (threshold 1.0, so only emission blooms) and the camera switch; the scene generator calls it and the Bootstrap scene is regenerated. The art pass now separates painted accent stripes from glowing ones so light panels no longer burn out white. The dark Alliance base was backlighting, not texture: the sun at Euler(33, -128) stood behind every facade the north-facing RTS camera shows. It now sits high on the camera side (50, 35) as Lighting.md asks for the desert. The Alliance radar column is squashed to building height. ArtShowcaseTests places every building and unit of both factions in the running match and photographs them through the main camera from 18, 30 and 42 m. Verified locally: headless 768/768, EditMode 676/676, PlayMode 17/17. Not played. Decision: D-111. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The four infantry models are single Tripo meshes without a skeleton, and automatic bone weighting does not survive their open, multi-shell geometry. The Blender pass now cuts thighs (pivot at the hip) and shins (pivot at the knee) into Leg_* / Shin_* nodes; recipe boxes keep hanging hands and side arms on the torso. UnitRigAnimator drives a two-joint walk cycle from the measured view speed: thighs swing +-25 deg in counter-phase, knees fold during the swing, the hips drop by exactly the shortening of the spread legs so the feet stay on the ground, and the torso kicks back on a visible shot. Cadence is capped at 3.2 steps/s: views are scaled to ~1 unit while the sim moves infantry 4 cells/s, and a slide-free cadence of ~9 steps/s reads as twitching. UnitMotionPresentationTests also records the walking soldier as a frame strip. Verified locally: headless 768/768, EditMode 676/676, PlayMode 17/17. Not played. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every building view is scaled to the width of its 3x3 footprint, which made the slender defence towers as wide as a factory and about four soldiers tall. The Blender pass now adds a flat concrete pad sized so that, after that scaling, a tower stands 0.7 footprints high - roughly twice a soldier, about a battle tank. The pad fills the blocked cells instead of leaving them an invisible wall; its UVs point at a calm, unsaturated texel, so it needs no extra material. The footprint itself stays 3x3: shrinking it for towers is a rules change (placement, pathfinding, AI, fingerprint and determinism baselines) and is left open for the owner. Decision: D-112. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The integration field priced diagonal steps through an integer division (14 / 10 = 1) as cheap as straight ones, so units drove staircases. Costs are now octile 10/14. Heading follows the path instead of the separation push (at most 30 degrees per tick), spacing is per unit class, large vehicles get group slots with a free rim, and idle own units step aside for an equal or larger moving unit. Rule revision V4; canonical AI pin 2726 -> 2721. D-116. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sites were bound to the player's lowest-index builder and only that builder's reach was checked, so a second builder could never build (#135 was misdiagnosed as the build-zone radius). When the bound builder is missing or out of reach, the site now passes to the lowest-index own builder that is in reach. Deterministic ascending scan; byte-identical with a single builder, so fingerprints and the AI pin do not move. Replaces the lowest-index-only part of D-085. D-118. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A UI Toolkit command bar for selected units (D-117): type chips, icon grid with hotkeys and tooltips, attack-move, patrol, guard, scatter and five formations as client orders over Move/Stop/AttackTarget, so the command register stays frozen. Buttons that do not apply are hidden rather than greyed: harvesters and builders get no combat orders, harvesters show a cargo bar and their state instead, and W/K/J/M act only on the armed part of a selection. Placing a building sends the selected builder, and right-clicking an own site sends selected builders to its approach cell (D-118). The escort holds an own harvester at the refinery while its unload animation plays. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ings - Every asset gets a wreck variant that the view switches to on death, plus ambient motion: dust trails, chimney smoke, idle turret sweeps (D-115). - One scale rule per class keeps vehicle proportions; the selection ring follows the model size (D-113). - Harvesters carry a visible ore load with Aetherium crystals that grows with CargoAE; on unload the Legion bed (new Bed part) tips back and the Alliance robot leans back while the load slides out. - Legion power plant, vehicle factory, lab and barracks were tanks or broken Tripo meshes; they are now built procedurally from new concept art (tools/art/procedural). Hunyuan3D was tried and rejected because its licence excludes the EU (D-119). glb_to_unity_fbx gains --keep-slivers. The art binaries stay local (gitignored); the asset package must be rebuilt to share them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Was & Warum
Der Branch verbessert die RTS-Präsentation und Bedienung: aufbereitete Art-Assets mit Teilanimationen, Infanteriebeinen, Turm-/Waffenbewegung, Sammlerladung und Abkippen, dauerhafte Wracks, Größenabstimmung, Licht/Bloom sowie kontextspezifische Kommandoleiste mit Angriffsbewegung, Patrouille, Eskorte und Formationen. Bewegung nutzt oktile Wegkosten und Platzmachen; Baustellen können an einen erreichbaren eigenen Bauer übergeben werden.
Die jüngste Korrektur beseitigt periodische Radar-Sprünge, unterbindet zufälliges Wegschauen der Infanterie beim Zielen und setzt gepoolte Animationszustände einschließlich Emission zurück. Elf neue Regressionstests prüfen auch die lokalen Art-Prefabs. Roadmap, Animationsdoku, Attack-Move-Angaben und Assetpaket-Stand wurden berichtigt. Entscheidungen D-110 bis D-119 und Einträge unter CHANGELOG.md [Unreleased] dokumentieren den Branch.
Validierung
Offene Abnahme / Draft-Grund
Nicht gespielt im Sinne einer vollständigen manuellen Spielabnahme. Buildstart und automatisierte Szenenprüfungen ersetzen keine komplette Partie. Die visuelle Prüfung wird jetzt fortgesetzt. Restrisiken: Animationsqualität in längeren Gefechten, Art-Verteilung/frischer Import sowie Netzwerk-/Gefechtsdichte-Abnahme. Keine Freigabe der manuellen Abnahme und kein Meilenstein-Nachweis behauptet.
Der Branch enthält bereits bestehende Simulations- und Fingerprint/AI-Pin-Änderungen (D-116); diese sind beim Review ausdrücklich mitzuprüfen. Meine jüngste Korrektur verändert keine Simulationsregeln. Release-Auswirkung des Gesamtbranches: minor; jüngster Animationsfix: patch. Kein Versionsbump, Tag, Release oder Merge.
Integration mit main
6f36b7eintegriert das bereits auf main gemergte KI-Persönlichkeitsupdate (D-114), ohne die gemeinsame Historie umzuschreiben. Konflikte in MatchBootstrap, Changelog und DecisionLog wurden unter Erhalt beider Änderungen aufgelöst. Unabhängiges Read-only-Review dieser Auflösung ohne Befund; anschließend 785 Simulationstests und 729 Unity-EditMode-Tests erfolgreich. Die Spielinstanz ist weiterhin der zuvor gestartete 3c8e6bf-dirty-Build, nicht als neu gebauter Integrationsstand ausgegeben.Weiterer Beta-Schritt: Builder-Arbeitsanimation
36c3e9a: Lebender eigener Builder und tatsächliche Footprint-Reichweite sind Voraussetzung für die Arbeitsanimation. Bestehende View-Reichweitenhilfe wiederverwendet, keine neue Simulationsregel. Laufende-Szene-Regression mit echten Move-/Stop-Befehlen: alter Code schlägt mit 14° Armschwenk außerhalb der Reichweite fehl; korrigierter Code besteht. Abschließend 7/7 PlayMode-Tests und 729/729 EditMode-Tests grün, Doku-Prüfung erfolgreich. Unabhängiges Read-only-Review ohne Befund.Visuelle Teilbeobachtung des gestarteten Players und klare Grenzen stehen in GrayboxLog GB-006: keine vollständige manuelle Partie, weitere native UI-Abfragen liefen in Timeouts. Der gestartete Player ist weiterhin der anfängliche Build, nicht der spätere Builder-Fix. Kein Merge durchgeführt.