04.07.2026 15:14

Scena 3D dostaje drzewo obiektów i blokadę edycji

⏱️ 3 min czytania
Udostępnij:

Po tym, jak obiekty sceny 3D zyskały relację rodzic–dziecko, dokładamy warstwę, która robi z niej wygodne narzędzie codziennej pracy: drzewo obiektów z przeciąganiem, blokadę edycji z dziedziczeniem oraz kilka wygód, które oszczędzają klikania.

Lista obiektów to teraz drzewo

Panel Scena 3D pokazuje obiekty jako drzewo: dzieci są zagnieżdżone pod rodzicem, a nie rozsypane po płaskiej liście. Budujesz układy tak, jak w każdym programie 3D — przeciągnij jeden obiekt na drugi, żeby podłączyć go jako dziecko; upuść na pustą przestrzeń, żeby odłączyć do korzenia. Przeciągnięcie, które tworzyłoby pętlę (obiekt na własnego potomka), jest odrzucane, a kursor od razu to sygnalizuje. Każde przełożenie to jeden krok cofania.

Podłączenie i odłączenie nie przesuwa obiektu — zostaje dokładnie tam, gdzie był na ekranie. Zadbaliśmy przy tym o przypadek, który łatwo przeoczyć: gdy rodzic ma nierównomierną skalę (np. spłaszczony na jednej osi), dziecko po przełożeniu wcześniej mogło „przeskoczyć". Teraz przeliczamy transformację tak, że pozostaje idealnie na miejscu.

Blokada edycji — chroń to, co gotowe

Każdy obiekt ma teraz przełącznik blokady (🔒) — w wierszu drzewa albo w menu kontekstowym. Zablokowany obiekt jest tylko do odczytu:

  • nie przesuniesz go gizmem na płótnie ani polami transformacji (są wyszarzone),
  • nie zapozujesz zablokowanej figury,
  • nie usuniesz go klawiszem Delete.

…ale wciąż go widzisz i możesz zaznaczyć — blokada dotyczy edycji, nie widoczności. Najważniejsze: blokada rodzica obejmuje całe poddrzewo. Zamykasz gotowy rekwizyt czy scenografię jednym kliknięciem i masz pewność, że nic w nim nie ruszysz przez przypadek. Obiekt zablokowany przez przodka pokazuje w drzewie przygaszoną kłódkę, żebyś od razu wiedział, skąd bierze się blokada.

Drobne wygody, które robią różnicę

  • Klawiatura w drzewie: Delete usuwa zaznaczony obiekt, F2 zmienia nazwę — bez sięgania do paska.
  • Resetuj transformację lokalną: przywraca obiekt do pozycji 0 / obrotu 0 / skali 1 względem rodzica.
  • Spłaszcz do świata (odłącz): wyjmuje dziecko z układu do korzenia, zachowując jego pozę na ekranie — odwrotność „Ustaw rodzica", gdy chcesz przełożyć element gdzie indziej.

Pod maską

Stan blokady mieszka w scenie 3D, jest objęty cofaniem i synchronizowany we współpracy w czasie rzeczywistym. Sceny bez blokad zapisują się dokładnie jak dotąd — pełna zgodność wsteczna. A przeciąganie w drzewie jest teraz płynne nawet przy dużych scenach: układ dekodujemy raz na czas przeciągania, zamiast przy każdym ruchu myszy.

Po co to

To kolejny krok od „pojedynczych brył" do prawdziwej sceny: porządkujesz obiekty w czytelne układy, składasz mechanizmy i scenografie, a to, co skończone, zabezpieczasz przed przypadkową zmianą — nie tracąc możliwości edycji niczego, co jeszcze dopracowujesz.

📚 Powiązane posty

14.07.2026 22:19

Silnik gier: od szablonu do grywalnej gry RPG top-down

Startowy szablon silnika gier to teraz kompletny, grywalny wycinek gry RPG top-down: chodzenie po siatce, rozmowy z postaciami, przeciwnik goniący gdy...
Czytaj dalej →
14.07.2026 19:16

Moonlight Animate — system dialogów w grach

Silnik gier 2D w Moonlight Animate ma teraz kompletny system dialogów: kwestie z efektem maszyny do pisania, wybory z warunkami, zmienne fabularne i g...
Czytaj dalej →
14.07.2026 18:40

Moonlight Animate: ruchoma panorama dźwięku także w wyeksportowanym wideo

Dźwięk przejeżdżający z lewego do prawego głośnika brzmiał dobrze w podglądzie, ale eksport przez serwer zamrażał go w miejscu. Ostatnia luka parytetu...
Czytaj dalej →

📧 Bądź na bieżąco!

Zapisz się na listę oczekujących, aby otrzymywać powiadomienia o nowych postach na Dev Blog oraz informacje o starcie platformy Moonlight.