| 7. Tworzenie outdoor-ów |
| ToolSet - Tutoriale |
| sobota, 09 stycznia 2010 23:26 |
|
Po przebrnięciu przez poprzednie tutoriale mamy już podstawową wiedzę na temat ToolSet-a oraz problemów towarzyszących nam praktycznie bez przerwy, podczas kreowania modułu. Jednak to wciąż mało, by stworzyć coś naprawdę oryginalnego. Dlatego też nadeszła pora, by stworzyć własną outdoor-ową (zewnętrzną) lokacją dla Dragon Age: Początek. Już było? Tak, ale wtedy korzystaliśmy z gotowego szablonu z chatką Flemeth. Teraz zaś stworzymy własny outdoor w 100% od podstaw, co (o dziwo) w cale nie jest takie trudne.
Jako, że instalacja ToolSet-a nie zawiera w sobie Python-a w wersji 2.5.x oraz pluginu Win32Extensions dla Python-a, musimy zaopatrzyć się w nie ręcznie. Python 2.5.4 pobierzecie pod tym adresem: http://www.python.org/ftp/python/2.5.4/python-2.5.4.msi Zaś Win32Extensions znajdziecie tutaj: http://sourceforge.net/projects/pywin32/files/pywin32/Build%20214/pywin32-214.win32-py2.5.exe/download Po co to komu? Otóż EclipseRay (czyli ustrojstwo odpowiedzialne za renderowanie lightmap) wymaga Pythona w tejże wersji, oraz powyższego pluginu, bowiem korzysta z nich pełnymi garściami. Jeśli nie posiadamy któregoś z powyższych download-ów, w trakcie renderowania lightmap-y zaatakuje nas paskudny błąd. Dołączam również 3 pliki z levelem w trzech fazach - sam teren, teren+woda+light probes+modele+flora oraz finalną wersję. Download: 07. Tworzenie outdoor-ów Na początku - to co zwykle, czyli klikamy File->New->Level: ![]() I niespodzianka, bowiem pojawi się okienko, którego wcześniej nigdy nie widzieliśmy. Wybieramy opcję Terrain (Landscape) Level: ![]() Po kliknięciu Dalej (lub Next) pojawi się okienko, w którym wprowadzamy podstawowe parametry naszego nowego obszaru: ![]() Desired Width oraz Desired Height to, w skrócie, długość i szerokość naszego teneru, podawana w metrach. Base Mesh Resolution to wymiary jednego polygonu modelu naszego terenu. Niezbyt to treściwe? Zatem już wyjaśniam. Teren w grach komputerowych reprezentowany jest przez trójwymiarowy model, który składa się z tak zwanych polygonów (w tym wypadku mają one kształt trójkąta). Im ich więcej (a więc im są mniejsze), tym płynniej możemy manipulować kształtem naszego terenu, ale także bardziej obciążamy sprzęt. Dlatego też pozostawimy domyślne 2 metry, jeśli zaś będziemy potrzebowali płynniejszych przejść, użyjemy Tesselacji. Chunk Size - tutaj niestety nie do końca wiem o co chodzi. Chunk to podstawowa jednostka symulacyjna, wykorzystywana przez silnik. Tak jak Wam, tak i mi niewiele to mówi, jednak bardzo zalecane jest zostawienie tej opcji w spokoju. Efekt jej zmniejszenia sprawi, między innymi, że poruszając się po terenie będziemy bardzo dosadnie dostrzegać tak zwane "pop-y" - czyli niepłynne przechodzenie między mniejszą a większą ilością detali terenu. Create a default water plane - tworzy domyślną powierzchnię wody. Tworzenie takowych później nie stanowi najmniejszego problemu, jeśli jednak ktoś chce, może zaznaczyć tę opcję. To by było na tyle, jeśli idzie o podstawowe ustawienia. Jeśli jednak ktoś chce zmierzyć się z konfiguracją zaawansowaną, wystarczy kliknąc przycisk Advanced, by pojawiło się coś takiego: ![]() Tutaj atakuje nas nieco więcej pól. Samo podawanie wymiarów także nieco się zmieniło: Mesh Cells Per Chunk - jest to liczba komórek przypadajaca na jeden sektor obszaru. Na przykład, jeśli podamy tutaj 8, to sektor będzie miał wymiar 8x8 komórek. Base Mesh Resolution - długość boku pojedynczej komórki. Dla przykładu, jeśli podamy 8, komórka będzie miała wymiary 8x8 metrów. Blend Texel Resolution - ustala rozmiar tak zwanego Blend Texel. Mówiąc po ludzku, jest to rozdzielczość, określajaca dokładność z jaką możemy rysować. Dobrze jest ją ustawić na wartość odpowiednio dużą, dla całego obszaru. Jeśli jednak w niektórych miejscach potrzebna będzie większa dokładność, można zmienić rozdzielczość Blend Texel-a dla pojedynczego sektora. Wpisanie, na przykład, 100 ustawi rozdzielczość na 100x100 cm (1m x 1m). Number of Chunks (X/Y) - liczba sektorów przypadająca na nasz obszar, określajaca jednocześnie jego wymiary. Chunk Size - rozmiar pojedyńczego Chunk-a. Wynik przemnożenia Mesh Cells Per Chunk przez Base Mesh Resolution. Nie można edytować. Area Size - ostateczny wymiar naszego obszaru. Otrzymywany przez pomnożenie Chunk Size (X/Y) przez Number of Chunks (X/Y). Nie można edytować. Tesselation Test - tutaj możemy sprawdzić, jaką dokładność tesselacji otrzymamy przy aktualnych ustawieniach. Zmienianie tej wartości nie ma żadnego wpływu na wygląd tworzonego terenu, a jedynie informuje, z jaką maksymalną dokładnością będziemy mogli kształtować nasz teren. A oto i przykładowo wypełnione pola: ![]() Po kliknięciu Dalej (Next) pojawi się okienko z krótkim podsumowaniem: ![]() Pozostaje nam kliknąć Zakończ (Finish), odczekać kilka(naście) sekund i powitać okienko edytora poziomów, wraz z naszym nowym, nieco płaskim, terenem: ![]() Zanim przejdziemy do tworzenia, zapoznajmy się z wyglądem i nazwami poszczególnych ikonek edytora: ![]() Przyda się to nam w reszcie tutoriala, gdzie zamiast zasypywać wszystko screenami, podam po prostu konkretną nazwę wykorzystywanej aktualnie opcji. Nasz teren jest nieco płaski i wygląda bardzo ubogo. Wybieramy zatem narzędzie Deform . Lewy klawisz podnosi teren, prawy "opuszcza". W Object Inspector pojawią się nam różne ustawienia, z którymi polecam dowolnie eksperymentować, bowiem można uzyskać ciekawe efekty. W moim przypadku wygląda to tak:![]() Po kilku minutach zabawy, otrzymałem takie coś: ![]() Polecam zapisać owoc naszej pracy. Po kliknięciu Save, pojawi się okienko z zapytaniem o miejsce w którym ma zostać zapisany nasz Level (ja nazwałem go "tutorial_outdoor_level.lvl" i podałem ścieżkę do Moje Dokumenty/BioWare/Dragon Age/): ![]() Jako, że gdzieniegdzie nasz teren może być zbyt stromy i nienaturalny (w moim przypadku przy rowie na rzekę), używamy narzędzia Smooth [smooth_ico.png]. Z tym również polecam nieco poeksperymentować, aby uzystać satysfakcjonujące rezultaty. Jeśli jednak wciąż nie jesteśmy zadowoleni, możemy użyć Tesselacji . W skrócie, narzędzie to rozdrabnia każdy trójkątny polygon na 4 mniejsze, co pozwala uzyskać większą szczegółowość terenu. Wybieramy zatem takowe i używamy w miejscach, gdzie chcemy nieco bardziej wygładzić teren. Tutaj również polecam pobawić się wartościami z Object Inspector-a. Pamiętajcie jednak, by nie przesadzać - im więcej polygonów, tym bardziej zasobożerny staje się Wasz teren.Tak wygląda mój teren, po zabawie z kilkoma narzędziami: ![]() Grunt (dosłownie i w przenośni) mamy już gotowy, teraz zajmiemy się szczegółami. Aby móc wykonać większość zaawansowanych czynności, jak renderowanie Lightmap, oświetlenia, stworzenie obszarów kolizji, czy wyszukiwania ścieżek, musimy stworzyć tak zwany Exportable Area. W teorii potrzebny byłby na to oddzielny tutorial, jednak postaram się tutaj streścić co najważniejsze. Klikamy zatem przycisk Create an Exportable Area . Zaatakuje nas okienko o nazwie Area Properties, zaś na samym Levelu pojawią się trzy prostokąty w kolorze zielonym, żółtym i czerwonym:![]() Zielony prostokąt, to obszar po którym gracz może się poruszać (pomijając ręcznie dodane miejsca kolizji itp.). Żółty prostokąt oznacza obszar niedostępny dla gracza, który jednak ma być renderowany z zachowaniem wysokiej szczegółowości tekstur i obiektów. Czerwony prostokąt również oznacza obszar niedostępny dla gracza, jednak wszystko co się na nim znajdzie będzie renderowane (w grze) z mniejszą liczbą szczegółów. W skrócie - czerwony prostokąt wyznacza nam horyzont. Klikamy zatem przycisk Define Area i zaznaczamy (przez kliknięcie i przeciągnięcie kursora) nasz obszar. W moim przypadku wygląda to tak: ![]() Teraz musimy jeszcze wypełnićkilka pól w Area Properties: Layout Name - nazwa pliku w którym znajdzie się nasz wyeksportowany Level. Na przykład tgw_tut (jesteśmy ograniczeni tylko do 7 znaków, więc nie można zbytnio szaleć). Name - nazwa naszego obszaru. Ja wpisałem "The Grey Wardens Tutorial Outdoor". I to wszystko, co jest nam aktualnie do szczęścia potrzebne. Bardziej ciekawi mogą, bez większych konsekwencji, dowolnie manipulować wartościami w zakładkach z Atmosphere w nazwie. Klikamy zatem przycisk Close, zaś na liście pojawi się nasz nowy Eportable Area: ![]() Bardziej rozbuduję ten wątek w oddzielnym tutorialu - jak na razie, to co zrobiliśmy powinno w zupełności wystarczyć by móc dalej tworzyć nasz obszar i ujrzeć go później w grze. Mamy już teren, wraz z (w tutorialowym przypadku) rowem w którym powinna znajdować się woda. Dlatego teraz zajmiemy się dodawaniem Water Plane'ów do naszego outdoor-a. Pierwsze co musimy zrobić, to kliknięcie prawym klawiszem na Terrain World i wybranie opcji Insert->New Water Mesh: ![]() Nowy Water Mesh pojawi się zapewne w lewym dolnym rogu naszego outdoor-ka. Używając 3-Axis Movement oraz 3-Axis Rotation możemy dopasować położenie naszego Water Mesh-a. Dodatkowo w Object Inspector możemy zmieniać jego wymiary, ja dałem 512x512, żeby nie musieć się zbytnio męczyć z dopasowaniem wody do rowu:![]() Bardzo dobrym zabiegiem będzie teraz dodanie kilku Probe Light-ów nieco nad poziomem wody, by otrzymać ładne refleksy. Klikamy zatem prawym klawiszem, wybieramy Insert->New Light Probe: ![]() Ustawiamy sobie światełka w dogodnych pozycjach w identyczny sposób, jak robimy to z każdym innym obiektem (przy pomocy 3-Axis-ów [ico][ico2]). Jednak, jak na razie, nie widzimy żadnych ciekawych efektów. To dlatego, że nasze światła nie są jeszcze renderowane. Przez tym jednak należy użyć opcji Render Lightmaps . W zależności od szczegółowości danego Levelu, trwa to dłużej lub krócej. Jeśli ToolSet przestanie funkcjonować, poczekajcie kilka(naście) minut. Program w trakcie renderowania Lightmap praktycznie się zawiesza, jednak jeśli dysk zaczyna szlifować jak oszalały, to dobry znak. Trzeba po prostu poczekać.Następna ważna czynność, to wyrenderowanie Light Probe'ów. Klikamy zatem przycisk Render Light Probes . Ponownie czekamy chwilę, aż Eclipse wykona swoją robotę. Naszym oczom ukaże się w końcu... nic nowego?! No cóż, nie do końca. Aby ujrzeć efekty pracy Eclipse Lightmapper-a, należy kliknąć przycisk Display Lightmaps .Tak oto wygląda moja kreacja, z włączonym oświetleniem: ![]() Tworzenie wody mamy już za sobą. W każdym wypadku wygląda to niemal identycznie, możemy ewentualnie pobawić się nieco właściwościami Water Mesh-a w Object Inspector. Teren jest, woda też - teraz więc zajmiemy się trawą, krzaczkami i drzewkami. Aby dodać do naszego Levelu tego typu obiekty, musimy najpierw stworzyć tak zwany Tree Controller. Klikamy zatem prawym klawiszem na Vegetation i wybieramy Insert->New Tree Controller: ![]() Pojawi nam się okienko Resource Open/Save, w którym należy wybrać interesujący nas model trawy/krzaka/drzewa. Oto lista tego, co możemy tam znaleźć: http://social.bioware.com/wiki/datoolset/index.php/Vegetation Wybierzmy, na przykład tre_c_oakhero: ![]() Drzewko powinno pojawić się pod Vegetation. Aby móc je teraz postawić, należy użyć narzędzia zwanego Scatter Object Tool . Po kliknięciu w ikonkę, pojawi się okienko w którym będziemy mogli wybrać nasze, dopiero co dodane, drzewko. Klikamy zatem owe drzewko, po czym rozstawiamy kilka jego kopii na naszym levelu:![]() Jeśli drzewa nie są widoczne, ustaw SpeedTree Rendering Distance na 300m: ![]() Teraz daj upust swojej kreatywności i samodzielnie dodaj kilka rodzajów drzew, krzaków i trawy. Robi się to w identyczny sposób, jak podany powyżej. Pamiętaj, że wszelkie elementy flory możesz również dowolnie przestawiać, jak pozostałe obiekty. A oto i moje (niezbyt) sensowne dzieło: ![]() Rozstawiając roślinki, pamiętajcie, by pod żadnym pozorem (chyba, że tworzycie ogród) nie rozstawiać ich symetrycznie! Symetryczne rozstawienie drzew w lesie, czy też na polanie wprowadza niesamowite poczucie sztuczności. Dlatego też, w miarę możliwości, wprowadzajcie odrobinkę chaosu - wyjdzie to lokacji tylko i wyłącznie na dobre. Kolejnym krokiem na naszej drodze do stworzenia własnego Levelu jest dodanie kilku cudów architektury, kamyków, ewentualnie odciętych głów czy wydłubanych oczu :-P Aby móc porozstawiać na naszej mapie modele, klikamy na ikonkę Model Placement . Następnie w Palette Window klikamy ikonkę Models i w drzewku folderów wybieramy, na przykład, tfi->halfpillar1->tfi_halfpillar1_0, po czym stawiamy model gdzieś w naszej lokacji:![]() I ponownie pora wykazać się kreatywnością - poprzeglądajcie sobie folderki z modelami i dorzućcie co wam się podoba. Na szybko dodałem takie dziwactwa: ![]() I to wszystko. Proste prawda? Pododawajcie co chcecie i jak chcecie, by lokacja odpowiadała waszym kryteriom. Jak wszystkie inne obiekty, tak i modele możecie dowolnie przestawiać, obracać itp. Jak wiadomo, odpowiednie oświetlenie bardzo wpływa na klimat, jaki gracz odczuwa w danej lokacji. Dlatego teraz zajmiemy się nieco światełkami - takimi, które oświetlają nasz outdoor, oraz takimi, które oświetlają gracza... oraz światłami, które posiadają obie właściwości. Aby dodać światło, wystarczy kliknąć gdzieś na levelu prawym klawiszem i wybrać Insert->New Light: ![]() Po dodaniu nowego światełka wystarczy ustawić je w odpowiednim miejscu i zmienić nieco ustawienia: Affects Characters - jeśli True światło oświetla postaci, jeśli False - nie. Affectr Level - jeśli True światło oświetla level, jeśli False - nie. Color - po kliknięciu na ikonkę ze strzałką w dół wybieramy kolor światła. Color Intensity - ustalamy intensywność koloru światła. Light Type - tutaj wybieramy rodzaj światła. Do wyboru mamy 8 rodzajów oświetlenia:       I. Point Light - oświetlenie emitowane z punktu we wszystkich kierunkach:          1. Point - Baked (L). Tego typu światło jest bezpośrednio nanoszone na Lightmap-ę, dzięki czemu nie powoduje praktycznie żadnego obciążenia dla karty graficznej. Baked-light może tylko i wyłącznie oświetlać otoczenie.          2. Point - Static (lc). Oświetlenie tego typu renderowane jest w grze w czasie rzeczywistym i może oświetlać etap, postaci, lub oba jednocześnie.          3. Point - Animated (lc). Animowane światło, może w trakcie gry zmieniać swoje natężenie, oraz (przy pomocy skryptów) przemieszczać się.          4. Point Negative (L). Statyczne oświetlenie punktowe, "wysysające" daną barwę z otoczenia. Może wpływać tylko na otoczenie.       II. Amgient Light - oświetlenie "środowiskowe", wpływa bezpośrednio na cały obszar:          1. Ambient - Baker (L). Światło ambientowe, nanoszone na całą lightmap-ę Levelu. Można je wykorzystywać, na przykład w celu imitowania światła słonecznego, lub by rozjaśnić/przyciemnić cały obszar.       III. Spot Light - spot light-y w skrócie działają jak latarka. Stożkowata wiązka światła jest wysyłana z jednego punktu w danym kierunku, rozpraszając się po drodze coraz badziej:          1. Spot - Baked (L). Podobnie jak w przypadku innych Baked-ów, tak i Spot - Baked nanoszony jest bezpośrednio na Lightmap-ę, co owocuje małym obciążeniem dla sprzętu, jednak również ogranicza możliwości zastosowania takiego światła.          2. Spot - Static (lc). Statyczny spotlight, renderowany w czasie rzeczywistym. Może oświetlacz postaci oraz otoczenie.          3. Spot - Negative (L). Podobnie do Negative Point Light - "wysysa" daną barwę z otoczenia. Nie może wpływać na postaci. Name - nazwa światełka, wpisujemy coś, co będzie nam się kojarzyło z miejscem i funkcją danego światła. Point Radius - promień światła, innymi słowy jego zasięg. ![]() Polecam postawić na mapie każdy rodzaj światła i nieco z nimi poeksperymentować. Efekty jakie otrzymacie, nieraz mogą być bardzo ciekawe. Kiedy już ustawicie światła, należy ponownie zrenderować Lightmap-y, by uzyskać prawdziwy wpływ naszych zmian na otoczenie. Używamy zatem opcji Render Lightmaps i czekamy sobie spokojnie na zakończenie procesu. Oto przykładowy efekt uzystany po zastosowaniu Point - Static, Spot - Static oraz Ambient Light-ów: ![]() Oświetlenie mamy już za sobą, teraz pora na kolejne zadanie - Texture Painting. Jakby nie patrzeć, cały teren pokryty tylko jedną teksturą nie prezentuje się zbyt widowiskowo. A jeśli dodamy do tego postawione na trawie budynki... cóż, nie za dobry efekt. Dlatego też mamy do dyspozycji narzędzie zwane Texture Paint, które zaraz pomoże nam uporać się z problemem. Klikamy zatem ikonkę Texture Painter-a . Kiedy już to zrobimy, pojawi się okienko, w którym mamy do wyboru 4 podstawowe tekstury. Wybieramy sobie jedną z nich (na przykład Cobble) i rysujemy, niczym w programie graficznym, po ziemi. Im dłużej trzymamy kursor w jednym miejscu, mając wciśnięty klawisz myszki, tym intensywniejszy efekt otrzymamy:![]() Nic oczywiście nie stoi na przeszkodzie, by nanieść na siebie kilka różnych tekstur, w celu uzyskania lepszego efektu. Ja pokryłem Cobble odrobinką Dirt01. Cztery teksturki to jednak dość mało. Na szczęście nic nie stoi na przeszkodzie, by dodać kilka swoich, składających się z gotowych materiałów, lub autorskich bitmap. My skorzystamy z materiałów dostarczonych wraz z grą. Klikamy zatem prawym klawiszem na Palette i wybieramy Insert->New Material: ![]() Kolejnym krokiem jest udanie się do Object Inspector-a i wypełnienie pól: Name - nazwa naszego materiału, np.: tgw_tut_mat01 Sound Material Type - czyli jakiego typu dźwięki ma wydawać nasz materiał, kiedy np.: ktoś po nim chodzi. Dajmy Mud. Visible - czy nasz materiał ma być widoczny. Dajemy oczywiście True. UVTile - czyli skalowanie naszego materiału. Standardowa wartość to 8 (tekstura jest skalowana 8 razy w dół) aby wyglądała dość przyzwoicie. Diffuse - czyli, mówiąc prostszym językiem, widzialna część naszej tekstury. Klikamy na ikonkę z trzema kropkami i wybieramy, na przykład, trn_default_mat3_diffuse Normal - mapa wypukłości naszego materiału. Wybierzmy trn_default_mat3_normal Specular - czyli coś w stylu mapy połysku/odbłysków. Weźmiemy sobie, dla przykładu, ter_rckmoss02_s Specular Color - kolor "połysku" naszego materiału. Czerwony może być ciekawy. Specular Component - czyli jak silny jest połysk materiału. 50 da odpowiedni rezultat. W ten oto sposób stworzyliśmy materiał, który wygląda jak... miks lawy z błotem :-P ![]() Polecam eksperymentować z materiałami, wybierając różne kombinacje map oraz kolorów, czasami efekty są powalające, a czasami... wręcz odwrotnie :-P Kolejnym (i ostatnim w tym tutorialu) krokiem będzie ustalenie, gdzie gracz może wejść, a gdzie nie. Użyjemy zatem narzędzia zwanego Build Terrain Collision . Po wybraniu tego narzędzia, lewy klik powoduje dodanie kolejnego "ogniwa" do łancucha, a prawy zakończenie rysowania. Kliknięcie prawym klawiszem na istniejące ogniwo spowoduje jego usunięcie. I tak oto obrysowujemy sobie np.: góry, lub miejsca teoretycznie dostępne, na które nie chcemy wpuścić gracza:![]() Teraz stworzymy kolizję dla wody - w tutorialowym levelu nie da się do niej wejść, zatem klikamy przycisk Generates Water Collision Geometry for All Water Nodes . Po chwili ToolSet otoczy nam całą rzeczkę piękną, niewidzialną ścianą:![]() Ostatnią czynnością, którą musimy wykonać jest utworzenie danych dla algorytmu wyszukiwania ścieżek. Aby to zrobić, musimy postawić Start Point, czyli punkt wyjściowy dla algorytmu. Najlepiej w miejscu, gdzie teoretycznie będziemy wchodzić do lokacji. Klikamy zatem ikonkę Setup Start Point , poczym stawiamy nasz Start Point gdzieś na ziemi:![]() Teraz pozostaje nam tylko kliknąć przycisk Generate patchfinding for active area i poczekać, aż program skończy pracować. Podobnie jak w przypadku Lightmap może to trochę potrwać.W przypadku levelu z tutoriala, efekt prezentuje się następująco (pamiętajcie, aby włączyć Toggle display of pathfinding nodes ):![]() Jedyne co nam teraz pozostało, to wyeksportowanie naszego levelu w taki sposób, by móc go użyć podczas tworzenia lokacji (patrz tutorial: 3. Tworzenie obszarów). Nasze zadanie sprowadza się w tym wypadku do kliknięcia ikonki Do All Local Posts i poczekaniu kilka(naście/dziesiąt) minut. Ogólnie w tym czasie możecie wyjść z psem, zrobić sobie herbatkę/kawę, poćwiczyć lub zrobić cokolwiek innego. Proces ten jest bardzo czasochłonny, bowiem od nowa renderuje lightmapy, generuje dane dla drzew i obiektów, generuje oświetlenie, na nowo oblicza ścieżki i kolizje, oraz robi masę innych rzeczy.Po zakończeniu pracy, nasz Area Layout automatycznie trafi w odpowiednie miejsce, skąd będziemy mogli go użyć. Wierzcie lub nie, ale to koniec jeśli idzie o podstawy tworzenia własnego outdoor-a. Teraz, wzorując się na tutorialu 3. Tworzenie obszarów, możemy wykorzystać nasz level, tworząc własną, w pełni funkcjonalną lokację z item-kami, npc-ami itp. ![]() Następny tutorial zostanie poświęcony tworzeniu wnętrz, czyli tak zwanych indoor-ów. Redakcja: Krossfire Źródła: http://social.bioware.com/wiki/datoolset/index.php/Level_Editor_Tutorial#Water http://social.bioware.com/wiki/datoolset/index.php/Vegetation http://social.bioware.com/wiki/datoolset/index.php/Level http://social.bioware.com/wiki/datoolset/index.php/Lighting http://social.bioware.com/wiki/datoolset/index.php/Exterior_Level_Manual http://social.bioware.com/wiki/datoolset/index.php/Installing_the_toolset#Lightmapper http://social.bioware.com/wiki/datoolset/index.php/Water Tags:
Komentarze (0)
Tylko zarejestrowani użytkownicy mogą pisać komentarze!
Powered by !JoomlaComment 4.0 beta2
|








