Asset Review to seria współtworzona z Ireneuszem Kołodziejczykiem. Zastanawialiście się kiedyś czy Assety w Unity Asset Store są warte swojej ceny? Irek specjalnie dla was to sprawdzi.
Dzisiejszy odcinek: Foliage 2D v.1.1
Pierwszy Kontakt
Pierwszy kontakt z narzędziem jest bardzo pozytywny. Wynika to z profesjonalnego przygotowania karty sklepowej, gdzie grafiki są na naprawdę wysokim poziomie. Nie ma zbędnych detali, tylko absolutne minimum, potrzebne do przekazania z czym mamy do czynienia. Okazuje się bowiem, że mamy z narzędziem, które pozwoli Ci ożywić świat przedstawiony w niewielkim stopniu. Teraz elementy tła nie muszą być już statyczne. Nie musisz przygotowywać im żadnej animacji, gdyż możesz zadowolić się tą dołączoną do projektu. Będzie przydatna tym bardziej jeśli musisz na szybko coś zbudować i pokazać decydentom w zespole. Otoczenie będzie żyło tak długo swoim życiem, jak długo nie wejdzie w kontakt z graczem. Wtedy też obiekt ugina się w tą stronę, w którą poszedł gracz. Choć możesz sprawić iż będzie niepodatne na jego obecność. Kwestia aktualnych potrzeb.
Sprawia to fenomenalne wrażenie. Tutorial to 8 minut z małym hakiem. Do projektu masz załączoną 5 stronicową dokumentacje. Po zapoznaniu się z tematem poświęconym Foliage2D założonym na forum Unity, jak i resztą materiałów, na jaw wychodzi iż możesz w niewielkim stopniu edytować teren. Działa to na zasadzie reprodukowania oryginalnej tekstury, przez co zachowana jest ciągłość w tworzonym terenie.
Wrócimy jednak do tematu później. Przyjrzyjmy się teraz folderom, które są poukładane przejrzyście. Łatwo się w nich odnaleźć, dzięki czemu szybko docieramy do folderów z animacjami. Mamy ich przygotowane cztery. Trawy, kwiatów oraz wiatraka od młyna. Już te pierwsze dwie pozwolą na szybkie ożywienie świata i nadanie mu bardziej rzeczywistego wymiaru.
Gdy odpalimy załączone demo zauważamy ponadto iż poruszają się także i chmury. Te jednak zostały ożywione za pomocą skryptu. Jako, że posiada on kilka opcji, zobaczymy czy da im się nadać bardziej nieregularny tor. To, że można stworzyć paralaxe, dowiadujemy się z dokumentu wrzuconego do tego samego folderu co demoscena.
Wracając jednak do sedna i zaliczeniu krótkiego gameplayu, wszystko tylko bardziej utwierdza w przekonaniu iż mamy do czynienia z bardzo dobrym assetem. Nie ze względu na możliwości czy też mnogość opcji, a ze względu na najzwyczajniejsze w świecie umożliwienie szybkiego ożywienia elementów tła. A w dobie coraz bardziej dopieszczonych graficznie gier, gdzie coraz więcej się dzieje w tle, takie narzędzie może stać się podstawą, w procesie ożywiania tła.
Praca Wre, Czyli Niuanse
Dokładniejsze zapoznanie się z narzędziem i potrzebny na to czas, to naprawdę kwestia dość indywidualna. Wszystko zależy od tego jak szybko rozgryziesz ten zasób. Nie oszukujmy się. Jest ciężki w obsłudze, a poradnik i dokumentacja, omawia wszystko, tylko nie to jak naprawdę stworzyć różnego rodzaju animowane elementy tła. Dowiesz się za co odpowiadają poszczególne opcje oraz jak stworzyć animacje – ta jest oparta na standardowym animatorze Unity, więc jeśli miałeś z nim do czynienia, nic nowego.
Pytam się drogi autorze, jak stworzyć zróżnicowane elementy tła, mające odmienny kształt? Ze wstążki narzędziowej, poprzez wybranie odpowiedniej opcji? Działa połowicznie. Stworzysz kwiatka, a potem będziesz chciał kaktusa. Nagle się okaże, że poprzedni kwiatek zamienia się także w kaktusa. I co dalej? Wrócimy jeszcze do tematu.
Narzędzie nie ma wielu opcji, gdyż ma jedno zadanie, o którym pisałem powyżej. Robi to świetnie i już teraz wiem, że jest to rozwiązanie z którym zostanę dopóki nie znajdę czegoś lepszego. Po prostu nie po to kupuję narzędzia aby mieć orkę na ugorze w poznawaniu jego działania, nawet jeśli to po co został stworzony robi dobrze, jak w tym wypadku.
Co ciekawe, gdy wróciłem do niego po trochę więcej niż miesiącu przerwy, znów musiałem tracić dużo czasu na to aby przypomnieć sobie jak ono działało. Od razu więc zrobiłem swój własny poradnik. Nie tak powinna wyglądać praca z assetami…
Zacznijmy jednak od możliwości mu towarzyszących.
Skryptowe wprawienia elementów w ruch.
W oryginale, chmury są oparte o mesh renderer i mają dwa skrypty. Foliage 2D_Sprite, którego dokumentacja nie opisuje. Ma on jednak te same opcje co Foliage2D, a on już w dokumentacji jest. Drugi skrypt, to Cloud Movement, wprawiający chmury w ruch. I to wszystko co potrzebne aby chmury się poruszały.
W praktyce jednak okazuje się, że wystarczy sam sprite plus cloud movement. Ustawiając odpowiednie wartości określisz w którym miejscu zacznie się podróż obiektu, a w którym skończy. Szkoda tylko, że położenie startowe należy określić poprzez odpowiednie skonfigurowanie skryptu, a nie poprzez położenie obiektu w miejscu, w którym chcemy aby zaczął podróż.
Gdy ten jednak dojdzie do wyznaczonego punktu, znika i pojawia się znów na starcie. Pozwala to zatem w połączeniu z odpowiednią animacją znikania i pojawiania się, rozciągniętą odpowiednio w czasie, na tworzenie ciekawych efektów. Znikanie chmur, duchów czy innych obiektów.
Plusem natomiast powyższego rozwiązania może być ustawienie startu obiektu znacznie wcześniej, niż parametry zawarte w skrypcie. O ile bowiem skryptowo określa się start i koniec podróży danego elementu, co w efekcie zapętla jego podróż, o tyle w praktyce, można sprawić iż jeden, jedyny raz obiekt zacznie podróż trochę wcześniej, niż w miejscu określonym przez parametr w skrypcie. W praktyce oznacza to, że dany element może zacząć podróż razem z graczem, a później zostać zamknięty w obrębie innego obszaru i w nim zostać zapętlony. Kreatywna osoba może to wykorzystać chociażby do graficznego wskazania drogi graczowi. Animowana strzałka zaczyna podróż razem z graczem, a potem zatrzymuje się za rozwidleniem drogi i cały czas “działa” na tym krótkim, zapętlonym obszarze.
Drugą jednak stroną medalu może być niemożność ustalenia poruszania obiektu po falującej linii. Zawsze będzie on przemieszczał się po prostym odcinku. Czy to jest jednak minus, gdy można to ogarnąć po stronie odpowiedniej animacji obiektu?
Tworzeniu terenu poprzez reprodukcje bazowego klocka.
Odbywa się to banalnie prosto. Wystarczy kilka kliknięć i już na scenie ukazuje nam się tiles trawy, który można rozciągnąć na całą powierzchnię ziemi, którą musimy sobie wcześniej utworzyć. Co prawda nie daje to tyle możliwości co Ferr2D Terrain Tool, ale w końcu nie po to powstało to narzędzie.
W tej wersji możesz reprodukować trawę tak, aby wyglądała jak jeden duży fragment. Oczywiście prawa strona i lewa bazowego klocka powinny być lustrzane. Inaczej będzie widać miejsca łączeń. Dodatkowa taka trawa może być reprodukowana w różne strony, tak aby jak najidealniej przylegała do gruntu. Oznacza to iż możesz “łamać” trawę tak, aby szła idealnie prosto w prawą stronę, aby po chwili zakręcić pionowo w górę. Wszystko odbywa się poprzez oznaczanie “zawiasów” trawy, aby w danym miejscu można było ją poprowadzić w innym kierunku niż wcześniejszy fragment.
Osobiście jednak uważam to za dodatek, niż faktycznie przydatne narzędzie. W obecnej wersji jest zbyt mało rozwinięte, aby można było oprzeć o niego swą pracę. Ktoś kto tworzy teren w oparciu o siatkę i przeznaczone do tego narzędzia jak “Tile02”, nie ma tu czego szukać.
Komu się więc przyda to rozwiązanie? Ciężko powiedzieć. Nie widzę sytuacji w której można byłoby skorzystać z tej funkcji na szerszą skalę. Albo wykorzystujesz siatkę do układania levelu, albo jakiś Terrain Editor. Ciężko też wskazać mi sytuację w której oba narzędzia mogłyby się uzupełniać na szerszą skalę. Jak dla mnie ciekawostka i nic więcej. Być może się mylę, jeśli tak, to poprawcie mnie.
Owszem, ma ono ciekawe zastosowanie, w którym możesz dodać do ścieżki wiele obiektów, aby później te losowo ustawiały się na scenie. Ma on kilkanaście opcji manipulacji takim terenem. Jednakże aby w pełni miało sens, potrzebna jest jeszcze jedna opcja. Mianowicie możliwość rozciągania siatki we wszystkie strony, aby następnie zreprodukował się w niej teren. Wtedy też mógłbyś tworzyć nie tylko trawę, która pokrywałaby grunt, ale i sam grunt. Teraz jest to niemożliwe, a więc nadal sprowadza się to w moim mniemaniu do ciekawostki.
Należy wspomnieć też iż w Foliage2D ma to sens i zastosowanie. Po prostu autor w ten sposób pokrył grunt trawą. Nie musiał rozstawiać jej jedna koło drugiej. Powiedzmy sobie jednak szczerze. Wątpię aby ktoś tworzył teren gry poprzez mozolne ustawianie tilesa koło tilesa, aby powstała ziemia. Są do tego narzędzia. Ale nie mi rozstrzygać.
Przejdźmy teraz jednak do najważniejszego elementu tego zasobu.
Ożywiania świata.
Jest dość upierdliwe, dopóki nie ogarniesz podstaw. Gdy to zrobisz, dalej będzie już z górki. Będzie to wręcz banalne. Nie musisz przygotowywać żadnych animacji jak już pisałem wcześniej. Możesz oprzeć się o te już istniejące. Są one na tyle uniwersalne iż w połączeniu z możliwością zmiany parametrów jej oddziaływania na gracza, z pewnością uda się stworzyć coś unikalnego w niewielkim stopniu.
Z ciekawości wrzuciłem swój obiekt wielkiej rzepy i dodałem niezbędne komponenty aby ta falowała. Wydawało się iż można szybciej poprzez zduplikowanie jakiegoś obiektu i podmienienie mu sprite na swój. Wydawało się iż będzie szybciej i wygodniej, a efekt będzie ten sam. Jednakże zmieniło to grupę obiektów na scenie, więc wydawać by się mogło iż pozostaje ręczne skonfigurowanie obiektów i utworzenie z nich prefabów. Nie jest to jednak jakiś przesadny problem oczywiście, tym bardziej, że można na skróty pomimo pierwszego wrażenia. Po prostu źle się za to zabrałem.
Wystarczy zduplikować jakikolwiek obiekt będący na scenie, a który kształtem przypomina nasz obiekt, bądź jest do niego zbliżony. Następnie musimy zwrócić uwagę na to jakie parametry ma tekstura użyta przez autora zasobu, jako przykład animowanego elementu. Wystarczy takie same ustawić naszym. Gdy mamy to z głowy, tworzymy Matrerial z takimi samymi parametrami jak te oryginalne. Tutaj dodajemy teksturę obiektu, który ma być animowany. Następnie Material przenosimy do komponentu Mesh Renderer do pozycji Materials i gotowe. Nie można było autorze pokusić się o taki krótki akapit wyjaśnienia? Naprawdę ułatwiłoby to życie początkującym.
Wspominam o powyższym rozwiązaniu z tego powodu iż naprawdę łatwo się zgubić w tym wszystkim, jeśli ktoś jest początkującym. Poza tym twórca chce aby tworzyć nasze animowane środowisko poprzez utworzenie czystego prefaba na scenie, ze wstążki narzędziowej. Na końcu musimy go zdefiniować własnymi parametrami, aby dostosować do potrzeb. I nie byłoby to złe, gdyby taki prefab zawierał wszystkie potrzebne komponenty. Niestety jest inaczej i nie ma ich tam. Dokumentacja milczy na ich temat, gdyż opisuje ona wszystkie opcje, więc pozostaje analiza dokumentu i wyciąganie wniosków z tego jakie komponenty są potrzebne, aby wszystko zadziałało. Można jednak szybciej i wygodniej. Analiza obiektów załączonych do demosceny szybko niweluje problem niewiedzy i szybko dodajesz to co trzeba. Ewentualnie wspomniane wcześniej zduplikowanie gotowego już prefaba, który został skonfigurowany przez twórcę.
Efekty jak już pisałem są ciekawe i mogą być podatne na gracza, bądź mogą kompletnie nie zwracać uwagi iż na ich wysokości przeszedł gracz, przez co pasowałoby się pochylić zgodnie z kierunkiem jego marszu. Jest to przydatne do tworzenia tych obiektów, które mają być ustawiane bezpośrednio na drodze przemarszu gracza, jak i te w tle.
Tworzenie własnych animacji także nie zostało opisane w dokumentacji. Na szczęście wideo tutorial naprawia ten błąd i pokazuje jak je stworzyć. Nie jest to trudne, a naśladowanie krok po kroku tutora pozwoli Ci szybko pojąć tworzenie animacji. Te opierają się na meshach, dzięki temu możesz manipulować kształtem całego obiektu.
Nie wydaje mi się jednak aby można tu było tworzyć naprawdę zróżnicowane animacje. Wynika to ze sposobu animowania obiektu. Animujesz całość, a nie każde pojedyncze źdźbło trawy. Zatem będziesz mógł się odróżnić od innych w jakimś minimalnym stopniu, ale nie liczyłbym na wielkie efekty. Być może jednak się mylę. Osobiście po około godzinie zabawy, nie udało mi się uzyskać zadowalających efektów. Jeśli już, to pokraczne animacje, które faktycznie bardzo mocno odróżniają się od tego co jest w paczce. Jednak chyba nie o to chodzi?
Warto też wspomnieć o dość istotnym problemie, który zmusił mnie do pisania, do supportu. Tworząc grupę obiektów za pomocą Foliage Object tak jak jest to opisane w dokumentacji, nie mogłem modyfikować wyglądu pojedynczych obiektów. Zawsze modyfikacji ulegała cała grupa. Oznaczało to iż nie mogłem sobie dodać kilku kwiatków, kaktusów i innych roślin, bo dla wszystkich zawsze był wyświetlany ten sam sprite. Dokumentacja nie mówi o problemie, tak samo jak i wideo tutorial. Gdzie więc leżał problem? Napisałem do supportu, lecz ten odparł iż może zwrócić kasę za zakup, gdyż uległ ciężkiemu wypadkowi i nie jest w stanie mi teraz pomóc. Jest więc rozgrzeszony.
Musiałem dojść do rozwiązania sam, a którym było zmienianie materiałów. Niby banalnie proste i oczywiste, a ile mi to krwi napsuło, to moje.
Kupować, Czy Nie?
Czas z narzędziem nie uważam za stracony. Był to dobry zakup pomimo kłopotów jakie mi sprawił. Jeśli zależy Ci na tym aby ożywić świat gry, nie widzę powodu dla którego miałbyś nie kupić tego zasobu. Polecam go każdemu, kto chce w szybki i łatwy sposób animować tło (oczywiście, gdy ogarnie podstawy!), czy też elementy stojące na drodze gracza.
Co prawda Foliage2D ma wady, lecz bledną one w obliczu efektu jaki daje. Świat, który “żyje” jest bardziej atrakcyjny niż statyczne elementy, kompletnie nie podatne na działania gracza. Łatwiej wsiąknąć w taki świat na dłużej.
Nie jest to być może wielkie i skomplikowana narzędzie, ale fakt iż daje widoczne efekty gołym okiem, nie pozwala przejść obok niego obojętnie. Jego nauka jest niezbyt co prawda wygodna, ale jeśli nie chcesz bawić się w tworzenie własnych animacji, tylko ograniczyć do tego co jest, już po kilkunastu minutach będziesz mógł przenosić to do własnych gier. Nie ma tu nic skomplikowanego, ponad możliwości przeciętnego developera.
Szybko, prosto – intuicyjnie. Na zadane pytanie, czy kupować, stawiam jedną odpowiedź: jeśli nie masz innych podobnych w możliwościach narzędzi, jak najbardziej tak! Jest warte swojej ceny. To co daje w zamian, w widoczny sposób podnosi atrakcyjność gry, więc nie można przejść obok niego obojętnie.
[stextbox id=’alert’ caption=’Uwaga!’]Od tej recenzji wprowadzamy małe zmiany na łamy naszego cyklu asset review. Od teraz będziemy podawać w metryczce wersje Unity na której przeprowadzałem testy.
Należy jednak pamiętać iż od czasu do czasu, będę w miarę możliwości sprawdzał działanie testowanych assetów w nowszych wersjach silnika. Sprawdzę wtedy ich ogólne działanie oraz to, czy nie będą one wyrzucać błędów.
Nie będą to stuprocentowe testy od zera, tylko szybkie sprawdzenie, czy najważniejsze opcje działają. Wtedy też informacje o tym iż asset został sprawdzony na nowszej wersji narzędzia, także pojawi się w metryczce.
Takie podejście do testowania zasobów wymusza na nas fakt iż czasem recenzje danego narzędzia, czy innych zestawów skryptów powstają znacznie wcześniej, niż są publikowane. Po drodze więc mogą pojawić się nowe wersje Unity i wtedy też w miarę możliwości będziemy się starać zweryfikować działanie recenzowanej paczki na nowej odsłonie silnika. Nie zawsze jednak będzie to możliwe.
Wszelkie znalezione błędy oraz nieścisłości względem Unity na którym powstała recenzja, będą wymieniane w tabelce, umieszczoną tuż przed plusami i minusami danego zasobu. W tej recenzji, jedyny znaleziony przeze mnie błąd, trafił do minusów, ale od kolejnej recenzji, będzie już wydzielone miejsce na te uwagi.[/stextbox]
PLUSY | MINUSY |
– możliwość ożywienia świata przedstawionego; – animacja trawy, kwiatów oraz obiektów obracających się wokół własnych osi, co daje możliwość animowania wiele obiektów o podobnej budowie; – wprawianie w ruch na określonej wysokości oraz odległości obiektów, które po dojściu do końca, zaczynają cykl od nowa; – cena; – wideo tutorial, jeśli chcesz poznać jak animować elementy otoczenia (standardowy animator unity, więc nic nowego); – dokumentacja, omawia sporą część zasobu, więc masz punkt wyjścia w nauce; | – jednakże dokumentacja nie obejmuje wszystkich aspektów narzędzia, przez co musisz analizować sposób stworzenia obiektów, aby w pełni pojąć sposób działania narzędzia; – tutoriale więc nie pomogą Ci w 100% pojąć działania narzędzia! – do najważniejszych rzeczy i tak musisz dojść samemu poprzez solidną analizę narzędzia; – nie można ustalić startu przemieszczania się obiektu poprzez jego umieszczenie na scenie, tylko należy go ustawić poprzez odpowiednie wartości w skrypcie; – narzędzie jest naprawdę mało intuicyjne; – nie rozwijany; – od wersji 2018.1.3 tworzenie ścieżek do reprodukowania wspomnianej w recenzji trawy, było poza moim zasięgiem. Nie pojawił się na ekranie pasek do jej reprodukcji; |
Kategoria: Tools – Spirte Managament
Przydatne w: ożywianiu elementów tła, aby poruszały się i reagowały na poczynania gracza.
Link do sklepu: [Click Here]
Cena: 4.47 Euro
Ocena w sklepie: 5/5 – 18 głosów.
Testowano na: Unity 2017.1.0
Zweryfikowano działanie na: unity 2018.1.3.