ZPMI #009 – Animacja 2D

DevLog #009

Hej!

Co ja się wycierpiałem przez ostatnie trzy tygodnie to się w głowie nie mieści.

Wymyśliłem sobie mianowicie, że siłą mojej przygodówki będą animacje – że będzie ich dużo i będą fajne. I wszystko pięknie tylko nie umiem animować 🙂 Z drugiej strony nie chcę obciążać graficzki tysiącem animacyjek bo i tak ma furę roboty do zrobienia.

Z powyższego równania wychodzi jedno – postacie będą animowane szkieletowo i ja się muszę tego nauczyć 😉

Disklajmer: poniższe animacje to szybkie testowe cykle chodu robione przez gościa który tego nie umie – widzę, że są brzydkie, widzę, że chrupią. Chodziło o szybkie przetestowanie kilku programów i wybranie narzędzia. Narzędzie wybrałem, animacji się uczę – kolejne zajawki będą milsze dla oka. Obiecuję.

Unity

Zacząłem pod Unity tak jak pokazałem w tutorialu 1 i 2. Efekt nie był zadowalający, a możliwości edycji i dogrywania takiej animacji są w tym momencie w Unity bardzo małe.

1254_anatol_walk_unity.gif

Krita

No to potem stwierdziłem, że oszukam 'kości’ – zrobię animację w Kricie obracając warstwy i wyeksportuję to jako poszczególne klatki. Szybki szkic chodu wyszedł całkiem przyzwoicie:

1254_szkic_walk_krita.gif

ale potem układanie według tego schematu prawdziwych warstw już nie szło tak ładnie:

1254_anatol_walk_krita.gif

Animację poklatkową robi się bardzo intuicyjnie. Jednak mój wymysł, że warstwa to kość i w poszczególnych klatkach obracam i przesuwam warstwy to katorga w edycji i dogrywaniu – nie był to dobry pomysł.

Blender

Następny był Blender – wiadomo, że narzędzia do animacji postaci ma nieporównywalnie lepsze. A do tego teraz jest fajny Grease Pencil – no to może tam. Zrobiłem szkielet, namalowałem Grease Pencilem postać i „tchnąłem w nią ducha”:

1254_anatol_walk_blender.gif

Efekt całkiem przyjemny, praca z animacją szalenie satysfakcjonująca. Trochę gorzej potem z wyrenderowaną postacią – musiałbym się jeszcze podciągnąć z oświetlenia i renderingu, ale wygląda to obiecująco:

1254_anatol_walk_blender_export.gif

Godot

W międzyczasie 'troszeczkę’ mnie wessało w Godota i Escorię.

Szkielet gry na Escorii poukładałem w kilka wieczorów, napotkane błędy i niedociągnięcia udawało się szybko przezwyciężyć.

To se wymyśliłem jeszcze inaczej:

„A jakby tak zrobić przygodówkę na Escorii przy okazji ucząc się Godota i po drodze poprawiać napotkane błędy i dorabiać nową funkcjonalność?”

Wtedy po kilku miesiącach pracy miałbym otwarte narzędzie z ewentualnymi, skrojonymi pod siebie poprawkami, do tego byłbym w miare ogarnięty w Godocie i mógł lepiej dobierać silnik do kolejnych projekty. Same plusy.

No to zrobiłem forka Escorii na GitHubie. Zgłosiłem poprawki, żeby aktualna wersja działała na aktualnym Godocie. Zostały przyjęte i w tym momencie Escoria master działa normalnie na Godocie 3.2.

Zrobiłem na swoim forku oddzielną gałąź: 3.2-WIP i tam wrzucam swoje poprawki i wydumki, a zaakceptowane przez maintainera zmiany będę przerzucał do głównego repozytorium.

Idąc za ciosem spróbowałem zrobić animację postaci na szkielecie bezpośrednio w Godocie:

1254_anatol_walk_godot.gif

Jest poprawnie. Robi się przyjemnie ale miejscami brakuje funkcjonalności. No ale da się, niedociągnięcia mogę poprawić i zgłosić poprawki do Godota – fajnie, linuksiarsko i programistycznie.

Oczywiście można się czepiać, że nie rozważałem Spritera, Spine czy Unitowej Animy2D. Spritera nie używałem, ze Spine i Animą 2D miałem trochę do czynienia wcześniej ale mnie jakoś nie uwiodły. Może jeszcze wrócę z podkulonym ogonem, ale chciałem rozwiązanie w miarę otwarte i działające dobrze na Linuksie. Jeżeli nie ogarnę tego tak jak chcę pod Godotem to raczej wycofam sie w kierunku Blendera 🙂

Pan Anatol i mamuty

Stan na dziś jest taki, że mam praktycznie cały świat (26 lokalizacji, dojdą jeszcze drobiazgi typu błądzenie po dżungli) działający. Mogę sobie chodzić tam i nazad, dodawać postacie, zagadki i dialogi.

Mam działające pierwsze 2 puzzle, można porozmawiać z 6 postaciami (z 19 przewidywanych).

Strasznie szybko się buduje dialogi, cut scenki i puzzle pisząc normalne pliki tekstowe – bez porównania do wyklikiwania 'nodów’ pod Unitowym Adventure Creatorem.

Technicznych barier nie widzę na razie – muszę dorobić:

  1. zapisywanie gry ze zrzutami,
  2. obsługę mapy – wyświetlanie, zaznaczanie postaci i odsłanianie przebytych obszarów.
  3. obsługę książek czy notatek – przedmiotów które da się pokazać na ekranie

i tyle. Reszta mi działa.

Interfejs sobie wymyśliłem staroszkolny – klasyczne 9-verbs tylko w moim przypadku będzie ich 6. Nie będzie 'push’ i 'pull’, zamiast tego będzie 'attack’.

1254_6_verbs.gif

Możliwe, że to precyzyjnie wymierzony strzał w kolano ale mam wrażenie, że po tych wszystkich „interaktywnych podróżach w głąb własnej podświadomości by przeżyć głębię wielopoziomowego rozwoju własnego ja” ludzie mają już ochotę zagrać w normalną kombinowaną przygodówkę – nie tylko look i use ale dużo, dużo więcej mięska. I śmiechu. Mam nadzieję.

W każdym razie tego typu interfejs sprawdzi się też pięknie na urządzeniach smyranych – buduję sobie testowo na telefon czasami i całkiem miło sie gra.

Reszta

A reszta leży. Tak sie wkręciłem w Godota i Anatola, że praktycznie cały czas poświęcam na składanie grywalnej alfy – wymyślanie zagadek, pisanie dialogów i naukę animacji. A tu w planach jeszcze strona WWW gry i szykowanie strony na Steamie. Póki mam flow to cisnę ten jeden projekt i się nie rozdrabniam. Wrócę do projektów pobocznych jak mi trochę zapał opadnie, a na razie szkoda czasu.