. Lewy klawisz podnosi teren, prawy "opuszcza". W Object Inspector pojawią się nam różne ustawienia, z którymi polecam dowolnie eksperymentować, bowiem można uzyskać ciekawe efekty. W moim przypadku wygląda to tak:


. W skrócie, narzędzie to rozdrabnia każdy trójkątny polygon na 4 mniejsze, co pozwala uzyskać większą szczegółowość terenu. Wybieramy zatem takowe i używamy w miejscach, gdzie chcemy nieco bardziej wygładzić teren. Tutaj również polecam pobawić się wartościami z Object Inspector-a. Pamiętajcie jednak, by nie przesadzać - im więcej polygonów, tym bardziej zasobożerny staje się Wasz teren.
. Zaatakuje nas okienko o nazwie Area Properties, zaś na samym Levelu pojawią się trzy prostokąty w kolorze zielonym, żółtym i czerwonym:



oraz 3-Axis Rotation
możemy dopasować położenie naszego Water Mesh-a. Dodatkowo w Object Inspector możemy zmieniać jego wymiary, ja dałem 512x512, żeby nie musieć się zbytnio męczyć z dopasowaniem wody do rowu:

. W zależności od szczegółowości danego Levelu, trwa to dłużej lub krócej. Jeśli ToolSet przestanie funkcjonować, poczekajcie kilka(naście) minut. Program w trakcie renderowania Lightmap praktycznie się zawiesza, jednak jeśli dysk zaczyna szlifować jak oszalały, to dobry znak. Trzeba po prostu poczekać.
. Ponownie czekamy chwilę, aż Eclipse wykona swoją robotę. Naszym oczom ukaże się w końcu... nic nowego?! No cóż, nie do końca. Aby ujrzeć efekty pracy Eclipse Lightmapper-a, należy kliknąć przycisk Display Lightmaps
.


