Mehrere kameras #5

Closed
opened 2026-09-12 15:03:50 +02:00 by admin · 0 comments
  1. kamera enabled auf false setzen bewirkt nichts, wird trotzdem gerendert
  2. wenn mehrere kammeras in der scene sind, dann soll die erste gefundene die enabled ist die aktive kamera sein

Umgesetzt (2026-09-09). Beide Punkte waren dieselbe Stelle: der Game-View nahm die Kamera
mit world.firstOfType('camera') — die erste ueberhaupt, ohne den Schalter anzusehen. Ein
ausgeschaltetes enabled konnte deshalb nichts bewirken (Punkt 1), und eine zweite Kamera kam
nie zum Zug, egal wie die Schalter standen (Punkt 2).

An ihre Stelle tritt World.activeCamera() — die einzige Stelle, die entscheidet, durch
welche Kamera gespielt wird:

  • geschaltet zaehlt wie bei jedem Objekt die ganze Kette nach oben (isHandleEnabled): eine
    Kamera unter einem ausgeschalteten Container ist ebenfalls aus.
  • "erste" heisst in Hierarchie-Reihenfolge, also von oben nach unten im Hierarchie-Panel,
    nicht in Speicherreihenfolge. Die beiden koennen auseinanderlaufen, sobald eine Kamera unter
    einem Elternteil haengt, das spaeter gespeichert ist — dann gewinnt das, was der User sieht.
  • keine an → gar nichts wird gerendert, wie bei einer Szene ohne Kamera. Der Hinweis beim
    Start sagt jetzt in beiden Faellen dasselbe: "No camera is switched on – nothing is rendered".

Ausgewertet wird pro Frame, also wirkt ein Umschalten waehrend des Spielens sofort — auch das
per Set enabled-Node aus einem Graphen heraus. Das ist der Weg, wie eine Szene die Ansicht
von einer Kamera an die naechste uebergibt.

firstOfType ist damit unbenutzt und geloescht.

Belegt — vier Unit-Tests (tests/core/camera.test.ts, jeder faellt ohne den Fix um) und
sieben E2E-Checks in Modul 03. Der Test-Hook __gm.gameInfo() nennt dafuer neu die objectId
der aktiven Kamera
, sonst waere "durch welche Kamera" nur zu erraten:

PASS  a switched-off camera renders nothing although it is still in the scene
      – {"rendering":false,"visibleItems":0,"camera":""}
PASS  the switched-on camera takes over, and the game is seen through it
      – {"rendering":true,"visibleItems":0,"camera":"m8ngyi2lkc"}
PASS  with both switched on the first camera in hierarchy order is the active one again
      – {"rendering":true,"visibleItems":2,"camera":"o3"}

Der mittlere Check ist der eigentliche Beweis fuer Punkt 2: die zweite Kamera steht bei
x = 5000, die beiden Kisten liegen am Ursprung. visibleItems: 0 bei rendering: true heisst,
dass wirklich durch ihren Ausschnitt gesehen wird — der blosse Name der Kamera haette auch
dann gestimmt, wenn das Bild von der alten Kamera gekommen waere.

Screenshot 10b-second-camera.


Übernommen aus todo-notes/done/mehrere-kameras.md beim Umzug auf das Issue-System (2026-09-12).

  • Angelegt: 2026-09-09 · 633f01c — Add five notes raised while the override work was running
  • Abgeschlossen: 2026-09-09 · 37fff5d — Play through the first camera that is switched on
  • Gemeldet von: admin
1. kamera enabled auf false setzen bewirkt nichts, wird trotzdem gerendert 2. wenn mehrere kammeras in der scene sind, dann soll die erste gefundene die enabled ist die aktive kamera sein --- **Umgesetzt (2026-09-09).** Beide Punkte waren dieselbe Stelle: der Game-View nahm die Kamera mit `world.firstOfType('camera')` — die **erste ueberhaupt**, ohne den Schalter anzusehen. Ein ausgeschaltetes `enabled` konnte deshalb nichts bewirken (Punkt 1), und eine zweite Kamera kam nie zum Zug, egal wie die Schalter standen (Punkt 2). An ihre Stelle tritt **`World.activeCamera()`** — die einzige Stelle, die entscheidet, durch welche Kamera gespielt wird: - **geschaltet** zaehlt wie bei jedem Objekt die ganze Kette nach oben (`isHandleEnabled`): eine Kamera unter einem ausgeschalteten Container ist ebenfalls aus. - **"erste"** heisst in **Hierarchie-Reihenfolge**, also von oben nach unten im Hierarchie-Panel, nicht in Speicherreihenfolge. Die beiden koennen auseinanderlaufen, sobald eine Kamera unter einem Elternteil haengt, das spaeter gespeichert ist — dann gewinnt das, was der User sieht. - **keine an → gar nichts wird gerendert**, wie bei einer Szene ohne Kamera. Der Hinweis beim Start sagt jetzt in beiden Faellen dasselbe: *"No camera is switched on – nothing is rendered"*. Ausgewertet wird pro Frame, also wirkt ein Umschalten waehrend des Spielens sofort — auch das per `Set enabled`-Node aus einem Graphen heraus. Das ist der Weg, wie eine Szene die Ansicht von einer Kamera an die naechste uebergibt. `firstOfType` ist damit unbenutzt und geloescht. **Belegt** — vier Unit-Tests (`tests/core/camera.test.ts`, jeder faellt ohne den Fix um) und sieben E2E-Checks in Modul 03. Der Test-Hook `__gm.gameInfo()` nennt dafuer neu die **objectId der aktiven Kamera**, sonst waere "durch welche Kamera" nur zu erraten: ``` PASS a switched-off camera renders nothing although it is still in the scene – {"rendering":false,"visibleItems":0,"camera":""} PASS the switched-on camera takes over, and the game is seen through it – {"rendering":true,"visibleItems":0,"camera":"m8ngyi2lkc"} PASS with both switched on the first camera in hierarchy order is the active one again – {"rendering":true,"visibleItems":2,"camera":"o3"} ``` Der mittlere Check ist der eigentliche Beweis fuer Punkt 2: die zweite Kamera steht bei x = 5000, die beiden Kisten liegen am Ursprung. `visibleItems: 0` bei `rendering: true` heisst, dass wirklich durch **ihren** Ausschnitt gesehen wird — der blosse Name der Kamera haette auch dann gestimmt, wenn das Bild von der alten Kamera gekommen waere. Screenshot `10b-second-camera`. --- *Übernommen aus `todo-notes/done/mehrere-kameras.md` beim Umzug auf das Issue-System (2026-09-12).* - **Angelegt:** 2026-09-09 · `633f01c` — Add five notes raised while the override work was running - **Abgeschlossen:** 2026-09-09 · `37fff5d` — Play through the first camera that is switched on - **Gemeldet von:** admin
admin added the todo-note label 2026-09-12 15:03:50 +02:00
admin closed this issue 2026-09-12 15:03:50 +02:00
admin added this to the Development project 2026-09-13 13:43:29 +02:00
admin moved this to Done in Development on 2026-09-13 13:45:08 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#5