by L`f


Wielu grających w Baldur's Gate miało sporo okazji by zauważyć, że część napotkanych postaci nosi ubrania zupełnie innego koloru, niż przy poprzednim przejściu gry - zmiana ta mogła dotyczyć również charakterystycznych bohaterów niezależnych (np. pastor Lloyd z Imnesvale). Uwagę co bardziej ciekawskich użytkowników Near Infinity i DLTCEP-a z pewnością przykuł również fakt, że do wielu pospolicie występujących postaci, na przykład wszędobylskich "napotkanych osób", poprzypisywane są kolory awatarów nie odpowiadające żadnym rozpoznawanym przez edytor gradientom.

Nietrudno się domyślić, że w miejsce "tajemniczej" wartości gra przypisuje znane gradienty, co więcej - dana wartość oznacza numer listy kolorów, z której silnik losuje odpowiedni gradient. Żeby zilustrować działanie losowania kolorów, przyzwałem kodem kilku pastorów Lloydów (UHMAY01.CRE) - jak widać na screenie obok, szansa pojawienia się dwóch Lloydów o takim samym układzie kolorów awataru jest bardzo mała.

To właśnie główne zastosowanie losowania kolorów - wprowadzenie różnorodności, kiedy na danym obszarze powtarzają się postaci korzystające z tego samego pliku. Jest to bardzo wygodne, gdy tworzymy statystów o podobnym dialogu i zachowaniu - nie musimy dorabiać dodatkowych plików CRE i przypisywać kolorów każdemu z osobna.



DLACZEGO KOLORY NIE SĄ BEZ ZNACZENIA?
Najprościej rzecz ujmując, odpowiednio dobrane kolorki awatarów mają duży wpływ na estetykę zaludnionych lokacji, a także na to, jak postrzegamy dane postaci. Na ogół tworząc szlachciców i bogatszych mieszczan wybiera się jaśniejsze i bardziej błyszczące kolory ubrań, zaś status ubogich chłopów i mieszkańców slumsów podkreślimy, przypisując im bure i ciemnoszare barwy. Awatary o krzykliwych kolorach bardziej rzucają się w oczy (np. Am-Si z Dzielnicy mostów), dlatego warto rozważyć jaskrawsze barwy dla ważniejszych postaci lub sprzedawców.

Warto jednak uważać, żeby nie przesadzić. Przypisując zbyt jaskrawe lub kontrastowe barwy oraz dobierając kolorki "na ślepo" możemy osiągnąć efekt odwrotny do zamierzonego. Zbyt kolorowa postać wygląda nienaturalnie i brzydko, a w skrajnych przypadkach (zwłaszcza kiedy twórca zachwyci się ilością błyszczących barw na liście) zaczyna przypominać choinkę i nijak ma się do oryginalnych, relatywnie stonowanych układów barw. Po lewej przedstawiłem przykłady bardzo źle dobranych gradientów. Rezultat jest taki, że wszystkie te postaci zdają się krzyczeć "pomocy, zrobił mnie początkujący modder!". Jeśli nie dodajemy w naszym modzie nowej rasy jakichś kosmitów, lepiej nie powtarzać podobnego układu kolorków.

Podobnych błędów można uniknąć, wykorzystując właśnie losowanie kolorów. Jeśli wybierzemy odpowiednie, pasujące do siebie listy, szansa na pstrokaciznę na awatarze będzie bardzo mała. Dodatkowo, jeśli na obszarze zamierzamy umieścić więcej niż jedną postać z tego samego pliku, sceneria zyska na różnorodności.



OMÓWIENIE MECHANIZMU LOSOWANIA I LIST KOLORÓW
Na liście wyboru gradientu zestawom losowych kolorów przypisane są liczby od 200 do 255. Użycie każdej innej liczby, do której nie jest przypisany żaden gradient, spowoduje wywalenie gry w momencie stworzenia danego pliku CRE. Z mechanicznego punktu widzenia losowanie kolorów w całości opiera się na pliku RANDCOLR.2DA - ponumerowane kolumny tabeli odpowiadają poszczególnym zestawom losowania, a identyfikatory możliwych do wylosowania gradientów zawierają się w 10 dolnych komórkach danej kolumny. Szansa na wylosowanie każdej z komórek jest równa 10% - oznacza to, że jeśli numer danego gradientu pojawia się w danej kolumnie więcej razy, prawdopodobieństwo jego wylosowania będzie odpowiednio większe. Zestawy losowania mają swoje nazwy, np. "MerchantMajor" (domyślnie przeznaczone na slot głównej części ubioru kupców) lub "ElfHair" (domyślnie jako włosy u napotkanych elfów).

Niemniej jednak już wybieranie "stałych" gradientów bez podglądu rezultatu bywa mało praktyczne - a posiłkowanie się surową tabelą jest skrajnie niewygodne i trudno sobie wyobrazić wynik losowania. Dlatego sporządziłem graficzną wizualizację wszystkich zestawów losowania kolorów, łącznie z numerami gradientów i prawdopodobieństwem ich wylosowania. Dla każdej listy wykonałem screen z przywołania 60 postaci z przypisanym danym zestawem kolorów do głównej części ubioru, aby jeszcze lepiej przedstawić charakter barw na danej liście oraz szansę na wystąpienie danych kolorów.




Nazwy z reguły wskazują, do czego dana lista może się przydać. Np "HairSet1" (200) z dobrym efektem można przypisać jako kolor włosów napotkanych osób - jeśli jednak nie chcemy, by możliwe do wylosowania były włosy siwe, możemy skorzystać z listy "ElfHair" (218). Jak widać na liście, do mniejszych części ubioru (Minor colour) częściej przypisywane są barwy ciemniejsze, a do większych (Major colour) - jaśniejsze, ale nie jest to regułą. Podobnie też pastelowa lista "HobgoblinMinor" nie musi być przypisywana jedynie hobgoblinom, a fajnie może się sprawdzić jako np. główna część ubioru mieszczan. Wiedząc, jak wyglądają gradienty na odpowiednich częściach awataru postaci, można zmyślnie łączyć nawet bardzo zróżnicowane listy.

Niemniej jednak, niektórych list nie radzę używać zgodnie z przeznaczeniem - albo przynajmniej mieć świadomość, że czasem nie uzyskamy dobrego efektu. Weźmy pod uwagę np. "SkinSet2" (203), który losuje ciemniejsze kolory skóry. Większość wybranych kolorków wygląda ładnie i naturalnie, lecz możliwy do wylosowania jest również 90 Moldy Gold, który nadaje skórze stworzonej postaci nienaturalny odcień. Podobnie sprawa może się mieć z listą "MetalNormal" (226), gdzie poza "normalnymi" kolorami metalu (stalowy, rdzawoczarny) możemy wylosować również błyszczący niebieski, który bardziej pasowałby do kolejnej listy - "MetalWild" (227) losującej najrozmaitsze błyszczące kolory. Występują też listy jednoelementowe, gdzie istnieje 100% na wylosowanie danego gradientu, przy czym nawet dwie z tych list ("ClericGoodMinor" i "ShadowDruidMinor") pokrywają się. Zamiast jednoelementowych list można używać zwykłych gradientów, jednak po zmianie struktury pliku RANDCOLR.2DA (np. przez doinstalowanie odpowiedniego modu) listy te mogą zapewniać satysfakcjonujący poziom losowości.

W czystym BG2 plik RANDCOLR.2DA zawiera kolumny od 200 do 253 - nie oznacza to jednak, że przypisanie w pliku CRE wartości 254 spowoduje crash gry. Kolumny 254 i 255 są puste, co oznacza, że gra widzi je jako wypełnione zerami. Puste listy zachowują się zatem jak listy jednoelementowe, gdzie możliwy do wylosowania jest wyłącznie kolor 0 Red Tinted Black, co też uwidoczniłem w zestawieniu.

Na koniec krótki test. Stworzyłem plik CRE, w którym wszystkie pola odpowiedzialne za przypisanie gradientów wypełniłem odnośnikami do list losowych kolorów. Po lewej stronie screen okna DLTCEP-a, gdzie przypisałem odpowiednie numerki, po prawej zaś - rezultat testu po przywołaniu sporej ilości postaci z danego pliku CRE. Mój CHARNAME wygląda na zadowolonego. ;>





To chyba wszystko, co można na ten temat napisać, nie zagłębiając się zbytnio w kwestie tworzenia plików CRE lub wypełniania obszarów gry statystami. Z pewnością przyda się osobom, ktore planowały dodać w swoim modzie dużą ilość "commonersów", a nie wiedziały o możliwości losowania kolorów lub posiłkowały się plikiem tabeli 2DA. Sam uważam, że graficzny spis możliwych do wylosowania kolorów jest bardzo pomocny przy dobieraniu losowych list - mam nadzieję, że i Wy uznacie podobnie. ;)