. Po kliknięciu w ikonkę, pojawi się okienko w którym będziemy mogli wybrać nasze, dopiero co dodane, drzewko. Klikamy zatem owe drzewko, po czym rozstawiamy kilka jego kopii na naszym levelu:


. Następnie w Palette Window klikamy ikonkę Models
i w drzewku folderów wybieramy, na przykład, tfi->halfpillar1->tfi_halfpillar1_0, po czym stawiamy model gdzieś w naszej lokacji:




. Kiedy już to zrobimy, pojawi się okienko, w którym mamy do wyboru 4 podstawowe tekstury. Wybieramy sobie jedną z nich (na przykład Cobble) i rysujemy, niczym w programie graficznym, po ziemi. Im dłużej trzymamy kursor w jednym miejscu, mając wciśnięty klawisz myszki, tym intensywniejszy efekt otrzymamy:


. Po wybraniu tego narzędzia, lewy klik powoduje dodanie kolejnego "ogniwa" do łancucha, a prawy zakończenie rysowania. Kliknięcie prawym klawiszem na istniejące ogniwo spowoduje jego usunięcie. I tak oto obrysowujemy sobie np.: góry, lub miejsca teoretycznie dostępne, na które nie chcemy wpuścić gracza:
. Po chwili ToolSet otoczy nam całą rzeczkę piękną, niewidzialną ścianą:
, poczym stawiamy nasz Start Point gdzieś na ziemi:
i poczekać, aż program skończy pracować. Podobnie jak w przypadku Lightmap może to trochę potrwać.
):
i poczekaniu kilka(naście/dziesiąt) minut. Ogólnie w tym czasie możecie wyjść z psem, zrobić sobie herbatkę/kawę, poćwiczyć lub zrobić cokolwiek innego. Proces ten jest bardzo czasochłonny, bowiem od nowa renderuje lightmapy, generuje dane dla drzew i obiektów, generuje oświetlenie, na nowo oblicza ścieżki i kolizje, oraz robi masę innych rzeczy.






