11.07.2026 11:42

Moonlight Animate: pełny import pędzli .abr i .sut

⏱️ 3 min czytania
Udostępnij:

Do tej pory import pędzli z plików .abr przenosił tylko bitmapy końcówek — kształt się zgadzał, ale wszystkie ustawienia trzeba było odtwarzać ręcznie. Ta fala zmienia import w pełnoprawną migrację: pędzel po zaimportowaniu maluje tak, jak w programie, z którego pochodzi. Doszła też obsługa drugiego popularnego formatu — .sut.

Pełny import .abr — parametry, nie tylko końcówki

Nowy parser czyta z pliku .abr kompletny opis pędzla, nie samą bitmapę:

  • prawdziwe nazwy pędzli (dotąd: „Pędzel 1…N") i właściwe przypisanie końcówek — plik wiąże je wewnętrznym identyfikatorem, który wcześniej był pomijany,
  • geometria końcówki: rozmiar, odstęp stempli, kąt, spłaszczenie, twardość, odbicia,
  • dynamika kształtu: wahania rozmiaru/kąta/zaokrąglenia, minimum, sterowanie naciskiem pióra, wygasanie, podążanie kąta za kierunkiem kreski, losowe odbicia per stempel,
  • rozrzut: siła, obie osie, liczba stempli z wahaniem,
  • tekstura papieru: osadzone w pliku wzorki ziarna są dekodowane (także kolorowe — konwersja do maski w skali szarości) i lądują w bibliotece materiałów z właściwą skalą, głębokością i trybem mieszania,
  • podwójny pędzel — łącznie z drugą końcówką-bitmapą, która rejestruje się jako osobny materiał,
  • transfer (wahania krycia/przepływu ze sterowaniem naciskiem), dynamika koloru (odcień/nasycenie/jasność, mieszanie kolorów pierwszego planu i tła), mokre krawędzie, szum końcówki, a nawet wymuszona poza pióra (pochylenie/obrót/nacisk).

Wiele popularnych narzędzi importuje z .abr wyłącznie końcówki — u nas pędzel przychodzi z kompletem ustawień. Stare pliki (bez sekcji parametrów) importują się jak dotąd, a uszkodzone lub egzotyczne wpisy nie wywracają całej paczki: parser jest defensywny i w najgorszym razie pojedynczy pędzel ląduje jako sama końcówka.

Import .sut

Ten sam dialog importu przyjmuje teraz pliki podnarzędzi .sut. Importowane są parametry (rozmiar, odstęp, twardość, krycie, kąt, rozrzut z gęstością, ziarno tekstury z siłą, zwężanie początku i końca kreski) oraz osadzone w pliku bitmapy końcówek — pędzle dekoracyjne z wieloma klatkami trafiają wprost do naszego wieloklatkowego modelu końcówek. Format bywa różny między wersjami programu źródłowego, więc czytnik sam bada strukturę pliku i mapuje tylko to, co rozpozna z sensownym zakresem wartości. Jeśli plik zawiera jedynie odnośnik do końcówki w zewnętrznej bazie materiałów (bez osadzonego obrazka), pędzel dostaje uczciwie okrągłą końcówkę, a podsumowanie importu jasno to zgłasza — zero atrap.

Wspólny lejek i podsumowanie importu

Oba formaty przechodzą przez jeden mechanizm: każda bitmapa (końcówka, druga końcówka, ziarno) rejestruje się w bibliotece materiałów z deduplikacją po zawartości pikseli — paczka, w której sto pędzli współdzieli jedną próbkę, nie zaśmieca biblioteki setką kopii. Po imporcie dialog podsumowuje, ile pędzli weszło z pełnymi parametrami, ile z samą końcówką, a ile jako proceduralne.

Drobne usprawnienia przy okazji

  • Okno wyboru czcionek pokazuje na górze sekcję „Moje fonty" — własną bibliotekę konta (wgrane pliki i wybrane wcześniej czcionki), z pobieraniem pliku wprost z konta.
  • Czcionki są teraz trwałe między sesjami — pobrane pliki rejestrują się automatycznie przy starcie programu, więc tekst na warstwach renderuje się właściwą rodziną bez ponownego pobierania (działa też offline).

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