[#1] Animacje Westwood Studios w formacie ANIM
Hej,

Od pewnego czasu pracowałem nad odtwarzaniem animacji w formacie WSA (są to duże animacje z gier Westwood Studios, jak Dune 2) na Amidze.

Udało mi się opracować program do konwersji z formatu WSA bezpośrednio do formatu IFF ANIM.

Dzięki trzymaniu się standardu ANIM, jest możliwa również edycja tych animacji np. w DPaincie.

Poniżej zrzut ekranu z DPainta, z wczytaną animacją.

Przykładowe animacje do pobrania:

https://coreprogramming.pl/Anim/Fartr.ANIM
https://coreprogramming.pl/Anim/Intro3.ANIM
https://coreprogramming.pl/Anim/Intro8a.ANIM

Animacje są w 256 kolorach.

Nota: Po konwersji moim programem, Deluxe Paint wczytuje je jako animacje 50 FPS, mimo że chcę je ustawić na 10 FPS, jak jest odtwarzane w oryginale. Dokonuję tej zmiany ręcznie - udostępnione pliki mają już to ustawione.

Staram się jeszcze dociec jak ustawić nagłówek, by DPaint akceptował czas odtwarzania klatki animacji zapisany w nagłówku animacji ANHD.

Mała uwaga: proszę nie ładować animacji do programu MultiView na osobnym ekranie. Jest chyba jakiś bug w Datatype ANIM, który zaobserwowałem już dawno temu.

Niedługo postaram się udostępnić pozostałe pliki z animacjami. Jest ich dość sporo.

Mój konwerter nie obsługuje jeszcze w pełni animacji wieloplikowych WSA. Animacje zapętlone zdają się działać poprawnie.

Pozdrawiam.





Ostatnia aktualizacja: 25.05.2026 08:47:28 przez Hexmage960
8
[#2] Re: Animacje Westwood Studios w formacie ANIM

@Hexmage960, post #1

A w kodzie opendune takie rzeczy nie zostały już rozszyfrowane?
[#3] Re: Animacje Westwood Studios w formacie ANIM

@Mirq, post #2

A w kodzie opendune takie rzeczy nie zostały już rozszyfrowane?

Tak, format WSA został już rozszyfrowany i powstało na pewno wiele implementacji procedury rozpakowującej w językach programowania.

Tutaj owocem mojej pracy jest to, że animacje są skonwertowane do standardu IFF ANIM, najbardziej popularnego na Amidze. Animacja jest odtwarzana z pełną płynnością nawet na 020/030.

Oznacza to, że można ją odtwarzać w programach typu "ShowANIM", "PlayANIM" czy właśnie Deluxe Paint. Przynajmniej takich, które wspierają kompresję typu 5 (Byte Vertical Delta mode), której tutaj użyłem.

Oryginalna animacja jest w formacie Chunky łącznie z tzw. Deltą (różnicą między klatkami) i ja zapisuję ją do Planar w trakcie konwersji.

Ostatnia aktualizacja: 25.05.2026 09:26:23 przez Hexmage960
2
[#4] Re: Animacje Westwood Studios w formacie ANIM

@Hexmage960, post #1

Speed zależy od wersji DPainta. Generalnie DPaint używa stałej prędkości i zapisuje speed do chunku DPAN ignorując zapisy w ANHD. Wczesne DP3 mają buga, tam speed zawsze jest równy 0 (plus błędne animbrushe). DP5 ma 2 tryby, stałe fps i zmienne fps. Jednak jego ANHD jest specyficzny i jako jedyny ze wszystkich programów zapisuje go pod siebie (używa pad1=$80 i $81). Jako jedyny zapisuje też czas abstime.
[#5] Re: Animacje Westwood Studios w formacie ANIM

@cholok, post #4

Speed zależy od wersji DPainta. Generalnie DPaint używa stałej prędkości i zapisuje speed do chunku DPAN ignorując zapisy w ANHD.

Tak, dzięki za informację. Już spostrzegłem, że Deluxe Paint ma wybór pomiędzy czasem ogólnym (Global) i uwzględnieniem czasu poszczególnych klatek (Vary by frame). A są tu jeszcze dodatkowe opcje. Czasu globalnego raczej nie da się zmienić z poziomu nagłówka ANHD (tylko, tak jak piszesz, przechowane jest to w prywatnym chunku, bądź ustawieniach DPainta).

Jednakże DPaint wczytuje poprawnie prędkość klatek z moich ANHD. Tylko trzeba przestawić czas w ustawieniach prędkości animacji z globalnego na pobrany z klatek animacji. Wtedy jest OK.

DP5 ma 2 tryby, stałe fps i zmienne fps. Jednak jego ANHD jest specyficzny i jako jedyny ze wszystkich programów zapisuje go pod siebie (używa pad1=$80 i $81). Jako jedyny zapisuje też czas abstime.

Tak, analizując plik ANIM zapisany przez DPaint zauważyłem, że używa nieudokumentowanego ósmego bitu opcji (udokumentowane są tylko bity 0-5).

Dodam, że wcześniej próbowałem metod kompresji 0 i 1 (tzw. Direct i XOR), ze względu na prostotę ale DPaint raczej ich nie obsługuje, bo wczytywał tylko pierwszą klatkę.

Troszkę poszperałem na Aminecie i dyskach Fisha, żeby ustalić parę kwestii, w tym kompresję typu 5. Generowanie klatek poszło już wcześniej bez problemów - więcej czasu zajęła mi konwersja Delty.

Działa to OK, bo udało się już skonwertować szereg plików WSA i są prawidłowo odtwarzane w DPaincie.

Ostatnia aktualizacja: 25.05.2026 10:47:17 przez Hexmage960
[#6] Re: Animacje Westwood Studios w formacie ANIM

@Hexmage960, post #5

Jednakże DPaint wczytuje poprawnie prędkość klatek z moich ANHD. Tylko trzeba przestawić czas w ustawieniach prędkości animacji z globalnego na pobrany z klatek animacji. Wtedy jest OK.

Czyli jest niepoprawnie, skoro trzeba korygować.

Tak, analizując plik ANIM zapisany przez DPaint zauważyłem, że używa nieudokumentowanego ósmego bitu opcji (udokumentowane są tylko bity 0-5).

To nie jest bit opcji tylko w miejscu typu pad.

Dodam, że wcześniej próbowałem metod kompresji 0 i 1 (tzw. Direct i XOR), ze względu na prostotę ale DPaint raczej ich nie obsługuje, bo wczytywał tylko pierwszą klatkę.

Metody 0 i 1 w rzeczywistości nie istnieją, były one używane przez wewnętrzne programy Sparty (twórcy formatu). Mają wartość historyczną, nawet najstarszy publiczny showanim (od Sparty) nie odtwarza tych kodów.
[#7] Re: Animacje Westwood Studios w formacie ANIM

@cholok, post #6

Czyli jest niepoprawnie, skoro trzeba korygować.

Ale to wygląda na globalne ustawienie Deluxe Painta. Raz ustawiwszy działa cały czas OK.

To nie jest bit opcji tylko w miejscu typu pad.

Słusznie. Nie uwzględniłem bajtu interleave.

Metody 0 i 1 w rzeczywistości nie istnieją, były one używane przez wewnętrzne programy Sparty (twórcy formatu). Mają wartość historyczną, nawet najstarszy publiczny showanim (od Sparty) nie odtwarza tych kodów.

To bardzo ciekawe.

Ostatnia aktualizacja: 25.05.2026 11:50:22 przez Hexmage960
[#8] Re: Animacje Westwood Studios w formacie ANIM

@Hexmage960, post #7

Ale to wygląda na globalne ustawienie Deluxe Painta. Raz ustawiwszy działa cały czas OK.

Nie. Wartość jest odczytywana z chunku DPAN.
[#9] Re: Animacje Westwood Studios w formacie ANIM

@cholok, post #8

Nie. Wartość jest odczytywana z chunku DPAN.

Dziękuję za wskazówki. No więc z tego co widzę ten chunk jest dosyć prosty i zawiera tylko wersję, liczbę klatek w animacji i właśnie ten globalny wskaźnik FPS. Więc dam radę go zapisać.

Z nowości mój konwerter obsługuje już wieloplikowe WSA, tworząc odrębne pliki z poprawnymi animacjami.

Jeśli zaś chodzi o animacje zapętlone, to wiem, że trzeba na końcu dać dwie dodatkowe Delty do pierwszej i drugiej klatki. W pliku WSA jest taka Delta jako dodatkowa klatka (której jeszcze nie wczytuję).

Wygląda jednak na to, że DPaint radzi sobie z takimi plikami i chyba automatycznie tworzy te Delty.

Z tego co doczytałem, to DPaint dekoduje tylko kompresję typu 5 i 7.

Dlatego nie udostępniam konwertera, czy innego programu który czyta WSA, bo mimo że mój konwerter wykrywa niepoprawnie skompresowane pliki, format WSA jest dość trudny w walidacji (sprawdzeniu czy plik jest właściwy). Dlatego uznałem, że ANIM będzie lepsze do dystrybucji.

Wrzucę wszystkie animacje z gry w ANIM z dołączonym playerem w postaci archiwum LhA. Już skonwertowałem kilkanaście plików. Póki co możecie wgrać te pliczki które udostępniłem w poście nr 1.

Po szperaniu na Aminecie i testowaniu, udało się znaleźć kilka fajnych playerów (obok znakomitego Deluxe Painta):

Polecam np. ten: https://aminet.net/package/gfx/show/BigAnim40 Działa znakomicie.

Postaram się dodać ten chunk DPAN.

P.S. Dorobienie własnego playera też jest możliwe, a dodatkowo spełni to moje wymagania odnośnie takiego programu, więc to rozważę.



Ostatnia aktualizacja: 25.05.2026 19:03:20 przez Hexmage960
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem