25.06.2026 22:33

Współpraca na żywo nad sceną — teraz cała oś czasu

⏱️ 3 min czytania
Udostępnij:

Cała oś czasu w czasie rzeczywistym

Współpraca na żywo w Moonlight Animate pozwalała już wspólnie malować, przesuwać warstwy, sterować kamerą 2D oraz rozmawiać głosem i tekstem. Brakowało jednak jednej rzeczy: strukturalne edycje osi czasu — przesuwanie i przycinanie klipów, klatki kluczowe, ścieżki audio, a zwłaszcza praca w arkuszu klatek (xsheet) — były lokalne. Każdy współtwórca widział własną wersję montażu, a sesja po cichu się rozjeżdżała. Tę lukę właśnie domknęliśmy: teraz synchronizuje się cała oś czasu.

Co od teraz dociera do wszystkich

  • Klipy — dodanie, usunięcie, przesunięcie i przycięcie klipu (wideo/raster) widzą wszyscy.
  • Klatki kluczowe — animacja właściwości klipu (pozycja/skala/obrót/krycie) synchronizuje się w całości.
  • Audio — dodawanie/usuwanie/przesuwanie/przycinanie klipów dźwiękowych.
  • Arkusz klatek (xsheet) — strukturalne operacje animacji klatka-po-klatce: dodaj pustą / usuń / duplikuj / hold / odwróć / wklej klatki cel. (Samo malowanie w klatkach synchronizowało się już wcześniej.)

A do tego najważniejsze: wszystkie te edycje są teraz w pełni cofalne podczas sesji współpracy — wcześniej Cofnij było w trybie współpracy wyłączone. Co więcej, samo Cofnij/Ponów też się synchronizuje: gdy ktoś cofnie przesunięcie klipu, jego cofnięcie dociera do reszty zespołu, więc montaż pozostaje spójny.

Jak to działa pod maską

Wzorowaliśmy się na sprawdzonej już warstwie malarskiej: każda zmiana zawsze trafia na stos cofania, a rozsyłana jest jako lekka „operacja osi czasu" do pozostałych współtwórców. Przeciwne echo (odbicie zdalnej zmiany z powrotem jako własnej) blokuje strażnik, więc nie powstają pętle ani „walka" o ten sam klip. Identyfikatory nowych obiektów są przydzielane w przestrzeni nazw konkretnego użytkownika, więc dwóch animatorów dodających klip jednocześnie nigdy nie wejdzie sobie w drogę.

Dla arkusza klatek poszliśmy o krok dalej: operacje strukturalne wysyłają migawkę zmienionych klatek (stany komórek + piksele), dzięki czemu duplikat, odwrócenie czy wklejenie odtwarzają się u współtwórcy dokładnie tak samo, niezależnie od jego lokalnego stanu — i pozostają cofalne po obu stronach.

Co dalej

To pierwsza pełna odsłona synchronizacji osi czasu. W planach: lżejszy transfer pikseli arkusza klatek (różnicowy zamiast pełnych klatek przy dużych zakresach) oraz dosynchronizowanie stanu przy dołączaniu do sesji w trakcie. Miłej wspólnej animacji!

📚 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.