wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1







ChromED Tutorial




autor dokumentu:
Slawomir ,,TobiAlex" Wsik

pomoc techniczna:
Maciej Jamrozik, Kacper Michalski, Grzegorz wistowski

pomoc merytoryczna i poprawki:
Kacper Michalski, Wojciech Pszczólkowski, Jakub Klarowicz

W niektórych rozdzialach wykorzystano materialy napisane przez Marka Pszczólkowskiego













Wszystkie uyte w dokumencie nazwy programów s zastrzeonymi nazwami i nale
prawnie do ich wlacicieli, a w tym dokumencie zostaly uyte jedynie w celach
informacyjnych.
Kopiowanie dokumentu w caloci lub czciach bez zgody autora zabronione. Wszelkie
prawa zastrzeone.

1

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Rozdzial 1 ­ Wprowadzenie

1.1 Wymagania.
Aby cokolwiek stworzy w edytorze ChromEd trzeba przygotowa sobie kilka
dodatkowych programów. Potrzebny bdzie program do obróbki grafiki np. Adobe
Photoshop, Paint Shop Pro, Corel Photopaint czy darmowy GIMP. Potrzebny bdzie nam
jeszcze program Corel Bryce. Ja podczas swojej pracy wykorzystywalem program Adobe
Photoshop 7 i to ten program bdzie moim glównym narzdziem w tym dokumencie, jednak
ze wzgldu na to, e jest on bardzo drogi, dodatkowo wykorzystam program GIMP. Program
ten jest darmowy i ma bardzo due moliwoci (podobne do Photoshop'a). Strona
internetowa programu GIMP'a (w wersji dla Windows):
http://www.gimp.org/~tml/gimp/win32/
W chwili pisania tego dokumentu dostpna wersj programu GIMP byla wersja 1.2.4. Do
poprawnego dzialania tego programu musimy pobra dwa pliki: pierwszy to GTK:
http://www.gimp.org/~tml/gimp/win32/gtk+-1.3.0-20030216.zip
oraz sam GIMP:

http://www.gimp.org/~tml/gimp/win32/gimp-1.2.4-20030213.zip
Najpierw instalujemy GTK a dopiero potem GIMP'a. Program GIMP dostpny jest take w
polskiej wersji jzykowej (mona j wybra podczas instalacji), ja jednak ze wzgldów
technicznych bd korzystal z wersji angielskiej. To samo tyczy si programu Photoshop a
take samej gry Chrome. Przy omawianiu kadej operacji zwizanej z obróbk grafiki, bd
ilustrowal jak j wykona w programie Photoshop i GIMP. Oczywicie nic nie stoi na
przeszkodzie, aby wykorzystywa inne programy do obróbki grafiki. Wszystko zaley od
naszych umiejtnoci i potrzeb.
W programie do obróbki grafiki bdziemy tworzy mapy wysokoci (wicej informacji w
rozdziale o tworzeniu terenu w podrozdziale o mapie wysokoci) a take dokonywa rónego
rodzaju poprawek na mapach, konwertowa do innych formatów graficznych itp.
W programie Corel Bryce tworzy bdziemy map kolorów (wicej informacji w rozdziale o
tworzeniu terenu w podrozdziale o mapie koloru) Jednak do stworzenia bardziej
realistycznych map kolorów wykorzystamy zaawansowane funkcje programów Photoshop i
GIMP.
Oczywicie oprócz wyej wymienionych programów potrzebowa bdziemy edytor
ChromEd i oryginaln wersj gry Chrome. Dodatkowo znale trzeba troch czasu (no, moe
wicej ni troch) i uzbroi si w cierpliwo.
Na koniec dodam tylko, e jeeli nigdy nie mielicie do czynienia z programami typu
Photoshop czy Bryce to nie macie si czym przejmowa! Gdy zaczynalem swoje przygody z
edytorem ChromEd te nigdy nie uywalem Photoshop'a, nie mówic ju o Bryce!
Zapewniam Was, e pomimo tego mona stworzy naprawd rewelacyjne i grywalne mapki.
Wystarczy troch inicjatywy i dobry pomysl oraz chci na jego zrealizowanie. Jedynym
ograniczeniem bdzie Wasza wyobrania! Wskazana bylaby te myszka trzy przyciskowa z
rolk. Taka myszka naprawd ulatwi prac!
W nastpnych rozdzialach omówi sposób tworzenia mapek do gry Chrome poczynajc
od opisu samego edytora ChromEd, poprzez tworzenie map wysokoci itp. w programach
graficznych, póniej przejdziemy do tworzenia logiki naszej mapki a skoczymy na bardzo
zaawansowanych operacjach jak tworzenie filmików na engine gry Chrome do naszych
mapek czy dzialanie AI (szczególnie tyczy si to bdzie mapek dla gry singleplayer).
Piszc ten dokument staralem si, aby byl napisany prostym, zrozumialym jzykiem a
take, aby caly czas byl utrzymany w tej samej tonacji. Myl, e udalo si osign ten
efekt, ale ocen kocow pozostawiam Wam. Mam tylko nadziej, e z pomoc tego

2

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
dokumentu bdziecie robi naprawd rewelacyjne mapki do gry Chrome. Zawsz te moecie
wczyta do edytora ChromEd mapki, które dostalicie razem z edytorem ChromEd i gr
Chrome, zarówno mapki singleplayer jak i multiplayer. W ten sposób moecie ,,podejrze",
co i jak robili profesjonalici.

1.2 Gra Chrome i edytor ChromEd.
Zanim zaczniemy nasz prac, proponowalbym przyjrze si zawartoci katalogu z gr
Chrome. Wiedzc, co gdzie si znajduje, ulatwi nam prac w przyszloci. Oto struktura
katalogów gry Chrome wraz z krótkim opisem, co mona w nich znale:
\Data\ - w tym katalogu znajduj si wszystkie elementy potrzebne grze do dzialania
(obiekty 3D, tekstury, materialy itp. a take wszystkie mapki zarówno dla gry singleplayer
jak i multiplayer), oto bardziej szczególowy opis kadego podkatalogu:
\Data\Animations\ - w tym podkatalogu zapisan s animacje dla postaci,
\Data\Brushesh\ - w tym podkatalogu znajduj si brush'e wykorzystywane przez plug-in
,,Terrain" (o plug-in'ach napisz za chwil),
\Data\Films\ - w tym podkatalogu znajduj si wszystkie filmiki zrobione na engine gry
Chrome, które widzimy podczas gry,
\Data\HUD\ - w tym podkatalogu znajduj si wszystkie bitmap'y a take skrypty opisujce
wygld HUD'a gry (radar widoczny na ekranie podczas gry, liczba amunicji, zdrowie itp. to
wszystko elementy HUD'a),
\Data\HUDNet\ - w tym katalogu znajduj si skrypty opisujce wygld HUD'a podczas gry
multiplayer'owej.
\Data\Interface\ - w tym podkatalogu znajduj si tzw. helpery, s to pomocnicze obiekty,
wykorzystywane tylko przez edytor ChromEd, nie bd one widoczne podczas samej gry.
Obiekty te symbolizuj rónego rodzaju zdarzenia np. kamera (pomocna bdzie przy
tworzeniu filmików), nutka (pomocna bdzie przy dodawaniu dwików), chorgiewka
(która posluy wyznaczaniu tras np. dla AI), arówka (która symbolizuje wiatlo) itd.,
\Data\Levels\ - w tym podkatalogu znajduj si wszystkie mapki dla gry singleplayer (dla
pojedynczego gracza), kada mapka mieci si w oddzielnym podkatalogu, jeeli bdziecie
tworzy mapki singleplayer'owe to musicie umieszcza je wlanie w tym podkatalogu,
\Data\LevelsNet\ - w tym podkatalogu znajduj si wszystkie mapki dla gry multiplayer (gry
wieloosobowe za porednictwem internetu czy sieci lokalnej), kada mapka mieci si w
oddzielnym podkatalogu, jeeli bdziecie tworzy mapki mutliplayer'owe to musicie
umieszcza je w tym podkatalogu,
\Data\Materials\ - w tym podkatalogu znajduj si materialy (specjalne tekstury) np. dla
drzew, trawy, wody itd., czsto bdziemy wykorzystywa materialy np. do stworzenia
wody na naszej mapce,
\Data\Menu\ - w tym podkatalogu znajduj si pliki konfigurujce wygld menu w grze
Chrome,
\Data\Meshesh\ - w tym podkatalogu znajduj si wszystkie obiekty (mesh to plik 3da, który
reprezentuje jaki obiekt) wykorzystywane w grze Chrome a które wykorzystywa
bdziemy na naszych mapkach, poniewa do czsto bdziemy korzysta z tego katalogu
napisz, co kady podkatalog zawiera:
\...\Meshesh\AI\ - modele postaci AI (kierowanych przez komputer),
\...\Meshesh\Animals\ - modele zwierzt, owadów itp.,
\...\Meshesh\Constructions\ - obiekty wszystkich budynków itp., dodatkowo w podkatalogu
\...\Constructions\Walls\ znajduj si obiekty cian itp., które wykorzystamy m.in. do
tworzenia wntrz budynków,
\...\Meshesh\Equipment\ - wyposaenie np. amunicja, papierosy a take bro itd.,
\...\Meshesh\Implants\ - implanty, które moe uy Logan,

3

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
\...\Meshesh\Inside\ - obiekty wyposaenia wntrz np. lampy, monitory komputerowe,
rónego rodzaju przyciski, terminale itp., dodatkowo w podkatalogu \...\Inside\Screens\
znajduj si obiekty, które s wykorzystywane do wywietlania rónego rodzaju informacji
np. na monitorach komputerowych, nad drzwiami itp.,
\...\Meshesh\Logan\ - no ten podkatalog nie wymaga chyba komentarza , zawiera modele
naszego bohatera Logana oraz modele calej dostpnej dla niego broni rcznej itp.,
\...\Meshesh\Movies\ - obiekty wykorzystywane przy filmikach,
\...\Meshesh\Mp\ - modele postaci wykorzystywane w grze multiplayer'owej,
\...\Meshesh\Naturals\ - obiekty zwizane z rolinnoci itp. np. drzewa, krzaki itd.,
\...\Meshesh\Objects\ - rónego rodzaju beczki, skrzynie, kontenery itp.,
\...\Meshesh\Sky\ - obiekty przedstawiajce wygld nieba, które moemy zaobserwowa
grajc w gr Chrome,
\...\Meshesh\Vehicles\ - obiekty pojazdów, s to zarówno pojazdy, które moe
wykorzystywa gracz (np. jako rodek transportu) jak i pojazdy statyczne (gracz nie ma na
nie wplywu).
Wracamy do katalogu \Data\:
\Data\Panel\ - w tym podkatalogu znajduj si czcionki wykorzystywane w samej grze,
\Data\Profiles\ - w tym podkatalogu znajduj si profile graczy multiplayer'owych
(ustawienia itp.),
\Data\Sounds\ - w tym katalogu znajduj si wszystkie dwiki a take muzyka, które
slyszymy podczas gry w Chrome,
\Data\Textures\ - w tym katalogu znajduj si wszystkie tekstury wykorzystywane przez gr
Chrome (np. tekstury trawy, tekstury wybuchów itd.),
Dodatkowo w struktur katalogów z gr Chrome wchodzi jeszcze kilka katalogów
zwizanych z jzykiem Java:
\Java\
\JavaChromeEngine\
\JavaChromeGame\
\Jre\
Gra Chrome wykorzystuje jzyk Java stworzony przez firm Sun. Cala logika gry a take
samego engine gry oparta zostala o jzyk Java. Jest to bardzo dobre rozwizanie, które
pozwala latwo rozbudowa sam gr (tzw. mody). Jzyk Java jest w miar latwy, a jakby
tego bylo malo to dostpna jest do niego bardzo obszerna literatura powicona temu
jzykowi. Jeeli zamierzasz modyfikowa gr Chrome to nie moe by nic lepszego ni
wykorzystanie jzyka Java. Jest on na pewno latwiejszy od C++ (sam engine gry Chrome
napisany zostal w C++). Poniewa glównym zadaniem tego dokumentu jest nauczy Was
tworzy mapki do gry Chrome a nie modyfikowania samej gry, to dodam tylko tyle, e
bdziemy wykorzystywa klasy Java stworzonych przez programistów gry Chrome na
naszych mapkach. Klasa to termin zwizany z programowaniem obiektowym np. w jzykach
C++ czy wlanie Java. Jest to zbiór logicznie powizanych danych i funkcji przeznaczonych
do realizacji jakiego konkretnego zadania. Za pomoc edytora ChromEd bdziemy mogli
przypisywa obiektom odpowiednie klasy a take mienia atrybuty tych klas np. przypisujc
jakiemu pojazdowi klas Jeep i ustawiajc odpowiednie atrybuty klasy Jeep, doprowadzimy
do tego, e do naszego pojazdu bdzie mógl wsi gracz i prowadzi ten pojazd.
Pozostal jeszcze jeden katalog, katalog \Plugins\. W tym katalogu znajduj si rónego
rodzaju rozszerzenia edytora ChromEd. Edytor ChromEd ma otwart struktur, co oznacza,
e mona rozbudowa jego moliwoci o rónego rodzaju dodatki (tzw. plug-in'y). My te
podczas naszej pracy bdziemy wykorzystywa kilka plug-in'ów stworzonych przez twórców
edytora.

4

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Tak w przyblieniu wyglda cala zawarto katalogu gry Chrome. Jeeli podczas naszej
pracy bdziemy czego potrzebowa z odpowiedniego katalogu, dokladnie opisz gdzie dany,
potrzebny element si znajduje. Ju na samym pocztku proponuj utworzy podkatalog
\MojaMapka\ w katalogu \Data\LevelsNet\, co z zaloenia daje mapk multiplayer'ow. W
podkatalogu \MojaMapka\ bdzie znajdowa si wszystko to, co ma zwizek ze stworzon w
tym dokumencie przykladow mapk. Sama mapka take bdzie nazywa si MojaMapka .
Oczywicie, jeeli bymy robli mapk singleplayer'ow to podkatalog \MojaMapka\
musielibymy utworzy w katalogu \Data\Levels\.



Rozdzial 2 ­ Podstawy obslugi edytora ChromEd

2.1 Charakterystyka edytora ChromEd.
Na samym wstpie wypadaloby napisa, czym jest ChromEd. Krótko mówic jest to
edytor pozwalajcy tworzy mapki do gry Chrome. W zasadzie slowo ,,mapka" jest
znaczeniem potocznym, bardziej fachowe okrelenie to level (poziom). Przyjlo si jednak
powiedzenie ,,robi mapki do Half-Life" wic w tym dokumencie take bd stosowal
slowo ,,mapka" (a nie level). Nie wszystko jednak zrobimy w edytorze ChromEd. Jak
napisalem w pierwszym rozdziale, potrzebne s jeszcze inne, ,,zewntrzne" programy,
szczególnie do obróbki grafiki (w tym dokumencie wykorzystywany jest Adobe Photoshop 7
i GIMP 1.2.4) w których stworzymy zarys terenu naszej przyszlej mapki (o tym mówi
rozdzial o tworzeniu terenu). Co wic bdziemy robi w edytorze ChromEd? Sklada
wszystko w jedn, spójn calo. To w edytorze ChromEd wygenerujemy teren na podstawie
przygotowanej wczeniej mapy wysokoci (stworzonej w programie graficznym), to w
edytorze naloymy map koloru (informacje na ten temat mona znale w rozdziale o
tworzeniu terenu w podrozdziale o mapie wysokoci i o mapie koloru). To wlanie z jego
pomoc wygenerujemy rolinno (trawa, krzaki, drzewa itd.) na naszej mapce, ustawimy
rónego rodzaju obiekty (budynki itd.). Zrobimy w nim jeszcze wiele, wiele innych rzeczy
takich jak:
- okrelimy podstawowe parametry dotyczce mapki (np. poloenie sloca, rozmiary naszego
terenu),
- przypiszemy odpowiednie klasy Java do obiektów a take okrelimy ich atrybuty (o
wykorzystaniu jzyka Java przez gr Chome i edytor ChromEd napisalem pod koniec
rozdzialu o grze Chrome), prociej mówic, aby drzewo bylo drzewem musimy obiektowi
przedstawiajcemu drzewo przypisa odpowiedni klas Java itd.,
- wygenerujemy lightmap'y dla terenu i obiektów (mapa wiatla dla terenu omówiona jest w
rozdziale o tworzeniu terenu w podrozdziale o lightmap'ach natomiast dla obiektów w
rozdziale o obiektach w podrozdziale o atrybutach obiektów),
- okrelimy cieki patrolowe (tzw. waypoint'y) dla AI oraz innych obiektów (wicej
informacji na temat waypoint'ów mona znale w rozdziale o aspektach gry singleplayer
w podrozdziale o ciekach patrolowych),
- stworzymy kamery i okrelimy ich trajektori (jednym slowem pobawimy si w reysera i
bdziemy robi filmiki na engine gry Chrome do naszych mapek, w zasadzie to przyda si
tylko do tworzenia mapek singleplayer'owych, wicej informacji na ten temat w rozdziale o
aspektach gry singleplayer w podrozdziale o filmikach).
Jak sami widzicie edytor ChromEd ma obszerne zastosowanie, cho nie wymienilem
wszystkich. Jak napisalem w pierwszym rozdziale, edytor ChromEd ma otwart struktur, co

5

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
oznacza, e mona rozbudowywa jego moliwoci za pomoc tzw. plug-in'ów (podobnie jak
w programach graficznych np. Adobe Photoshop, 3D Studio MAX itp.). Wraz z edytorem
dostajemy ju z kilka plug-in'ów np. do generowania rolinnoci, tworzenia filmików,
obslugi AI czy nawet wstawiania obiektów. Wszystko to zrealizowane jest za pomoc
plug-in'ów. Tak w skrócie prezentuje si wykorzystanie edytora ChromEd.
Podczas pisania tego dokumentu, programici tworzcy edytor ChromEd caly czas go
ulepszali a take dodawali nowe funkcje i plug-in'y. Za kadym razem, gdy pojawila si
nowsza wersja edytora, staralem si uaktualni ten dokument do nowej wersji edytora.
Pozostawilem jednak te elementy, które pokazywaly jak omija pewne bldy w starszej
wersji edytora. W ten sposób gdybycie natrafili na podobny bld w nowszej wersji edytora,
bdziecie wiedzieli jak go rozwiza.

2.2 Pliki edytora ChromEd.
W trakcie pracy z edytorem ChromEd wykorzystywa bdziemy pliki w nastpujcych
formatach:
1. Bitmapy:
- jpg,
- png,
- tga.
Dopuszczalne s bitmapy z 8 lub 24 bitowym kolorem. Pliki w formacie png
wykorzystywane bd do map wysokoci, map koloru, tekstór itp. natomiast w formacie
tga, glównie przy generowaniu lightmap. Plików w formacie jpg praktycznie podczas
swojej pracy nie wykorzystywalem.
2. Obiekty 3D:
- 3da.
Wszystkie obiekty w grze Chrome zostaly stworzone w programie 3D Studio MAX i
wyeksportowane do formatu 3da za pomoc specjalnego plug-in'a. Razem z gr i edytorem
dostajemy mnóstwo gotowych obiektów 3D (drzewa, skaly, budynki, ciany itd.), które
wykorzystamy w naszych mapkach, jednak samych obiektów 3D nie bdziemy tworzy (co
najwyej sklada w calo np. wntrza budynków).
3. Dwiki:
- wav,
- ogg.
Muzyka lub inne dwiki typu szum wody, szum drzew, wiatr czy rozmowy, zapisane
musz by w standardowym formacie wav lub ogg. Ze wzgldu na du objto pliku wav
zaleca si zapisywanie muzyki w formacie ogg. Na lamach tego dokumentu take nie
bdziemy tworzy adnych dwików. Podstawowe efekty takie jak wczeniej wspomniany
szum wody czy drzew itd. dostajemy razem z edytorem i gr, wic mona je wykorzysta
we wlasnych mapkach.
Sam edytor ChromEd take generuje rónego rodzaju pliki, s to:
- map ­ w takim formacie zapisywane s wlanie przez nas tworzone mapki,
- bak, ba1, ba2, ba3 ­ w tym formacie zapisywane s kopie tworzonych przez nas mapek,
edytor ChromEd sam tworzy co jaki czas kopi (dla bezpieczestwa, np. jeeli przez
pomylk zapiszemy nasz mapk z ustawieniem, którego sobie nie yczymy, to bdziemy
mogli wczyta poprzedni wersj mapki wlanie z pliku ba1, ba2 lub ba3, wystarczy
zmieni rozszerzenie pliku z bak, ba1, ba2 lub ba3 na map),
- colmap ­ mapy kolizji dla obiektów 3D,
- pfm ­ mapy kolizji dla AI (obiekty kierowane przez komputer, wicej na ten temat w
rozdziale o aspektach gry singleplayer w podrozdziale o kolizji obiektów dla AI),
- fd2 ­ pliki z danymi o warstwach rolinnoci,

6


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
- eds ­ pliki z grupami selekcji obiektów,
- edcs ­ pliki z grupami selekcji klas,
- lmap ­ lightmap'y (mapa wiatla) dla obiektów,
- cam ­ pliki z wyeksportowanymi kamerami,
- fkd ­ pliki z danymi o kluczach (dotyczy tworzenia filmików),
To najwaniejsze i najbardziej wykorzystywane formaty plików przez edytor ChromEd. W
razie potrzeby opisz, co i jak zrobi, aby zapisa plik w odpowiednim formacie.

2.3 Interfejs edytora.
Przyszedl czas na omówienie samego edytora ChromEd oraz poszczególnych jego
elementów. Uruchamiamy edytor ChromEd. Przywita nas troch znajomy ekran (oczywicie
nie dla wszystkich). Dlaczego znajomy? Poniewa na pierwszy rzut oka edytor ChromEd
przypomina rónego rodzaju programy graficzne 3D (np. 3D Studio MAX):



Tak wygld edytor po uruchomieniu. Jak wida program dzieli si na trzy glówne sekcje:
1A, 1B, 1C, 1D ­ to cztery okna widokowe 3D (tzn. viewport'y), tu znajduje si przez nas
tworzona mapka, to wlanie w tych oknach widokach bdziemy ustawia obiekty itp.,
zawsze tylko jedno widokowe moe by aktywne, okno aktywne zaznaczone jest niebiesk
obwódk,
2 ­ to okno wykorzystywanego plug-in'a, przewanie po uruchomieniu edytora ChromEd jest
to okno plug-in ,,Mesh Browser" (plug-in odpowiedzialny za wstawianie obiektów,
omówiony w rozdziale o obiektach w podrozdziale o dodawaniu obiektów), tu istotna
informacja ­ nie wszystkie plug-in'y wywietlaj swoje okno w tym miejscu,
3 ­ pasek narzdziowy edytora ChromEd (nad którym znajduje si menu glówne edytora), na
pasku tym znajduj si rónego rodzaju ikony uruchamiajce odpowiednie plug-in'y,

7


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
narzdzia pozwalajce pracowa z widokami 3D (np. obraca, przyblia i przesuwa
kamer itp.), poszczególne elementy paska narzdziowego omówi w tym rozdziale.
Na pocztek omówi okna widokowe i ich funkcje. Okna widokowe rozdziela tzn.
splitter, który umoliwia zmian stosunków ich wielkoci:



Na czerwono zaznaczylem splitter'y, które modyfikuj wielko okien w pionie i poziomie
(najedajc kursorem myszki na taki splitter, kursor przyjmie odpowiedni ksztalt, który
informuje, w jakim kierunku moe by zmieniona wielko okna widokowego, wystarczy
przytrzyma wcinity lewy klawisz myszki i wykona ruch w odpowiednim kierunku). Na
czarno zaznaczylem splitter, który umoliwia zmian wielkoci okna widokowego we
wszystkich czterech kierunkach (tym samym jedno okno bdzie si powiksza w obu
kierunkach a inne bd si zmniejsza). Na zielono (po prawej stronie okien widokowych)
zaznaczylem splitter, który umoliwia zmian wielkoci okna uruchomionego plug-in'a (tym
samym zmniejsza si lub zwiksza obszar dla okien widokowych). Popróbujcie troch sami a
przekonacie si, e zmiana wielkoci okna widokowego nie jest wcale trudna.
Dodatkowo kade okno widokowe moe by zminimalizowane, maksymalizowane lub
zamknite:



Zasada dzialania jest taka sama jak kadej aplikacji dla systemu Windows. Starsza wersja
edytora ChromEd miala pewien bld. Otó zdarzalo si, e z jakie przyczyny w jakim oknie
widokowym nie byl wywietlany paskek informacyjny (pokazany na powyszym rysunku).
Wtedy wystarczy klikn gdziekolwiek w oknie widokowym, aby przywróci wywietlanie

8

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
tego paska. To tyle, jeeli idzie o ten bld. Z oknami widokowymi zwizana jest koncepcja
obserwatorów tj. obiektów polczonych z kamer. Do czego wykorzystuje si obserwatorów?
Przede wszystkim bez obserwatora nie widzielibymy naszej mapki w oknach widokowych.
Obserwatora mona te traktowa jako pewnego rodzaju zakladki. Jeeli nasz mapka bdzie
dua, to przejcie z jednego miejsca na drugie moe zaj troch czasu. Tworzc
obserwatorów w odpowiednich miejscach mona póniej szybko midzy nimi przelcza si.
Standardowo, po uruchomieniu edytora ChromEd mamy ju czterech obserwatorów w
czterech oknach widokowych. Aby ustawi dodatkowych obserwatorów, przesuwamy si
kamer w aktywnym oknie widokowym w miejsce, gdzie chcemy stworzy obserwatora (jak
przesuwa kamer itp. opisz poniej), potem w tym oknie klikamy prawym przyciskiem
myszki. Otworzy si menu podrczne. Tam wybieramy polecenie Set observer z menu
Observers:



Otworzy si okno `Set observer'. Podajemy nazw naszego obserwatora np. Las (w ten
sposób bdziemy wiedzieli, e ten obserwator znajduje si nad lasem) oraz pozycj X, Y i Z
naszego obserwatora. Poniewa bd to parametry pobrane z aktualnej pozycji kamery,
zostawiamy je bez zmian i klikamy na przycisku `OK.':



Standardowo pierwszych czterech obserwatorów ma nazwy: view0, view1, view2 i view3.
Kade okno widokowe moe by polczone z jednym z wielu obserwatorów a przelczenie
midzy obserwatorami nastpuje po wybraniu z menu podrcznego Observers polecenia
Switch to:


9

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W menu obserwatora oprócz dodania nowego obserwatora (Set observer) czy przelczenia na
innego obserwatora (Switch to) dostpne s jeszcze inne polecenia:



Za pomoc polecenia New mona stworzy nowego obserwatora, ale tu wana uwaga.
Polecenie to mona wykorzysta tylko wtedy, jeeli zamkniemy cale okno widokowe. Chcc
otworzy nowe okno mona wykorzysta do tego celu wlanie polecenie New z menu
podrcznego Observers. Istotne jest te to, e zamknicie okna widokowego wie si z
usuniciem aktualnie wybranego obserwatora! Polecenie Duplicate pozwala zrobi kopi
aktualnego obserwatora. Polecenie Hide ukrywa aktywnego obserwatora. Polecenie Close
zamyka obserwatora (i tym samym zamyka okno widokowe). W zasadzie polecenie Close
jest podobne do polecenia Hide. Polecenie Close All zamyka wszystkich obserwatorów. Za
pomoc polecenie Near clipping plane moemy ustawi, od jakiej odlegloci obserwator
bdzie wywietlal mapk:



W polu `Near' wpisujemy odleglo (100 jednostek = 1m fizyczny) i klikamy na przycisku
`OK'. Polecenie Near clipping plane jest rzadko uywane, dlatego proponuje pozostawi

10

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
warto standardow (10). Nastpne polecenie, Far clipping plane, pozwala ustawi
odleglo, do jakiej obserwator bdzie wywietlal mapk (tu take 100 jednostek = 1m
fizyczny). To polecenie moe si przyda przy wywietlaniu naprawd duych mapek. W ten
sposób nie chcc zbytnio obcia edytor mona zmniejszy odleglo, do jakiej bdzie
wywietlana mapka (tym samym edytor nie bdzie obciony wywietlaniem calej mapki).
Okno `Far clipping plane' jest podobne do okna `Near clipping plane'. W polu `Far'
wpisujemy odpowiedni warto i kilkamy na przycisku `OK'. Warto standardowa to
50000. Teraz wybierzcie polecenie Speed factor. Otworzy si okno `Observer speed factors':



Tu za pomoc suwaków ustawiamy prdko obrotu (`Rotate') kamery obserwatora oraz
prdko przesuwania (`Move') kamery obserwatora. Tym samym moemy np. spowolni
(przyspieszy) ruch kamery przy przesuwaniu si ni w oknie widokowym lub spowolni
(przyspieszy) obrót kamery przy obracaniu. Po ustawieniu odpowiednich dla nas wartoci
zamykamy okno `Observes speed factors'. Tak mniej wicej wyglda praca z obserwatorami.
Niestety, funkcja obserwatorów nie dziala poprawnie . Nie mona stworzy wicej ni
czterech obserwatorów a potem si na nich przelczy! Musz jednak powiedzie, e podczas
mojej pracy z edytorem ChromEd nie przeszkadzalo mi to, wystarczyly te cztery
standardowe, dostpne zaraz po uruchomieniu edytora.
Kliknijcie jeszcze raz prawym przyciskiem myszki w jednym z okien widokowych:



Jak widzicie s tam jeszcze inne polecenia. Polecenie Attach movie pozwala podpi okno
widokowe pod kamer do tworzenia filmików (opis tworzenia filmików opisz w rozdziale o
aspektach gry singleplayer w podrozdziale o filmikach, natomiast polecenie Detach movie
odlcza kamer. Wybierzcie polecenie View aspect. Otworzy si okno `View aspect':



Za pomoc tej funkcji mona dostosowa wielko aktualnego okna widokowego. W polach
`Aspect [width : height ]' podajemy stosunek szerokoci do wysokoci (jak wida na rysunku
jest to 16:9) a w polu `Initial width' podajemy pocztkow szeroko okna widokowego.
Klikamy na przycisku `OK'. Przy takich parametrach jak na rysunku (16:9, 500) widok
naszego edytora ChromEd przyjmie tak posta:

11


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Na czerwono zaznaczylem aspekt naszego okna (16:9, 500). Jeeli ustawimy aspekt to nie
bdzie dziala funkcja zmiany wielkoci okien widokowych za pomoc splitter'ów (zostan
zablokowane). Jeeli chcemy zmieni wielko okna musimy wylczy aspekt. Kliknijcie
prawym klawiszem myszki w jednym z okien widokowych i odznaczcie polecenie View
aspect
(obecnie to polecenie jest zaznaczone, w zasadzie nie jest polecenie lecz opcja, ale ze
wzgldu, e jest ona dostpna w menu traktujmy je jako polecenie):



Klikajc prawym przyciskiem myszy na pasku informacyjnym okna widokowego mamy
dostp do jeszcze jednego polecenia a mianowicie moemy przelcza kamer obserwatora
na róne widoki naszej mapki:


12

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


- Perspective ­ jest to widok perspektywiczny (3D),
- User ­ widok ortogonalny (prostopadly) uytkownika,
- Front ­ widok ortogonalny z przodu,
- Back ­ widok ortogonalny z tylu,
- Top ­ widok ortogonalny z góry,
- Bottom ­ widok ortogonalny z dolu,
- Left ­ widok ortogonalny z lewej strony,
- Right ­ widok z ortogonalny prawej strony.
Jeeli wybierzemy widok np. z góry (Top) i w nim obrócimy kamer obserwatora, widok
automatycznie przelczy si na widok uytkownika (User). Dzieje si tak, dlatego i widok z
przodu (Front), z tylu (Back), z góry (Top), z dolu (Bottom), z lewej strony (Left) oraz prawej
strony (Right) nie jest widokiem 3D i tym samym kamera w oknie widokowym moe by
tylko przybliana lub oddalana, nie moe by obracana!

Na pasku informacyjnym kadego okna widokowego wywietlane s take wane dane:



Od lewej:
- nazwa obserwatora, tu dla przykladu jest to obserwator o nazwie view 3,
- nazwa widoku obserwatora (wywietlany w nawiasach okrglych), nazwa ta informuje skd
ten widok pochodzi, tu dla przykladu jest to widok perspektywiczny (Perspective),
- aktualna pozycja X, Y, Z (liczona wzgldem pocztku terenu naszej mapki) kamery
obserwatora (wywietlana w nawiasach kwadratowych), tu dla przykladu jest to pozycja X
= 12443, Y = 1477, Z = 14138 [ 12443, 1477, 14138 ],
- pozycja, w któr skierowana jest kamery obserwatora (take wywietlana w nawiasach
kwadratowych), tu dla przykladu, jest to pozycja -0.6294, 0.0197, -0.7768
[ -0.6294, 0.0197, -0.7768 ]
Dodatkowo, jeeli do okna widokowego podpita jest kamera do tworzenia filmików, za
nazw widoku obserwatora wywietlany jest napis Movie:



13


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

To w zasadzie wszystkie, potrzebne informacje na temat okienek widokowych.
Na koniec dodam, e z moich osobistych dowiadcze wiem, e najbardziej uytecznym
widokiem jest widok perspektywiczny, wic zawsze po rozpoczciu pracy z edytorem
ChromEd widok perspektywiczny maksymalizowalem i z reguly tylko na tym widoku
pracowalem a to ze wzgldu na bardzo due moliwoci manewrowania kamer obserwatora
w tym widoku.
Myl, e okna widokowe mamy ju za sob . Teraz opisz pasek narzdziowy edytora
ChromEd. Tu mala uwaga. Wikszo dostpnych narzdzi w tym pasku, to narzdzia
pochodzce od odpowiednich plug-in'ów np. obracanie obiektów czy kamery obserwatora
pochodz od plug-in'a ,,Mesh Browser" (którego szczególowo opisz w rozdziale o obiektach
w podrozdziale o dodawaniu obiektów), jednak ze wzgldu na pewn spójno tych narzdzi
z paskiem narzdziowym omówi znaczenie poszczególnych ikon tutaj jednak bardziej
szczególowe informacje przeczytacie w innych rozdzialach i podrozdzialach tego dokumentu.
Oprócz krótkiego opisu, do czego dana ikona sluy, podaj te skrót klawiszowy (o ile
takowy istnieje). Jest to standardowy klawisz, narzucony przez twórców edytora ChromEd.
Jeeli chcemy to moemy przypisa inne skróty klawiszowe (dlatego te obok skrótu
klawiszowego podaj angielsk nazw, któremu dany skrót jest przypisany, w ten sposób
latwo bdziecie mogli go zmieni). Wystarczy z menu glównego Tools, wybra polecenie
Shortcuts:



Otworzy si okno `Shortcuts':



14

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

Z listy `Filter' moemy wybra element edytora, do jakiego chcemy wywietl skróty
klawiszowe na licie `Shortcuts list'. Dostpne s elementy:
- `All' ­ na licie zostan wywietlone wszystkie skróty klawiszowe edytora (i t opcj
proponuj zawsze wybiera, jeeli chcemy zmieni jakie skrót),
- `Editor' ­ na licie zostan wywietlone skróty klawiszowe zwizane typowo z edytorem,
- `Control' ­ na licie zostan wywietlone skróty klawiszowe zwizane z ruchem kamery
obserwatora,
- `Environment' ­ na licie zostan wywietlone skróty klawiszowe zwizane z plug-in'em
,,Environment",
- `Films' ­ na licie zostan wywietlone skróty klawiszowe zwizane z plug-in'em ,,Films",
- `Forest' ­ na licie zostan wywietlone skróty klawiszowe zwizane z plug-in'em ,,Forest",
- `LightmapsEd' ­ na licie zostan wywietlone skróty klawiszowe zwizane z plug-in'em
,,Lightmaps". Tu wana informacja. Plug-in ten jest obecnie zintegrowany z plug-in'em
,,Environment" i nie ma swojej ikony na pasaku narzdziowym,
- `StringsEd' ­ na licie zostan wywietlone skróty klawiszowe zwizane z plug-in'em
,,StringsEd". Tu take informacja. W dalszej czci dokumentu nie bd uywal okrelenia
plug-in ,,StringsEd" lecz edytor stringów,
- `TerrainEd' ­ na licie zostan wywietlone skróty klawiszowe zwizane z plug-in'em
,,Terrain".
Dobrze. Jeeli chcemy zmieni jaki klawisz skrótów, znajdujemy opis jego przeznaczenia na
licie `Shortcuts list' i zaznaczamy go (tu dla przykladu jest zaznaczny klawisz skrótu
uruchamiajcy okno zaznaczania i selekcji obiektów):



Teraz na panelu `Definition' moemy przyporzdkowa nowy skrót klawiszowy. W tym celu
wystarczy wybra liter z listy `Key', jakiej chcemy przypisa funkcj:



Dodatkowo moemy zaznaczy, z jakim klawiszem kontrolnym bdziemy uywa skrótu
klawiszowego zaznaczajc jedn z dostpny opcji: `Shift', `Alt' i `Ctrl'. Nic nie stoi na
przeszkodzie, aby uywa wszystkich trzech klawiszy kontrolnych na raz . Innym sposobem
zmiany skrótu klawiszowego jest kliknicie na przycisku `Press key' a póniej naciniciu
odpowiedniej kombinacji klawiszy np. CTRL + O. Z prawej strony okna `Shortcuts' znajduj
si przyciski:


15

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Za pomoc przycisku `Reset to defaults' przywracamy ustawienia standardowych skrótów
klawiszowych (czyli takie, jakie wybrali twórcy edytora ChromEd ). Za pomoc przycisku
`Save' moemy zapisa nasze ustawienia skrótów klawiszowych (do pliku w formacie sdat).
Za pomoc przycisku `Load' moemy wczyta wczeniej zapisane ustawienia (z pliku w
formacie sdat). Przycisków `OK' i `Cancel' nie musz chyba opisywa . Dodam tylko, e
aby zatwierdzi nowe skróty klawiszowe naley klikn na przycisku `OK'.
Skoro wiemy ju jak zmieni skróty klawiszowe (zaznaczam, e nie podalem opisu do
wszystkich skrótów klawiszowych), przejd teraz do omawiania poszczególnych ikona paska
narzdziowego:


CTRL + N



Nowa mapka (rozpoczcie tworzenia nowej mapki).

CTRL + O



Wczytanie mapki.


CTRL + S



Szybkie zapisanie mapki




Uruchomienie trybu gry, jednym slowem testujemy nasz mapk z poziomu gry . Naciskajc
klawisze ALT + F4 wychodzimy z trybu gry. Uwaga! Przed wejciem do trybu gry,
proponuj najpierw zapisa mapk naciskajc klawisze CTRL + S!




Opcje wywietlania (renderowania). Wicej informacji w podrozdziale o opcjach
wywietlania.


16

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Lista bldów wystpujcych na tworzonej przez nas mapce. Jeeli pojawi si jaki bld na
naszej mapce, to ikona ta bdzie miga informujc nas o pojawieniu si bldu. Mona wtedy
klikn na tej ikonie i sprawdzi, czego dotyczy ten bld. Wicej informacji w podrozdziale o
bldach.

O


Show selection dialog


Okno zaznaczanie i selekcja obiektów. Pozwala wyszukiwa i zaznacza obiekty oraz
elementy zdarze na naszej mapce. Wicej informacji w rozdziale o obiektach w
podrozdziale o zaznaczaniu i selekcji obiektów.




Okno atrybutów zaznaczonego obiektu (obiektów). Wicej informacji w rozdziale o
obiektach w podrozdziale o atrybutach obiektów.



Okno referencji obiektów. Wicej informacji w rozdziale o aspektach gry singleplayer
w podrozdziale o deklaracji zmiennych.




Okno grupowania obiektów. Wicej informacji w rozdziale o obiektach w podrozdziale o
grupowaniu obiektów.




Ukrywanie zaznaczonych obiektów. Po zaznaczaniu obiektu (lub obiektów) i klikniciu na tej
ikonie moemy ukry te obiekty, bd one niewidoczne na naszej mapce, ale nie zostan
usunite z naszej mapki!



Ukrywanie wszystkie niezaznaczonych obiektów. Jeeli mamy zaznaczony jaki obiekt i
klikniemy na tej ikonie to wszystkie obiekty, które s niezaznaczone zostan ukryte.
Oczywicie, jeeli nie mamy zaznaczonego adnego obiektu, to wszystkie obiekty zostan
ukryte. Bardzo wana uwaga! Jeeli klikniemy na tej ikonie (ukryjemy wszystkie obiekty) nie
bdziemy mieli dostpu np. do plug-in'a ,,Environment" (okno atrybutów obiektów si
otworzy, ale nie bdzie dostpa adna zakladka i atrybut) a tym samym nie bdziemy mogli
zmieni adnych ustawie mapki itp. Dzieje si tak, dlatego e tworzona mapka take jest
obiektem a my wlanie wszystkie obiekty ukrylimy. W razie takie sytuacji naley albo
odkry wszystkie obiekty (za pomoc odpowiedniej ikony) albo z pomoc okna zaznaczania i
selekcji obiektów odkry obiekt mapki (nazwa tego obiektu to LEVEL).

17


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Odkrywanie wczeniej ukrytych obiektów. Za pomoc tej ikony mona odkrywa pojedyncze
obiekty. Aby wczeniej ukryty obiekt pojawil si na mapce musimy za pomoc okna
zaznaczania i selekcji obiektów (opisanego w rozdziale o obietkach w podrozdziale o
zaznaczaniu i selekcji obiektów) znale ten obiekt na licie i dopiero wtedy klikn na tej
ikonie.



Odkrywanie wszystkich ukrytych obiektów. Jeeli chcemy odkry tylko niektóre obiekty a
nie wszystkie, musimy posluy si oknem zaznaczania i selekcji obiektów oraz ikon
odkrywania pojedynczych obiektów.



Okno kolapsowania (lczenia) obiektów. Nie myli z grupowaniem! Za pomoc tego okna
moemy polczy kilka obiektów w jeden duy. Wicej informacji w rozdziale o obiektach
w podrozdziale o kolapsowaniu obiektów.




Uruchomienie plug-in'a ,,Mesh Browser" (omówiony obiektach obiektach rozdziale o
obiektach w podrozdziale o dodawaniu obiektów). Za pomoc tego plug-in'a dodawane s
obiekty oraz elementy zdarze (np. filmiki, dialogi, punkty patrolowe itp.) do naszej mapki.

S


Set select object mode


Tryb zaznaczania obiektów. Aby zaznaczy obiekt wystarczy na nim klikn. Dodatkowo,
jeeli mamy zaznaczony jaki obiekt moemy nacisn klawisz X, co spowoduje
wyporodkowanie kamery obserwatora aktywnego okna widokowego na zaznaczonym
obiekcie, nacinicie klawiszy SHIFT + X spowoduje wyporodkowanie kamery obserwatora
we wszystkich oknach widokowych na zaznaczonym obiekcie. Mona zaznacza kilka
obiektów na raz. Robimy to w sposób standardowy dla systemu Windows ­ z wcinitym
lewym klawiszem myszki zaznaczamy obszar, w którym znajduj si interesujce nas
obiekty. Do zaznaczonych obiektów mona doda kolejne. Wystarczy przytrzyma wcinity
klawisz CTRL i klikn na obiekcie, który chemy doda do zaznaczonych ju obiektów.

SPACE

Toggle locked selection mode

Zablokowanie / odblokowanie zaznaczenia obiektu. Jeeli mamy zaznaczony jaki obiekt i
zablokujemy zaznaczenie (naciskajc klawisz SPACE lub klikajc na tej ikonie) to nie bdzie
mona zaznaczy innego obiektu. Dobrym nawykiem jest po zaznaczeniu obiektu,
zablokowanie zaznaczenia na nim. Daje nam to gwarancj, e przez pomylk nasz obiekt nie
zostanie odznaczony. Naciskajc ponownie klawisz SPACE (lub klikajc ponownie na tej
ikonie) wylczymy blokowanie zaznaczenia.

18


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
ALT + M

Set move objects mode

Tryb przesuwania obiektów. Klikamy na obiekcie, który chcemy przesun i trzymajc
wcinity lewy klawisz myszki, wykonujemy ruch myszk w odpowiednim kierunku.
Moemy przesuwa kilka obiektów na raz (wczeniej je zaznaczajc). Tu mala uwaga. Jeeli
chcemy przesun kilka zaznaczonych obiektów w tym samym kierunku, to musimy ustawi
tryb koordynacji osi na World. Tryb koordynacji osi zmienia si za pomoc listy na pasku
narzdziowym:



Jeeli tego nie zrobimy to moe si zdarzy, e kady z zaznaczonych obiektów bdzie
przesuwal si w inn stron. Dlaczego? Jeeli mamy ustawiony tryb koordynacji osi na
`World' to wszystkie operacje na obiektach (przesuwanie, obracanie, skalowanie itd.)
wykonywane s wzgldem terenu naszej mapki gdzie kierunki osi X, Y i Z nigdy si nie
zmieniaj! W trybie koordynacji osi lokalnej (`Local') wszystkie operacje na obiektach
(przesuwanie, obracanie, skalowanie itd.) wykonywane s wzgldem zaznaczonego obiektu a
nie terenu naszej mapki. Prosz o tym pamita! Zanim jednak przesuniemy zaznaczony
przez nas obiekt (obiekty), musimy jeszcze wybra o (lub osie), w której chcemy przesun
nasz obiekt. Do tego slu ikony:

.



R


Set rotate objects mode

Tryb obracania obiektów. Klikamy na obiekcie, który chcemy obróci i nadal trzymajc go
wcinity, wykonujemy ruch myszk w odpowiednim kierunku. Moemy przesuwa kilka
obiektów na raz (wczeniej je zaznaczajc). Prosz pamita o wybraniu odpowiedniego
trybu koordynacji osi a take o, w której chcemy obróci obiekt.



Tryb skalowania obiektów. Klikamy na obiekcie, który chcemy skalowa (powiksza lub
pomniejsza) i nadal trzymajc go wcinity, wykonujemy ruch myszk w odpowiednim
kierunku. Mona skalowa kilka obiektów na raz (wczeniej je zaznaczajc). Tu take prosz
pamita o wybraniu odpowiedniego trybu koordynacji osi a take o, w której chcemy
skalowa obiekt.



Dolczenie obiektu do hierarchii. Majc zaznaczony obiekt, klikamy na tej ikonie a potem na
obiekcie, do którego chcemy dolczy wczeniej zaznaczony obiekt. Obiekt, który zostal
dolczony do innego obiektu stal si ,,dzieckiem", natomiast obiekt do którego nastpilo

19

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
dolczenie stal si ,,rodzicem". Prosz pamita, e jeeli np. przesuniemy obiekt, który jest
,,rodzicem" to przesunity zostanie take obiekt, który jest ,,dzieckiem". W ten sposób mona
ulatwi sobie ycie np. dolczamy obiekt wiatla do lampy. Od teraz, gdy przesuniemy
lamp w inne miejsce, zostanie przesunity teke obiekt wiatla. Za pomoc okna atrybutów
obiektów mona sprawdzi czy dany obiekt jest dolczony do hierarchii, jeeli jest to w polu
`Parent' wywietlana jest nazwa obiektu, który jest ,,rodzicem":





Odlczenie obiektu z hierarchii. Majc zaznaczony obiekt klikamy na tej ikonie. W ten
sposób obiekt zostanie odlczony z hierarchii. Obiekty z hierarchii mona te odlczy za
pomoc okna atrybutów obiektów. Wystarczy klikn na przycisku `X' obok pola `Parent':



ALT + S

Set scale objects mode

Wlcznie / wylczenie trybu snapowania (przycigania) obiektów. Tu mala uwaga. Praca w
tym trybie wyglda troch inaczej, jeeli aktywujemy go za pomoc ikony a inaczej, jeeli
aktywujemy go za pomoc skrótu klawiszowego (ALT + S). Uywajc skrótu klawiszowego
od razu przechodzimy do trybu snapowania obiektów. Snapowanie wykorzystuje si przy
tworzeniu np. budynków (wicej na ten temat znajdziecie w rozdziale o obiektach
w podrozdziale o budynkach). Dziki tej funkcji jeden obiekt jest automatycznie przycigany
do drugiego. Aby wylczy tryb snapowania ponownie naciskamy klawisze ALT + S.
Wlczenie trybu snapowania za pomoc ikony otworzy okno `Snap properties':



W polu `Connection distance' podajemy odleglo, przy jakiej nastpi przycignicie jednego
obiektu do drugiego. Proponuje nie zmienia tej wartoci (50). Na koniec klikamy na
przycisku `OK'. Znajdziemy si w trybie snapowania. Aby go wylczy naciskamy klawisze
ALT + S lub kilkamy na ikonie. Jeeli chcemy zmieni ustawienia snapowania musimy
ponownie klikn na ikonie trybu snapowania.


20






wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Edytor stringów (SrtingsEd). Edytor ten zawiera wszystkie zwroty, jakie pojawiaj si
podczas gry Chrome. Wicej na temat tego edytora a take samych string'ów znajdziecie w
rozdziale o aspektach gry singleplayer w podrozdziale o dialogach.




,,Rzucanie" zaznaczonego obiektu (lub obiektów) na teren wzgldem osi obiektu. Obiekt
,,rzucany" jest pionowo w dól i nie s brane pod uwag inne obiekty, wic moe si zdarzy,
e jeden obiekt bdzie wchodzil w drugi (jeeli ten drugi stoi na drodze tego pierwszego). Dla
przykladu, jeeli mamy beczk (punkt pocztkowy obiektu Beczka.3da znajduje si u jego
podstawy, o punkcie pocztkowym moecie przeczyta w rozdziale o obiektach
w podrozdziale na temat Gizma), która ,,wisi w powietrzu" i w dodatku jest pod ktem w
stosunku do terenu, to kliknicie na tej ikonie spowoduje ,,rzucenie" jej na teren bez zmiany
jej kta w stosunku do terenu (wic cz tej beczki wbije si w teren):






,,Rzucanie" zaznaczonego obiektu (lub obiektów) na teren wzgldem osi terenu (nie
obiektu!). Obiekt ,,rzucany" jest pionowo w dól i nie s brane pod uwag inne obiekty, wic
moe si zdarzy, e jeden obiekt bdzie wchodzil w drugi (jeeli ten drugi stoi na drodze
tego pierwszego). Wrajacj do przykladu z nasz bczk, która ,,wisi w powietrzu" i jest pod
ktem w stosunku do terenu. Kliknicie na tej ikonie spowoduje ,,rzucenie" jej na teren i
wyrównanie jej podstawy wzgldem terenu (wic nie bdzie si ju w niego wbita):




A

Pleace
object

Wlczenie / wylczenie trybu ,,rzucania" zaznaczonego obiektu (lub obiektów) na teren lub
inne obiekty. Zaznaczamy obiekt, który chcemy ,,rzuci" w inne miejsce, wlczamy tryb

21



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
,,rzucania" i klikamy na terenie mapki w miejscu gdzie chcemy ,,rzuci" obiekt. Mona te
klikn na innym obiekcie, tym samym zaznaczony obiekt zostanie ,,rzucony" na drugi obiekt
(bdzie stal jeden na drugim):





Wlczenie / wylczenie trybu ,,rzucania" zaznaczonego obiektu (lub obiektów) na teren.
Zaznaczamy obiekt, który chcemy ,,rzuci" w inne miejsce, wlczamy tryb ,,rzucania" i
klikamy na terenie mapki w miejscu gdzie chcemy ,,rzuci" obiekt. Mona te klikn na
innym obiekcie, jednak zaznaczony obiekt nie zostanie ,,rzucony" na drugi obiekt (tak jak to
robi tryb ,,rzucania" obiektów omówiony poprzednio), lecz zostanie ,,rzucony" w najblisze
puste otoczenie drugiego obiektu:





Za pomoc tych ikon moemy precyzyjnie ,,rzuca" obiekty na inne obiekty (nie na teren).
Stosuje si to do tego, aby dokladnie dostawi np. obraz do ciany. Wicej na temat tych ikon
znajdziecie w rozdziale o obiektach w podrozdziale o "meblowaniu" budynków.

ALT + P

Set pan observer mode

Tryb przesuwania (góra, dól, lewo, prawo) kamery obserwatora aktywnego okna
widokowego. Przytrzymujemy wcinity lewy klawisz myszki i wykonujemy ruch myszk w
odpowiednim kierunku. Do przesuwania kamery mona te wykorzysta klawisz HOME.
Pozwala on nie wychodzc z innego trybu dzialania (np. obracania obiektów) przelczy si

22

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
na tryb przesuwania kamery. W tym celu naciskamy (i przytrzymujemy) klawisz HOME a
take przytrzymujemy wcinity lewy klawisz myszki. Wykonujemy ruch myszk w
odpowiednim kierunku. Na koniec puszczamy klawisz HOME i klawisz myszki, tym samym
powracajc do poprzedniego trybu dzialania.
Mona take bezporednio przesuwa kamer za pomoc trzeciego klawiszy myszki (o ile
takowy w naszej myszce jest) a take za pomoc klawiszy kursora (lewo, prawo). Jeeli
uywajc tych klawiszy przytrzymamy jeszcze klawisz SHIFT, ruch bdzie szybszy.

ALT + R

Set rotate observer mode

Tryb obracania kamery obserwatora aktywnego okna widokowego. Przytrzymujemy
wcinity lewy klawisz myszki i wykonujemy ruch myszk w odpowiednim kierunku. Do
obracania kamery mona te wykorzysta klawisz PAGE DOWN. Pozwala on nie wychodzc
z innego trybu dzialania (np. zaznaczania obiektów) przelczy si na tryb obracania kamery.
W tym celu naciskamy (i przytrzymujemy) klawisz PAGE DOWN a take przytrzymujemy
wcinity lewy klawisz myszki. Wykonujemy ruch myszk w odpowiednim kierunku. Na
koniec puszczamy klawisz PAGE DOWN i klawisz myszki, tym samym powracajc do
poprzedniego trybu dzialania.


ALT + Z

Set zoom observer mode

Tryb zbliania / oddalania kamery obserwatora aktywnego okna widokowego.
Przytrzymujemy wcinity lewy klawisz myszki i wykonujemy ruch myszk w odpowiednim
kierunku. Do zbliania / oddalania kamery mona te wykorzysta klawisz PAGE UP.
Pozwala on nie wychodzc z innego trybu dzialania (np. zaznaczania obiektów) przelczy
si na tryb zbliania / oddalania kamery. W tym celu naciskamy (i przytrzymujemy) klawisz
PAGE UP a take przytrzymujemy wcinity lewy klawisz myszki. Wykonujemy ruch
myszk w odpowiednim kierunku. Na koniec puszczamy klawisz PAGE UP i klawisz
myszki, tym samym powracajc do poprzedniego trybu dzialania.
Mona take bezporednio zblia / oddala kamer za pomoc rolki myszki (o ile tak rolk
nasza myszka posiada) a take za pomoc klawiszy kursora (góra, dól). Jeeli uywajc tych
klawiszy przytrzymamy jeszcze klawisz SHIFT, ruch bdzie szybszy.

ALT + O

Set orbit observer mode

Tryb orbitowania kamery obserwatora aktywnego okna widokowego wokól zaznaczonego
obiektu (lub obiektów). Przytrzymujemy wcinity lewy klawisz myszki i wykonujemy ruch
myszk. Do orbitowania kamer obserwatora mona te wykorzysta klawisz END. Pozwala
on nie wychodzc z innego trybu dzialania (np. zaznaczania obiektów) przelczy si na tryb
orbitowania kamer. W tym celu naciskamy (i przytrzymujemy) klawisz END a take
przytrzymujemy wcinity lewy klawisz myszki. Wykonujemy ruch myszka w odpowiednim
kierunku. Na koniec puszczamy klawisz END i klawisz myszki, tym samym powracajc do
poprzedniego trybu dzialania.


23


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Tryb orbitowania kamery obserwatora aktywnego okna widokowego wokól aktualnego,
centralnego punktu. Aby sprawdzi, gdzie aktualnie znajduje si ten punkt, wystarczy klikn
na tej ikonie:



Aby orbitowa kamer wokól tego punktu przytrzymujemy wcinity lewy klawisz myszki i
wykonujemy ruch myszk.


G

Change observer mode

Tryb obserwacji kamer obserwatora aktywnego okna widokowego. Tu mala uwaga. Praca w
tym trybie wyglda troch inaczej, jeeli aktywujemy go za pomoc ikony a inaczej, jeeli
aktywujemy go za pomoc skrótu klawiszowego (G). Uywajc skrótu klawiszowego od razu
przechodzimy do trybu obserwacji. W trybie tym poruszamy si kamer za pomoc klawiszy
kursora (take w polczeniu z klawiszem SHIFT, co powoduje przyspieszenie ruchu), obrót
dokonujemy za pomoc ruchu myszki (tak jakbymy grali w gr). Mona te wykorzysta
trzeci klawisz myszki i rolk o ile takowe mamy. Wyjcie z trybu obserwacji nastpuje po
ponownym naciniciu klawisza G. Wlczenie trybu obserwacji za pomoc ikony otworzy
okno `Observer Mode Properties':



Ustawiamy tu prdko ruchu (przód / tyl) kamer (pole `Move ratio' na panelu `Move
Properties'), prdko przesuwania (lewo / prawo) kamery (pole `Pan ratio' na panelu `Move
Properties') a take ustalamy przyspieszenie, jakie uzyskamy przytrzymujc klawisz SHIFT
podczas ruchu kamer (pole `Speed factor' na panelu `Move Properties'). Dodatkowo
moemy ustawi wysoko poloenia kamery nad terenem naszej mapki (pole `Camera
Height' na panelu `Constant Height Mode'). Jeeli zaznaczymy opcj `Constant Height
Mode' to kamera zawsze bdzie znajdowa si w okrelonej wysokoci nad terenem naszej
mapki (pole `CameraHeight' na panelu `Constant Height Mode'). Tym samym kamera
podczas ruchu bdzie unosila si zgodnie z uksztaltowaniem terenu naszej mapki (nie bdzie
mona jednak podwysza / obnia poloenia kamery). Na koniec klikamy na przycisku
`OK'. Znajdziemy si w trybie obserwacji. Wyjcie z tego trybu nastpuje po naciniciu

24

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
klawisza G. Jeeli chcemy zmieni ustawienia tego trybu musimy ponownie klikn na ikonie
trybu obserwacji.



Zrobienie zdjcia satelitarnego naszej mapki (zdjcie wykorzystywane jest minimapie
aktywowanej za pomoc klawisza M podczas gry). Wicej informacji na ten temat
znajdziecie w rozdziale o tworzeniu terenu w podrozdziale o minimapie.



Zrobienie zrzutu ekranu aktywnego okna widokowego do pliku. Po klikniciu na tej ikonie
otworzy si okno `Take screenshot':



Klikamy na przycisku trzykropka obok pola `Bitmap' i wpisujemy nazw pliku, pod jak
chcemy zapisa nasz zrzut ekranu (zrzut ekranu zostanie zapisany w formacie tga). Podajemy
te rozdzielczo, jak chcemy mie w pliku z zrzutem ekranu: pole `Width' ­ szeroko i
pole `Height' (wysoko). Proponuj warto 800x600 lub 1024x768. Na koniec klikamy na
przycisku `OK'. Niestety, ta funkcja take nie dziala poprawnie a bardzo czsto wrcz
zawiesza caly edytor, dlatego wskazane jest, aby nie wykorzystywa tej funkcji do robienia
zrzutów ekranowych (które w zasadzie nie przydaje si do niczego).

C


Set count distance mode

Z pomoc tej ikony moemy zmierzy odleglo midzy dwoma punktami. Trzymajc
wcinity lewy klawisz myszki rysujemy lini od jednego punktu do drugiego. Odleglo
midzy tymi punktami wywietlana jest na dole edytora ChromEd w polu `Distance':


25


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Prosz pamita, e 100 jednostek = 1m fizyczny, wic na powyszym przykladzie odleglo
midzy jednym punktem a drugim wynosi ok. 5.5m.



Uruchomienie plug-in'a ,,Environment". Jest to jeden z najwaniejszych plug-in'ów w
edytorze ChromEd. Od niego zaczyna si tworzenie kadej mapki. Plug-in ten opisuj w
rozdziale o tworzeniu terenu w podrozdziale gdzie plug-in ten jest wykorzystywany.



Wygenerowanie mapy kolizji dla obiektów kierowanych przez komputer (AI). Map kolizji
oraz jej generowanie omówi w rozdziale o aspektach gry singleplayer w podrozdziale o
mapie kolizji dla AI.



Przenumerowanie identyfikatorów obiektów (ID) znajdujcych si na mapce. Proponuj nie
uywa tej funkcji, poniewa nie jest pewne czy dziala ona w 100% tym bardziej, e jego
zle dzialanie mogloby doprowadzi do wielkich strat ­ w niektórych przypadkach cal mapk
trzebaby tworzy od nowa! Uyjcie tej ikony w ostatecznoci a dokladniej w momencie,
jeeli zauwaycie, e na Waszej mapce s obiekty, które maj takie same numery
identyfikacyjne (o numerach identyfikacyjnych moecie przeczyta w rozdziale o obiektach
w podrozdziale o zaznaczaniu i selekcji obiektów). Dodatkowo, po uyciu tej funkcji trzeba
wygenerowa od nowa, lightmap'y dla obiektów (o lightmap'ach przeczytacie w rozdziale o
obiektach w podrozdziale o atrybutach obiektów). Po klikniciu na tej ikonie pojawi si okno
`Hierarchy check' wlanie z informacj, e konieczne bdzie ponowne wygenerowanie
lightmap dla obiektów:




26


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Jeeli klikniemy na przycisku `Tak', identyfikatory obiektów zostan przenumerowane.
Trzeba pamita, aby potem wygenerowa lightmap'y.



Wygenerowanie mapy wysokoci z poziomu edytora. Za pomoc tej funkcji moemy
wygenerowa now map wysokoci. Wicej informacji na ten temat znajdziecie w rozdziale
o tworzeniu terenu w podrozdziale o modyfikacji terenu (tam te wykorzystamy plug-in
,,Terrain").



Wygenerowanie mapy wysokoci dla efektu deszczu i niegu (i dla innych efektów tego
typu). T map generuje si po to, aby np. deszcz nie padal wewntrz budynków. Podczas
generowania tej mapy pod uwag brane s wszystkie obiekty na naszej mapce, wic powinna
ona zosta wygenerowana dopiero po rozstawieniu wszystkich obiektów. Wicej informacji
na ten temat znajdziecie w rozdziale opisujcym tworzenie zdarze w edytorze ChomEd
w podrozdziale o deszczu i niegu.




Uruchomienie plug-in'a ,,Films". To za pomoc tego plug-in'a bdziemy robi filmiki do
naszej mapki (pod warunkiem, e bdzie to mapka dla gry singleplayer). Sam plug-in ma
bardzo due moliwoci a dokladnie omówi go w rozdziale o aspektach gry singleplayer
w podrozdziale o filmikach. Do pracy z tym plug-in'em wykorzystuje si te inne ikony:

.

Omówi je przy omawianiu plug-in'a ,,Films".



Uruchomienie plug-in'a ,,Forest". To za pomoc tego plug-in'a wygenerujemy rolinno na
naszej mapce . Szczególowo omówi ten plug-in w rozdziale o przyrodzie.



Uruchomienie plug-in'a ,,Terrain". Z jego pomoc mona zmodyfikowa teren naszej mapki.
Opisz ten plug-in w rozdziale o tworzeniu terenu w podrozdziale o modyfikacji terenu.



Wygenerowanie mapy wysokoci do pliku w formacie height. Pliki takiego typu s o wiele
bardziej dokladne ni mapy wysokoci zrobione za pomoc bitmap. Przy modyfikowaniu
terenu za pomoc plug-in'a ,,Terrain" wykorzystywane s wlanie pliki tego formatu (height).

27

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Wicej informacji na ten temat w rozdziale o tworzeniu terenu w podrozdziale o
modyfikowaniu terenu.

We wszystkich skrótach klawiszowych wykorzystuje si prawy klawisz ALT. Oczywicie,
jeeli dany skrót wymaga uycia klawisza ALT. Nie uywa si lewego klawisza ALT,
którego zadaniem jest obsluga menu glównego edytora ChromED.
Mamy ju ogólne pojcie o tym jak porusza si w edytorze ChromEd, jak
modyfikowa poloenie obiektów itp. Powinienem jeszcze opisa menu glówne edytora
jednak ze wzgldu na to, i wikszo jego funkcji nie dziala (a tak si sklada, e nie s one
zbytnio potrzebne ) a tych, co dziala jest zaledwie kilka, nie ma sensu abym teraz opisywal
to menu. Jeeli bdzie potrzebne jakie polecenie z menu to po prostu opisz je.

2.4 Opcje wywietlania (renderowania).
Za pomoc ikony
otwieramy okno opcji wywietlania (renderowania). W miar
rozbudowywania mapki, bdzie ona zawierala, coraz wicej obiektów, rolinnoci itp. a tym
samym praca nad sam mapk bdzie trudniejsza. Dlaczego? Edytor ChromEd bdzie musial
przetwarza, co raz wicej obiektów, co moe nam utrudni np. obrót kamery czy jej
przesunicie. Jest jednak sposób, aby temu zaradzi wlanie za pomoc opcji wywietlania.
Okno opcji wywietlania (`Render options') wyglda tak:



28

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

Opcje te pozwalaj wlczy lub wylczy wywietlanie wybranych przez nas elementów na
naszej mapce, tym samym edytor ChromEd nie bdzie musial przetwarza wylczonych z
wywietlania (renderowania) obiektów, co przyspieszy dzialanie samego edytora ChromEd.
Dla przykladu, mona wylczy wywietlanie nieba. W samej grze ma ono wielkie znaczenie,
ale przecie podczas tworzenia mapki ju nie, prawda?! Wic mona je tymczasowo
wylczy. Oto opis poszczególnych opcji.
Terrain:



Zaznaczenie opcji `Render' wlacza wywietlanie terenu naszej mapki a odznaczenie tej opcji
wylcza wywietlanie terenu. Jeeli dodatkowo zaznaczymy opcj `Wireframe' (pod
warunkiem, e zaznaczona jest opcja `Render') to bdzie wywietlona tylko siatka terenu
naszej mapki (wywietlanie siatki nie dziala w starszej wersji edytora ChromEd).
Horizon:



Zaznaczenie opcji `Render' wlcza wywietlania horyzontu na naszej mapce a odznaczenie
tej opcji wylcza wywietlanie horyzontu.
Sky:



Zaznaczenie opcji `Render' wlcza wywietlanie nieba na naszej mapce a odznaczenie tej
opcji wylcza wywietlanie nieba.
Trees:



Zaznaczenie opcji `Render' wlcza wywietlanie drzew na naszej mapce a odznaczenie tej
opcji wylcza wywietlanie drzew (chodzi tu o drzewa wygenerowane za pomoc plug-in'a
,,Forest" opisanego w rozdziale o przyrodzie). Jeeli dodatkowo zaznaczymy opcje
`Wireframe' (pod warunkiem, e zaznaczona jest opcja `Render') to bdzie wywietlana
tylko siatka drzew (wywietlanie siatki nie dziala w starszej wersji edytorza ChromEd).
Water:



Zaznaczenie opcji `Render' wlcza wywietlanie wody na naszej mapce a odznaczenie tej
opcji wylcza wywietlanie wody.
Grass:


29

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Zaznaczenie opcji `Render' wlcza wywietlanie trawy na naszej mapce a odznaczenie tej
opcji wylcza wywietlanie trawy (chodzi tu o traw wygenerowan za pomoc plug-in'a
,,Forest" opisanego w rozdziale o przyrodzie).
Fog:



Zaznacznie opcji `Render' wylcza wywietlanie mgly na naszej mapce a odznacznie tej
opcji wylcza wywietlanie mgly.
Attributes visualization:



Zaznaczenie opcji `Render' wlcza wywietlanie wizualizacji atrybutów na naszej mapce a
odznaczenie tej opcji wylcza wywietlanie wizualizacji atrybutów. Dziki tej opcji moemy
wywietla np. linie midzy punktami patrolowymi czy wywietla linie polcze AI z
punktami patrolowymi itp.
Oddzielnie zgrupowane s opcje dotyczce wywietlania (renderowania) obiektów:



Zaznaczenie opcji `Render' na panelu `All' pozwala wlczy wywietlanie obiektów
znajdujcych si na naszej mapce (budynki, pojazdy itd.) a odznaczenie tej opcji powoduj
wylczenie wywietlania obiektów. Dodatkowo, jeeli zaznaczona jest opcja `Render object
selection boxes', wywietlane bd ,,pudelka" wokól zaznaczonego obiektu. ,,Pudelko" (tzw.
extent) to taki bialy, przezroczysty obszar, który widzimy wokól obiektu po jego
zaznaczeniu:


30



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Te ,,pudelka" w zasadzie nie maj wielkiego znaczenia. Informuj nas tylko o wielkoci
danego obiektu. Dodatkowo naciskajc klawisz H mona wlczy lub wylczy wywietlanie
,,pudelek" na zaznaczonych obiektach:



Moemy jeszcze wybra sposób wywietlania obiektów (za pomoc panelu `Render mode'):



- `All' ­ wywietlane s cale obiekty,
- `Wireframe' ­ wywietlana jest tylko siatka obiektów (nie dziala w starszej wersji edytora
ChromEd),
- `Extens only' ­ wywietlane bd tylko ,,pudelka" obiektów:


31



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Mona te wlczy lub wylczy wywietlanie (renderowanie) obiektów o okrelonej klasie.
Pomoe nam w tym celu panel' Object classes excluded from rendering':



Jeeli chcemy np. aby nie byly wywietlane obiekty kierowane przez komputer (AI), klikamy
na przycisku `Add'. Otworzy si okno `Choose class' i tu moemy wybra klas obiektu,
która nie bdzie wywietlana na naszej mapce:



W naszym przykladzie bdzie to klasa NewAIHuman. Klikamy na przycisku `OK' okna
`Choose class'. Po wybraniu interesujcej nas klasy klikamy na przycisku `OK' okna `Render
options'. Od teraz wszystkie obiekty, które maj przypisan klas NewAIHuman nie bd
wywietlane na naszej mapce. Oczywicie, jeeli chcemy przywróci wywietlanie takich
obiektów to zaznaczamy odpowiedni klas na licie `Object classes excluded from
rendering' i klikamy na przycisku `Remove'.
Na dole okna `Render options' dostpne s jeszcze trzy opcje:



Tu mona wlczy / wylczy wywietlanie (renderowanie) nastpujcych elementów:
- `Control: Render hooks' ­ obiekty, które mog by ze sob lczone (np. ciany budynków)
maj specjalne punkty zaczepne ­ haki (ang. hooks), które pozwalaj lczy ze sob te
obiekty w odpowiednich miejscach (tak, aby do siebie pasowaly, wicej na ten temat
znajdziecie w rozdziale o obiektach w podrozdziale o budynkach):


32


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


odznaczenie tej opcji wylcza wywietlanie tych punktów zaczepnych,
- `Control: Render gizmo and boxes druing orbiting' ­ pozwala wylczy lub wlczy
wywietlanie (renderowanie) Gizma (Gizmo to specjalne narzdzie pozwalajce przesuwa
i obraca obiekty, opisalem je w rozdziale o obiektach w podrozdziale o Gizmie) oraz
,,pudelek", przy orbitowaniu kamer obserwatora wokól obiektu (o pudelkach napisalem
powyej),
- `LightmapsEd: light ranges' ­ pozwala wlczy lub wylczy wywietlanie (renderowania)
wiatla generowanego przez lightmap'.
Jeeli zauwaycie, e podczas pracy nad Wasz mapk np. trudniej wykonuje si obrót
kamer itp. (czym bardziej rozbudowana mapka tym wicej obiektów bdzie musial
przetwarza edytor ChromEd a prdko samego przetwarzania uzaleniona jest od
moliwoci Waszego komputera) to mona wylczy wywietlanie (renderowanie)
niepotrzebnych podczas pracy elementów takich jak niebo, mgla czy nawet wod, traw i
drzewa.

2.5 Bldy.
Za pomoc ikony
otwieramy okno, które informuje nas o bldach wystpujcych na
naszej mapce. Okno bldów (`Errors') wyglda tak:



Jeeli na naszej mapce pojawi si jaki bld, poinformuje nas o tym migajca ikona
.
Bldy mog wystpi podczas uruchamiania edytora ChromEd, wczytywania naszej mapki
czy te samej pracy nad mapk. W oknie bldów wywietlane s informacje o wystpujcych

33


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
bldach np. zaginl jaki plik czy klasa obiektu (o klasach wspomnialem pod koniec
rozdzialu o grze Chrome). Okno bldów posiada kilka zakladek. Kada zakladka informuje o
bldzie pochodzcym z innej kategorii:
- zakladka `Meshes' ­ przedstawiona jest tu lista mesh'y (mesh to plik 3da, który reprezentuje
jaki obiekt 3D), które nie zostaly zaladowane podczas wczytywania mapki. Wszystkie
obiekty, które mialy mie mesh'e z tej listy domylnie bd oznaczone na mapce w postaci
duego, czerwonego wykrzyknika:



wic jeeli po wgraniu Waszej mapki zobaczycie gdzie taki czerwony wykrzyknik,
oznacza to, e w tym miejscu byl obiekt, którego mesh nie zostal znaleziony,
- zakladka `Critical errors' ­ wywietla list bldów krytycznych majcych kluczowe
znaczenie nad poprawnoci dzialania naszej mapki,
- zakladka `Java classes' ­ wywietla list bldów zwizane z klasami Java, za pomoc opcji
znajdujcych si na tej zakladce mona wywietla róne bldy zwizane z klasami Java:



- opcja `missing java classes' ­ wywietla list brakujych klas Java,
- opcja `invalid java classes' ­ wywietla list nieprawidlowych klas Java,
- opcja `objects using invalid java classes' ­ wywietla list obiektów, które uywaj
nieprawidlowych klas Java, tu mamy do wyboru opcj `as object class', która wywietla
list obiektów z nieprawidlowymi klasami lub opcj `as attribute class', która wywietla
list obiektów z nieprawidlowymi atrybutami klas,
- zakladka `Missing Java attibutes' ­ wywietla list bldów zwizanych z nieprawidlowymi
atrybutami Java, list t mona sortowa za pomoc opcji dostpnych na tej zakladce:



- opcja `sort by object name' sortuje list wedlug nazwy obiektów,
- opcja `sort by object class' sortuje list wedlug klas obiektów,
- `Last action' ­ bldy, które pojawily si po zakoczeniu naszej ostatniej operacji,
dodatkowo na tej zakladce dostpne s przyciski, które ulatwiaj przegldanie bldów:


34

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


- przycisk `|<' powoduje skok na pocztek list, przycisk `<' przewija list w tyl, przycisk
`>' przewija list do przodu, przycisk `>|' powoduje przeskok na koniec listy, dodatkowo
za pomoc przycisku `Dump to file' moemy zapisa list bldów do pliku.
Tak przedstawia si okno bldów (`Error'). W momencie, gdy ikona okna bldów
zacznie miga proponuj od razu na niej klikn i sprawdzi gdzie tkwi bld. W samym
edytorze jest pewien bld. Jeeli wczytamy mapk, na której wystpuje jaki bld (np. brak
mesh'a) i nie sprawdzimy, co to za bld, ale wczytamy kolejn mapk, to ikona okna bldu
nadal bdzie miga. Jeeli w tym momencie klikniemy na ni, moemy doprowadzi do
zawieszenia edytora ChromEd. Ja w moich przygodach z edytorem po prostu, gdy chcialem
wczyta inn mapk, zawsz od nowa uruchamialem edytor. Moe nie jest to najlepsze
rozwizanie, ale na pewno bezpieczne !
Po przeczytaniu tego rozdzialu powinnicie by ju obeznani z podstawowymi
zasadami obslugi edytora ChromEd, wic myl, e ju czas aby, rozpocz prac nad nasz
pierwsza mapk!




35


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Rozdzial 3 ­ Tworzymy teren

3.1 Troch teorii.
Nasz prac rozpoczniemy od teorii. Chcialbym Wam opisa map wysokoci i map
kolorów od strony technicznej, cho od razu zaznaczam, e s to wiadomoci minimalne -
potrzebne do zrozumienia zasady tworzenia mapek do gry Chrome. Oczywicie, jeeli
podczas tworzenia naszej mapki bdzie potrzebna jaka dodatkowa informacja, to od razu
postaram si j bardziej szczególowo opisa.
Wic co to jest ta mapa wysokoci i mapa koloru? Zaczniemy od mapy wysokoci. Jest
to po prostu bitmapa zawierajca zarys terenu naszej mapki. Do jej tworzenia uywa si tylko
i wylcznie odcieni szaroci (a take kolor czarny i bialy). Mapa wysokoci musi by
kwadratowa a jej rozmiar (rozdzielczo) to potga liczby 2. Edytor ChromEd, a take engine
gry Chrome wymaga, aby rozmiar mapy wysokoci byl powikszony o jeden piksel w pionie
i poziomie. Przykladowe rozdzielczoci to 257x257, 513x513, 1025x1025 a nawet
2049x2049, ale proponowalbym nie przekracza 1025x1025. Ja przewanie stosuj
rozdzielczo 257x257. Mapa wysokoci musi by bitmap z 8 bitowym kolorem, czyli 255
odcieni szaroci i zapisana musi by w formacie png (jeden ze standardowych formatów
rozpoznawanych przez gr Chrome). Aby dokladniej zrozumie zasad tworzenia mapy
wysokoci proponuj zerkn na poniszy rysunek:



Po lewej stronie (Terrain Canvas) znajduje si wlanie nasza mapa wysokoci a z prawej to
podgld terenu (3D Preview) wygenerowanego na podstawie tej mapy wysokoci. W taki
sposób teren generuje wlanie gra Chrome, wykorzystujc do tego map wysokoci. Na
rysunku zaznaczylem czerwonymi kreskami, jaki element na mapie wysokoci odpowiada na
widoku wygenerowanego terenu. Jak latwo zauway, tam gdzie jest kolor czarny nie zostalo
wygenerowane nic. W miar rozjaniania czarnego koloru (odcienie szaroci) powstaj
uwypuklenia. Czym odcie janiejszy tym uwypuklenie jest wysze. W taki sposób mona
wlanie tworzy wzniesienia, doliny, góry itp. Nakladajc jeden odcie na drugi (patrz
element nr 5) mona tworzy góry bardziej realistyczne (a nie pionowe ciany jak to ma w
przypadku elementów od 1 do 4). Myl, e to jest zrozumiale, prawda?!

36


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Pozostaje jeszcze omówi map koloru. A co to znowu ta mapa koloru? Prosz zerkn
na poniszy rysunek:



Wic mapa koloru to po prostu bitmapa przedstawiajca tekstur terenu. W zalenoci, co
nasza mapka bdzie przedstawiala to na mapie koloru bdziemy zaznacza drogi, brzegi rzek
itd. Tu take trzeba pamita, e bitmapa musi by kwadratowa a jej rozmiar (rozdzielczo)
to take potga liczby 2 jednak ju bez powikszenia o jeden piksel w pionie i poziomie.
Przykladowe rozdzielczoci to 256x256, 512x512, 1024x1024, 2048x2048 a nawet
4096x4096!!! Wskazane jest generowa map koloru (bo bdzie to robil program Corel
Bryce) w rozdzielczoci 4096x4096. Mapa koloru musi by bitmap z 8 lub 24 bitowym
kolorem, zreszt dotyczy to take innych bitmap (nie tylko map koloru np. tekstury)
wykorzystywanych przez gr Chrome. Mapa koloru take musi by zapisana w formacie png.
Po wygenerowaniu przez edytor ChromEd terenu (za pomoc mapy wysokoci) zostanie
naloona na niego mapa koloru, tworzc spójny, oteksturowany teren.
Do stworzenia naszej mapki bdzie nam potrzebna jeszcze mapa szczególów (detalu).
To take bitmapa z tym, e nie musi by taka wielka, jej rozmiar (rozdzielczo) moe
wynosi tylko 64x64 piksele (prosz pamita, e nadal musi to by kwadratowa bitmapa o
rozdzielczoci potgi liczby 2, bez powikszania o jeden piksel w pionie i poziomie),
stosowane s te rozdzielczoci 128x128, 256x256 i 512x512. Mapa szczególów przedstawia
teren w skali mikro - chodzc po naszej mapce, gracz ,,pod nogami" i w jego pobliu bdzie
widzial wlanie map szczególów. Mapa ta zostanie naloona na map koloru i bdzie
powielana na calym terenie. Oto przykladowa mapa szczególów:


37

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Pozostaje do omówienia jeszcze jedna mapa. Jest to tzw. mapa wiatla (ang. lightmap).
Map wiatla bdziemy tworzy (a raczej zrobi to za nas edytor ChromEd) dopiero, gdy
nasza mapka bdzie w 100% gotowa. Mapa ta zawiera po prostu cieniowanie obiektów np.
drzew. Po jej wygenerowaniu naloymy j dodatkowo na map koloru, co da efekt cienia na
ziemi rzucanego np. przez drzewa czy te inne obiekty. Wicej na ten temat w podrozdziale o
lightmap'ie.
Myl, e tyle teorii wystarczy i e mój opis troch Wam przybliyl, na czym to
wszystko polega. Przejdziemy teraz do praktyki, co na pewno pozwoli to wszystko jeszcze
bardziej zrozumie i utrwali.

3.2 Mapa wysokoci.
Czas stworzy nasz pierwsz map wysokoci. Uruchamiamy program (Photoshop'a
lub GIMP'a). Po uruchomieniu programu z menu File wybieramy polecenie New (zarówno w
programie Photoshop i GIMP menu to wyglda podobnie):

PHOTOSHOP
GIMP




Najpierw Photoshop. Zanim zaczniemy tworzy now map, naciskamy klawisz D (co
spowoduje ustawienie kolorów czarnego jako domylnego koloru narzdzi i bialego jako
domylnego koloru tla), potem naciskamy klawisz X (co spowoduje zamian kolorów, bialy
bdzie domylnym kolorem narzdzi a czarny tla). Teraz moemy wybra polecenie New z
menu File. W oknie `New' podajemy nazw naszej przyszlej mapy (pole `Name').
Zasadniczo po nazwie dodaj _H, aby zaznaczy, i bdzie to mapa wysokoci (HeightMap).
Ustawiamy jej rozdzielczo. W polu `Width' podajemy szeroko mapy a w polu `Height'
wysoko. Trzeba pamita, e mapa musi by kwadratowa i jej rozmiar (rozdzielczo) musi
by potg liczby 2 plus jeden piksel w pionie i poziomie. Ustawmy jej rozdzielczo na
257x257. Poniewa mapa wysokoci to tylko odcienie szarego koloru (oraz bialy i czarny),
wystarczy e z listy `Mode' wybierzemy `Grayscale'. Dodatkowo zaznaczamy opcj

38

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
`Background Color' na panelu `Contents', co oznacza, e nasza mapa bdzie wypelniona
kolorem czarnym (ustawilimy to za pomoc klawiszy D i X):

PHOTOSHOP



W GIMP'ie calo wyglda troch inaczej. W oknie `New Image' ustawiamy rozdzielczo
257x257 (pola `Width' i `Height'), zaznaczamy opcj `Gryscale' (na panelu `Image Type') i
dodatkowo zaznaczamy `Background' (na panelu `Fill Type').

GIMP


Ustawmy jeszcze kolor tla na czarny. W tym celu klikamy na maly przycisk, który znajduje
si tu pod panelem wyboru koloru w oknie `The GIMP' (glówne okno programu):





GIMP

39

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W ten sposób ustawimy kolor czarny domylnym kolorem narzdzi a kolor bialy domylnym
kolorem tla. My jednak chcemy mie czarny kolor tla, wic musimy te kolor zamieni
miejscami. W tym celu klikamy na maly przycisk, który znajduje si tu nad panelem wyboru
koloru:

GIMP


Teraz klikamy na przycisku `OK' w oknie `New Immage'. W porzdku, co ju mamy .
Teraz stwórzmy na naszej mapie jaka wysepk. Dodatkowo nasz przyszly teren wykreowany
za pomoc naszej mapy bdzie terenem górzystym. Wikszo programów graficznych w
tym równie Photoshop i GIMP pozwala pracowa na tzn. warstwach (Layers). To nam
ulatwi prac. Obecnie pierwsz warstw jest nasza czarna mapa. Na drugiej warstwie
stworzymy zarys wyspy a na kolejnej warstwie góry. Po prawej stronie Photoshop'a, na dole,
znajduje si male okienko z zakladk `Layers' a tam na dole jest maly przcisk `Create a new
layer':

PHOTOSHOP


W GIMP'ie taki przycisk znajduje si w oknie `Layer, Channels & Paths':

GIMP



40

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Po klikniciu tego przycisku (co naley zrobi) pojawi si kolejna warstwa o nazwie Layer 1.
Zmiemy jej nazw na Wyspa (naley dwukrotnie klikn na napisie Layer 1, dotyczy
programu Photoshop). Po lewej stronie nazwy powinien widnie malutki pdzelek, co
oznacza, e wlanie ta warstwa jest aktywna i na niej bdziemy malowa. W GIMP'ie
otworzy si nowe okno `New Layer Options'. W polu `Layer Name' wpisujemy `Wyspa'.
Pozostale opcje zostawiamy bez zmian i klikamy na przycisku `OK':

GIMP


Czas wic namalowa nasz wysp. Po lewej stronie programu Photoshop znajduje si pasek
narzdzi. Wybieramy z niego narzdzie `Brush Tools':

PHOTOSHOP


Zauwacie, e na niektórych przyciskach s male trójkty z prawej strony na dole. Oznacza
to, e pod danym przyciskiem znajduj si jeszcze inne funkcje. Wic jeeli zamiast ikony
brush'a widzicie inn, to po prostu przytrzymajcie lewy przycisk myszki na tej ikonie,
otworzy si reszta dostpnych narzdzi a stamtd wybierzcie `Brush Tool'. W GIMP'ie jest
ju troch wicej pracy, bo trzeba stworzy swojego brush'a. W oknie `The GIMP' (glówne
okno programu) wybieramy narzdzie brush:

GIMP



41

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Teraz w oknie `Brush selection' klikamy na przycisku `New'. Otworzy si okno `Brush
Editor'. W polu gdzie znajduje si napis `Untitled' wpisujemy jak nazw naszego brush'a
(np. MojBrush, w nazwach lepiej nie stosowa polskich znaków). Suwakiem `Radius'
ustalamy wielko naszego brush'a a suwakiem `Hardness' ustalamy jego twardo.
Poniewa teraz bdziemy rysowa wysp ustawmy wielko (`Radius') brush'a na 40 (do
precyzyjnego przesuwania suwaków moemy wykorzysta klawisze kursora) a jego twardo
(`Hardness') na 0.5. Pozostale suwaki pozostawiamy bez zmian (`Angle' na 0.0, `Aspect
Ration' na 1.0). Klikamy na przycisku `Close':

GIMP


Teraz wybierzemy kolor, jakim bdziemy malowa. W Photoshop, aby wybra kolor brush'a
naley na panelu wyboru koloru klikn na górny kolor (`Set foreground color'):

PHOTOSHOP


Otworzy si okno wyboru koloru. Tu musimy pamita, e kolor czarny oznacza poziom
zerowy terenu a kolor bialy maksymalne wzniesienie. Oczywicie kolory pomidzy czarnym
a bialym (odcienie szaroci) bd oznacza stopniowe wzniesienie terenu. Gdy klikniemy na
wyborze koloru otworzy si okno `Color Picker':

PHOTOSHOP

42


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Zwrócie uwag na male kólko z lewej strony (wszystko, co opisuj bd zaznaczal na
rysunkach czerwony kolorem). Aby powstala nasza wysepka wybierzmy kolor np. taki jak
jest zaznaczony na rysunku. Potem klikamy na przycisku `OK' i malujemy wysepk. W
GIMP'ie kolor brush'a wybiera si troch inaczej. W oknie `The GIMP' (glówne okno
programu) klikamy na górny kolor na panelu wyboru koloru (`Foreground & background
colors'):

GIMP


Otworzy si okno `Color Selection'. Tam przechodzimy na zakladk `GTK'. Poziomy pasek
z odcieniami szaroci pasuje jak ulal do tworzonej przez nas mapy. Wybieramy kolor troch
janiejszy od czarnego i klikamy na przycisku `Close':

GIMP

43


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


No i malujemy nasz wysepk. Ja mam co takiego :




Chyba troch przypomina wysp, jak mylicie ?! Zwrócie uwag na przycisk `Brush Preset
Picker'

PHOTOSHOP

44

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Tam mona wybra, a take zmieni wielko i grubo brush'a, co pozwoli na dokladniejsze
i bardziej szczególowe malowanie. W GIMP'ie wielko brush'a ustawilimy w oknie `Brush
Editor' natomiast, jeeli chcemy go zmieni dwukrotnie kilkamy na brush'u, którego
wczeniej stworzylimy (MojBrush) w oknie `Brush Selection':

GIMP



Otworzy si okno `Brush Editor' i tam moemy zmieni wielko brush'a (`Radius') i jego
twardo (`Hardness'). Na koniec klikamy na przycisku `Close'. Skoro mamy ju wysp to
zróbmy jakie góry. Stwórzmy kolejn warstw, zmiemy jej nazw na Góry. Teraz na tej
warstwie namalujmy co, co bdzie przypominalo góry. Wybieramy inny kolor ni obecnie
uywany, niech bdzie troch janiejszy ni ten od wyspy. Potem zmiemy kolor na jeszcze
janiejszy, wielko brush'a (troch mniejszy ni ostatnio uywany) i domalujmy jeszcze
jedn warstw z górami. Ja stworzylem co takiego:


45


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Wykorzystajcie swoj wyobrani i zrealizujcie swój pomysl na teren do Waszej mapki.
Moim zadaniem jest Wam tylko pomóc jak i co si robi. Myl, e moemy zapisa nasz
prac na dysk. W programie Photoshop z menu File wybieramy polecenie Save as. Proponuj
nasz map zapisywa w dwóch formatach: psd ­ jest to format standardowy dla
Photoshop'a. Zapisan w ten sposób map bdziemy mogli latwo póniej poprawi ew. co
doda itp. Drugim formatem jest png ­ format standardowy dla gry Chrome i edytora
ChromEd. Zapisujemy wic najpierw nasz map jako MojaMapa_H.psd a potem jako
MojaMapa_H.png. W GIMP'ie zapis wyglda inaczej. Naley prawym przyciskiem myszki
klikn na naszej mapie wysokoci:


GIMP



Otworzy si okno `Save Image'. Po lewej stronie wybieramy katalog, w którym chcemy
zapisa nasz map (kierujemy si do \Data\LevelsNet\MojaMapka\). Podajemy nazw
naszej mapy (MojaMapa_H) i wybieramy format pliku (lista `Determine File Type' na panelu
`Save Options') xcf (jest to format standardowy dla GIMP'a, tak jak psd dla Photoshopa'):

GIMP

46

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Tu bardzo wana uwaga. Najpierw wpisujemy nazw pliku a dopiero potem wybieramy
format pliku. Jeeli zrobimy odwrotnie to jest due prawdopodobiestwo, e nasza mapa
zostanie zapisana bez rozszerzenia np. zamiast MojaMapa_H.xcf bdzie tylko MojaMapa_H.
Prosz na to zwraca uwag! Dobrze, klikamy na przycisku `OK'. Potem zapisujemy nasz
map jeszcze raz, z tym, e teraz jako format pliku wybieramy png. Na zadane pytanie (w
oknie `Export File') klikamy na przycisku `Export'. Otworzy si okno `Save as PNG'.
Wszystkie opcje pozostawiamy bez zmian i kilkamy na przycisku `OK':

GIMP


W ten sposób zakoczylimy pierwszy etap tworzenia mapki do Chrome ­
stworzylimy map wysokoci za pomoc której edytor ChromEd wygeneruje teren. Póniej
wygld naszego terenu zmodyfikujemy (i ew. poprawimy) za plug-in'a ,,Terrain". Tam te
wykorzystamy pliki w formacie height generowane przez edytor ChromEd. Wicej na ten
temat w podrozdziale o modyfikowaniu terenu.

3.3 Mapa koloru.

47



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Skoro mamy ju teren to musimy naloy jeszcze na niego map koloru. To zrobimy w
edytorze ChromEd jednak za nim to nastpi trzeba t map koloru najpierw wygenerowa.
Jak ju wczeniej napisalem mapa koloru to po prostu tekstura, która póniej bdzie naloona
na map wysokoci. I tu posluymy si programem Corel Bryce 5 (zasadniczo moe by inna
wersja tego programu, ja uywalem wersji 5). Wic uruchamiamy Bryce. Klikamy na
przycisku `Create Terrain' znajdujcy si na pasku narzdziowym:



W ten sposób Bryce stworzyl standardow siatk terenu. Obok siatki z terenem, z prawej
strony na dole znajduje si m.in. ikona `Edit Object' (litera E). Klikamy na t ikon:



Otworzy si nowe okno pozwalajce modyfikowa teren. Poniewa my chcemy wykorzysta
wczeniej przygotowan map wysokoci stworzon w programie Photoshop (lub GIMP) to
nie bdziemy jej tworzy w programie Bryce (w tym programie take mona stworzy map
wysokoci, ale nie bd opisywal tego w ramach niniejszego dokumentu). Wic musimy
wczyta nasz map wysokoci. Posluy do tego okno `Editing Tools' znajdujce si z
prawej strony. Na zakladce `Elevation' klikamy na malym przycisku `Picture':


48



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


i otwieramy nasz map wysokoci MojaMapa_H.png. Po wczytaniu po prawej stronie u
góry w oknie `3D Preview' moemy zobaczy jak bdzie wygldal nasz teren. Widok ten
mona obraca przytrzymujc lewy przycisk myszki i wykonujc ruch myszk. Mój teren
wyglda mniej wicej tak:



Teraz musimy ustawi rozdzielczo naszej mapy wysokoci. Jak pamitacie nasza mapa
wysokoci ma rozdzielczo 257x257 wic w Bryce te musimy tak ustawi, ale bez
powikszania o jeden piksel w pionie i poziomie, czyli 256x256. Aby zmieni rozdzielczo
kilkamy na ostatnim przycisku z lewej strony ekranu przypominajcym kratownic i
wybieramy opcj `256 - fine':


49



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Musicie pamita o tym, aby rozdzielczo mapy wysokoci byla wszdzie taka sama.
Poniewa my stworzylimy map wysokoci o rozmiarach (rozdzielczoci) 257x257 to w
Bryce ustawiamy rozdzielczo `256 ­ fine'. Gdyby nasza mapa wysokoci miala
rozdzielczo 513x513 to w Bryce ustawilibymy `512 ­ ultra ­ fine' itd. Na koniec
potwierdzamy wykonane wszystkie przez nas czynnoci klikajc na odpowiednim przycisku:



Jak widzicie siatka terenu zostala zmodyfikowana na podstawie naszej mapy wysokoci.
Mamy wic przygotowany teren, czas naloy na niego material (tekstur), który bdzie
imitowal rodzaj terenu naszej mapki. Program Bryce ma wbudowanych bardzo duo rónego
rodzaju materialów dla terenu poczynajc od terenów skalnych a skoczywszy na pustynnych
czy trawiastych. Aby naloy na nasz teren material, naley klikn na przycisku `Material
Presets'. Przycisk ten to maly trójkcik znajdujcy si z prawej strony menu Edit, tu nad
paskiem narzdziowym (u góry ekranu):



Otworzy si okno `Materials'. Tam klikamy na `Planes & Terrains' i z prawej strony
wybieramy odpowiedni material. Tu pozostawiam Wam woln rk . Ja wybralem `Grassy
Peaks III':


50




wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Potwierdzamy nasz wybór klikajc na odpowiednim przycisku:



Moemy zobaczy jak mniej wicej bdzie wygldal nasz teren z naloon map koloru. W
tym celu klikamy na przycisku `Render' (wielka kula na dole, z lewej strony ekranu):



Renderowanie moe zaj troch czasu. Dodatkowo moemy ustawi odpowiedni kt
nachylenia kamery tak, aby renderowany teren byl lepiej widoczny. Kt moemy ustali za
pomoc wielkiej kuli z niebieskimi strzalkami wskazujcymi cztery kierunki wiata (naley
przytrzyma lewy przycisk myszki na tej kuli i wykona ruch myszk). Ok, teraz
wyeksportujemy nasz teren wraz z bitmapami. Bitmapy te przedstawiaj material, który
naloylimy na teren i to wlanie te bitmapy poslu nam do stworzenia mapy koloru. U góry
ekranu znajduje si ukryte menu programu Bryce. Gdy przesuniemy myszk na gór ekranu
menu to wysunie si. Tam z menu File wybieramy polecenie Export Object:


51

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W oknie, które si pojawi wpisujemy nazw naszego terenu. W obecnej chwili moe to by
dowolna nazwa, nawet ta standardowa. Z listy `Zapisz jako typ' wybieramy `3D Studio 3DS
Files (*.3ds) (Mesh Export)'. Jest to format programu 3D Studio (3D Studio MAX). W ten
sposób zostanie wygenerowany plik, który póniej bdzie mona wczyta do programu 3D
Studio MAX. Wygenerowane zostaie kilka bitmap, które przeksztalcimy w map koloru do
naszej mapki.



Po klikniciu na przycisku `Zapisz' otworzy si okno `Export Terrain'. Aby nasza mapa
koloru byla bardziej realistyczna i posiadala wicej szczególów musimy zmieni pewne
ustawienia przed wyeksportowaniem. Przede wszystkim bd nam potrzebne tylko dwie
bitmapy: `Diffusion Color' i `Bump'. W tym celu po prawej stronie okna, na panelu `Image
Maps' odznaczamy te bitmapy, które s niepotrzebne (tak, aby zostaly zaznaczone `Diffusion
Color' i `Bump'):


52




wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Zwikszymy rozdzielczo naszych bitmap. Tu musicie pamita, aby zawsze ustawia
maksymaln rozdzielczo, czyli 4096x4096. W ten sposób nasza mapa koloru bdzie bardzo
dokladna i szczególowa. Póniej j zmniejszymy do 2048x2048, co pozwoli na wygladzenie
krawdzi itp. Bitmapy te naley zapisywa w formacie bmp, tym samym unikniemy
wszelkich znieksztalce spowodowanych kompresj bitmap (tak jak mialoby to miejsce przy
zastosowaniu formatu np. jpg). Rozdzielczo bitmap i format pliku ustawiamy wybierajc
odpowiednie opcje za pomoc list `Size' i `Format', które znajduj si tu pod panelem
`Image maps':





Na koniec zwikszamy szczególowo siatki terenu. Dokonamy tego zwikszajc liczb
polygonów naszego terenu. Zrobimy to za pomoc suwaka, który znajduje si na dole ekranu:



Przesuwamy go do oporu w prawo (tak jak to jest na powyszym rysunku). Zanim
rozpoczniemy eksportowanie bitmap, odwiemy jeszcze okno z podgldem terenu. W tym
celu klikamy na przycisku:


53



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Odwieanie moe chwil potrwa. Aby rozpocz eksportowanie, klikamy na odpowiednim
przycisku:



Rozpocznie si proces eksportowania a jego postp bdzie widoczny na ekranie:



Jak kady program, take i Bryce nie jest programem doskonalym i ma kilka bldów. Moe
si zdarzy, e przy eksportowaniu nie pojawi si okno postpu, co nie znaczy, e
eksportowanie si nierozpoczelo! W takim przypadku zakoczenie eksportowania mona
pozna po tym, e zostanie zamknite okno `Export Terrain' i program powróci do glównego
okna. A my teraz moemy troch odpocz, wypi herbat , bo eksportowanie troch potrwa.
Czas eksportowania zaley m.in. od prdkoci procesora naszego komputer i iloci pamici
RAM. Warto doda, e kada z wyeksportowanych bitmap bdzie zajmowala ok. 50MB na
dysku. Po wyeksportowaniu proponuj jeszcze zapisa nasz prac w standardowym
formacie Bryce (z menu File wybra polecenie Save As). Pozwoli nam to póniej dokona
ewentualnych poprawek itp. To by bylo na tyle. Bryce ju nie bdzie nam potrzebny, wic
moemy z niego wyj (z menu File wybra polecenie Quit). Teraz uruchamiamy program
Photoshop lub GIMP. Program Bryce wygenerowal dwie bitmapy o nazwach:
MojTeren_diffcol.bmp i MojTeren_bumpamt.bmp. U Was mog one brzmie troch inaczej,
zaley to od tego, jak nadalimy nazw przy eksportowaniu terenu i bitmap, na pewno maj
zakoczenia _diffcol i _bumpamt, dlatego w dalszej czci tego podrozdzialu bd stosowal
wlanie takie nazwy. Obie te bitmapy wczytujemy do Photoshop'a lub GIMP'a. W
Photoshop'ie z menu File wybieramy polecenie Open. W GIMPie robimy tak samo - w
glównym oknie programu (`The GIMP') z menu File wybieramy polecenie Open. Naloymy
teraz bitmap _bumpamt na _diffcol. W tym celu klikamy na pasku tytulowym bitmapy
_bumpamt po to aby stala si aktywna. Teraz naciskamy klawisze CTRL + A (zaznacz

54

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
wszystko) i CTRL + C (kopiuj). Potem klikamy na pasku tytulowym _diffcol (staje si
aktywna) i naciskamy klawisze CTRL + V (wklej). Dobrze, mamy ju naloone bitmapy. W
ten sposób powstala jedna bitmapa, która jest nasz map koloru! Musimy jeszcze ustawi
odpowiednie blendowanie (przenikanie jednej bitmapy przez drug). W programie Photoshop
w tym celu wybieramy polecenie Blending Options z menu Layer (Layer -> Layer Style ->
Blending Options):

PHOTOSHOP


Otworzy si okno `Layer Style'. Teraz z listy `Blend Mode' wybieramy np. `Overlay'. Mona
wybra inne blendowanie np. Soft Light, Hard Light. Wszystko zaley od tego, jaki efekt
chcemy uzyska. Proponuj abycie troch poeksperymentowali:

PHOTOSHOP


Moemy jeszcze zmieni poziom przenikania jednej bitmapy przez drug za pomoc suwaka
`Opacity' (znajduje si zaraz pod list `Blend Mode'), jednak gdy zostawimy na 100% nasza

55

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
mapa koloru bdzie bardziej szczególowa. Uytkownicy GIMP'a jak zwykle musz postpi
troch inaczej. Po naloeniu jednej bitmapy na drug przechodzimy do okna `Leyers,
Channels & Paths'. Tam klikamy na przycisku `New Layer':

GIMP


Na zakladce `Layers' kilkamy na przycisku `Mode' a tam z listy wybieramy np. `Overlay'.
Tak samo jak to mialo miejsce w Photoshop'ie, wszystko zaley od tego, jaki chcemy
uzyska efekt. Wybierzmy jednak `Overlay':

GIMP


Tu take moemy zmieni warto przenikania jednej bitmapy przed drug za pomoc
suwaka `Opacity' (suwak znajduje si tu pod opcj `Mode'):

GIMP


Pozostawmy jednak warto 100.0. Da to o wiele lepszy efekt. Dobrze, bitmapy mamy
naloone. W ten sposób powstala jedna bitmapa, ta bitmapa to wlanie mapa koloru . Moe
si okaza, e po zmianie blendowania bitmapa jest zbyt ciemna. Wtedy trzeba j rozjani.
W Photoshop'ie wybieramy polecenie Brightness/Contrast z menu Image (Image ->
Adjustments -> Brightness/Contrast):

PHOTOSHOP

56


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Otworzy si okno `Brightness/Contrast'. Tam za pomoc suwaków mona zmieni jasno
bitmapy (`Brightness') a take kontrast (`Contrast'):

PHOTOSHOP


Uywajc GIMP'a musimy klikn prawym przyciskiem myszki na naszej bitmapie a tam
wybra polecenie Brightness-Contrast z menu Image (Image -> Colors ->
Brightness-Contrast):

GIMP


Otworzy si okno `Brightness-Contrast'. Tam za pomoc suwaków mona zmieni jasno
bitmapy (`Brightness') i jej kontrast (`Contrast'). Potem kilkamy na przycisku `OK'.

GIMP

57

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Bitmap musimy zmniejszy do rozdzielczoci 2048x2048. W Photoshop'ie, z menu Image
wyberamy polecenie Image Size. W oknie `Image Size' wpisujemy warto 2048 w polu
`Width' i `Height', potem kilkamy na przycisku `OK':

PHOTOSHOP


Uytkownicy GIMP'a klikaj prawym przyciskiem myszki na mapie koloru i z menu Image
wybieraj polecenie Scale Image. W oknie `Scale Image' wpisujemy warto 2048 w polu
`New Width' i `Height', potem kilkamy na przycisku `OK':

GIMP


Na koniec bitmap musimy odbi w pionie (nie myli z obracaniem!). W Photoshop'ie
dokonujemy tego za pomoc polecenia Flip Canvas Vertical z menu Image (Image -> Rotate
Canvas -> Flip Canvas Vertical
):

PHOTOSHOP

58

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W GIMP'ie trzeba si wicej napracowa aby odbi bitmap w pionie. Przechodzimy do
okna `Layers, Channels & Paths', klikamy prawym przyciskiem mysz na warstwie `Floating
Selection' (nie jest to typowa warstwa, jest to zaznaczenie, które powstalo w wyniku
naloenia jednej bitmapy na drug) i wybieramy polecenie Anchor Layer:

GIMP


Teraz klikamy prawym przyciskiem myszki na naszej bitmapie i wybieramy polecenie Flip z
menu Tools (Tools -> Transform Tools -> Flip):

GIMP

59



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Zwrócie uwag, e kursor przyjl posta dwóch malych strzaleczek skierowanych w lewo i
prawo. My chcemy odbi bitmap w pionie. W tym celu naley posluy si klawiszem
CTRL (kursor przyjmie posta dwóch malych strzalek skierowanych do góry i w dól).
Trzymajc wcinity klawisz CTRL, klikamy na naszej bitmapie. Bitmapa zostanie odbita w
pionie. Gotowe! Mamy nasz map koloru! Prawda, e proste?! Musimy oczywicie jeszcze
j zapisa. W tym celu w Photoshop'ie wybieramy polecenie Save As z menu File. W oknie
`Save As' wpisujemy nazw naszego pliku. Niech to bdzie MojaMapa_C. Dodamy _C aby
zaznaczy, e to mapa koloru (ColorMap). Jako format pliku wybieramy png. Klikamy na
przycisku `Zapisz'. Na zadane pytanie zaznaczymy opcj `None' i klikamy na przycisku
`OK':

PHOTOSHOP


W GIMP'ie klikamy prawym przyciskiem myszki na naszej bitmapie i take wybieramy
polecenie Save As z menu File. W oknie `Save Image' wpisujemy nazw MojaMapa_C a jako
format pliku wybieramy png (lista `Determine File Type' na panelu `Save Options'):

GIMP

60

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Pamitajcie, e najpierw wpisujemy nazw pliku a dopiero potem wybieramy format pliku.
W innym przypadku nasza zapisana bitmapa bdzie zapisana bez rozszerzenia (np.
MojaMapa_C zamiast MojaMapa_C.png). Kilkamy na przycisku `OK'. Otworzy si okno
`Save as PNG'. Wszystkie opcje pozostawiamy bez zmian i jeszcze raz kilkamy na przycisku
`OK'. Zacznie si proces zapisu naszej mapy koloru. I to wszystko .
Na obecnym etapie taka mapa koloru nam wystarczy. Póniej z podrozdzialu o
modyfikacji mapy koloru dowiecie si jak doda do niej drogi itp. a take poddamy j kilku
filtrom, co doda jej jeszcze bardziej realistycznego wygldu. Nie opisuj tego w tym
podrozdziale, poniewa teren naszej mapki bdziemy jeszcze modyfikowa za pomoc
plug-in'a ,,Terrain" a tym samym wygld mapy koloru na pewno ulegnie zmianom. Na razie
zaprzestajemy prac w programach graficznych i zabierzemy si za edytor ChromEd! Mamy
ju map wysokoci, mamy map koloru. Mamy ju wszystko, co potrzebne do rozpoczcia
prac nad mapk, wic uruchamiamy edytor ChromEd, pod warunkiem, e zaznajomilicie si
z rozdzialem o podstawach obslugi edytora, bo to ulatwi Wam prac.

3.4 Czas na edytor ChromEd.
Przy omawianiu samego edytora wspomnialem, e najlepszym sposobem na prac z
edytorem ChromEd to praca w jednym tylko widoku, widoku perspektywicznym. To widok z
kamery, któr moemy dowolnie ustawia. Dlatego pierwsze co robi to maksymalizuj
widok perspektywiczny (standardowo jest to widok, który mieci si z prawej strony na dole
[view 3 Perspective]). Robi si to tak samo jak w innych programach windowsowych:



No dobrze, ale eby nie przedlua wstpu wemy si do pracy . Kad tworzon mapk dla
gry Chrome zaczyna si od uruchomienia plug-in'a (o plug-in'ach wspomnialem przy
omawianiu edytora ChromEd) ,,Environment". Jest to jeden z podstawowych plug-in'ów, bez
którego niemoliwe jest stworzenie nowej mapki. Plug-in ten ma za zadanie:
- okrelenie klasy danej mapki (czy bdzie to mapka singleplayer'owa czy te
multiplayer'owa),
- stworzenie terenu na podstawie przygotowanych wczeniej bitmap (mapa wysokoci i mapa
koloru),
- stworzenia grid'a (siatki) dla obiektów, inaczej nie bdzie moliwe ich umieszczanie na
mapce,
- okrelenie parametrów nieba i sloca,
- okrelenie parametrów mgly,
- okrelenie parametrów wody,
- wygenerowanie lightmap'y (omówi w podrozdziale o lightmap'ie).

61

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Zanim rozpoczniemy prac przygotujmy sobie katalog (pisalem ju o tym w rozdziale
pierwszym), w którym bdzie umieszczona nasza mapka oraz wszystko co z ni zwizane
(mapa wysokoci, mapa koloru itp.). Taki katalog utworzymy w katalogu z gr a dokladnie w
tym katalogu w którym znajduj si mapki do gry sieciowej: \Data\LevelsNet\. Wic w tym
katalogu utwórzmy podkatalog z nazw naszej mapki np. MojaMapka. Do tego katalogu
(\Data\LevelsNet\MojaMapka\) przegrywamy nasz map wysokoci i map koloru.
Skoro wiemy ju, do czego sluy ten plug-in ,,Environment" postaramy si teraz go
wykorzysta i stworzy pierwsz nasz mapk. Jak wczeniej wspomnialem sam edytor
stosuje okrelenie level a nie mapka, jednak chodzi o to samo! Uruchamiamy plug-in
,,Environment" klikajc na jego ikonie (pasek narzdzi szczególowo omówilem w rozdziale o
podstawach edytora ChromEd w podrozdziale o interfejsie):



Otworzy si okno atrybutów obiektów (`Object attributes'). Tu do istotna informacja.
Tworzone w edytorze ChromEd mapki s traktowane przez sam edytor jako obiekt. Prosz o
tym pamita! To dlatego po klikniciu na ikonie plug-in'a ,,Environment" otwiera si okno
atrybutów obiektów, wicej na temat tego okna napisz w rozdziale o obiektach
w podrozdziale o atrybutach obiektów. Przede wszystkim musimy zdecydowa czy bdziemy
robi mapk dla gry singleplayer (dla pojedynczego gracza) czy te multiplayer (gra przez
internet lub sie dla wielu graczy) przypisujc odpowiedni klas do naszej mapki. Z
zaloenia dokument tem ma Was nauczy jak robi mapki multiplayer'owe (jednak osoby
chcce tworzy mapki singleplayer'owe te nie bd pokrzywdzone ). Klikamy na przycisku
trzykropka obok pola `Class':



Otworzy si okno wyboru klasy (`Choose class'). Tam wybieramy klas ModuleNet
(Module -> ChromeModule -> ModuleNetBase -> ModuleNet):




62

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Jeeli nasza mapka bdzie dla trybu Assault (opis dostpnych trybów gry multiplayer w grze
Chrome znajdziecie w rozdziale o aspektach gry multiplayer), to musimy przypisa jej klas
ModuleNetASSAULT (Module -> ChromeModule -> ModuleNetBase -> ModuleNet ->
ModuleNetASSAULT). Potem kilkamy na przycisku `OK'. Jednak mam pewn sugesti. Na
razie nasz mapk ustawimy jako mapk singleplayer'ow. Dlaczego? Jeeli tego nie
zrobimy nie bdziemy mogli testowa naszej mapki z poziomu edytora. Mapka
singleplayer'owa musi mie przypisan klas ChromeModuleSingle. Wic wybieramy t
wlanie klas (Module -> ChromeModule -> ChromeModuleSingle):



Po wybraniu klasy ChromeModuleSingle klikamy na przycisku `OK'. Z lewej strony okna
atrybutów obiektów znajduj si zakladki. Kada zakladka ma jakie przeznaczenie. Obecnie
jestemy w zakladce `Java'. W rozdziale o obiektach w podrozdziale o atrybutach obiektów
nie opisuj zakladki `Java', dlatego wicej na jej temat moecie przeczyta teraz. Na tej
zakladce ustawiamy atrybuty przypisanej klasy. Dotyczy to wszystkich obiektów, take samej
mapki, która traktowana jest jak obiekt (prosz o tym pamita!). Dostpne na tej zakladce
atrybuty zale od przypisanej do obiektu klasy Java. Oto znaczenie poszczególnych
atrybutów dla klas ModuleNet, ModuleNetASSAULT i ChromeModuleSingle:
- atrybut (Attribute) bDisableSun w sekcji SUN pozwala wylczy lub wlczy sloce:
warto (Value) `flase' wlcza sloce, warto `true' wylcza sloce,
- atrybut bDisableSunBlinding w sekcji SUN pozwala wylczy lub wlczy efekt
,,olepiania" przez sloce:
warto `false' wlcza efekt olepiania, warto `true' wylcza efekt,



- atrybut fDefaultClipFar w sekcji VISRANGE to odleglo od gracza lub kamery, do której
bd rysowane face'y,
- atrybut fDefaultClipNear w sekcji VISRANGE to odleglo od gracza lub kamery, od której
bd rysowane face'y,
- atrybut fMeshCullSize w sekcji VISRANGE to rozmiar obiektu (w pikselach), powyej
którego obiekt jest rysowany ­ im mniejszy rozmiar tym dalej rysuj si obiekty,
- atrybut fVisRangeObjects w sekcji VISRANGE to odleglo od gracza lub kamery, do
której bd rysowane obiekty, te, które znajd si w wikszej odlegloci od
fVisRangeObject nie bd widoczne (bd pojawia si w momencie zbliania gracza lub
kamery do tych obiektów),
- atrybut fVisRangeObjectsBlend w sekcji VISRANGE to odleglo od gracza lub kamery,
od której obiekty zaczynaj robi si przeroczyste (w odlegloci fVisRangeObjectsBlend
s nieprzeroczyste a w fVisRangeObjects s zupelnie przeroczyste),


63

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


- atrybut fTerrainError w sekcji TERRAIN to maksymalna dopuszczalna rónica w
upraszczaniu terenu ­ im wiksza warto tym teren mapki bardziej si upraszcza, im
mniejsza warto tym mniej si upraszcza,



- atrybut nMapMargin pozwala ustawi margines minimapy (jest to mapa, która ukazuje si
po naciniciu klawisza M w grze Chrome),
- atrybut slnGameMap w sekcji MAP pozwala wczyta bitmap z minimap (zdjcie
satelitarne), jak zrobi tak map przeczytacie w podrozdziale o minimapie,



- atrybut sLevelName w sekcji NAME pozwala wpisa nazw naszej mapki (level'u), aby
zmieni nazw mapki naley dwukrotnie klikn przy odpowiednim atrybucie (Attribute) w
miejscu ustawiania wartoci (Value)



Prosz pamita, e wartoci w sekcji VISRANGE podawane s w jednostkach, gdzie
100 jednostek = 1m fizyczny (nie dotyczy tylko atrybutu fMeshCullSize, gdzie warto
podawana jest w pikselach). Ogólnie sekcja VISRANGE odpowiada za efekt wizualny
obiektów dostpnych na mapce (np. aby obiekty poloone daleko od gracza lub kamery nie
pojawialy si nagle ,,z podziemi", lecz stopniowo w miar zbliania si do nich gracza lub
kamery) a take pozwala ,,oszczdza" engine Chrome ­ obiekty znajdujce si gdzie daleko
nie musz by przecie od razu wywietlane. A na czym polega upraszczanie terenu? Czym
gracz jest bardziej oddalony od jakiego fragmentu terenu mapki, tym teren pozbawiany jest
pewnych szczególów (których których tak nie wida z duej odlegloci). W momencie, gdy
gracz si zblia do danego fragmentu terenu mapki, szczególy te sprzywracane. Nie raz takie
upraszczanie wida golym okiem ­ efekt jakby falowal telen itp. To tyle, jeeli idzie o
VISRANGE i upraszczenie terenu. Przy niektórych atrybutach (jak np. bDisableSun) jest ju
gotowa lista wartoci do wyboru. Poniewa chcemy, aby sloce bylo wlczone ustawiamy
atrybut bDisableSun na false (zreszt jest to warto standardowa). Oczywicie moemy
nada nazw naszej mapce, ja to zrobilem (jak wida na powyszym rysunku). Teraz wida
to, o czym wspominalem przy omawianiu okna atrybutów obiektów (w rozdziale o
podstawach obslugi edytora ChromEd w podrozdziale o oknie atrybutów obiektów).
Mianowicie zakladka `Java` (a take `Mission') ma tak wlaciwo, e atrybut, którego
wartoci nie zmienialimy podwietlany jest na szaro, natomiast ten, który byl zmieniany
(nawet wtedy, jeeli ponownie ustawilimy standardow warto) podwietlany jest na

64

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
czarno. W ten sposób latwo zauway, które wartoci s standardowe a które zmienialimy.
Dodatkowo w klasach ModuleNet, ModuleNetASSAULT i ChromeModuleSingle dostpne
s atrybuty, które pozwalaj generowa na naszej mapce deszcz lub nieg. Wicej na ten
temat znajdziecie w rozdziale o tworzeniu zdarze w edytorze ChromEd w podrozdziale o
generowaniu deszczu i niegu.
Nastpn zakladk dostpn w plug-in'ie ,,Environment" a dokladniej w oknie atrybutów
obiektów, jest zakladka `Mission'. W tej chwili nie bd jej omawial, bo w przypadku mapek
multiplayer'owych nie ma ona zastosowania, natomiast przy mapkach singleplayer'owych
pozwala ona na utworzenie pocztkowych zdarze na takiej mapce - moemy np.
zadeklarowa zmienne i je zainicjalizowa, moemy take przypisa zdarzenia do klawiszy
F2, F3, F7 i F8. Wicej na temat mapek singleplayer'owych napisz w rozdziale o aspektach
gry singleplayer. Oczywicie inne obiekty te mog mie atrybuty w zakladce `Mission',
wszystko zaley od tego, jak klas ma przypisany dany obiekt.
Przejdmy do kolejnej zakladki. Ta zakladka to `Terrain'. No i jestemy w sednie sprawy tzn.
za pomoc tej zakladki edytor ChromEd wygeneruje teren. Zaczynamy! Klikamy na
przycisku trzykropka obok pola `HeightMap'. Otworzy si standardowe okienko systemu
Windows do otwierania plików. Kierujemy si do katalogu \Data\LevelsNet\MojaMapka\ i
tam wskazujemy nasz map wysokoci (MojaMapa_H.png):



Nastpn map jest mapa koloru (`ColorMap'). Tak sam jak przy mapie wysokoci klikamy
na przycisku trzykropka obok pola `ColorMap' i wskazujemy nasz map koloru
(MojaMapa_C.png). Kolejn map jest mapa detalu (szczególów), któr omówilem na
wstpie tego rozdzialu. Dla przypomnienia jest to tekstura, która zostanie naloona na map
koloru i bdzie powielona na calym terenie a któr gracz bdzie widzial ,,pod nogami" i w
jego pobliu. Wykorzystamy jedn ze standardowych tekstur dolczonych do gry Chrome.
Oczywicie moecie naloy swoj map detalu, skopiujcie j jednak do naszego katalogu
(\Data\LevelsNet\MojaMapka\) tak by wszystko bylo w jednym miejscu. Jeeli nic nie macie
to kierujemy si do katalogu \Data\Textures\ i wybieramy plik np. CH_B_SpekaneBloto.png.
Jest to ta sama tekstura, któr przedstawilem przy opisie zasad generowania terenu przez gr
Chrome. Pozostaje nam jeszcze lightmap'a (`LightMap'). Na razie jej nie mamy,
wygenerujemy j dopiero, gdy cala nasza mapka bdzie gotowa. Wic tymczasowo
wykorzystamy standardowe owietlenie (najlepiej biale), które bdzie imitowa lightmap'.
Klikamy na przycisku trzykropka obok pola `LightMap' i kierujemy si do katalogu
\Data\Interface\ a tam wybieramy plik ER_T_White.png. Musimy poda jeszcze wielko
naszej mapki tzn. jak wielki bdzie teren. Ustawiamy to w polach `Map size'. Pierwsze pole
okrela szeroko terenu (X), drugie wysoko (Y) a trzecie dlugo (Z). Pamitajcie, e 100
jednostek = 1m fizycznie. Myl, e wielko 250m x 250m bdzie wystarczajca. Wysoko
mapki ustawmy na 40m. Wpisujemy wic wartoci dla X = 25000, dla Y = 4000 i dla Z =
25000:


65


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Wana informacja! Nasza wielko mapki 250m na 250m (szeroko i dlugo) to nie
wielko calej mapki wygenerowanej na podstawie mapy wysokoci! Aby lepiej to zrozumie
zerknijcie na rysunek:



Obszar zaznaczony na czerwono to wlanie nasze 250m na 250m! Tam gdzie nie ma
uwypukle (widnieje kolor czarny) bdzie woda, tym samym edytor ChromEd a take sama
gra, nie bierze tego pod uwag przy ustawianiu dlugoci i szerokoci mapki! Musz przyzna,
e nasza mapka bdzie naprawd mala. Mapki w grze Chrome s kilkakrotnie wiksze.
Mapki, które bdzicie tworzy te powinny by wielkie, szczególnie jeeli chcecie na nich
dodawa budynki itp. Pole `Detail tile' okrela jak gsto bdzie powielana mapa detalu
(DetailMap). Warto tu wpisana okrela ile razy mapa bdzie powielana w osiach X i Z np.
warto 1 oznacza, e DetailMap bdzie mapowana na caly teren bez powielania, warto 2
oznacza, e bdzie mapowana na wiartk terenu (na polow dlugoci mapy w osiach X i Z)
itd. Na razie zostawimy warto 64. Jeeli mapa detalu bdzie zbyt dua (lub mala) to
zmienimy jej warto póniej. Zreszt odpowiedni warto mona dobra metod prób i
bldów. W nowszej wersji edytora na zakladce `Terrain' pojawil si dodatkowy panel
`Materials':


66


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Tu moemy naloy odpowiednie materialy (materialy to specjalne tekstury - przewanie na
material przypada kilka rónego rodzaju tekstur, kada z tych tekstur ma swoje specyficzne
wlaciwoci oraz wygld) na teren i horyzont naszej mapki. Jeeli chcemy naloy material
na teren mapki to kilkamy na przycisku trzykropka obok pola `Terrain', jeeli chcemy
naloy material na map detalu to kilkamy na przycisku trzykropka obok pola `LOD' (LOD
to skrót od ang. Level Of Detail ­ poziom szczególów). Natomiast, jeeli chcemy naloy
material na horyzont taszej mapki to kilkamy na przycisku trzykropka obok pola `Horizon'.
Oczywicie materialy mona naloy na wszystkie trzy elementy naraz. Materialy dostpne
s w katalogu \Data\Materials\Terrain\. Niestety, dostpne s tam tylko materialy stworzone
przez twórców gry Chrome i to do mapek wchodzcych w sklad gry Chrome, wic za bardzo
si nie przydadz . Nam pozostaje pozostawi te pola puste tzn. nie naklada adnego
materialu. Pozostalo jeszcze do omówienia kilka opcji i zakladek jednak zrobimy to ju po
wygenerowaniu terenu. Myl, e moemy teraz to zrobi. W tym celu klikamy na przycisku
`Apply' znajdujcy si z prawej strony na dole okna atrybutów obiektu (`Objects attributes').
W ten sposób zostanie wygenerowany teren. Moe zaj to troch czasu. Jednym widocznym
elementem towarzyszcym tworzeniu terenu bdzie kursor myszki, który na ten czas
przyjmie ksztalt klepsydry. Po zakoczeniu powróci do standardowego wygldu. No wlanie,
kursor jest ju normalny a terenu nie ma . Spokojnie, on tam jest tylko go nie wida. Nie
do, e kamera obserwatora ley prawie w terenie to na dodatek jest zwrócona plecami do
naszego terenu. Ale my to zmienimy. Zamykamy na razie okno atrybutów obiektu.
Naciskamy klawisz G (tryb obserwacji, klawiszy skrótowe oraz opis interfejsu edytora
ChromEd omówilem w rozdziale o podstawach obslugi edytora ChromEd) i obracamy
myszk w lewo tak dlugo a zobaczymy nasz teren (musimy obróci si o 180 stopni). No ja
ju widz mój teren :




67

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Jeszcze raz naciskamy klawisz G (wychodzimy z trybu obserwacji) i naciskamy klawisze
ALT + P. Trzymajc wcinity lewy klawisz myszki przesuwamy j na dól, w ten sposób
kamera obserwatora podnosi si. Nadal jednak nie jestemy nad obszarem terenu, musimy si
tam przysun (przysun kamer). Naciskamy klawisze ALT + Z i trzymajc wcinity lewy
klawisz myszki przesuwamy j do góry tak dlugo a znajdziemy si nad naszym terenem
(blisko dwóch gór, które wida). Moemy te obraca kamer, w tym celu naciskamy
klawisze ALT + R i trzymamy wcinity lewy klawisz myszki obracamy j. Prawda, e nasz
teren wyglda wspaniale ?! Musimy stworzy jeszcze grid'a (siatk), która umoliwi nam
stawianie obiektów na mapce a take pozwoli porusza si po terenie (bez grid'a moe by
trudno operowa kamer obserwatora w oknach widokowych), musimy te doda niebo,
wod. Wszystko to zrobimy w plug-in'ie ,,Environment" wic ponownie go uruchamiamy.
Przelczamy si na zakladk `Terrain'. Tam znajduje si panel `Objects grid sizes'. Tu
ustalamy, w jakim obszarze bdzie mona stawia obiekty na mapce. Myl, e my na naszej
mapce moemy stawia obiekty wszdzie tam, gdzie jest teren, wic w polach `Maximum'
wpisujemy odpowiednio X = 25000, Y = 4000, Z = 25000. Jest te prostszy sposób.
Wystarczy klikn na przycisku `Get extends from terrain'. Wartoci te zostan
automatycznie pobrane i uzupelnione na podstawie wielkoci naszej mapki (Map size):



W ten sposób nasz grid (siatka) bdzie na calym obszarze terenu mapki. Pole `CellSizeX'
odpowiedzialne jest za szeroko pojedynczej kartki siatki a pole `CellSizeZ' za dlugo
pojedynczej kratki siatki. Myl, e siatka o przekroju kratki 20m szeroka i 20m dluga
powinna wystarczy, wic te wartoci pozostawiamy bez zmian. Aby zatwierdzi
wprowadzone przed chwilk zmiany, klikamy na przycisku `Apply'. Grid jest niewidoczny
na mapce! Przechodzimy do zakladki `Sky'. To tu przypiszemy wygld nieba a take
ustawimy pozycj sloca. Zaczynamy od nieba. Kilkamy na przycisku trzykropka znajdujcy
si obok pola `Sky mesh' i kierujemy si do katalogu \Data\Meshesh\Sky\. W tym katalogu
mamy kilka gotowych obiektów przedstawiajcy wygld nieba. Wybierzcie, co uwaacie za
stosowne. Naprawd jest w czym wybiera. Ja proponuj NieboLevel01.3da..Wane te, aby
przycisk `Enable' byl wcinity, inaczej niebo bdzie niewidoczne (wylczone):


68

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Skoro mamy ju niebo wybrane to musimy jeszcze potwierdzi nasz operacj. Zatem znowu
klikamy na przycisku `Apply'. No i brawo mamy niebo. Na panelu `Sun position' ustawimy
pozycj sloca. Podajemy tu kt poloenia sloca wzgldem osi XZ (lewo ­ prawo, pole
`Angle in XZ') i YZ (góra ­ dól, pole `Angle in YZ'). Na razie proponuje pozostawi warto
0 dla obu pól, aby zobaczy gdzie znajdzie si sloce. Potwierdzamy przyciskiem `Apply' i
zamykamy okno atrybutów obiektów. Naciskamy klawisz G i obracamy myszk.
Rozgldamy si i co? Nie ma sloca? No tak, nie ma. Jest to bld edytora ChromEd. Sloce
pojawi si dopiero po ponownym wczytaniu naszej mapki. Skoro tak to zapiszmy najpierw
nasz mapk. W tym celu z menu File wybieramy polecenie Save As i kierujemy si do
katalogu \Data\LevelsNet\MojaMapka\, podajemy nazw pliku np. MojaMapka i klikamy na
przycisku `Zapisz'. Jeeli Wasza mapka bdzie mapk singleplayer'ow, to musice j zapisa
w katalogu \Data\Levels\MojaMapka\. Nasza cika praca zostala zapisana i mamy pewno,
e nie bdziemy musieli robi wszystkiego od nowa. Prosz pamita, aby zawsze nazwa
mapki byla taka sama jak nazwa katalogu, w której ta mapka si znajduje tak jak to ma
miejsce w naszym przypadku tzn. katalog ma nazw MojaMapka i mapka ma nazw
MojaMapka. Prosz te pamita, aby nazwy nie zawieraly spacji i aby byly w miark krótkie
(dotyczy to zarówno nazw katalogów, w których mapki si znajduj jak i nazwy samych
mapek). Ja stosuj max do 15 znaków. Ta uwaga dotyczy si w zasadzie wszystkich nazw,
take map wysokoci, map koloru itp. Jeeli nasza mapka bdzie mapk singleplayer'ow to
musimy j umieci w katalogu \Data\Levels\ (\Data\Levels\MojaMapka\). Teraz trzeba
ponownie wczyta mapk, bo bdziemy dalej nad ni pracowa. Tym razem bdzie widoczne
jednak sloce. Wybieramy polecenie New z menu File (musimy jako zresetowa edytor
ChromEd) a potem otwieramy nasz mapk wybierajc polecenie Open z menu File. Teraz
ju wida sloce . Znajduje si ono na dole (ustawcie sobie odpowiednio kamer):


69


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Uruchamiamy ponownie plug-in ,,Environment" (przypominam, e klikamy na ikonie z
literami `Lv'), przechodzimy do zakladki `Sky'. W polu `Angle in YZ' wpiszemy np. 15
(prosz pamita o klikniciu na przycisku `Apply' w celu potwierdzenia zmian!). Jak
widzimy sloce podnioslo si. Jeeli zaslania nam okno atrybutów obiektów (`Objects
attributes') to moemy je zamkn lub przesun w inne miejsce. Zmiemy teraz warto na
30. Sloce jeszcze bardziej si podnioslo. Wpiszmy teraz jak warto np. 20 w polu `Angle
in XZ'. Jak mona zauway sloce przesunlo si na prawo. Myl, e tak moemy
zostawi. Mam te nadziej, e rozumiecie ,na czym polega ustawianie któw pozycji sloca.
Sloce mona umieszcza w przedziale -180 - 180 stopni. Na okolo naszej wyspy dodamy
wod. W plug-in'ie ,,Environment" przelczamy si na zakladk `Water'. Tam podajemy
material naszej wody. W tym celu klikamy na przycisku trzykropka obok pola `Material' i
kierujemy si do katalogu \Data\Materials\Water\. Znajdziemy tam klika materialów wody,
kady z materialów daje inny efekt jednak powszechnie stosowany to
water_texblend_refl.mat. Z uyciem takiego materialu bd odbija si inne elementy mapki
(obiekty, teren, niebo itd.). Sami troch poeksperymentujcie i sprawdcie co kady material
robi. Uwaga! Dopóki nie ustawimy wszystkich parametrów wody, nie zaznaczajcie jeszcze
opcji `Enable' (wlczenie wody). Jeeli parametry bd zle edytor moe wyrzuci jaki bld i
trzeba bdzie od nowa go uruchomi, wczyta mapk i ustawia parametry wody, co moe
by do nuce. Pamitajmy te, aby do czsto zapisywa nasz prac (klawisz skrótu to
CTRL + S). Pole `Scale tile' odpowiada za powielanie materialu wody (co podobnego do
powielania mapy detalu). T warto zasadniczo zostawia si tak, jaka jest tzn. 0.001.
Oczywicie mona poeksperymentowa i zobaczy, co si bdzie dzialo z wod, jeeli
zmienimy warto tego parametru. Warto teraz przyjrze si panelowi `Extent':


70

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


To tu ustalamy gdzie bdzie woda oraz jak wysoka bdzie ta woda. Pierwsza opcja `whole
terrain' odpowiada za to, e woda bdzie znajdowa si wokól naszego terenu (czyli akurat
jest to opcja dla nas) a dokladnie tam gdzie na naszej mapie wysokoci znajdowal si czarny
kolor, cho to te zaley od tego jak wysoki bdzie poziom wody. Jeeli po rodku naszej
wyspy zrobilibymy jakie jezioro to woda oczywicie te by si w nim znalazla. Tu warto
zauway, e jeeli nasz teren bdzie mial doliny a poziom wody na zewntrz mapki bdzie
do wysoki to doliny te mog zosta zalane, co nie zawsze musi by zamierzonym przez nas
efektem (np. jeeli bdziemy chcieli zrobi okopy a poziom wody na zewntrz mapki bdzie
wysoki to nasze okopy zostan zalane). Druga opcja, `part of terrain', odpowiada za to, aby
woda znajdowala si w wyznaczonym przez nasz obszarze mapki. Tu take wana
informacja. Jeeli na okolo naszej mapki ma by woda a po rodku mamy jezioro i chcemy,
aby tam byla woda to nadal zaznaczmy opcj whole terrain! Opcj `part of terrain' stosuje si
wtedy, jeeli naokolo naszej mapki nie bdzie wody (np. caly nasz teren bdzie w dolinie a na
okolo bd góry) ale chcemy aby po rodku byla woda (np. w jakie rzeczce czy te jeziorze).
W tym przypadku wpisujemy po prostu wartoci gdzie ta woda ma si znale (lewy górny
punkt i prawy dolny punkt). Aby ulatwi nam prace, twórcy edytora ChromEd dodali
przycisk `Pick from terrain'. Wystarczy klikn na ten przycisk a potem na naszym terenie
rysujemy prostoktny obszar (tak jakbymy zaznaczali kilka obiektów na raz) na terenie, w
miejscu gdzie ma znale si woda. Wartoci te zostan automatycznie pobrane z
zaznaczonego obszaru i nie trzeba nic wpisywa. Dla naszej mapki zaznaczamy whole terran.
Kolejne pole to `Water level'. Jest to poziom wody (wysoko). Wpiszmy tam na pocztek
warto 300, zaznaczmy opcj `Enable' (wlczamy wod) i kliknijmy na przycisku `Apply'.
Naszym oczom ukae si woda znajdujca si na okolo terenu. Przesucie kamer tak, aby
zobaczy obrzee naszego terenu. Jak latwo zauway woda jest za nisko (no chyba, e tak
chcecie ):


71


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Wic wpisujemy inn warto. Moim zdaniem 930 (jest to 9.3m) bdzie odpowiedni
wartoci. Woda bdzie akurat na samym brzegu wyspy. Zajmiemy si jeszcze falami na
wodzie. Za fale odpowiedzialny jest panel `Waves' oraz `Waves animations':



Panel `Scale' (na panelu `Waves') odpowiada za skal fali w osi X (szeroko) i Z (dlugo).
Proponuj wpisa wartoci X = 10 i Z = 10. Pole `Amplitude' to czstotliwo, z jak bdzie
wystpowala fala na wodzie a pole `Speed' to prdko fali. Tu proponuj wpisa
odpowiednio 8 (Amplitude) i 4 (Speed). Pole `FPS' (na panelu `Waves animations') to ilo
klatek animacji fali. Standardowa warto (10) bdzie odpowiednia. Kilkamy na przycisku
`Apply'. No i prosz bardzo, zaraz zauwaymy, e nasza woda si rusza! Proste? Chyba tak.
Dla bezpieczestwa zapiszmy to co zrobilimy. Z menu File wybieramy polecenie Save lub
po prostu naciskamy CTRL + S. Proponuj take poeksperymentowa z wartociami dla
wody i jej animacji (fale), moe osigniecie duo lepsze efekty. Myl, e nadszedl czas, aby
zobaczy jak nasz teren bdzie wygldal z poziomu gry . Przede wszystkim do naszej mapki
trzeba doda bohatera gry Chrome, czyli Logana. W tym celu posluymy si innym plug-
in'em ­ ,,Mesh Browser". Plug-in ten bardziej szczególowo opisz w rozdziale o obiektach w
podrozdziale o dodawaniu obiektów. Tu tylko powiem jak doda Logana, bez wchodzenia w
szczególy. Standardowo ten plug-in jest ju uruchomiony i znajduje si z prawej strony
edytora ChromEd. Jeeli go tam nie ma, to klikamy na odpowiedniej ikonie:


72

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Jeeli ikona ta jest wcinita (tak jak na rysunku) oznacza to, e plug-in ,,Mesh Browser" jest
ju aktywny (i powinien znajdowa si z prawej strony edytora ChromEd). W plug-in'ie tym
rozwijamy list katalogów tak, aby dosta si do katalogu \Data\Meshesh\Logan\:



Na tej licie wyszukujemy plik Logan.3da i zaznaczamy go, potem klikamy na przycisku `Put
Object', który znajduje si u góry plug-in'a ,,Mesh Browser". Jeeli go nie wida
przesuwamy zawarto plug-in'a za pomoc paska przewijania znajdujcego si z prawej
strony:



Skoro przycisk `Put Object' jest wcinity to klikamy gdziekolwiek na naszym terenie, byle
byl to plaski teren. Nie stawiajmy Logana na górach . Zadbajmy te o to, aby Logan stal przy
samej ziemi (a nie wisial w powietrzu). W tym celu klikamy na ikonie ,,rzucania" obiektu na
teren:




73

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Teraz nacinijmy klawisz X. Tym samym kamera obserwatora aktywnego okno widokowe
zostanie wyporodkowane na naszym Loganie. Moemy te obraca kamer wokól Logana.
W tym celu kliknijmy na ikonie orbitowania (caly interfejs edytora a take zasad
poslugiwania si odpowiednimi funkcjami opisalem w rozdziale na temat obslugi edytora
ChromEd w podrozdziale o interfejsie edytora):



Przytrzymujc wcinity lewy klawisz myszki i wykonujc ruch myszk orbitujemy kamer
obserwatora wokól Logana. Dodatkowo mona przyblia i oddala kamer za pomoc
klawiszy kursora lub obracajc rolk myszki (o ile takow nasza myszka ma). Teraz widzimy
ogrom naszej mapki. Musz powiedzie, e udalo si nam za pierwszym razem ustawi
odpowiednie powielanie mapy detalu ­ nie musimy zmienia wartoci pola `Detail tile' w
zakladce `Terrain' plug-in'u ,,Environment". Jak wida pod nogami Logana tekstura dobrze
pasuje, jest w miar bardzo wyrana. To samo tyczy si wysokoci samej mapki, góry s nie
za niskie nie za wysokie. Tak zostawiamy! Naciskamy klawisz S (tryb zaznaczania obiektów)
i dwukrotnie klikamy na obiekcie Logana. Otworzy si znajome okno atrybutów obiektów
(`Objects attributes'). Abymy mogli wcieli si w posta Logana podczas gry musimy mu
przypisa odpowiedni klas, klas PlayerSingle (gracz singleplayer'owy). Standardowo
klasa PlayerSingle jest ju przypisana do obiektu Logana, ale gdyby tak nie bylo to klikamy
na przycisku trzykropka obok pola `Class' i wybieramy klas PlayerSingle (MeshObject ->
TriggerObject -> ChromeActor -> AnimActor -> Pawn -> PawnAnimated -> Player ->
PlayerTriggered -> PlayerHUD -> PlayerSingle), potem klikamy na przycisku `OK', póniej
na `Apply'. Zamykamy okno atrybutów obiektów. Zapisujemy mapk (CTRL + S) i
uruchamiamy tryb gry ­ kilkamy na ikonie z literami `Go':



Na zadane przez edytor pytanie (Czy na pewno chcesz uruchomi gr?) klikamy na przycisku
`Tak' . Po chwili znajdziemy si w trybie gry!


74


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


To jedna z rewelacyjnych wlaciwoci edytora ChromEd ­ mona uruchomi gr w edytorze,
bez koniecznoci uruchamiania calej gry! Jest to na pewno o wiele mniej czasochlonne ni
uruchamianie calej gry! Pobiegajcie sobie po Waszej mapce. W kocu to Wasza pierwsza
mapka (co prawda jeszcze troch pozostalo do jej ukoczenia, ale ju wikszo mamy za
sob). Jeeli chcemy opuci tryb gry naciskamy klawisze ALT + F4 (prawy klawisz ALT).
Gdybycie w trybie gry zauwayli dziwne zrywania podczas ruchu to najprawdopodobniej
poziom wody jest zbyt wysoki, trzeba go troch obniy (Pole `Water level' na zakladce
`Water' plug-in'a ,,Environment"). Poniewa nasza mapka jest jednak troch dua mona si
pokusi o dostarczenie Loganowi jakiego rodka transportu. Na licie obiektów plug-in'a
,,Mesh Browser" przechodzimy do katalogu \Data\Meshesh\Vehicles\ i zaznaczamy obiekt
Jeep.3da. Klikamy na przycisku `Put Object' i kilkamy gdzie na naszym terenie (aby
postawi obiekt Jeep'a). Take tu zadbajmy o to, aby obiekt Jeep'a przylegal do samego
terenu (klikamy na ,,rzucania" obiektu na teren). Naciskamy klawisz S (tryb zaznaczania
obiektów) i dwukrotnie klikamy na obiekcie Jeep'a. Otowrzy si okno atrybutów obiektu.
Klasy nie musimy przypisywa, poniewa standardowo jest ju przypisana odpowiednia klasa
tzn. Jeep. W innym przypadku naley t kla przypisa (MeshObject -> TriggerObject ->
Actor -> ChromeActor -> Vehicle -> VehicleCar -> VehicleAttacker -> Jeep). Potem
przechodzimy do zakladki `Mission' i ustawiamy warto atrybutu bActiveTrigger w sekcji
TRIGGER na true (warto t wybieramy z listy):



Atrybut ten aktywauje jakie zdarzenie. W przypadku Jeep'a jest to moliwo wejcia do
niego a take prowadzenia go przez gracza. Dotyczy to jednak mapek singleplayer'owych.
Dla mapek multiplayer'owych pojazd musi mie przypisan inn klas. Wicej na ten temat

75

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
znajdziecie Rozdzial 7 ­ Aspekty gry multiplayer. Przy okazji, jak widziecie
zakladka `Mission' zasad dzialania przypomina zakladk `Java', s na niej dostpne tylko
inne atrybuty. Kilkamy na przycisku `Apply', zamykamy okno atrybutów obiektu,
zapisujemy mapk (CTRL + S) i uruchamiamy tryb gry. No, teraz to Logan moe jeszcze
podróowa . W zasadzie taki sposób testowania mapki przyjlbym zawsze tzn. doda
Logana i jaki pojazd, którym moe podróowa. To ulatwia i przyspiesza testowanie.
Oczywicie zawsze mona postawi Logana w inne miejsce, aby po uruchomieniu trybu gry
znajdowal si w miejscu, które chcemy przetestowa, zobaczy itp. Pozostaly nam do
omówienia jeszcze dwie zakladki dotyczce plug-in'a ,,Environment". Pierwsza to `Fog',
któr omówi tu a druga to `Lighting' (pozwala na wygenerowanie ligtmap'y dla naszej
mapki), któr omówi w podrozdziale o lightmap'ie. `Fog' to po prostu mgla. Mgl stosuje
si glównie po to, aby ukry obiekty znajdujce si gdzie daleko, aby niepotrzebnie nie
obcia gry a take po to, aby w miar zbliania si do dalej oddalonych obiektów nie
wyskakiwaly one nagle przed naszymi oczami (z nikd, tak jakby spod ziemi). No i na koniec
mgla daje lepsze wraenia wizualne samej mapce! Uruchamiamy plug-in ,,Environemt" i
przechodzimy do zakladki `Fog'. Tam na panelu `Fog and background color' wybieramy
kolor naszej mgly. Moemy zrobi to rcznie wpisujc odpowiednie wartoci w polach
`RGB' (R [Red] ­ czerwony, G [Green] ­ zielony, B [Blue] ­ niebieski) lub klikajc na
przycisku `Pick color'. Otworzy si standardowe okienko wyboru koloru Windows'a gdzie
mona wybra odpowiedni kolor. Moim zdaniem ten standardowy, jasnoniebieski (R = 85, G
= 150, B = 200) kolor jest dobrym kolorem dla mgly. Na licie `Fog type' wybieramy typ
mgly:



Jeeli chcemy kompletnie wylczy mgl to z listy wybieramy NONE. Jeeli wybierzemy
mgl typu LINEAR to musimy poda jeszcze odpowiednie odlegloci gdzie zaczyna si mgla
(pole `Near') oraz koczy (pole `Far'), wartoci te ustalamy na panelu `Linear for range'.
Jeeli wybierzemy typ mgly EXPOTENTIAL lub EXPOTENTIAL2 to musimy ustali
jeszcze gsto tej mgly. Ustalamy to na panelu `Expotential fog density'. Proponuj wybra
tryb mgly EXPOTENTIAL i poda gsto mgly 0.0001. Wlczamy mgl przyciskiem
`Enable fog' i klikamy na przycisku `Apply', aby zaakceptowa zmiany:



76



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

Jak latwo zauway pojawila si mgla. Sama mapka od razu wyglda lepiej!





Z lewej strony widok bez mgly z prawej z mgl. Poeksperymentujcie troch z ustawieniami
mgly. Wybierzcie mgl typu LINEAR i spróbujcie dobra odpowiednie parametry na panelu
`Linear for range' (podpowiem tylko, e pole `Far' musi mie wiksz warto ni pole
`Near', bo w innym przypadku mgla w ogóle si nie pojawi). Wydaje mi si jednak, e dla
naszej mapki tryb mgly EXPOTENTIAL bdzie najlepszy. Mgla typu EXPOTENTIAL unosi
si delikatnie nad calym teren oraz na dalszych obiektach natomiast mgla typu
EXPOTENTIAL2 unosi si tylko na dalszych obiektach. W zasadzie typ EXPOTENTIAL
nadaje si do mapek, gdzie nie bdzie adnych budynków z wntrzami.

W nowszej wersji edytora ChromEd, w plug-in'ie ,,Environment" pojawila si jeszcze
jednak zakladka. Jest to zakladka `Comment'. U góry tej zakladki podane informacje na
temat daty i czasu ostatniego zapisu tworzonej mapki (`save time'), nazwy komputera, na
jakim mapka zostala zapisana (`Computer') oraz nazwy uytkownika (`User'):



Nazwa komputera i uytkownika dotycz samego systemu Windowsa a zawarte tu informacje
zale od tego, kto obecnie jest zalogowany w systemie itp. Pod tymi informacjami jest puste
pole. Tam moemy wpisa komentarz dotyczcy naszej mapki:


Nie zapomnijcie tylko potwierdzi wpisane tam informacje za pomoc przycisku `Apply'.
W porzdku. Myl, e macie ju jakie pojcie na temat tworzenia mapek do gry
Chrome z wykorzystaniem edytora ChromEd. Wane abycie sami troch
poeksperymentowali (tylko pamitajcie o czstym zapisywaniu Waszej mapki). W tym
podrozdziale to ju wszystko, mam ju nasz mapk a dokladnie teren naszej mapki.

3.5 Modyfikujemy teren.
Uksztaltowanie terenu naszej mapki jest niezle, ale moim zdaniem niewystarczajce .
Wic zmienimy troch uksztaltowanie terenu. Zrobimy to za pomoc plug-in'u ,,Terrain"
(plug-in ten jest niedostpny w starszej wersji edytora ChromEd). Uruchamiamy plug-in
,,Terrain" (klikamy na ikonie z liter T). Zasada dzialania samego plug-in'a jest do prosta.
Za pomoc brush'a bdziemy ,,malowa" po terenie naszej mapki. Zalenie od ustawie
brush'a, w miejscu gdzie bdziemy malowa teren bdzie si podnosil lub obnial. Calo

77

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
bdzie mona te wygladzi (aby niepowstaly nierealistyczne kanty na wzgórzach itp.). Okno
plug-in'a widoczne jest z prawej strony edytora. Przyjrzyjmy mu si bliej. W górnej czci,
na panelu `Terraforming' dostpne s trzy przyciski:



Pierwszy z nich, `Start' powoduje wlczenie funkcji plug-in'a. Od tego momentu moemy
malowa brush'em po terenie mapki. Jeeli chcemy t funkcj wylczy to ponownie
klikamy na przycisku `Start' (przycisk ten dziala jak przelcznik ­ gdy funkcja malowania
jest wlczona przycisk jest wcinity a gdy wylczona przycisk jest wycinity). Przycisk
`Undo' pozwala cofn ostatni operacj modyfikowania terenu za pomoc brush'a.
Dostpne w tym plug-in'ie funkcja cofania ostatniej operacji jest wielopoziomowa, co
oznacza, e moemy cofn modyfikowanie terenu nawet do momentu, w którym zaczlimy
go modyfikowa. Jednym slowem, jeeli zmodyfikujemy jaki element terenu a nie bdzie
nam si to podoba, moemy cofn modyfikacj wlanie za pomoc przycisku `Undo'.
Przyciskiem `Redo' moemy przywróci ostatnio cofnit modyfikacj terenu. Oczywicie,
jeeli kilka razy kliknlimy na przycisku `Undo' to moemy tyle samo razy nacisn na
przycisku `Redo'. Có, moe si zdarzy, e modyfikacja terenu, któr przed chwilk
cofnlimy za pomoc przycisku `Undo', jednak si nam podoba wic aby przywróci nasz
modyfikacj kilkamy na przycisku `Redo'. Myl, e jak troch popracujecie z plug-in'em
,,Terrain" to bardzie lepiej zrozumie zasad dzialania przycisków `Undo' i `Redo'. Na
kolejnym panelu (`Current brush') moemy ustawi parametry brush'a, którego bdziemy
wykorzystywa:



Tu moemy wybra ksztalt brush'a, wystarczy klikn na rysuku przedstawiajcym aktualny
wygld brush'a (na rysunku powyej obszar zaznaczony na czerwono). Wszystkie brush'e
przechowywane s w katalogu \Data\Brushes\ aczkolwiek standardowo jest tam tylko jeden
brush . Ksztalty brush'a moemy robi sobie sami a to z tego wzgldu, e jest to po prostu
bitmapa. Bitmapa taka musi by wykonana w skali szaroci (tak samo jak mapa wysokoci),
o rozmiarach 32x32 piksele i zapisana najlepiej w formacie png. Zreszt przyjrzyjcie si jak
wyglda plik Round.png, który dostajecie razem z edytorem:



Na czarno zaznacza si obszar, w którym brush nie bdzie mial wplywu na modyfikowanie
terenu, natomiast na bialo (i odcieniach szarego) zaznacza si miejsca, w których brush
bdzie mial wplyw na modyfikowanie terenu. Zrozumiale? Mam nadziej, e tak . Szczerze
mówic to nigdy nie mialem potrzeby stworzenia innego ksztaltu brush'a, ten standardowy
zawsze mi wystarczal. Za pomoc suwaka ustalamy wielko brush'a:


78

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Moemy te wpisa bezporednio wielko pola ­ wystarczy wpisa odpowiedni warto w
polu nad suwakiem. Standardowa warto to 3200, czyli ok. 32m fizycznie (100 jednostek =
1m fizyczny). Z listy na panelu `Tool' moemy wybra funkcj, jak bdzie pelnil brush:



natomiast pod list funkcji znajduj si dodatkowe atrybuty, które maj wplyw na dzialanie
funkcji brush'a (jednak nie wszystkie funkcje maj swoje atrybuty). Oto opis
poszczególnych funkcji:
- `BlurFunction':



brush bdzie wygladzal teren, za pomoc tej funkcji moemy pozby si wszystkich
znieksztalce itp., które powoduj, e nasz teren wyglda nierealistycznie tzn. wygladzane
s wierzcholki, rednia tych wierzcholków jest brana z wysokoci wierzcholków z pewnego
ssiedztwa a wielko tego ssiedztwa moemy zmieni za pomoc atrybutu
`Neighbourhood size', ustawiajc warto atrybutu `Use only dest buffer' na true, to
wszystkie modyfikacje terenu bd automatycznie przenoszone na teren , jeeli warto
ustawimy na false, to zmiany wprowadzone bd dopiero po zakoczeniu calej
modyfikacji, dodatkowo funkcj `BlurFunction' mona wykorzysta do wygladzania mapy
koloru,
- `PointHeightFunction':



brush bdzie nadawal ksztalt terenu, za pomoc tej funkcji moemy podnosi teren tworzc
wzgórza lub obnia teren tworzc doliny, wysoko o jak teren bdzie podnoszony lub
obniany, regulowana bdzie przez ruch myszy, zmiana wysokoci terenu jest wzgldna
tzn. podstaw do niego jest aktualna wysoko terenu,
- `RelativeHeightFunction':


79


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


brush modyfikowa bdzie teren o podan wysoko w atrybucie `Delta height'
(standardowa warto to 500, czyli okolo 5m, 100 jednostek = 1m fizyczny), jeeli podamy
warto dodatni teren bdzie podnoszony (tworzone bd wzgórza) natomiast, gdy
podamy warto ujemn teren bdzie obniany (tworzone bd doliny), zmiana wysokoci
terenu jest wzgldna tzn. podstaw do niego jest aktualna wysoko terenu,
- `SetHeightFunction':



brush modyfikowa bdzie teren o podan wysoko w atrybucie Height (standardowa
warto to 500, czyli okolo 5m, 100 jednostek = 1m fizyczny), dodatkowo za pomoc
atrybutu Mode moemy zawy zbiór wierzcholków, które bd modyfikowane:
`Default' - wszystkie wierzcholki, które s zaznaczone do modyfikacji otrzymuj zadan
wysoko,
`Min' - wierzcholki, których wysoko jest mniejsza ni podana w atrybucie Height s do
niej wyrównywane, te o wysokoci wikszej s ignorowane,
`Max' - podobnie do Min, ale modyfikowane s wierzcholki o wysokoci wikszej, ni
wysoko podana w atrybucie Height,
zmiana wysokoci terenu nadaj mu warto bezwzgldn, równ wartoci atrybutowi
Height.
Tak wygldaj podstawowe funkcje brush'a. Nalealby wyjani znaczenie wartoci
wzgldnej i bezwzgldnej, ale aby lepiej je zrozumie musimy przypomnie sobie wygld
naszej mapy wysokoci:




80

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Otó warto bezwzgldna liczona jest od najniszego punktu mapy wysokoci, czyli w
przypadku tej mapy wysokoci, wszdzie tam gdzie wystpuje kolor czarny. Warto
wzgldna liczona jest od punktu, w którym zaczniemy modyfikacj terenu (tam gdzie
klikniemy myszk). Wracajc do plug-in'a, po wybraniu odpowiedniej funkcji brush'a,
moemy ustawi jeszcze kilka dodatkowych parametrów:



Pole `Power modifier' odpowiada za sil brush'a (wartoci z przedzialu 0.00 do 1.00), pole
`Density' odpowiada za gsto brush'a (wartoci z przedzialu 0 do 100), natomiast pole
`Fade' odpowiada za zanikanie brush'a. Aby ulatwi nam prac, twórcy edytora ChromEd
pozwolili nam zapisa zdefiniowane brush'e. W tym celu wystarczy klikn na przycisku
`Add to defined brushes':



Pojawi si okno `Set brush name':



W polu `Name' wpisujemy nazw naszego brush'a i klikamy na przycisku `OK'. Tak
zdefiniowany brush pojawi si na licie:



Teraz bdziemy mogli wybiera brush'a z tej wlanie listy. Definiowanie brush'y przydaje si
szczególnie w przypadku, gdy czsto zmieniamy funkcj i parametry brush'a. Wtedy lepiej
takie brush'e zdefiniowa. Tu wana informacja! Jeeli chcemy, aby zdefiniowane brush'e
byly dostpne przy nastpnym uruchomieniu edytora ChromEd naley klikn na przycisku
`Save brushes', który znajduje si pod list zdefiniowanych brush'y. Niestety starsza wersja

81

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
edytora ChromEd ma pewien bld i po ponownym uruchomieniu edytora zdefiniowane
brsuh'e nie bd zachowane pod nazwami, jakie im nadalimy, lecz narzuconymi przez
edytor (Brush000, Brush001 itd.). W nowej wersji edytora tego problemu nie ma. Ogólnie nie
ma te latwego sposobu na usuwanie pojedynczych definicji brush'y. Mona jednak temu
zaradzi . Wystarczy edytowa (np. za pomoc Notatnika) plik `PredefinedBrushes.ini',
znale nazw brush'a, którego chcemy usun (brush_name) i usun cal sekcj
zaczynajc si od slowa `brush()'. Mona te usun wszystkie brush'e naraz po prostu
usuwajc plik `PredefinedBrushes.ini'. Zmodyfikowany za pomoc plug-in'a ,,Terrain" teren
mapki musi by zapisany w pliku height. Aby to zrobi naley klikn na przycisku `Save
as':



Plik height musi by zachowany w tym samym katalogu, co mapka. Podajemy nazw
naszego pliku i zapisujemy. Dodam tylko, e tak sam funkcj zapisu do pliku height
realizuje ikona z literami `Sv' na pasku zada edytora ChromEd. A czym jest plik heigjht?
Jak pamitacie mapy wysokoci, tworzone w programach Photoshop czy GIMP, s mapami
gdzie moemy uzyska maksymalnie 256 poziomów wysokoci (wspominalem o tym na
wstpie tego rozdzialu). Pliki heigt uzyskuj a 32768 poziomów wysokoci a co za tym idzie
s o wiele, wiele bardziej dokladne ni zwykle mapy. Wad tych plików jest to, e nie mona
podejrze ich zawartoci (plików w formacie height nie mona wczyta do programu
Photoshop czy GIMP!). Klikajc na przycisku `Update terrain normals', który znajduje si
pod panelem `Save height file':



moemy przeliczy normalne wszystkich wierzcholków terenu naszej mapki. Bardzo wana
uwaga!!! Starsza wersja edytora ChromEd miala problem z zapisywaniem mapki podczas
modyfikowania terenu mapki za pomoc plug-in'a ,,Terrain". Bld ten mógl doprowadzi
nawet do calkowitej utraty tworzonej mapki. Cho nie ma ju tego bldu w nowszej wersji
edytora, pozostawi jednak opis jak ten problem obej. Wic gdyby z jakiego powodu Wam
przydarzylo si co podobnego, bdziecie wiedzie jak sobie poradzi:
1. Wczytujemy mapk, któr chcemy podda modyfikacji za pomoc plug-in'u ,,Terrain".
2. Modyfikujemy teren, podczas tej modyfikacji nie zapisujcie mapki!!! Zapisa naley tylko
plik height (za pomoc przycisku `Save as' na panelu `Save height map' w plug-in'ie
Terrain lub za pomoc ikony z literami `Sv' na pasku narzdziowym edytora ChromEd).
Pamitajcie, e plik ten naley zapisa w katalogu z mapk.
3. Gdy zakoczymy modyfikacj terenu mapki, naley ponownie wczyta t mapk do
edytora (najpierw wybierzcie polecenie New z menu File, aby zresetowa edytor
ChromED). Jeeli edytor zapyta si nas, czy zapisa zmiany w mapce to kategorycznie
kliknijcie na przycisku `Nie'!
4. Po wczytaniu mapki, za pomoc plug-in'u ,,Environment" zmieniamy map wysokoci na
zapisany wczeniej plik height. Kilkamy na przycisku `Apply', aby zaakceptowa zmiany.
Edytor ChromEd ponownie wygeneruje teren naszej mapki. Zapisujemy mapk (teraz ju
mona!) ­ naciskamy klawisze CTRL + S lub wybieramy polecenie Save z menu File).

82


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
5. Powiedzmy, e chcemy jeszcze co zmodyfikowa za pomoc plug-in'u ,,Terrain". Nie ma
problemy, moecie to robi, tylko pamitajcie, aby nie zapisywa mapki (klawisze CTRL +
S czy polecenie Save z menu File w ogólnie nie wchodz w rachub!). Naley zapisa
jednak plik height, mona zapisa go pod star nazw lub te now. Pamita o zapisaniu
go w katalogu z mapk!
6. Jeszcze raz wczytujemy nasz mapk (najpierw wybieramy polecenie New z menu File,
aby zresetowa edytor ChromEd). Oczywicie na pytanie, czy zapisa zmiany w mapce,
klikamy na przycisku `Nie'.
7. Jeeli plik height zapisalimy pod stara nazw, to nie musimy nic ju robi. Jeeli
natomiast zapisalimy pod now nazw, to za pomoc plug-in'u ,,Environment" zmieniamy
map wysokoci na ten nowy plik height. Klikamy na przicksu `Apply', aby zaakceptowa
zmiany. Edytor ChromEd ponownie wygeneruje teren mapki. Zapisujemy mapk.
Dobrze, tyle teorii. Teraz przejdziemy do praktyki . Troch urozmaicimy teren naszej mapki.
Dodamy kilka wzgórz, zrobimy pla a take jakie jeziorko na rodku. Oczywicie to
Wasza mapka i to Wy powinnicie wiedzie jak Wasza mapka ma wyglda. Zaczynamy od
play. Wybierzcie miejscie gdzie chcecie zrobi plae, w tym miejscu po prostu obniymy
troch teren. Zmniejszamy troch wielko brush'a, powiedzmy do 1500, wybieramy funkcj
`PointHeightFunction' i klikamy na przycisku `Start'. Przesuncie kursor myszki w miejsce
gdzie chcemy zmodyfikowa teren (ale jeszcze niegdzie nie klikajcie). W miejscu gdzie
bdziemy modyfikowa teren pojawi si ,,czarna plama":



Ta czarna plama (jak to nazwalem ) to wlanie nasz brush, jak modyfikowa jego wielko to
ju wiecie. Czym bardziej rodka brush'a, tym brush jest bardziej intensywny a tym samym
intensywniejsza bdzie modyfikacja terenu. Klikamy teraz w miejscu gdzie chcemy
modyfikowa teren i trzymajc wcinity lewy klawisz myszki, wykonujemy delikatny ruch
myszki w dól, tym samym teren zaczyna si obniza. Pucie klawisz myszki, przesuncie
brush'a troch dalej i znowu kliknijcie w miejscu gdzie chcemy zmodyfikowa teren.
Przytrzymujc wcinity lewy klawisz myszki, wykonujemy delikaty ruch myszki w dól. I
tak w kólko, a do skutku . Oczywicie moecie te teren podnosi, wystarczy tylko ruch

83

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
myszk wykonywa w gór. Jeeli co si nie uda, zawsze mona klikn na przycisku
`Undo'. Jeeli ju skoczycie, wybierzcie funkcj `BlurFunction'. Pozostawcie wszystkie
wartoci atrybutów tej funkcji bez zmian, zmniejszcie te sil brush'a ( pole `Power
modifier') do 0.6 (w innym przypadku zmiany bd zbyt gwaltowne) i wygladcie miejsca
gdzie teren zostal obniony. Ustawiamy brush'a w miejscu gdzie chcemy wygladzi teren,
klikamy w tym miejscu i trzymajc wcinity lewy klawisz myszki ,,jedzimy" po terenie. W
ten sposób miejsca kanciaste, niepasujce do reszty terenu zostan wygladzone. W tej fukcji
take moecie ustawia wielko brush'a a jeeli wygladzanie jest jeszcze zby gwaltowne, to
zmniejszcie jego sil zmniejszajc warto pola `Power modifier'. Moecie zapisa mapk
wybierajc polecenie Save z menu File lub po prostu naciskajc klawisze CTRL+S. Przy
zapisywaniu mapki zostanie take zapisany plik height. Plik ten zostanie automatycznie
ustawiony jako mapa wysokoci naszej mapki, o czym moemy si przekona uruchamiajc
plug-in ,,Environment":



Nie przejmujcie si te tym, e mapa koloru obecnie nie pasuje do terenu mapki. Niedlugo
zrobimy now map koloru. Proponuj te abycie wygladzili teren mapki na brzegach oraz
góry. Na rodku mapki zrobimy male jeziorko. Wybieramy funkcj `PointHeightFunction',
ustawiamy wielko brush'a np. na 4000 i na rodku mapki obniamy teren (trzymajc
wcinity lewy klawisz myszki wykonujemy ruch myszk delikatnie w dól) tak dlugo, a
pokae si woda. Zmniejszamy wielko brush'a do ok. 1500 i obniamy obrzea jeziorka.
Jak kto chce to moe poglbi nasze jeziorko. Na koniec wybieramy funkcj `BlurFunction'
i wygladzamy brzeg wokól jeziorka. Ja uzyskalem taki efekt:


84



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Proponuj jeszcze doda z 2-3 wzgórza, tym razem posluymy si funkcj
`RelativeHeightFunction'. Wic j wybieramy. Ustawiamy wielko brush'a na 1500, atrybut
`Delta height' na 700. Teraz kliknijcie w miejscu gdzie ma by nasze wzgórze. Jak zapewne
zauwaylicie, teren podniósl si od razu (nie musielimy trzyma wcinitego lewego
klawisza myszki i wykonywa ruch myszk). Kliknijcie jeszcze kilka razy w okolo tego
miejsca. Na koniec wybierzcie funkcje `BlurFunction', zmniejszcie wielko brush'a i
wygladcie wzgórze. Ja zrobilem co takiego:



Zróbcie jeszcze z dwa takie wzgórza gdzie na mapc a potem zapiszcie mapk. Wczeniej
wspomnialem, e funkcj `BlurFunction' mona wykorzysta do wygladzania mapy koloru.
Poniewa na naszej mapce nie ma potrzeby wygladzania mapy koloru, poslu si innym
przykladem. Zerknijcie na poniszy rysunek:


85



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Jak sami widzicie, zbocze tego wzgórza nie wyglda najlepiej . Poslugujc si funkcj
`BlurFunction' mona wygladzi map koloru na tym zboczu, co na pewno polepszy efekt
wizualny:



Od razu lepiej prawda?! Szczerze mówic to nie wygladzamy map koloru, a po prostu teren
mapki w miejscu, gdzie ta mapa koloru nie ley idealnie na ternie mapki. Na tym
zakoczymy modyfikacj terenu mapki. Nie s to moe wielkie modyfikacje, ale po pierwsze
chodzilo o pokazanie zasady dzialania plug-in'u ,,Terrain" a po drugie to Wasza mapka, wic
moecie na niej zrobi, co chcecie . Oczywicie plik height mona zapisa w standardowy
sposób tzn. klikajc na przycisk `Save as' na panelu `Save height file' lub klikajc na ikonie z
literami `Sv'. Trzeba tylko pamita, aby plik ten znalazl si w katalogu z mapk a take o

86

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
tym, aby ustawi go jako map wysokoci mapki (za pomoc plug-in'a ,,Environment").
Dobrze. Musimy jeszcze zmodyfikowa map koloru. Nasuwa si pewne pytanie. Do
stworzenia mapy koloru bdzie potrzebna mapa wysokoci a przecie programy graficzne a
take Bryce nie potrafi wczytywa plików w formacie height. Edytor ChromEd potrafi
jednak generowa map wysokoci w formacie tga. W tym celu klikamy na ikonie
generowania mapy wysokoci:



Otworzy si okno `Get terrain height map':



Najpierw podamy nazw pliku naszej mapy wysokoci oraz miejsce gdzie ta mapa ma by
zapisana. W tym celu klikamy na przycisku trzykropka obok pola `Path' i kierujemy si do
katalogu z nasz mapk i kierujemy si do katalogu z nasz mapk
\Data\LevelsNet\MojaMapka\ (doradzam, aby tak map wysokoci take zapisa w katalogu
z nasz mapk). Podajemy nazw pliku MojaMapa_L (dodamy _L aby zaznaczy, e jest to
mapa wysokoci). W naszym katalogu jest ju plik o takiej nazwie, ale spokojnie. Tamten jest
w formacie png a ten bdzie w tga. W polu `Width' podajemy szeroko naszej mapy a w
polu `Height' wysoko. Jak ju wspomnialem przy omawianiu tworzenia mapy koloru za
pomoc programu Bryce, mapa wysokoci musi mie wszdzie tak sam rozdzielczo!
Pamitacie zapewne, e nasza mapa wysokoci ma rozdzielczo 257x257, wic musimy si
trzyma tej rozdzielczoci do koca . Poniewa t map wysokoci wykorzystamy tylko do
wygenerowania mapy koloru za pomoc programu Bryce, to nie musi by ona powikszona o
jeden piksel w pionie i poziomie. Tym samym wystarczy, jak wygenerujemy map wysokoci
w rozdzielczoci 256x256:



87

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

Opcja `ommit terrain boundaries' odpowiada za sposób wyliczania mapy wysokoci (od
krawdzi). Najlepiej opcj t odznaczy, jeeli mapa wysokoci, któr wygenerujemy, ma
posluy do generowania mapy koloru. Jeeli zaznaczymy opcj `relative heights' to przy
generowaniu mapy wysokoci zostan wykorzystane 256 odcienie szaroci. Czasami
zwiksza to dokladno generowanej mapy wysokoci. Klikamy na przycisk `OK'. Mapa
wysokoci zostanie wygenerowana. Wykorzystamy j w nastpnym podrozdziale.
Tak wyglda praca z plug-in'em ,,Terrain". W zasadzie nic nie stoi na przeszkodzie, aby
w programie Photoshop lub GIMP stworzy jednolit map wysokoci a cale uksztaltowanie
terenu nada wlanie za pomoc tego plug-in'u. Nie da si jednak ukry, e taka operacja
bdzie bardziej pracochlonna, dlatego doradzam abycie zawsze stworzyli wstpny ksztalt
terenu mapki w programie Photoshop lub GIMP tworzc map wysokoci.

3.6 Modyfikujemy map koloru.
Poniewa zmienilo si uksztaltowanie terenu naszej mapki to musimy poprawi map
koloru, bo nie pasuje ona do obecnego uksztaltowania terenu mapki. Dodatkowo poka
Wam, jak zrobi drogi na mapie koloru. Zanim jednak zaczniemy, musimy jeszcze raz
wygenerowa bitmapy za pomoc programu Bryce. Jak to zrobi to ju wiecie, opisywalem
to w podrozdziale o mapie koloru, wic jak kto nie pamita jak to si robi, to moe tam
zerkn. Podpowiem tylko, e tym razem naley wykorzysta map wysokoci
wygenerowan w poprzednim podrozdziale za pomoc edytora ChromEd, czyli plik
MojaMapa_L.tga (format tga). Nie generujcie bitmap na podstawie mapy wysokoci o nazwie
MojaMapa_L.png, (format png), ta mapa wysokoci jest ju nieaktualna !
Po wygenerowaniu nowych bitmap uruchamiamy program Photoshop lub GIMP i
wczytujemy te bitmapy. Dla Waszej wygody bd w dalszej czci tego podrozdzialu uywal
nazw _bumpamt i _diffcol dla tych bitmap. W zasadzie wikszo operacji bdzie si
powtarza z podrozdzialu o mapkie koloru, dlatego te nie bd ich szczególowo opisywal.
Duo informacji na temat obslugi programów Photoshop i GIMP mona znale
w podrozdziale o mapie wysokoci a take w podrozdziale o mapie koloru. Pierwsze, co
musimy zrobi to naloy bitmap _bumpamt na _diffcol. Ustawiamy te odpowiednie
blendowanie (proponuj `Overlay'). Po naloeniu bitmap mona zamkn plik _bumpamt,
nie bdzie ju potrzebny. Uytkownicy GIMP'a musz dodatkowo klikn prawym
przyciskiem myszki na warstwie `Floating Selection' (okno `Layers, Channels & Paths',
zakladka `Layers') i wybra polecenie Anchor Layer. Po naloeniu bitmap powstanie jedna
bitmapa, nasza mapa koloru. Teraz dodamy do niej drog, ale przedtem odbijamy j w pionie.
Uytkownicy Photoshop'a wybieraj polecenie Flip Canvas Vertical z menu Image
(Image -> Rotate Canvas -> Flip Canvas Vertical). Uytkownicy GIMP'a wybieraj
polecenie Flip z menu Tools (Tools -> Transform Tools -> Filp, aby dosta si do menu
trzeba klikn prawym przyciskiem myszki na mapie koloru). Potem przytrzymujemy
klawisz CTRL i klikamy na mapie koloru. Po odbiciu mapy koloru dodajemy now warstw
(robi to zarówno uytkownicy Photoshop'a jak i GIMP'a). Zmiemy jej nazw na `Droga'
(uytkownicy GIMP'a bezporednio mog nada nazw `Droga' nowej warstwie). Teraz
wybieramy kolor, którym namalujemy drog. Proponuj kolor o skladowych R = 127, G =
76, B = 57. Jeeli nie wiecie jak si wybiera kolor itp. to zerknijcie do podrozdzialu o mapie
wysokoci, dodam tylko, aby uytkownicy GIMP'a wybrali swój kolor na zakladce `GIMP' a
nie `GTK' (okno `The GIMP'). Czas wybra odpowiedniego brush'a i namalowa drogi na
mapie kolorów. Najpierw opis dla uytkowników Photoshop'a. Z paska narzdziowego
Photoshop'a (z lewej strony ekranu) wybieramy narzdzie `Brush Tools':

PHOTOSHOP

88


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Teraz wybierzemy odpowiedniego brush'a np. `Soft Round 65 pixels'. Aby to zrobi naley
klikn na strzalk skierowan w dól na przycisku `Brush Preset Picker', który znajduje si
tu pod menu glównym programu:

PHOTOSHOP


Otworzy si lista dostpnych brush'y, z której naley wybra `Soft Round 65 pixels' (trzeba
klikn dwukrotnie na wybranym brush'u):

PHOTOSHOP


W zasadzie mona wybra innego brush'a ale proponuj, aby to byl brush typu `Soft'
(mikki). No i niech nie bdzie zbyt duy (wielko brush'a mona ustawia za pomoc
suwaka `Master Diameter' na licie brush'y). Teraz po prostu namalujcie (na warstwie
`Droga', przy aktywnej warstwie musi znajdowa si maly pdzelek, aby wybra warstw
naley klikn na jej nazwie) na mapie koloru drog w miejscu gdzie chcecie, aby si
znajdowala. Oczywicie nie malujcie po wzgórzach . Uytkownicy GIMP'a musz stworzy
swojego brush'a (w oknie `Brush Selection') a jak to zrobi to powinni wiedzie
z podrozdzialu o mapie wysokoci. Proponuj tylko ustawi wielko brush'a na 29
(`Radius') a jego twardo (`Hardness') na 0.2. Potem wybieramy narzdzie brush z okna
`The GIMP' (glówne okno programu):

GIMP



89

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
No i malujemy drog na mapie koloru. W porzdku. Przed kontynuowaniem pracy nad nasz
mapk, musimy wszystkie trzy warstwy (w GIMP'ie s tylko dwie warstwy) polczy w
jedn. Uytkownicy Photoshop'a wybieraj z menu Image polecenie Flatten Image:

PHOTOSHOP


W ten sposób polczymy wszystkie trzy warstwy w jedn. Uytkownicy GIMP'a postpuj
troch inaczej. Najpierw klikamy prawym przyciskiem myszki na mapie koloru i z menu
Layers wybieramy take polecenie Flatten Image:

GIMP


Powoli zbliamy si do koca . Nasz map koloru poddamy jeszcze kilku filtrom i bdzie
ju gotowa! Na pocztek dodamy delikatny szum (ang. noise). Uytkownicy Photoshop'a
wybieraj polecenie Add Noise z menu Filter (Filter -> Noise -> Add Noise):

PHOTOSHOP


Otworzy si okno `Add Noise'. Tam przede wszystkim zaznaczamy opcje `Monochromatic' a
take wybieramy opcj `Gaussian' na panelu `Distribution'. Dodatkowo za pomoc suwaka
ustawiamy warto pola `Amount' na 12 (mona bezporednio wpisa warto 12 w polu
`Amount', szum musi by bardzo delikatny!):

PHOTOSHOP


90

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

Klikamy na przycisku `OK'. Drugim stosowanym filterem jest filtr `Spatter'. Wic z menu
Filter wybieramy polecenie Spatter (Filter -> Brish Strokes -> Spatter):

PHOTOSHOP


W oknie `Spatter' ustawiamy za pomoc suwaków warto pola `Spray Radius' na 10 a
`Smoothness' na 5 (mona bezporednio wpisywa wartoci w polach `Spray Radius' i
`Smoothness'):

PHOTOSHOP


Na koniec kilkamy na przycisku `OK'. Po poddaniu mapy kolorów tym filtrom nasza mapa
jest na pewno bardziej realistyczna, szczególnie to wida na dodanej przez nas drodze.
Uytkownicy GIMP'a nie maj dostpu do wszystkich filtrów, które ma Photoshop, ale jako
sobie poradzimy . Klikamy prawym przyciskiem myszki na mapie koloru i z menu Filters
wybieramy polecenie Scatter HSV (Filters -> Noise -> Scatter HSV):

GIMP


W oknie `Scatter HSV' ustawiamy odpowiednie wartoci za pomoc suwaków lub
bezporednio wpisujc wartoci:

GIMP

91

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Proponuj ustawi wartoci `Holdness' = 3, `Hue' = 4, `Saturation' = 15, `Value' = 15. Na
koniec klikamy na przycisku `OK'. Zamiast filtru `Scatter HSV' mona zastosowa filtr
`Noisify'. W tym celu klikamy prawym klawiszem myszki na mapie koloru i z menu Filters
wybieramy polecenie Noisify (Filters -> Noise -> Noisify):

GIMP


W oknie `Noisify' odznaczamy opcj `Independent', co pozwoli na wprowadzanie wartoci
dla wszystkich trzech kolorów jednoczenie i za pomoc suwaków (lub wpisujc wartoci
bezporednio) ustawiamy warto 0.10 dla wszystkich trzech kolorów:

GIMP


Klikamy na przycisku `OK'. W GIMP'ie wicej filtrów nie zastosujemy. Có, nowa mapa
koloru jest ju gotowa. Moja wyglda tak:


92


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Kilka razy ju to napisalem, napisz jeszcze raz. Zawsze próbujcie eksperymentowa .
Oprócz dróg moecie doda inne efekty, moe jaki specjalny kolor na wzgórza?! Zobaczcie
ile jest filtrów w Photoshop'ie i GIMP'ie. Wypróbujcie kilka a moe stworzycie jaki
rewelacyjny efekt a tym samym i mapka bdzie lepsza. Ten dokument ma Wam tylko
przybliy tworzenie mapek itp. Wracajc do mapy koloru, musimy j jeszcze zmniejszy do
rozdzielczoci 2048x2048. W Photoshop'ie z menu Image wyberamy polecenie Image Size.
W oknie `Image Size' wpisujemy warto 2048 w polu `Width' i `Height', potem kilkamy na
przycisku `OK':

PHOTOSHOP


Uytkownicy GIMP'a klikaj prawym przyciskiem myszki na mapie koloru i z menu Image
wybieraj polecenie Scale Image. W oknie `Scale Image' wpisujemy warto 2048 w polu
`New Width' i `Height', potem kilkamy na przycisku `OK':

GIMP

93

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Pozostalo nam ju tylko zapisa map koloru. W Photoshop'ie z menu File wybieramy
polecenie Save as, kierujemy si do katalogu z nasz mapk (\Data\LevelsNet\MojaMapka),
jako format pliku wybieramy png, podajemy te nazw. Tu moemy zapisa map koloru pod
star nazw tj. MojaMapa_C.png lub pod jak inn, proponuj star zachowa a t zapisa
pod nazw MojaMapa_C2.png:

PHOTOSHOP


W oknie `PNG Options' pozostawiamy zaznaczon opcj `None' i klikamy na przycisku
`OK'. Uytkownicy GIMP'a klikaj prawym przyciskiem myszki na mapie koloru i
wybieraj polecenie Save as z menu File. Podajemy nazw pliku i wybieramy format png
(prosz pamita, aby najpierw wprowadzi nazw pliku a dopiero potem wybra format
pliku):

GIMP


W oknie `Save as PNG' pozostawiamy wszystkie opcje bez zmian i klikamy na przycisku
`OK'. Jeeli chcecie to moecie dodatkowo zapisa map koloru w formacie psd (Photoshop)
lub xcf (GIMP) co pozwoli póniej wprowadzi jakie dodatkowe poprawki itp.
I to ju naprawd wszystko! Mamy now, rewelacyjn map koloru. Uruchamiamy
edytor ChromEd, wczytujemy nasz mapk, uruchamiamy plug-in ,,Environment",
przechodzimy na zakladk `Terrain', klikamy na przcisku trzykropka obok pola `ColorMap',
kierujemy si do katalogu z nasz mapk (\Data\LevelsNet\MojaMapka\) i wskazujmy nasz
now mapk koloru (MojaMapa_C2.png), potem kilkamy na przycisku `Apply'. A oto
rezultat naszej pracy:


94



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Prawda, e wspaniale? A bdzie jeszcze lepiej, gdy dodamy rolinno do naszej mapki, ale
to ju w rozdziale o przyrodzie. Od tej pory, w dalszej czci tego dokumentu, bdziemy
korzysta z nowej mapy koloru (MojaMapa_C2.png).

3.7 Mapa przechodnoci.
Teraz zajmiemy si stworzeniem mapy przechodnci. Na wstpie troch teorii. Mapa
przechodnoci, to kolejna bitmapa zapisana w formacie png. Bitmapa ta muisi mie
rozdzielczoci 512x512 pikseli i by bitmap dwukolorow ­ wykorzystuje si tylko kolor
bialy i czerwony. Na mapie przechodnoci (,,mapa przechodnoci" to nazwa robocza, ale si
przyjla i pozostala map przechodnoci ) kolorem bialym zaznaczamy obszary, po których
gracz moe si porusza a kolorem czerwonym obszary niedostpne dla gracza. Tylko na
jakich obszarach gracz moe si porusza a na jakich nie?! To proste. Moe porusza si
wszdzie, ale nie moe wej do glbokiej wody, jakie rzeki, jeziora czy te na jakie
wysokie wzgórze itp. Przy tworzeniu mapy przechodnoci pomoe nam sam edytor
ChromEd. Zawsze zaczynamy od zaznaczenia obszaru wokól naszej mapki, bdzie to obszar,
po którym gracz moe si porusza, ale po az który wyj nie moe. Uruchamiamy nasz
mapk w trybie gry (klikamy na ikonie z literami `Go'), przemieszczamy si na brzeg mapki.
Uwaajcie, aby nie wpa do wody (wlanie po to m.in. jest potrzebna mapa przechodnoci ­
aby gracz nie mógl gdzie wpa). Jeeli tak si stanie, a nie bdziecie mogli wyj z tej
wody, nacinijcie klawisze ALT + F4, aby wyjcie z trybu gry. Potem jeszcze raz uruchomcie
tryb gry. Gdy dojdziemy do brzegu mapki przywolujemy konsol parametrów Java. Konsola
parametrów Java przywolywana jest za za pomoc klawisza ~ (,,tylda"):



Na tej konsoli wpisujemy komend:

Player.UpdateAdditionalMap(1,512)

95

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
i naciskamy klawisz ENTER. Zwrócie uwag na wielko liter, nie stosujcie te adnych
spacji. Na konsoli powinien pojawi si komunikat `Player.UpdateAdditionalMap() returned
void':



Jeeli ujrzycie inny komunikat, to sprawdcie, czy poprawnie wpisalicie komend
Player.UpdateAdditionalMap. Teraz moemy zamkn konsol ponownie naciskajc klawisz
~. Biegniemy wzdlu brzegu mapki trzymajc si jak najbliej brzegu, ale uwaajc, aby nie
wpa do wody. Oczywicie, jeeli na drodze jest jaka przeszkoda np. wzgórze itp. to
omijamy j. Gdy dojdziemy do punku, z którego zaczlimy bieg (w kocu do tego punktu
wróci musimy) ponowne przywolujemy konsol za pomoc klawisza ~ i wpisujemy
komend:

Player.SaveAdditionalMap(tt.raw)
Naciskamy klawisz ENTER. Tu take zwrócie na wielko liter. Na konsoli powinien
pojawi si komunikat `Player.SaveAdditionalMap() returned void:



Gdyby takiego komunikatu nie bylo, to sprawdcie, czy poprawnie wpisalicie komend
Player.SaveAdditionalMap. Na razie moemy wyj z trybu gry (naciskamy klawisze
ALT + F4). W katalogu glównym z edytorem ChromEd i gr Chrome (\Chrome\) pojawil si
plik tt.raw, który zostal zapisany za pomoc komendy Player.SaveAdditionalMap(tt.raw).
Nazwa tt.raw to przykladowa nazwa, wane, aby plik mial rozszerzenie raw. Zawarto
samego pliku zostala stworzona za pomoc komendy Player.AdditionalMap(1,512).
Przechadzajc si po naszej mapce, rysowalimy lad naszej podróy . Zwrócie uwag, e
jako drugi parametr tej komendy podalimy warto 512. To wlanie rozdzielczo naszej
mapy przechodnoci (512x512 pikseli). Uruchamiamy program Photoshop i wczytujemy plik
tt.raw. Tu niestety smutna informacja dla uytkowników GIMP'a, program ten standardowo
nie obsluguje plików w formacie raw, dlatego w razie potrzeby uyjcie programu Point Shop
Pro (program ten dostpny jest w wersji shareware) lub jakogo innego programu do obróbki
grafiki. Po wczytaniu tego pliki, w programie Photoshop pojawi si okno `Raw Options':

PHOTOSHOP

96


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Wartoci w polach `Width' i `Height' na panelu `Dimensions' musz wynosi 512. Wartoci
te s pobrane automatycznie z pliku tt.raw. Klikamy na przycisku `OK'. Tak wyglda
zawarto pliku tt.raw:



Ksztaltem przypomina nasz mapk prawda?! U mnie z prawej strony jest wcicie a to z tego
wzgldu, e znajduje si tam wzgórze, które musialem omin. Teraz przeksztalcimy ten plik

97

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
na bitmap w formacie RGB. Obecnie dostpne s tylko odcienie szaroci (Gray), co wida
po pasku tytulowym pliku:

PHOTOSHOP


Aby plik tt.raw przeksztalci na bitmap RGB z menu Image wybieramy polecenie
RGB Color (Image -> Mode -> RGB Color):

PHOTOSHOP


W ten sposób mamy bitmap RGB, co wida po pasku tytulowym pliku:

PHOTOSHOP


Ok. Musimy pamita, e na mapie przechodnoci moemy wykorzystywa tylko dwa kolory
­ bialy i czerwony. Moe najpierw zdefiniujemy sobie te kolory. Naciskamy klawisz D a
potem X. W ten sposób ustawilimy kolor bialy domylnym kolorem dla narzdzi, natomiast
kolor czarny jako domylny kolor tla. Wida to na panelu wyboru kolorów:

PHOTOSHOP


Teraz kilkamy na czarnym klorze na tym panelu. Otworzy si okno `Color Picker'. Tam w
polu `R' wpisujemy warto 255 a w plach `G' i `B' wpisujemy warto 0:

PHOTOSHOP

98


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Potem klikamy na przycisku `OK'. W ten sposób na panelu wyboru koloru bdziemy mieli
dostpne potrzebne nam kolory tzn. bialy i czerwony.

PHOTOSHOP


Dobrze. Teraz na tej bitmapie, kolorem bialym wypelniamy miejsce wewntrz zaznaczonego
obszaru (jest to obszar, w jakim gracz bdzie mógl si porusza). Wybieramy narzdzie
`Paint Bucket Tool':

PHOTOSHOP


Zwrócie uwag, e prawie kada z ikon paska narzdziowego Photoshop'a ma na dole mal
strzaleczk. Jeeli przytrzymamy lewy klawisz myszki na takiej ikonie, to otworzy si lista z
dodatkowymi narzdziami, wic gdyby w miejscu narzdzia `Pint Bucket Tool' bylo
dostpne narzdzie `Gradient Tool', to wystarczy, e przytrzymacie lewy klawisz myszki na
tej ikonie i z listy, która si otworzy, wybierzecie narzdzie `Paint Bucket Tool'. Jak ju
wybierzemy odpowiednie narzdzie, to klikamy wewntrz zanaczonego obszaru. Zostanie on
wypelniony na bialo. Jeeli na bialo zostanie wypelniony caly obszar bitmapy, oznacza to, e
w zaznaczonym obszarze jest gdzie przerwa. Musicie znale tak przerw i j ,,zalata".
Najpierw cofniemy niepoprawne wypelnienie naciskajc klawisze CTRL + ALT + Z. Teraz
wybieramy narzdzie `Pencil Tool':

PHOTOSHOP

99



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Z listy `Brush Preset Picker' na górnej listwie Photoshop'a wybieramy `Hard Round 1 pixel':

PHOTOSHOP


Teraz na bitmapie klikamy w miejscach, gdzie s przerwy w zaznaczonym obszarze. Potem
ponownie na bialo wypelniamy rodek zaznaczonego obszaru. Ok, naciskamy klawisz X (w
ten sposób na panelu wyboru koloru zamieniamy miejscami kolory ­ kolor czerwony staje si
domylnym kolorem narzdzi a kolor bialy domylnym kolorem tla). Znowu wybieramy
narzdzie `Paint Bucket Tools' i na czerwono wypelniamy miejsce na zewntrz zaznaczonego
obszaru. Powinnicie uzyska co takiego:




100

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Dobrze. To na razie wystarczy. Zapisujemy nasz prac. Z menu File wybieramy polecenie
Save as:

PHOTOSHOP


W oknie `Save as' podajemy nazw pliku np. tt a jako format zapisu wybieramy PSD
(standardowy format plików Photoshop'a):

PHOTOSHOP


Wracamy do edytora ChromEd, ale nie zamykamy programu Photoshop. Na naszej mapce s
jeszcze inne miejsca, na które gracz nie moe wej np. wysokie wzgórza czy jezioro. Co
prawda na wysokie wzgórze i bez mapy przechodnoci nie wejdzie, ale lepiej i tak zaznaczy
takie wzgórze na mapie przechodnoci. Uruchamiamy tryb gry klikajc na ikonie z literami
`Go'. Podchodzimy do wzgórza, przywolujemy konsol (za pomoc klawisza ~) i wpisujemy
znan ju komedn:

Player.UpdateAdditionalMap(1,512)
Wylczamy konsol i obchodzimy wzgórze do okola. Jak wrócimy do miejsca startu, to
ponownie przywolujemy konsol i wpisujemy komend:

Player.SaveAdditionalMap(tt.raw)
Nie ma potrzeby zapisywania pliku pod inn nazw. Wychodzimy z trybu gry (naciskamy
klawisze ALT + F4). Przechodzimy do Photoshop'a i wczytujemy nowy plik tt.raw
(poprzednia bitmapa tzn. plik tt.psd powinien by otwarty!). Postpujemy tak jak poprzednio
(w razie problemów zerknijcie na pocztek tego podrozdzialu). Teraz do wana uwaga.
Tym razem bdziemy na odwrót wypelnia bitmap tzn. miejsce wewntrz zaznaczonego
obszaru wypelniamy na czerwono (tam gracz wej nie moe, bo jest to wlanie wzgórze) a
miejsce na zewntrz zaznaczonego obszaru wypelniamy na bialo. Juk ju odpowiednio
wypelnimy t drug bitmap, to naciskamy klawisze CTRL + A (zaznacz wszystko) a potem
CTRL + C (kopiuj) i przechodzimy do poprzedniej bitmapy (wystarczy klikn na pasku
tytulowym bitmapy). Naciskamy klawisze CTRL + V (wklej). W ten sposób dodalimy now
warstw do poprzedniej bitmapy. Dodana warstwa zawiera drug bitmap, któr przed
chwilk stworzylimy. Upewniamy si, e nowa warstwa jest warstw aktywn (obok
warstwy znajduje si maly pdzelek):

PHOTOHOP

101


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Teraz musimy ustawi odpowiednie blendowanie. W tym celu wybieramy polecenie Blending
Options
z menu Layer (Layer -> Layer Style -> Blending Options):

PHOTOSHOP


Otworzy si okno `Layer Style'. Teraz z listy `Blend Mode' wybieramy `Multiply' i klikamy
na przycisku `OK'. Powinnicie uzyska co takiego:

PHOTOSHOP



102


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Teraz ponowanie wracamy do edytora ChromEd i zaznaczamy kolejny obszar niedostpny
dla gracza. I tak postpujemy a zaznaczymy wszystkie obszary niedostpne dla gracza.
Bardzo wana uwaga! Map przechodnoci nalepiej robi jak na mapce nie ma jeszcze
adnych obiektów, nie ma te drzew itp. Obiekty nie mog by zaznaczone na mapie
przechodnoci, bo co by bylo, gdyby takim obiektem byl budynek? Gracz po prostu nie
móglby do niego wej, bo ograniczalaby go mapa przechodnoci. Dlatego map
przechodnoci róbcie zaraz po stworzeniu terenu mapki. Moja bitmapa (któr zaraz
przerobimy na map przechodnoci) wyglda tak:



W porzdku. Pamitajcie, e mapa przechodnoci musi by zapisana jako mapa dwukolorowa
(indeksowa), wic najpierw j przeksztalmy w map dwukolorow. W tym celu z menu
Image wybieramy polecenie Indexed Color (Image -> Mode -> Indexed Color):

PHOTOSHOP


Najpierw pojawi si zapytanie, czy chcemy polczy wszystkie warstwy:

PHOTOSHOP

103

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Klikamy na przycisku `OK'. Warstwy polcz si w jedn, potem pojawi si okno `Indexed
Color':

PHOTOSHOP


W tym oknie, z listy `Palette' wybieramy opcj `Local (Perceptual)'. W polu `Colors'
wpisujemy warto 2 i odznaczamy opcj `Transparency':

PHOTOSHOP


Z listy `Forced' wybieramy opcj `Custom' (pomimo, e ta opcja jest wybrana, to wybierzcie
j jeszcze raz!). Otworzy si okno `Forced Color'. Za pomoc tego okna definiujemy dwa
kolory tzn. bialy i czerwony. Aby zdefiniowa kolor wystarczy klikn na jedno z dostpnch
pól. Otworzy si znane ju okno `Color Picker'. Jeeli bdziemy definiowa kolor bialy to w
polach `R', `G' i `B' wpisujemy warto 255, natomiast jeeli bdziemy definowa kolor
czerwony, to w polu `R' wpisujemy warto 255, natomiast w polach `G' i `B' warto 0.
Oczywicie oba kolory trzeba definiowa oddzielnie. Jak wszystko zrobicie dobrze, to w
oknie `Forced Colors' powinnicie mie dwa kolory:

PHOTOSHOP


104


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Teraz klikamy na przycisku `OK'. W ten sposób nasza bitmapa zostala przeksztalcona na
kolor indeksowy. Przyjrzyjcie si teraz jej bitmapie. Przy pomocy narzdzia `Pencil Tool'
usuncie z niej pojedyncze punkty. Dla przykladu zaznaczylem je na poniszym rysunku:



Zapisujemy nasz bitmap. Z menu File wybieramy polecenie Save as. Plik z map
przechodnoci musi znajdowa si w tym samym katalogu, co mapka
(\Data\LevelsNet\MojaMapka) i musi mie nazw tak sam, jak nazwa mapki z dodan
kocówka `_tt'. W moim przypadku bdzie to MojaMapka_tt. Plik z map przechodnoci
musi by zapisany w formacie png:

PHOTOSHOP


Po wpisaniu odpowiedniej nazwy i wybraniu odpowiedniego formatu zapisu pliku, w oknie
`Save as' klikamy na przycisku `Zapisz'. Pojawi si okno `PNG Options'. Zaznaczamy opcj
`None' i kilkamy na przycisku `OK'. To wszystko!!! Wracamy do edytora ChromEd.
Uruchamiamy nasz mapk w trybie gry klikajc na ikonie z literami `Go'. Musimy
zaladowa map przechodnoci. Przywolujemy konsol graficzn. Konsol graficzn
przywoluje si za pomoc klawisza \ (,,backslash"):

105



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Konsola graficzna dostarcza bardzo wielu informacji. Konsola ta podzielona jest na strony.
Strony przelcza si za pomoc klawiszy PAGE UP i PAGE DOWN. My jednak nie
bdziemy interesowac si t konsol, wpisujemy tylko na niej komend:

reload_tt_map
W ten sposób zaladujemy map przechodnoci do naszej mapki. W zasadzie mapa
przechodnoci jest automatycznie wczytywana wraz z mapk, ale ze wzgldu na to, e nie
wczytywalimy naszej mapki od czasu stworzenia mapy przechodnoci, musimy j
zaladowa za pomoc komendy reload_tt_map. Jeeli chcemy zobaczy map przechodnoci
to w konsoli graficznej wpisujemy komend:

vis_tt_map 10
gdzie liczba 10 to zasig, do jakego widzimy map przechodnoci. Wylczamy konsol
graficzn (ponownie naciskamy klawisz \). I prosz, bialy obszar wokól gracza, który
widzimy tomapa przechodnoci:



Obszar, który jest niedostpny dla gracza, wywietlany jest na szaro:


106


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Jeeli chcemy wylczy widzenie map przechodnoci, to przywolujemy konsol graficzn
(za pomoc klawisza \) i wpisujemy komend:

vis_tt_map 0
Wylczamy konsol. I to wszystko. Mamy ju map przechodnoci. Zawsze krok do przodu,
a nasza mapka jest co raz bardziej funkcjonalna . Jeeli podczas testu mapki zauwaycie, e
nie moecie wej w miejsce, w które gracz powinien móc wchodzi, to za pomoc programu
Photoshop poprawcie map przechodnoci.

3.8 Lightmap'a.
Pozostala nam jeszcze do wygenerowania lightmap'a (co to jest lightmap'a ju pisalem,
dla przypomnienia jest to mapa witala, która zawiera m.in. cienie rzucane przez róne
obiekty itp. naszej mapki). Jak ju wczeniej wspomnialem, ligtmap' generuje si dopiero po
zakoczeniu prac nad mapk! Wtedy nasza mapka bdzie zawierala ju wszystkie obiekty,
rolinno itp. Oczywicie nic nie stoi na przeszkodzie, aby wygenerowa j wczeniej,
trzeba tylko pamita o jej zaktualizowaniu w razie zmiany poloenia obiektów na mapce czy
dostawieniu jaki obiektów itp., bo w innym przypadku cienie wygenerowane przez
lightmap' mog by nieprawdziwe. Zalómy, e zrobilimy lightmap', ale póniej z mapki
usunlimy jaki obiekt. Na naszej mapce bdzie dalej cie rzucany przez ten obiekt, dlatego
ponownie trzeba wygenerowa lightmap', aby ten cie usun. Zanim zaczniecie dalej
czyta ten podrozdzial, proponuj jednak maly przeskok ­ przeczytajcie teraz rozdzial o
przyrodzie. Dowiecie si z niego jak generowa rolinno na naszej mapce za pomoc
plug-in'u ,,Forest". Dziki temu na naszej mapce bdzie ju trawa i drzewa, wic sam efekt
wizualny lightmap'y bdzie lepszy. W tym podrozdziale opisuj lightmap' tworzon wlanie
ju po wygenerowaniu rolinnoci. Po przeczytaniu rozdzialu o przyrodzie (i oczywicie
dodaniu rolinnoci do naszej mapki) kontynuujcie czytanie tego podrozdzialu.
Przyszedl czas na wygenerowanie lightmap'y. W tym celu uruchamiamy plug-in
,,Environment" (klikamy na ikonie z literami `Lv') i przechodzimy do zakladki `Lighting'.
Najpierw wprowadzimy nazw naszej lightmap'y. W tym celu klikamy na przycisku
trzykropka obok pola `File', kierujemy si do katalogu \Data\LevelsNet\MojaMapka\ a jako
nazw wpisujemy MojaMapa_L (dodajemy na koniec naszej nazwy _L aby zaznaczy, e to

107

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
lightmap'a). Edytor sam doda odpowiednie rozszerzenie (ligtmapa bdzie zapisana w
formacie tga):



Trzeba jeszcze ustali rozmiar (rozdzielczo) lightmap'y. Tu w zasadzie nie ma jaki tam
odgórnych wymaga (wane, aby wymiary byly potg liczby 2 no i aby byl to kwadrat),
mam jednak kilka sugestii, co poprawi jako samej lightmap'y. Przede wszystkim pamita
trzeba, e nasza mapa koloru ma rozdzielczo 2048x2048 (prosz zwróci uwag, e przy
generowaniu bitmap za pomoc programu Bryce byla to rozdzielczo 4096x4096, jednak
póniej j zmniejszylimy do 2048x2048). To do wana uwaga, poniewa wygenerowan
lightmap' naloymy na map koloru take wskazane, aby wymiary lightmap'y byly takie
same jak wymiary mapy koloru. My pójdziemy jeszcze dalej, zwikszymy rozdzielczo
generowanej lightmap'y na 4096x4096. W ten sposób nasza lightmap'a bdzie naprawd
wyrana. Oczywicie póniej j zmniejszymy do rozdzielczoci 2048x2048 w programie
Phtoshop czy GIMP. Jeeli zaznaczymy opcj `Use sun light', podczas generowania
lighmap'y wykorzystane zostanie sloce jako ródlo wiatla. Przy generacji lightmap dla np.
wntrz bez okien (budynki itp.) takie wiatlo jest zbyteczne i szybciej si generuje lightmap'a
(wykorzystanie wiatla slonecznego bardzo spowalnia proces generacji), to samo tyczy si
mapek, gdzie nie bdzie sloca (np. noc). Nasza mapka to w zasadzie tylko otwarta
przestrze, wic opcja `Use sun light' musi by zaznaczona. Mapka musi by bardzo
realistyczna, wic drzewa, glazy czy nawet due góry musz rzuca cie na teren. Opcj
`Raytrace in both directions' zostawiamy zaznaczon (standardowo). Zaznaczenie tej opcji
powoduje, e kolizja promienia slonecznego liczona jest w obu kierunkach. Tlumaczc to na
prosty jzyk , chodzi o to, aby obiekty z jednostronnymi face'ami te rzucaly cienie. Do
obiektów z jednostronnymi face'ami mona zaliczy traw i krzaki (które w Chrome nie s
obiektami 3D lecz po prostu teksturami, które zawsze skierowane s w kierunku gracza).
Wskazane jest, aby ta opcja zawsze byla zaznaczona (cho my obecnie na mapce nie mamy
adnych obiektów z jednostronnymi face'ami), ale to take wydlua czas generowania
lightmap'y. Opcj `Preview' zostawiamy odznaczon (standardowo). Ta opcja nie jest
obslugiwana przez edytor. Musimy ustali jeszcze kolor wiatla ambientowego. W tym celu
kilkamy na pole koloru na panelu `Ambient color':



Otworzy si standardowe okienko systemu Windows do wyboru koloru. Mona wybra
standardowe kolory lub te stworzy swój podajc odpowiednie wartoci RGB. Proponuj
poda wartoci R (Red ­ czerwony) = 106, G (Green - zielony) = 106, B (Blue ­
niebieski = 106):

108

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



wiatlo ambientowe to kolor cienia, jaki bd rzuca obiekty itp. W zasadzie jest to
najciemniejszy kolor, jaki moe pojawi si na lightmap'ie. Wszystkie kolory na lightmap'ie
bd z przedzialu Ambient color a Sun color (wiatlo sloneczne, które za chwil ustawimy).
Potem klikamy na przycisku `OK', aby zamkn okno wyboru koloru. Pokae si okno
`Propagate ambients':



Zostawiamy zaznaczon opcj `set in outside objects (set by default)' i klikamy na przycisku
`Propagate'. Wywietlana tu opcja pozwala przenie kolor ambientu do wszystkich
obiektów. Pierwsza opcja (`set in outsider objects') przeniesie to do obiektów nie
posiadajcych portali (o portalach przeczytacie w rozdziale o obiektach w podrozdziale o
portalach) czyli w praktyce do tych, które znajduj si na zewntrz (na otwartej przestrzeni).
Druga opcja (`set in inside objects') przenosi kolor ambient do obiektów znajdujcych si w
grupach podpitych pod obiekty z portalami (w praktyce do tych obiektów, które znajduj si
wewntrz budynków itp.). Na pocztku moe to by trudne do zrozumienia (te mialem z tym
problem ), ale w miar praktyki z tworzeniem mapek mona to szybko zrozumie. Dobrze,
teraz musimy jeszcze ustali kolor witala slonecznego, klikamy na pole koloru na panelu
`Sun color':



Standardowo jest tam kolor bialy (RGB = 255). Proponuj zostawi ten kolor. Skoro mamy
ju wszystko ustawione moemy wygenerowa nasz lightmap'. W tym celu klikamy na
przycisku `Generate':


109

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Uwaga! Generowanie lightmap'y bdzie trwalo naprawd bardzo, bardzo dlugo, wszystko
zaley od moliwoci naszego komputera a take rozdzielczoci samej lightmap'y, iloci
obiektów na mapce itp. Zaznaczam, e generowanie lightmap'y moe potrwa nawet par
godzin! Wic teraz mona zrobi sobie przerw , wyj na dwór, zje obiad itp. Bdziemy
mieli naprawd duo wolnego czasu! Postp generowania lightmap'y moemy zobaczy na
dole ekranu. Obok napisu `Generation' przesuwa si niebieski wskanik.
No dobrze, lighmap'a w kocu si wygenerowala (zajmuje ok. 50MB!!!). Trzeba j
teraz dostosowa do naszych potrzeb. Uruchamiamy program Phtoshop lub GIMP.
Wczytujemy nasz lightmap' ­ w Photoshop'ie z menu File wybieramy polecenie Open i
kierujemy si do katalogu \Data\LevelsNet\MojaMapka\, wczytujemy plik MojaMapa_L.tga.
Gdyby ten plik przypadkiem byl niewidoczny to w oknie `Open' jako format pliku
wybieramy tga:

PHOTOSHOP


W GIMP'ie sytuacja jest podobna. Z oknie `The GIMP' (glówne okno programu) z menu File
wybieramy polecenie Open i kierujemy si do katalogu \Data\LevelsNet\MojaMapka\,
wczytujemy plik MojaMapa_L.tga. Przede wszystkim trzeba cal lighmap' a take poziom
czerni, rozjani. Jeeli nie rozjanimy poziomu czerni to nasz cie bdzie wygldal raczej
jak wylana smola a nie cie. Aby to zmieni, w Photoshop'ie z menu Image wybieramy
polecenie Levels (Image -> Adjustments -> Levels):

PHOTOSHOP


Najpierw rozjanimy poziom czerni. Sluy do tego mala strzaleczka (zaznaczylem j na
czerwono na poniszym rysunku). Przesuwamy j w prawo tak, aby w pierwszym polu
`Output Levels' znalazla si warto 80. Oczywicie od razu mona wpisa tam warto 80.
Jeeli dodatkowo jest zaznaczona opcja `Preview' to wszelkie zmiany dokonywane w oknie
`Levels' bd od razu widoczne na naszej lighmap'ie:

PHOTOSHOP

110

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Po zmianie tej wartoci (tu na 80) od razu widzimy, e na naszej lightmap'ie zmienil si
poziom czerni, tym samym rzucane cienie nie s ju takie smoliste. I o to nam wlanie
chodzilo! Teraz rozjanimy jeszcze lighmap'. Do tego slu kolejne dwie strzaleczki,
zaznaczone na poniszym rysunku:


PHOTOSHOP


Strzaleczk zaznaczon na zielono ustawiamy jasno lightmap'y a zaznaczon na czerwono
balans midzy ciemnym a jasnym kolorem. Strzaleczk zaznaczon na zielono przesuwamy
w lewo tak, aby osign warto 220 w ostatnim polu `Input Levels' (pole to take
zaznaczylem na zielono na powyszym rysunku, mona oczywicie od razu tam wpisa 220)
a potem strzaleczk zaznaczon na czerwono przesuwamy w prawo tak, aby osign warto
0,75 w rodkowym polu `Input Levels' (to pole take zaznaczylem na czerwono na
powyszym rysunku, mona wpisa rcznie 0,75).
W GIMP'ie klikamy prawym przyciskiem myszki na naszej lightmap'ie i z menu Image
wybieramy polecenie Levels (Image -> Colors -> Levels):


GIMP

111

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Otworzy si okno `Levels', które jest identyczne jak to z programu Photoshop, wic nie bd
tu pisal co, gdzie zmieni. Zerknijcie wyej i ju. Ok, wydaj mi si, e to optymalne
ustawienia dla naszej lightmap'y, przeznaczonej dla naszej mapki. Oczywicie, jeeli
bdziemy robi mapk, gdzie bdzie noc to ustawimy inne parametry dla lighmap'y, ale to
ju pozostawiam Wam, jeeli chcecie si szybko czego nauczy to po prostu próbujcie,
wiczcie. Zapewniam Was, e efekty Waszej nauki bd niedlugo ju zauwaalne. W
porzdku, klikamy na przycisku `OK' zamykajc tym samym okno `Levels'. Teraz musimy
nasz lighmap' odbi w pionie. W Photoshop'ie wybieramy polecenie Flip Vertical z menu
Image (Image -> Rotate Canvas -> Flip Vertical):

PHOTOSHOP


W GIMP'ie trzeba znowu si troch namczy . Klikamy prawym przyciskiem myszki na
lightmap'ie i z menu Tools wybieramy polecenie Flip (Tools -> Transform Tools -> Flip):

GIMP

112

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Kursor przyjmie ksztalt dwóch strzalek skierowanych w lewo i prawo. W ten sposób odbi
mona lightmap'e w poziomie. Poniewa my chcemy odbi j w pionie naciskamy klawisz
CTRL (kursor przyjmie ksztalt dwóch strzalek skierowanych w gór i dól) i trzymajc go
wcinity klikamy na naszej lightmap'ie. Có, w GIMP'ie obrót tak duej bitmapy zajmuje
do duo czasu (o wiele, wiele dluej ni w programie Photoshop) wic trzeba uzbroi si w
cierpliwo (na ten czas ksztalt kursora zmieni si na zegar). Tak spreparowan lightmap'
musimy pomniejszy. Jak zapewne pamitacie nasza mapa koloru ma rozdzielczo
2048x2048 a lightmap'a 4096x4096. W tym celu w programie Photoshop wybieramy
polecenie Image Size z menu Image:

PHOTOSHOP


Otworzy si okno `Image Size'. Tam wpisujemy warto 2048 dla pola `Width' (szeroko) i
2048 dla pola `Height' (wysoko). Jeeli mamy zaznaczon opcj `Constrain Proportions' to
Photoshop sam zadba o zachowanie proporcji (w tym przypadku, jeeli wpiszemy 2048 dla
pola `Width' automatycznie pojawi si 2048 w polu `Height'). Skoro mamy ju wybrane
odpowiednie wartoci klikamy na przycisku `OK':

PHOTOSHOP

113

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W GIMP'ie klikamy prawym przyciskiem myszki na lighmap'ie i z menu Image wybieramy
polecenie Scale Image:


GIMP



Otworzy si okno `Scale Image'. Na panelu `Pixel Dimensions' wpisujemy nowe wartoci w
polach `New Width' (2048) i `Height' (take 2048):

GIMP


Potem klikamy na przycisku `OK'. Tu take rónica w prdkoci dzialania programu GIMP i
Adobe Photoshop. GIMP operacj zmiany rozmiaru naszej lightmap'y bdzie wykonywal o
wiele, wiele dluej. Obecnie moja lightmap'a wyglda tak (oczywicie w duym
pomniejszeniu):


114

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1




Nadszedl czas aby zapisa nasz lightmap'. W Photoshop'ie z menu File wybieramy
polecenie Save As, tam kierujemy si do katalogu \Data\LevelsNet\MojaMapka\, wpisujemy
nazw MojaMapa_L a jako format pliku wybieramy png:

PHOTOSHOP


Klikamy na przycisku `Zapisz'. Na zadane pytanie (okno `PNG Options') wybieramy opcj
`None' i klikamy na przcisku OK.
W GIMP'ie klikamy prawym przyciskiem myszki na naszej lightmap'ie i z menu File
wybieramy polecenie Save As. Kierujemy si do katalogu \Data\LevelsNet\MojaMapka\.
Wpisujemy nazw pliku jako MojaMapa_L a jako format pliku wybieramy png:

GIMP



115

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

Pokae si okno `Save as PNG'. Nic nie zmieniajc klikamy na przycisku `OK'. Teraz, gdy
zapisalimy ju nasz lightmap', naloymy j na nasz map koloru. W tym celu musimy
oczywicie otworzy map koloru (MojaMapa_C2.png, uywamy tej nowej, zmodyfikowanej
mapy koloru). Zapewne wiecie ju jak otwiera pliki w programach Photoshop i GIMP wic
nie bd ju tego opisywal. Wic wczytujemy nasz map koloru. Musimy jeszcze skopiowa
nasz lightmap' ­ naciskamy klawsze CTRL + A (zaznacz wszystko) a potem CTRL + C
(kopiuj). Przechodzimy na nasz map koloru i naciskamy klawisze CTRL + V (wklej).
Posiadacze GIMP'a postpuj tak samo. W ten sposób naloylimy lightmap' na map
koloru. Ustawimy teraz jeszcze odpowiednie blendowanie (przenikanie jednej bitmapy przez
drug). W Photoshop'ie z menu Layer wybieramy polecenie Blending Options (Layer ->
Layer Style -> Blending Options
):

PHOTOSHOP


Otworzy si okno `Layer Style'. Teraz z listy `Blend Mode' wybieramy `Multiply':

PHOTOSHOP


Klikamy na przycisku `OK'.
W GIMP'ie przechodzimy do okna `Layers, Channels & Paths'. Klikamy na przycisku
`Mode' i z listy wybieramy `Multiply (Bum)':


GIMP




116

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Gotowe. Jeeli zauwaymy, e nasza mapa koloru po naloeniu lightmap'y jest zbyt ciemna,
moemy j rozjani. W Photoshop'ie z menu Image wybieramy polecenie
Brightness/Contrast (Image -> Adjustments -> Brightness/Contrast):

PHOTOSHOP


Otworzy si okno `Brightness/Contrast'. Suwakiem `Brightness' ustalamy jasno
(przesuwajc strzaleczk w prawo rozjaniamy obraz a przesuwajc w lewo ciemniamy).
Suwakiem `Contrast' regulujemy kontrast (przesuwajc strzaleczk w prawo zwikszacie
kontrast a w lewo zmniejszacie). Jak zapewne widzicie ja swoj map koloru rozjanilem
(Brightness na 25):

PHOTOSHOP


W GIMP'ie klikamy prawym przyciskiem myszki na naszej bitmapie i z menu Image
wybieramy polecenie Brightness-Contrast (Image -> Colors -> Brightness-Contrast):


GIMP



Otworzy si okno `Brightness-Contrast'. Tam za pomoc suwaków mona rozjani lub
ciemni bitmap (`Brightness') a take kontrast (`Contrast'):

GIMP

117

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Rozjanijmy j troch (Brightness na +25). Klikamy na przycisku `OK'. Koniec! Zapisujemy
zmodyfikowan map koloru nadajc jej nazw MojaMapa_CL (dodaj _CL aby zaznaczy,
e jest to mapa koloru polczona z lightmap'), proponuj nie zapisywa nowej mapy koloru
na starej, w ten sposób zawsze bdziemy mogli powróci do pierwotnej wersji. Jako format
pliku wybieramy png. W programie Photoshop na zadane pytanie (okno `PNG Options')
wybieramy opcj `None' i kilkamy na przycisku `OK'. W GIMP'ie otworzy si okno `Export
File'. Tu nic nie zmieniamy, klikamy tylko na przycisku Export. Teraz otworzy si okno
`Save as PNG'. Tu take nic nie zmieniamy i kilkamy na OK.
Uruchamiamy edytor ChromEd, uruchamiamy plug-in ,,Environment" (klikamy na ikonie z
literami `Lv'). Przechodzimy do zakladki `Terrain'. Teraz zmieniamy dwie mapy: w polu
`ColorMap' wskazujemy plik MojaMapa_CL.png a w polu `LightMap' wskazujemy
MojaMapa_L.png:



Klikamy na przycisku `Apply', aby zaakceptowa zmiany. Brawo! Mamy nasz mapk razem
z lightmap'! Oto rezultat:


118


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Przypominam tylko, e ligthmap'a musi zosta wygenerowana dopiero, gdy nasza
mapka bdzie w 100% gotowa (bdzie zawierala wszystkie obiekty itp.). To samo tyczy si
generowania lightmap'y dla obiektów. Najlepiej zaraz po wygenerowaniu lightmap'y dla
terenu, wygenerowa lightmap'y dla obiektów. Pamitajcie te, e lightmap' naley narzuci
na wygenerowan przez plug-in ,,Forest" rolinno. W tym celu trzeba uruchomi plug-in
,,Forest" i klikn na przycisku `Update trees lightmap' na panelu `Update':



Mam nadziej, e teraz bdziecie umieli ju generowa lightmap'.

3.9 Minimapa.
W tym rozdziale pozostala nam tylko do omówienia minimapa. Minimapa to po prostu
mapa terenu (zdjcie satelitarne), któr przywolujemy klawiszem M (standardowo) podczas
gry. Dodatkowo fragment tej mapy zawsze wida z lewej strony HUD'a. Zdjcie satelitarne
(tak to si fachowo nazywa) zrobi za nas edytor ChromEd. Przede wszystkim klikamy na
ikonie `Take sattelitar photos', która znajduje si na pasku narzdziowym z prawej stronie
edytora ChromEd:



Otworzy si okno `Taking screenshot'. Musimy nada nazw naszemu zdjciu satelitarnemu.
W tym celu klikamy na przycisku trzykropka obok pola `File name'. Kierujemy si do
katalogu \Data\LevelsNet\MojaMapka\ i podajemy nazw MojaMapa_S (dodamy _S aby

119

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
zaznaczy, e jest to zdjcie satelitarne). Podajemy te szeroko zdjcia (pole `Width') i
wysoko (pole `Heigh'). Myl, e standardowe 512x512 jest wystarczajce:



Oczywicie, czym wysza rozdzielczo tym lepsza jako zdjcia, jednak sama gra i tak
odpowiednio pomniejszy zdjcie, aby zmiecilo si do ramek minimapy, wic nie ma sensu
ustawia wikszej rozdzielczoci. Musimy zaznaczy jeszcze czy to bdzie zdjcie satelitarne
calego terenu czy te jakiego wyznaczonego obszaru. Ustawiamy to na panelu `Terrain
extent'. Pierwsza z opcji ­ `all' ­ dotyczy calego terenu. Wic zostawmy t opcj zaznaczon,
chcemy zrobi zdjcie calego terenu:



Druga opcja to `partial'. Tu moemy poda obszar, z jakiego chcemy zrobi zdjcie. Moemy
rcznie wpisa wartoci lub klikn na przycisku `Pick from terrain' i zaznaczy prostoktny
obszar, z którego bdzie zrobione zdjcie satelitarne (zasada dzialania tego przycisku jest taka
sama jak tego, który wyznacza, w jakim miejscu ma znajdowa si woda):



Skoro mamy ju wszystko ustawione klikamy na przycisku `OK'. Teraz to zdjcie satelitarne
musimy jeszcze odbi (nie obróci!) w pionie i poziomie. W tym celu uruchamiamy program
Photoshop lub GIMP i wczytujemy nasz plik MojaMapa_S.tga (zdjcie satelitarne
zapisywane jest w formacie tga).. W Photoshop'ie z menu Image najpierw wybieramy
poleceie Flip Canvas Vertical a potem Flip Canvas Horizontal (Image -> Rotate Canvas ->
Flip Canvas Vertical
i Flip Canvas Horizontal):


PHOTOSHOP

120

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W GIMP'ie klikamy prawym przyciskiem myszki na naszym zdjciu satelitarnym i z menu
Tools wybieramy polecenie Flip (Tools -> Transform Tools -> Flip):


GIMP



Kursor przyjmie ksztalt dwóch strzaleczek skierowanych w lewo i prawo, co oznacza, e
odbicie bdzie wykonany w poziomie. Teraz wystarczy po prostu klikn na naszej bitmapie.
Aby odbi bitmap w pionie wystarczy przycisn klawisz CTRL (kursor przyjmie ksztalt
dwóch malych strzaleczek skierowanych w gór i dól, co oznacza, e odbicie wykonane
zostanie w pionie) i klikamy na naszej bitmapie. Tak, mam ju gotowe zdjcie satelitarne,
które wykorzystamy do Minimapy. Musimy jeszcze j tylko zapisa. Podajemy nazw pliku
MojaMapa_S a jako format pliku wybieramy png. W Photoshop'ie, w oknie `PNG Optioions'
wybieramy opcj `None' i klikamy na przcisku `OK'. W GIMP'ie, w oknie `Save as PNG'
pozostawiamy wszystkie opcje bez zmian i klikamy na przycisku `OK'. Wracamy do edytora
ChromEd. Uruchamiamy plug-in ,,Environment" (dla przypomnienia jest to ikona z literami
`Lv') i przechodzimy do zakladki `Java'. Przy atrybucie slnGameMap w sekcji MAP klikamy
na przycisku trzykropka. Pprzycisk ten pojawi si po zaznaczeniu atrybutu slnGameMap:


121


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


i wskazujemy nasz plik MojaMapa_S.png. Klikamy na przycisku `Apply' i zamykamy plug-
in ,,Environment". Uruchamiamy tryb gry (klikajc na ikonie z literami `Go'). Gdy uruchomi
si gra naciskamy klawisz M i prosz bardzo:



To tyle, jeeli idzie o minimap. Wskazane jest te, aby zdjcie satelitarne do minimapy
zrobi dopiero na koniec, gdy cala mapka bdzie ju gotowa, zaraz po wygenerowaniu
lightmap'y dla terenu. Wtedy takie zdjcie bdzie najbardziej aktualne (wygld terenu,
obiekty na terenie itd.) Uwaga! Mog wystpi pewne trudnoci ze zrobieniem zdjcia
satelitarnego w starszej wersji edytorze ChromEd. Jeeli na taki problem napotkacie to
zerknijcie do dodatku o minimapie niniejszego dokumentu.



Rozdzial 4 ­ Przyroda

4.1 Znowu teoria.
W tym rozdziale do naszej mapki dodamy troch przyrody . Mówic ,,przyroda" mam
na myli dodanie takich elementów jak rolinno (trawa, drzewa itp.) a take rónego
rodzaju kamienie (glazy itp.). W tym celu posluymy si kolejnym plug-in'em tzn.
plug-in'em ,,Forest". Plug-in ten sluy do generowania na mapce wielu obiektów podobnego
typu na okrelonej przestrzeni. Mona go wykorzysta przede wszystkim do generowania
trawy i lasów, ale istnieje moliwo umieszczania przy jego pomocy jakichkolwiek innych
obiektów (np. kamieni a nawet budynków!). Wlanie ze wzgldu na to, e w wikszoci

122

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
przypadków plug-in ten wykorzystuje si do generowania trawy, drzew, skal itp. bd mówil
ogólnie - generowanie rolinnoci. Naley pamita o tym, e obiekty umieszczone na naszej
mapce za pomoc plug-in'a ,,Forest", nie s traktowane tak samo, jak pozostale obiekty
umieszczone za pomoc plug-in'a ,,Mesh Browser". Dla przykladu, dla wygenerowanego
obiektu za pomoc plug-in'a ,,Forest" nie bdziemy mieli dostpu do atrybutów tego obiektu.
Doda trzeba, e jest rónica midzy traw a drzewami. Otó drzewo to obiekt, który
reprezentowany jest przez mesh'a (plik 3da). Drzewa mona znale w katalogu
\Data\Meshesh\Naturals\ np. DrzewoSwierk.3da. Natomiast trawa jest reprezentowany przez
pojedyncz tekstur (plik png), która zawsze ustawiona jest przodem (widoczn stron) w
kierunku gracza. Tekstury traw mona znale w katalogu \Data\Meshesh\Textures\ np.
CH_T_Trawa2.png. Zasada dzialania samego plug-in'a jest do prosta i sprowadza si do
stworzenia warstw. Kada warstwa zawiera swoje obiekty np. warstwa z traw bdzie
zawierala tekstury trawy, warstwa z drzewami bdzie zawierala obiekty z drzewami itd.
Spójrzcie na poniszy rysunek:



Tak przedstawia si standardowy uklad warstw. Warstwy generuj si kolejno od tej, która
jest ostatnia (najniej), do tej, która jest pierwsza (najwyej). Z powyszego rysunku wynika,
e najpierw zostanie wygenerowana warstwa z nisk traw, potem wysok itd. a na kocu
warstwa z kamieniami. Kada warstwa generuje swoje obiekty. W momencie wstawiania ich
do mapki usuwaj one te obiekty, które przeszkadzaly im w zajciu danej pozycji (byly zbyt
blisko). Dotyczy to nie tylko rozmiaru wstawianego obiektu, ale tkae najmniejszej
odlegloci od innych obiektów tego samego typu (w przypadku drzew dotyczy to tego
samego mesh'a, w przypadku traw tej samej tekstury). Jednym slowem wysza warstwa
wycina obiekty (w razie potrzebny) z niszej warstwy. Na efekt kocowy najwikszy wplyw
maj warstwy generowane najpóniej (znajdujce si na samej górze). Oczywicie parametry
kadej warstwy jak i samych obiektów wchodzcych w sklad warstwy bdziemy mogli
dokladnie ustawi za pomoc plug-in'a ,,Forest". No dobrze, ale skd plug-in ,,Forest" ma
wiedzie gdzie ma wygenerowa rolinno? Otó do tego celu stworzymy mapy gstoci.
Mapa gstoci to po prostu bitmapa przy tworzeniu której, wykorzystuje si dwa kolory: bialy
- oznacza si nim obszary wystpowania rolinnoci na warstwie (maksymalna gsto) i
czarny, którym oznacza si brak wystpowania rolinnoci na warstwie (brak gstoci).
Wartoci porednie (czyli odcienie szarego) s interpolowane. Kada warstwa moe mie
swoj map gstoci, ale nic nie stoi na przeszkodzie, aby jedn map gstoci wykorzysta
do kilku warstw. Upraszczajc dzialanie mapy gstoci - tam gdzie bdzie bialy kolor pojawi
si obiekt warstwy a tam gdzie bdzie kolor czarny nie. Zanim wygenerujemy rolinno na

123

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
naszej mapce proponuj spojrze na sam plug-in ,,Forest". Najpierw omówi górn cz
plug-in'a:



Na panelu `Layers', z lewej strony znajduje si lista warstw wraz z obiektami wchodzcymi
w sklad danej warstwy. Musicie pamita, e warstwy generowane s od ostaniej (najnisza
warstwa na tej licie) do pierwszej (pierwsza warstwa na tej licie). Przyjrzyjmy si bliej
jednej warstwie:



Jak latwo zauway ta warstwa ma nazw `Trawa' (obok nazwy znajduje si nazwa mapy
gstoci warstwy wraz z ciek dostpu do tej mapy). Pod warstw znajduj si obiekty
wchodzce w sklad warstwy, tu s to tekstury trawy (CH_T_Trawa4.png, CH_T_Trawa3.png
itd.). Podawana jest te cieka dostpu do danej tekstury. Warstwy z trawami maj liter V z
przodu nazwy warstwy:



natomiast warstwy z obiektami (mesh'ami) maj liter X z przodu nazwy warstwy:




124

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Jeeli jest sama nazwa warstwy, bez adnej litery to oznacza to, i ta warstwa nie bdzie brala
udzialu w generowaniu (mona zaznaczy, które warstwy maj bra udzial w generowaniu a
które nie):



Dla odrónienia warstw od obiektów, kady obiekt poprzedzony jest znakiem `|----`:



Z prawej strony listy warstw i obiektów na panelu `Layers', znajduj si grupa przycisków:



Za pomoc przycisku `Properties' moemy ustawi parametry zaznaczonej warstwy lub
obiektu. Przycisk `Move up' pozwala przesun w gór o jedn pozycj na licie zaznaczon
warstw lub obiekt, natomiast przycisk `Move down' pozwala przesun w dól o jedn
pozycj na licie zaznaczon warstw lub obiekt. Jak wczeniej napisalem warstwy
generowane s w odpowiedniej kolejnoci wic za pomoc tych dwóch przycisków mona
ustawi kolejno warstw. Kolejno obiektów na warstwie nie ma znaczenia. Nie mona te
przenosi obiektów midzy warstwami. Kolejny przycisk to przycisk `Add Layer'. Za jego
pomoc mona doda now warstw z obiektami, które reprezentowane s przez mesh'e (np.
drzewa). Nowa warstwa pojawi si przed zaznaczon warstw na licie. Pozycj tej warstwy
mona póniej zmieni za pomoc przycisków `Move up' i `Move down'. Za pomoc
przycisku `Add GLayer' mona doda now warstw z obiektami, które reprezentowane s
przez tekstury (np. trawa). Tu take nowa warstwa pojawi si przed zaznaczon warstw na
licie a jej pozycj mona póniej zmieni za pomoc przycisków `Move up' i `Move down'.
Przycisk `Add Object' pozwala doda obiekt do zaznaczonej warstwy (w zalenoci od tego,
jaka warstwa jest zaznaczona, moemy doda obiekt reprezentowany przez mesh'a lub przez
tekstur). Za pomoc przycisku `Delete' moemy usun zaznaczony obiekt wchodzcy w
sklad warstwy lub cal zaznaczon warstw. Przycisk `Delete all' pozwala usun wszystkie
warstwy wraz z obiektami z listy. Pod list warstw i obiektów znajduj si dodatkowe trzy
przyciski:


125

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Za pomoc przycisku `Export' moemy wyeksportowa nasz list warstw i obiektów do
pliku fd2, natomiast za pomoc przycisku `Import' moemy zaimportowa t list. Przycisk
`Append' pozwala dolczy do aktualnej listy warstw i obiektów inn, wczeniej
wyeksportowan list. A po co w ogóle eksportowa i importowa list? Po prostu mona
zrobi sobie jaki szablon listy z warstwami i obiektami, wyeksportowa go do pliku fd2 a
póniej korzysta z niego przy tworzeniu mapek. Pozwoli to uniknicia powtarzania tych
samych czynnoci dla kadej mapki. Pod panelem `Layers' znajduje si kolejny panel, panel
`Generate options', na którym dostpne s cztery przyciski:



Za pomoc przycisku `Generate' rozpoczynamy proces generowania rolinnoci na podstawie
listy warstw i obiektów. Po klikniciu na tym przycisku pojawi si okno `Generating trees':



Wywietlany jest tu postp generowania rolinnoci. Kliknicie na przycisku `Start'
rozpoczyna proces generowania. W polu `Current layers' wywietlana jest nazwa aktualnie
generowanej warstwy, wskanik `Layers' wywietla calkowity postp generowania warstw
natomiast wskanik `Objects' wywietla postp generowania aktualnie generowanej warstwy.
Jeeli chcemy zamkn to okn, naciskamy klawisz ESC. Wana uwaga przed rozpoczciem
generowania. Jeeli wygenerowalimy rolinno i ponownie klikniemy na przycisku
`Generate' to poprzednio generowana rolinno zniknie z naszej mapki. Sam proces
generowania moe by naprawd dlugotrwaly, nawet do kilku godzin! Wszystko zaley od
wielkoci naszej mapki a take od ilo warstw, mapy gstoci kadej warstwy i ustawie
poszczególnych warstw i obiektów. Kolejnym przyciskiem jest przycisk `Degenerate'.
Kliknicie na tym przycisku spowoduje usunicie z mapki wczeniej wygenerowaniej
rolinnoci. Przycisk `Select all' powoduje dolczenie do generowania wszystkich warstw z
listy. Jak ju wczeniej pisalem, mona zaznaczy, które warstwy bd braly udzial w
generowaniu a które nie (zaznaczajc odpowiedni opcj w ustawieniach warstwy, o czym
napisz w nastpnym podrozdziale). Jeeli chcemy mie pewno, ze wszystkie warstwy z
naszej listy bd braly udzial w generowaniu rolinnoci to po prostu klikamy na tym
przycisku. Przycisk `Deselect all' powoduj odlczenie wszystkich warstw z generowania,
tym samym nic nie zostanie wygenerowane. Kolejnym panelem w plug-in'ie ,,Forest" jest
panel `Global parameters':


126

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Za jego pomoc moemy ustawi zasig i sposób wywietlania wygenerowanych drzew (nie
dotyczy innych obiektów reprezentowanych przez mesh'e np. skaly a take obiektów
reprezentowanych przez tekstury np. traw). W polu `View distance' moemy ustawi zasig
widocznoci wygenerowanych drzew. Drzewa, które znajduj si daleko od gracza (lub
kamery), nie s wywietlane. Standardow wartoci jest 22000, czyli okolo 220m (100
jednostek = 1m fizyczny). Czym zasig jest wikszy tym bardziej oddalone drzewa s
widoczne, ale przez to sama mapka moe dziala wolniej (zaley to od jej wielkoci oraz od
iloci wygenerowanych drzew). W polu `Skip LOD' moemy zaznaczy, ile poziomów
szczególów (ang. `Level Of Detail') bdzie pomijany przy wywietlaniu drzew. Standardowa
warto to 0, czyli obiekty drzew wywietlane bd normalnie. Po wprowadzeniu wartoci
wikszej od zera, pomijane bd kolejne poziomy szczególów (wicej informacji na temat
poziomu szczególów mona znale w rozdziale o obiektach w podrozdziale o atrybutach
obiektów, przy omawianiu zakladki `Misc' okna atrybutów obiektów). W polu `LOD
selection factor' moemy ustawi wspólczynnik wybierania poziomów szczególów drzew.
Standardow wartoci jest 0.3. Jeeli chcemy, aby drzewa byly wywietlane najbardziej
szczególowo, to wpisujemy warto 0.0001. Nie wpisywa wartoci 0! Czym nisza warto
tym drzewa bardziej szczególowe, ale przez to mapka moe dziala wolniej. W ostatnim polu
`Blend range' moemy ustawi zasig, po którym wygenerowane drzewa bd si blendowa
(przenika). Drzewa, które znajduj si daleko od gracza (lub kamery) nie s wywietlana
(zasig ustawiamy za pomoc pola `View distance' omówionego powyej). Gdy gracz si do
nich zblia zaczynaj si pojawia. Aby unikn naglego wyrastania drzew stosuje si efekt
blendowania ­ elementy drzewa bd pojawia si stopniowo. Standardow warto to
15000, czyli okolo 150m (100 jednostek = 1m fizyczny). Na panelu `Update' znajduj si
trzy przyciski:



Za pomoc przycisku `Update trees parameters' uaktualniamy wszystkie wprowadzone
zmiany dotyczce parametrów warstw i obiektów. Za pomoc przycisku `Update trees
lighmap' narzucamy wczeniej wygenerowan lightmap' terenu na wygenerowan
rolinno. Jak zapewne pamitacie na sam koniec tworzenia mapki musicie wygenerowa
lightmap' dla terenu (zerknijcie do rozdzialu o tworzeniu terenu do podrozdzialu o
lightmap'ie). Jeeli wiec tak lightmap' wygenerujecie to nie tylko musicie j naloy na
map koloru i dolczy do mapki za pomoc plug-in'u ,,Environment", ale jeszcze trzeba
narzuci j na wygenerowan rolinno po to, aby na drzewach i trawie take pojawily si
cienie z lightmap'y. Przycisk `Update to terrain' pomocny jest przy modyfikowaniu terenu
(mapy wysokoci). Zalómy, e wprowadzimy jakie zmiany w uksztaltowaniu terenu np.
dodalimy dolin, ju po wygenerowaniu rolinnoci. W obecnej sytuacji rolinno nie
bdzie przylega do terenu w miejscu, gdzie zrobilimy dolin, lecz bdzie wisie w

127

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
powietrzu. Wtedy wystarczy klikn na przycisku `Update to terrain'. W ten sposób
unikniemy koniecznoci ponownego generowania rolinnoci. Przedostatnim panelem w
plug-in'ie ,,Forest" jest panel `Trees / grass removing'. Znajduj si na nim trzy przyciski:



Za pomoc trych przycisków mona usun traw lub drzewa z okrelonego obszaru. Jeeli
wygenerowalimy rolinno, ale w którym miejscu chcemy postawi budynek to wiadomo,
e nie moe tam by trawy. Mona wic usun rolinno z okrelonego obszaru. Klikajc
na przycisku `Remove tree' i zaznaczajc myszk obszar na terenie naszej mapki, usuwamy
drzewa. Jeeli te same czynnoci zrobimy za pomoc przycisku `Remove grass' to w
okrelonym obszarze usuniemy traw. Za pomoc przycisku `Auto remove grass' moemy
usun wygenerowan traw poniej podanego poziomu. Po klikniciu na tym przycisku
pojawi si okno `Get remove grass level':



W polu `Level' podajemy poziom, poniej której zostan usunite wszystkie wygenerowane
trawy a potem klikamy na przycisku `OK'. Standardowo jest to poziom wody (ustawiony za
pomoc plug-in'u ,,Environment"), o ile na naszej mapce jest woda. Jeeli na naszej mapce
wygenerujemy traw a cze tej trawy znajdzie si pod wod to za pomoc przycisku `Auto
remove grass' moemy usun traw spod wody. Jeeli chcemy wyj z trybu usuwania
drzew lub trawy, wystarczy ponownie klikn na przycisku `Remove tree' lub `Remove
grass', albo przej w inny tryb np. zaznaczania obiektów. Ostatnim panelem jest panel `Tree
billboard generation' i jest tam dostpny tylko jeden przycisk:



Po klikniciu na przycisku `Generate' wszystkie wygenerowane drzewa zostan
przeksztalcone w tzw. bilboardy (obiekty z najniszym poziomem szczególów). Efekt
wizualny na pewno bdzie o wiele gorszy, ale przyspieszy to dzialanie mapki, szczególnie,
jeeli jest to dua mapka i posiada duo drzew.
Tak wyglda generowanie rolinnoci i dzialanie plug-in'u ,,Forest" w teorii. Teraz
przejdziemy do praktyki. Nareszcie dodamy zieleni do naszej mapki . Wic do dziela.

4.2 Generujemy rolinno.
Zaczynamy od stworzenia mapy gstoci. Wlaciwie to zrobimy dwie mapy ­ jedn dla
traw, drug dla drzew. Uruchamiamy program Photoshop lub GIMP. Bardziej szczególowe
informacje na temat obslugi tych programów znajdziecie w rozdziale o tworzeniu terenu
w podrozdziale o mapie wysokoci i w podrozdziale o mapie koloru. Wczytujemy nasz

128


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
map koloru. Przypominam, e chodzi o now map koloru tj. MojaMapa_C2.png. Teraz
tworzymy now warstw. Zaczn od programu Photoshop. Zmiemy nazw nowej nazwy na
`Trawa'. Now warstw wypelnimy kolorem czarnym, co oznacza, e w tych miejscach nie
bdzie wygenerowana adna trawa. Aby ustawi kolor czarny jako standardowy kolor dla
narzdzi w Photoshopie wystarczy nacisn klawisz D. Teraz moemy wypelni ju nasz
now warstw. W tym celu wybieramy narzdzie `Paint Bucket Tool':

PHOTOSHOP


i klikamy na nowej warstwie. Zwrócie uwag czy ta warstwa jest aktywana, musi obok niej
znajdowa si maly pdzelek:

PHOTOSHOP


Uytkownicy GIMP'a postpuj troch inaczej. Poniewa ju przy tworzeniu nowej warstwy
moemy zaznaczy, jakim kolorem bdzie wypelniona warstwa to najpierw ustawmy
odpowienie kolory. Przywracamy standardowe kolory dla narzdzi i tla. W tym celu klikamy
na maly przycisk, który znajduje si pod panelem wyboru koloru w oknie `The GIMP'
(glówne okno programu):

GIMP


W ten sposób ustawimy kolor czarny domylnym kolorem narzdzi a kolor bialy domylnym
kolorem tla. My jednak chcemy mie czarny kolor tla, wic musimy te kolor zamieni
miejscami. W tym celu klikamy na maly przycisk, który znajduje si tu nad panelem wyboru
koloru:

GIMP


Dobrze, kolory mamy ju ustawione. Klikamy na przycisku `New Layer' w oknie `Layers,
Channels & Paths'. Otworzy si okno `New Layer Options' a tam wpisujemy nazw naszej
nowej warstwy (`Trawa') a take zaznaczamy opcj `Background' na panelu `Layer Fill
Type':

GIMP

129


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Warstwa dodana, dodatkowo jest ju wypelniona na czarno. Teraz na bialo bdziemy
zaznacza miejsca, na których ma by wygenerowana trawa. Proponuj, aby traw
wygenerowa na calej mapce pomijajc wzgórza oraz drogi. No, ale musimy przecie
widzie gdzie te wzgórza i droga s a przecie map koloru zaslania nowa, czarna warstwa.
W tym celu wystarczy zmniejszy warto `Opacity' warstwy `Trawa' na np. 35. Robi to
zarówno uytkownicy Photoshop'a jak i GIMP'a. W Photoshop'ie klikamy na malej
strzaleczce w oknie z warstwami i przesuwamy suwak w lewo do wartoci 35 (pamitajcie,
aby aktywn warstw byla warstwa `Trawa'):

PHOTOSHOP


W GIMP'ie taki suwak znajduje si tu nad list warstw w oknie `Layer, Channels & Paths':

GIMP


Tu take pamitajcie, aby warstwa `Trawa' byla warstw aktywn (w GIMP'ie aktywna
warstwa zaznaczona jest na niebiesko). Dobrze. Musimy teraz wybra kolor bialy jako
standardowy kolor narzdzi. Uytkownicy Photoshop'a mog nacisn klawisz D a potem X.
Uytkownicy GIMP'a maj ju wybrany kolor bialy jako standardowy kolor narzdzi. Po
wybraniu koloru bialego wybieramy narzdzie `Lasso Tool' (w obu programach narzdzie to
wyglda i dziala tak samo, róne s tylko nazwy):

PHOTOSHOP
GIMP





130



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Teraz po prostu na warstwie `Trawa' zaznaczamy (rysujemy) obszary, w którym chcemy, aby
znalazla si trawa:



Po zaznaczaniu obszaru zmieniamy narzdzie na `Paint Bucket Tools' (w obu programach
narzdzie to wyglda i dziala tak samo, róne s tylko nazwy):

PHOTOSHOP
GIMP




Po wybraniu tego narzdzia klikamy po prostu w zaznaczonym wczeniej obszarze, tym
samym wypelniajc ten obszar na bialo:


131




wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Znowu wybieramy narzdzie `Lasso Tools' i zaznaczamy kolejny obszar. Potem wybieramy
narzdzie `Paint Bucket Tool' i wypelniamy zaznaczony obszar na bialo itd. Czynnoci te
powtarzamy tak dlugo, a zaznaczymy i wypelnimy na bialo wszystkie obszary, w których
ma wystpowa trawa. Mona oczywicie powikszy map koloru za pomoc narzdzia
`Zoom Tool' (w obu programach narzdzie to wyglda i dziala tak samo, róne s tylko
nazwy):

PHOTOSHOP
GIMP




Istnieje inny sposób zaznaczania i wypelniania obszarów. Wybieramy narzdzie `Magic
Wand Tools' (w obu programach narzdzie to wyglda i dziala tak samo, róne s tylko
nazwy):

PHOTOSHOP
GIMP




Zasada uywania tego narzdzia przedstawia si troch inaczej. Po wybraniu tego narzdzia
trzeba ustawi warstw z map koloru jako warstw aktywn. Teraz klikamy (tylko klikamy!)
tym narzdziem miejsce, które chcemy wypelni bialym kolorem. Narzdzie to
automatycznie zaznaczy jednolity obszar w okól miejsca kliknicia. Teraz wybieramy

132

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
narzdzie `Paint Bucket Tool', ustawiamy warstw `Trawa' jako warstw aktywn i klikamy
w zaznaczony obszar. Zaznaczony obszar zostanie wypelniony na bialo. I znowu wybieramy
narzdzie `Magic Wand Tool', ustawiamy warstw z map koloru jako warstw aktywn i
kilkamy miejsce, które chcemy wypelni kolorem bialym itd. Ten sposób zaznaczania i
wypelniania jest o wiele szybszy, ale mona go zastosowa tylko w mapach koloru, które
maj jednolite obszary a w naszym przypadku (a przynajmniej moim) tak nie jest. W
porzdku, skoro mamy ju zaznaczone i wypelnione obszary, w których ma by
wygenerowana trawa, zapiszemy nasz map gstoci. Najpierw jednak trzeba przywróci
warto `Opacity' warstwy `Trawa' na 100. Moja mapa gstoci wyglda tak:



Zapisujemy nasz map gstoci do katalogu z nasz mapk (\Data\LevelsNet\MojaMapka\)
pod nazw np. Trawa_F (dodaj _F, aby zaznaczy, e to mapa gstoci, od nazwy plug-in'u
,,Forest"). Mapa gstoci musi by zapisana w formacie png:

PHOTOSHOP


GIMP



133



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
W Photoshopie w oknie `PNG Options' zaznaczamy opcj `None' i klikamy na przycisku
`OK' a w GIMP'ie, w oknie `Save as PNG' pozostawiamy wszystkie opcje bez zmian i
kilkamy na przycisku `OK'. Teraz musim przygotowa jeszcze map gstoci dla drzew, ale
to ju pozostawiam Wam. Pamitajcie, metod prób mona osign najwicej! Jeeli
chcecie, to moecie wykorzysta stworzon map gstoci dla traw take dla drzew. Po
przygotowaniu map gstoci przyszedl czas na prac z edytorem. Uruchamiamy edytor
ChromEd i wczytujemy nasz mapk. Potem uruchamiamy plug-in ,,Forest" klikajc na
ikonie
. Najpierw dodamy warstw z trawami. Klikamy na przycisku `Add GLayer':



Otworzy si okno `Grass type layer properties':



To w tym oknie ustala si podstawowe parametry dotyczce warstwy. Zaczynamy . W polu
`Name' na panelu `Main' wpisujemy nazw warstwy. Poniewa bdzie to warstwa z traw,
wpisujemy po prostu `Trawa'. Potem klikamy na przycisku `Browse' obok pola `Bitmap',
kierujemy si do katalogu z nasz mapk (\Data\LevelsNet\MojaMapka\ i wczytujemy plik z
map gstoci dla traw (Trawa_F.png), któr wczeniej stworzylimy. W polu `Density'
podajemy gsto warstwy. Jest to wspólczynnik (z zakresu 0 ­ 100) okrelajcy stopie
wypelnienia naszej warstwy obiektami wchodzcymy w jej sklad (tu bdzie to trawa). Dla
przykladu, jeeli wpiszemy warto 100, to warstwa zostanie maksymalnie wypelniona
obiektami (traw). Proponuje na razie wpisa warto 20:


134

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Na panelu `Extent' podajemy obszar terenu naszej mapki, na jakim maj by wygenerowana
obiekty wchodzce w sklad danej warstwy. Poniewa chcemy, aby trawa (bo ta warstwa
bdzie skladala si z trawy) znajdowala si na calej mapce (zgodnie z map gstoci)
wystarczy, e klikniemy na przycisku `Get From Terrain':



W ten sposób zostan pobrane dane odnonie rozmiaru mapki z plug-in'a ,,Environment"
(zakladka `Terrain'). Pola na panelu `Extent' zostan automatycznie uzupelnione
odpowiednimi wartociami. Na panelu `Size / Scale' podajemy rozmiar pojedynczej trawy
(rozmiar podajemy w centymetrach) oraz dwie wartoci okrelajce minimalne i maksymalne
przeskalowanie trawy. Myl, e przeskalowanie wymaga krótkiego komentarza.
Przeskalowanie odpowiada za to, aby kady obiekt na warstwie byl rónych rozmiarów.
Proponuje wpisa warto 75 w polach `Width' i `Height' (czyli pojedyncza trawa bdzie
rozmiarów 75x75cm) oraz warto dla przeskalowania 0.8 w polu `Min' i 1.4 w polu `1.4':



Przeskalowanie odbywa si losowo wzgldem wprowadzonych wartoci w polach `Min' i
`Max'. Majc wprowadzone wartoci bdzie latwiej zrozumie zasad dzialania
przeskalowania. Otó pojedyncza trawa ma rozmiar 75x75cm. Przy wstawianiu kolejnego
obiektu trawy do naszej mapki jest wybierana losowo warto z przedzialu 0.8 ­ 1.4 (wartoci
naszego przeskalowania). Zalómy, e zostala wylosowana warto 1.2. Teraz rozmiar trawy
jest przeskalowywany przez wylosowan warto, tym samym wstawiana trawa bdzie miala
rozmiar 90x90cm (75 * 1.2 = 90). Nastpnym razem zostala wylosowana warto 0.9. Po
przeskalowaniu przez t warto wstawiany obiekt trawy bdzie mial rozmiar 67.5x67.5cm
itd. Zrozumiale ?! Chyba tak. Na panelu `Move parameters' ustawiamy parametry falowania
trawy. Za standardowe wartoci przyjlbym `Amplitude 1' = 3, `Amplitude 2' = 7,
`Speed 1' = 113, `Speed 2' = 248 (takie wartoci wpisujemy zarówna na panelu `Left vertex'
jaki i `Right vertex'):


135

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W polu `Seed' na panelu `Generate options' wpisujemy dowoln warto. Pole `Seed' to tzw.
ziarno losowania. Aby zapewni identyczne rozmieszczenie obiektów wchodzcych w sklad
danej warstwy przy kadorazowym generowaniu warstwy, zapamitywane jest pocztkowe
ziarno dla generatora liczb pseudolosowych. Chodzi o to, aby za kadym razem, gdy od nowa
bdziemy generowa rolinno, poszczególne obiekty zawsze byly wstawiane w to samo
miejsce, dlatego te proponowalbym, aby raz wprowadzon warto w polu `Seed' ju nie
zmienia (chyba, e bdziemy mieli wany powód np. wbijanie si jednego obiektu w drugi).
Moe na pocztek wpiszcie warto 150. Pamitajcie te, aby kada warstwa miala inn
warto w polu `Seed'. W polu `Visibility range' podajemy procent globalnego zasigu
widzenia danej warstwy. Prociej mówic, czym wikszy procent, tym dana warstwa bdzie
miala wikszy zasig widzenia w stosunku do warstwy, która bdzie miala mniejszy procent.
Oczywicie zaley to te od wielkoci obiektów wchodzcych w sklad danej warstwy,
dlatego przyjlbym pewn zasad: im obiekty s wysze na danej warstwie tym podawa
mniejszy procent globalnego zasigu. Poniewa trawa jest do niska (ok. 75cm) proponuj w
naszym przypadku wpisa warto 60. Na koniec zaznaczamy opcj `Generate':



Zaznaczanie tej opcji powoduje dolczenie tej warstwy do generowania (jeeli nie
zaznaczylibymy tej opcji, to warstwa ta nie bralaby udzialu w generowaniu rolinnoci). W
porzdku. Wszystkie parametry mam ju ustawione. Kilkamy na przycisku `OK'. Warstwa
pojawi si na licie:



Oczywicie zawsze mona zmieni parametry warstwy. Wystarczy j zaznaczy i klikn na
przycisku `Properties'. Teraz musimy doda obiekty do tej warstwy. W tym przypadku bd
to obiekty reprezentowane przez tekstury. W katalogu \Data\Textures\ znajdziemy bardzo
duo tekstur z trawami:
CH_T_Trawa.png
CH_T_Trawa2.png
CH_T_Trawa3.png
CH_T_Trawa4.png
CH_T_Trawa5.png

136

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
CH_T_Trawa6.png
CH_T_Trawa7.png
CH_T_Trawa8.png
CH_T_Trawa9.png
CH_T_Trawa10.png

CH_T_Trawa11.png

CH_T_Trawa12.png

CH_T_Trawa13.png

CH_T_Trawa14.png

CH_T_Trawa15.png



CH_T_TrawaKrzakA.png
CH_T_TrawaKrzakB.png
CH_T_Trzcina.png

CH_T_WysokaTrawaA.png
CH_T_WysokaTrawaB.png

Trawa_KrzakF.png

TrawaZimaA.png

TrawaZimaB.png

TrawaZimaC.png

Przejrzyjcie sobie te tekstury (np. za pomoc programu Photoshop lub GIMP). Có, trzy
ostatnie tekstury nie pasuje do naszej mapki, bo to trawy zimowe. Tekstury z traw wysok
poslu przy nastpnej warstwie. Ja proponuj wykorzysta tekstury CH_T_Trawa.png,
CH_T_Trawa2.png, CH_T_Trawa3.png i CH_T_Trawa4.png. Oczywicie sami wybierzcie,
zawsze powtarzam, e to Wasza mapka. Zaznaczamy warstw `Trawa' na licie (o ile nie jest
zaznaczona) i klikamy na przycisku `Add Object':



Otworzy si okno `Get texture name':



Klikamy na przycisku trzykropka obok pola `Name' i kierujemy si do katalogu z teksturami
(\Data\Textures\). Wczytujemy tekstur CH_T_Trawa.png. Teraz w polu `Density' podajemy

137

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
wspólczynnik (z zakresu 0 ­ 100) wystpowania danego obiektu na warstwie. Dla przykladu,
jeeli podamy tu warto 80 a dla nastpnego obiektu na warstwie podamy warto 50, to
obiektów pierwszego typu zostanie wygenerowanych wicej (ma wikszy wspólczynnik) ni
obiektów drugiego typu (ma mniejszy wspólczynnik). Na razie wpisujemy tam warto 40. W
polu `Size' podajemy wspólczynnik wielkoci danego obiektu. Chodzi o to, aby dwa róne
obiekty wchodzce w sklad jednej warstwy, nie zostaly wygenerowane blisko siebie. Jeeli
wstawiany jest obiekt z danej warstwy a w miejscu wstawiania lub zbyt blisko tego miejsca
znajduje si inny obiekt z danej warstwy, to obiekt, który znajduje si zbyt blisko jest
automatycznie usuwany. Dotyczy to take niszych warstw tzn. jeeli wstawiany jest obiekt
pochodzcy z wyszej warstwy a w miejscu wstawiania lub zbyt blisko tego miejsca znajduje
si obiekt pochodzcy z niszej warstwy, to obiekt pochodzcy z nieszj warstwy jest
automatycznie usuwany (jak pamitamy ze wstpu, warstwa wysza wycina obiekty z
warstwy niszej). Na razie wpisujemy warto 20. Pole `Distance' odpowiada za minimaln
odleglo od obiektów tego samego typu na warstwie. Tu take proponuj wpisa warto 20.
Na koniec klikamy na przycisku `OK':



W ten sposób dodalimy pierwszy obiekt do naszej warstwy . Teraz ju sami dodajcie
kolejne obiekty tzn. tekstury CH_T_Trawa2.png, tekstury CH_T_Trawa3.png i tekstury
CH_T_Trawa4.png. Proponuje zmniejszy tylko warto pola `Density' do 20 dla tekstur
CH_T_Trawa3.png i CH_T_Trawa4.png. Na koniec powinnicie mie list warstw i
obiektów podob do tej:



Dobrze, jeeli chcecie to moecie na prób wygenerowa to, co stworzylicie . W tym celu
klikamy na przycisku `Generate' na panelu `Generate options':



Potem kliknijcie na przycisku `Start'. Rozpocznie si proces generowania.Bdzie on trwal
do dlugo ale zapewniam, e warto poczeka . Po wygenerowaniu pokae si okno z
informacj o iloci wygenerowanych obiektów:


138


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Teraz kliknijcie na przycisku `OK' i prosz. Trawa jest! Uruchomcie tryb gry. Prawda, e
mapka wyglda lepiej?! Nie wiem czy zauwaylicie, ale w naszym jeziorku take zostala
wygenerowana trawa. Póniej to naprawimy. Dodamy kolejn warstw ­ warstw z wysok
traw. Wic klikamy na przycisku `Add GLayer'. Wpiszcie ponisze wartoci:
`Name'

WysokaTrawa
`Bitmap'

plik Trawa_F.png (ten sam co dla warstwy `Trawa')
`Density'

5
`Width'

75
`Height'

150
`Min' 0.8
`Max' 1.2
`Amplitude 1'

3 (na panelach `Left vertex' i `Right vertex')
`Amplitude 2'

7 (na panelach `Left vertex' i `Right vertex')
`Speed 1'

113 (na panelach `Left vertex' i `Right vertex')
`Speed 2'

248 (na panelach `Left vertex' i `Right vertex')
`Seed'

65
`Visibility range'
25
Kliknijcie te na przycisku `Get From Terrain' (na panelu `Extent') i zaznaczcie opcj
`Generate' na panelu `Generate options'. Potem kliknijcie na przycisku `OK'.



Pamitajcie, e nowa warstwa (`WysokaTrawa') musi znale si nad warstw `Trawa':


139

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W razie potrzeby przeniecie j wyej za pomoc przycisku `Move up'. Jak zapewne
zauwaylicie, obok nazwy nowej warstwy pojawila si litera `X', co wedlug wczeniejszego
opisu oznacza, e ta warstwa sklada si z obiektów reprezentowanych przez mesh'e. W tym
przypadku tak nie jest. Oznacza to, e warstwa ta nie moe by wygenerowana, bo wystpil
jaki bld. U nas ten bld jest szybki do zlokalizowania ­ po prostu jeszcze nie zostal dodany
aden obiekt do warstwy. Zaznaczamy warstw `WysokaTrawa' i klikamy na przycisku `Add
Object'. Otworzy si znane ju okno `Get texture name'. Wprowadcie ponisze wartoci:
`Name'

CH_T_WysokaTrawaA.png
(katalog \Data\Textures\)
`Density'

50
`Size' 50
`Distance'

100



No i klikamy na przycisku `OK'. Dodajemy jeszcze drugi obiekt. Wartoci pól takie same jak
poprzednio z tym, e teraz wczytujemy tekstur CH_T_WysokaTrawaB.png. Wicej
wysokich traw nie ma . Jeeli chcecie, to moecie klikn na przycisku `Generate' na panelu
`Generate options', aby sprawdzi jak teraz bdzie wyglda rolinno. Po klikniciu na tym
przycisku poprzednio wygenerowana rolinno zostanie usunita. W porzdku, dodamy
kolejn warstw, ale tym razem bdzie to warstwa z drzewami. Poniewa drzewo to obiekt,
który reprezentowany jest przez mesh'a, klikamy na przycisku `Add Layer':



Otworzy si okno `Standard layer properties':


140

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W tym oknie ustalamy podstawowe parametry dotyczce warstwy w sklad której, wchodz
obiekty reprezentowane przez mesh'e. W polu `Name' wpisujemy jak zwykle nazw
warstwy. Bdzie to warstwa z drzewami, wic po prostu wpisujemy `Drzewa'. Klikamy na
przycisku trzykropka obok pola `Bitmap' i kierujemy si do katalogu z nasz mapk
(\Data\LevelsNet\MojaMapka\) i wczytujemy plik z map gstoci dla drzew. Jeeli takiej nie
przygotowalicie, to moecie wykorzysta t sam map gstoci, co dla warstw `Trawa' i
`WysokaTrawa'. W polu `Density' podajemy gsto warstwy. Przeznaczenie tego
wspólczynnika jest takie samo jak dla warstw z obiektami reprezentowanymi przez tekstury
(trawa), czyli okrelenie stopnia wypelnienia warstwy obiektami wchodzcymi w jej sklad.
Proponuj dla naszej mapki wpisa warto 30:



Na panelu `Extent' podajemy obszar terenu naszej mapki, na jakim maj by wygenerowana
obiekty wchodzce w sklad tej warstwy. Tu take zamiast wpisywa wartoci, wystarczy
kilkn na przycisku `Get From Terrain':



W ten sposób zostan pobrane dane odnonie rozmiaru mapki z plug-in'a ,,Environment"
(zakladka `Terrain'). Pola na panelu `Extent' zostan automatycznie uzupelnione

141

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
odpowiednimi wartociami. W zasadzie mona poda inny obszar ni cala mapka, ale
wygodniej jest zaznaczy obszar wystpowania rolinnoci za pomoc mapy gstoci. W polu
`Seed' na panelu `Generate options' wpisujemy dowoln warto. Jest to tzw. ziarno
losowania. Wpiszcie tam np. 5. Zaznaczamy te opcj `Generate', co spowoduje dolczenie
tej warstwy przy generowaniu:



Teraz ju moemy klikn na przycisku `OK'. Na naszej licie pojawila si nowa warstwa:



Pamitajcie, e warstwa `Drzewa' musi znajdowa si nad warstw `WysokaTrawa', wic w
razie potrzeby uyjcie przycisku `Move up'. Dodamy teraz obiekty do tej warstwy.
Zaznaczamy warstw `Drzewa' na licie (o ile nie jest zaznaczona) i klilkamy na przycisku
`Add Object'. Otworzy si okno `Object properties':



Klikamy na przycisku trzykropka obok pola `Object' i kierujemy si do katalogu
\Data\Meshes\Naturals\. Tam znajduj si obiekty m.in. drzew. Za nim wybierzecie jaki
obiekt drzewa, moecie zobaczy jak on wyglda. Po prostu wstawicie interesujcy Was

142

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
obiekt do mapki (za pomoc plug-in'a ,,Mesh Browser"). Po obejrzeniu usucie ten obiekt z
mapki. Proponuj do naszej mapki wybra obiekt DrzewoZwykle.3da. W porzdku. Teraz w
polu `Density' podajemy wspólczynnik wystpowania danego obiektu na warstwie. Dla
przykladu wpiszmy tam warto 50. W polu `Size' podajemy wspólczynnik wielkoci danego
obiektu. Tak samo jak to mialo miejsce z obiektami reprezentowanymi przez tekstury (trawa).
chodzi o to, aby dwa róne obiekty wchodzce w sklad jednej warstwy, nie zostaly
wygenerowane blisko siebie. Jeeli wstawiany jest obiekt z danej warstwy a w miejscu
wstawiania lub zbyt blisko tego miejsca znajduje si inny obiekt z danej warstwy, to obiekt,
który znajduje si zbyt blisko jest automatycznie usuwany. Dotyczy to take niszych warstw
tzn. jeeli wstawiany jest obiekt pochodzcy z wyszej warstwy a w miejscu wstawiania lub
zbyt blisko tego miejsca znajduje si obiekt pochodzcy z niszej warstwy, to obiekt
pochodzcy z nieszj warstwy jest automatycznie usuwany (jak pamitamy ze wstpu,
warstwa wysza wycina obiekty z warstwy niszej). Dla naszego przykladu proponuj wpisa
warto 60. Pole `Distance' odpowiada za minimaln odleglo od obiektów tego samego
typu na warstwie. Poniewa obiekty drzew s due, proponuj wpisa warto 250. W polu
`Depth' podajemy zaglbienie obiektu w terenie mapki. Kady obiekt wstawiany jest poniej
poziomu terenu o podan w polu `Depth' warto. Ma to na celu poprawienie efektu
wizualnego w momencie wstawiania drzew na bardzo pochylej powierzchni (aby nie bylo
wida ,,korzeni" drzew). Szczerze mówic to nigdy nie musialem podawc tu innej wartoci
ni zero, wic tak warto pozostawiamy, tym bardziej, e drzewa nie bd staly na pochylej
powierzchni. No chyba, e na Waszej mapce tak , ale wtedy metod prób i bldów ustawcie
tam odpowiedni warto (jeeli zauwaycie, e wida ,,korzenie" drzew).



Na panelu `Scale' podajemy wartoci okrelajce minimalne i maksymalne przeskalowanie
obiektu (drzewa). W porównaniu do traw nie podajemy tu rozmiaru pojedynczego obiektu,
poniewa obiekty reprezentowane przez mesh'e maj okrelony standardowy rozmiar. Jednak
tak samo jak to ma miejsce dla warstw z trawami, przeskalowanie odpowiada za to, aby
kady obiekt na warstwie byl rónych rozmiarów. Proponuj wpisa wartoci 1.5 dla pola
`Min' i 2.5 dla pola `Max':



W polu `Value' na panelu `LOD selection factor', moemy ustawi wspólczynnik wybierania
poziomów szczególów obiektów (drzew). Jeeli chcemy, aby drzewa byly wywietlane
najbardziej szczególowo, to wpisujemy warto 0.0001. Nie wpisywa wartoci 0! Czym
nisza warto tym drzewa bd bardziej szczególowe, ale przez to mapka moe dziala

143

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
wolniej. Dodatkowo, jeeli chcemy, aby ten wspólczynnik byl brany pod uwag, musimy
zaznaczy pole `enable':



Nigdy nie mialem potrzeby wykorzystywania tego wspólczynnika, wic pozostawiamy to
pole bez zmian i upewniamy si, e opcja `enable' jest odznaczona. W polu `Visibility'
podajemy procent globalnego zasigu widzenia danej warstwy. Prociej mówic, czym
wikszy procent, tym dana warstwa bdzie miala wikszy zasig widzenia w stosunku do
warstwy, która bdzie miala mniejszy procent. Zaznaczenie opcji `Collision flag' powoduje
wlczenie kolizji wygenerowanych obiektów z innymi obiektami np. graczem. Chodzi o to,
aby np. gracz przez takie obiekty nie mógl przechodzi tak jak to ma miejsce w obiektach
reprezentowanych przez tekstury (trawa). Oczywicie w przypadku drzew musimy t opcj
zaznaczy:



Na koniec klikamy na przycisku `OK'. Dodamy jeszcze jeden obiekt do warstwy `Drzewa'.
Upewniamy si, e ta warstwa jest zaznaczona i kilkamy na przycisku `Add Object'.
Wpiszcie ponisze wartoci:
`Object'

DrzewoSuche.3da
(katalog \Data\Meshes\Naturlas\)
`Density'

10
`Size' 60
`Distance'

250
`Depth'

0
`Min' 1.2
`Max' 1.7
`Value'

0
`Visibility' 100
Upewnijcie si, e opcja `enable' na panelu `LOD selection factor' jest odznaczona a opcja
`Collision flag' jest zaznaczona. Klikamy na przycisku `OK'. Nasza lista warstw i obiektów
powinna wyglda mniej wicej tak:




144

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Troch urozmaicimy nasz mapk i dodamy jeszcze kilka kamieni (glazów). Dodajemy now
warstw klikajc na przycisku `Add Layer'. W oknie `Standard layer properties' wpiszcie
ponisze wartoci:
`Name'

Kamienie
`Bitmap'

Drzewa_F.png (ta sama mapa gstoci jak dla drzew,
ewentualnie ta sama jak dla traw)
`Density'

20
`Seed'

75
Kliknijcie na przycisku `Get From Terrain' na panelu `Extent' a take upewnijcie si, e jest
zaznaczona opcja `Generate'. Warstwa z kamieniami musi znajdowa si nad warstw z
drzewami. Teraz dodamy obiekt do tej warstwy. Zaznaczamy warstw `Kamienie' i kilkamy
na przycisku `Add Object'. W oknie `Object properties' wpiszcie ponisze wartoci:
`Object'

GlazBezowy.3da
(katalog \Data\Meshes\Naturlas\)
`Density'

25
`Size' 60
`Distance'

600
`Depth'

0
`Min' 1
`Max' 1.5
`Value'

0
`Visibility' 40
Upewnijcie si, e opcja `enable' na panelu `LOD selection factor' jest odznaczona a opcja
`Collision flag' jest zaznaczona. Klikamy na przycisku `OK'. Dodamy ostatni warstw,
warstw z rolinami. Klikamy na przycisku `Add Layer'. Roliny te to obiekty
reprezentowane przez mesh'e. W oknie `Stanard layer properties' wpiszcie ponisze wartoci:
`Name'

Roliny
`Bitmap'

Drzewa_F.png (ta sama mapa gstoci jak dla drzew,




ewentualnie ta sama jak dla traw)
`Density'

15
`Seed'

58
Kliknijcie na przycisku `Get From Terrain' na panelu `Extent' a take upewnijcie si, e jest
zaznaczona opcja `Generate'. Klikamy na przycisku `OK'. Tu wana uwaga. Warstwa z
rolinami musi znale si nad warstw z traw wysok, ale poniej warstwy z drzewami:



W razie potrzeby uyjcie przycisków `Move up' i `Move down'. Dodajemy obiekt do
warstwy `Rosliny'. Zaznaczamy t warstw (jeeli nie jest zaznaczona) i klikamy na
przycisku `Add Object'. W oknie `Object properties' wpiszcie ponisze wartoci:

145


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
`Object'

RoslinaDuzaB.3da
(katalog \Data\Meshes\Naturlas\)
'Density'

20
`Size' 40
`Distance'

300
`Depth'

0
`Min' 0.8
`Max' 1.5
`Value'

0
`Visibility' 60
Upewnijcie si, e opcja `enable' na panelu `LOD selection factor'. Opcja `Collision flag'
take musi by odznaczona a to z tego powodu, e nasz obiekt jest rolin a przecie np.
gracz przez roliny przebiega moe. Nie ma adnej kolizji. Klikamy na przycisku `OK'.
Teraz to ju naprawd wszystko. Mamy wszystkie warstwy. Klikamy na przycisku `Generate'
na panelu `Generate options'. W ten sposób zakoczymy generowanie warstw. Nasza mapka
ma ju rolinno . Musimy jeszcze tylko naprawi bld. Jak pamitamy na naszej mapce jest
male jeziorko. Na nim take zostala wygenerowana rolinno. Musimy j z tamtd usun.
Najpierw usuniemy drzewa. Klikamy na przycisku `Remove tree' na panelu `Trees / grass
removing':



Teraz po prostu zaznaczamy myszk drzewa (kilkamy na te drzewa), które chcemy usun.
Oczywicie za pomoc tego przycisku moemu usuwa inne obiekty np. kamienie a nawet
roliny. Ogónie rzecz biorc za pomoc przycisku `Remove tree' moemy usuwa obiekty,
które reprezentowane s przez mesh'e. W porzdku. Teraz klikamy na przycisku `Remove
grass' i myszk zaznaczamy obszar (trzymajc wcinity lewy przycisk myszki rysujemy
prostokt), z którego chcemy usun traw. Za pomoc przycisku `Remove grass' moemy
usuwa obiekty reprezentowane przez tekstury. Moja mapka z rolinnoci wyglda tak (bez
lightmap'y):



146

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

4.3 Uwagi kocowe.
Có, pozostalo ju tylko wygenerowa lightmap'. Jak to zrobi to moecie przeczyta
w rodziale o tworzeniu terenu w podrozdziale o lightmap'ie. Po wygenerowaniu lightmap'y i
dolczeniu jej do naszej mapki, naley j narzuci na wygenerowan rolinno. W tym celu
trzeba uruchomi plug-in ,,Forest" i klikn na przycisku `Update trees lightmap' na panelu
`Update':



W ten sposób na naszych rolinach pojawi si cienie z lightmap'y. Tym samym cala mapka
bdzie jeszcze bardziej realistyczna. Pewnie zastanawiacie si skd wiedzialem, jakie
wartoci ustawi dla odpowiednich pól itp. Wszystko to robilem metod prób i bldów.
Kada mapka w zasadzie jest inna i kaa bdzie potrzebowala innych ustawie. Na naszej
mapce nie ma jeszcze takich obiektów jak budynki itp. Dostawimy je niedlugo, nie ma jednak
znaczenia czy najpierw postawicie np. budynki a dopiero potem wygenerujecie rolinno
czy te na odwrót tzn. najpierw wygenerujecie rolinno a potem dostawicie budynki.
Pamitajcie tylko o tym, aby usuwa traw i drzewa z miejsc, w których w rzeczywistoci
one nie wystpuj np. woda, budynki itp. To tyle uwag. Na tym zakoczylimy generowanie
rolinnoci na naszej mapce.


Rozdzial 5 ­ Obiekty

5.1 Wstp.
W tym rozdziale zajmiemy si obiektami. Zaczn od omówienia poszczególnych okien i
narzdzi pomocnych przy pracy z obiektami a skocz na bardziej zaawansowanych
operacjach. Z pomoc tego rozdzialu dowiecie si wszystkiego o plug-in'ie ,,Mesh Browser",
o atrybutach obiektów, grupowaniu obiektów i wiele, wiele innych. Jest to najbardziej
rozbudowany rozdzial w tym dokumencie! Zaczynamy.

5.1 Gizmo.
Jednym z pierwszych narzdzi, z jakimi si spotkacie przy pracy z obiektami, jest
narzdzie o wdzicznej nazwie Gizmo . W zasadzie jest to wirtualny obiekt reprezentujcy
pozycj i orientacj innego obietku. Z pomoc Gima mona pozycjonowa obiekty na mapce
a take obraca je. Gizmo uaktywnia si w momencie zaznaczeniu jakiego obiektu (lub
obiektów). Swoim wygldem i dzialaniem bardzo przypomina narzdzie z programów
graficznych 3D takich jak 3D Studio MAX czy Maya:


147


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Przytrzymujc lewy klawisz myszki na niebieskiej strzalce i wykonujc ruch myszk,
przesuwamy obiekt w osi Z. Przytrzymujc lewy klawisz myszki na czerwonej strzalce i
wykonujc ruch myszk, przesuwamy obiekt w osi X. Jeeli przytrzymamy lewy klawisz
myszki na zielonej strzalce i wykonamy ruch, przesuniemy obiekt w osi Y. Chwytajc
odpowiednia za niebiesko ­ zielony trójkcik przesuwamy obiekt wzgldem osi YZ,
chwytajc za czerwono ­ zielony przesuwamy obiekt wzgldem osi XY a jeeli chwycimy za
niebiesko ­ czerwony trójkcik przesuniemy obiekt wzgldem osi XZ. Przytrzymujc lewy
klawisz myszki na zielonym okrgu u podstawy Gizma i wykonujc ruch myszk, obracamy
obiekt wokól osi Y. Jeeli wykorzystamy czerwone pólkole przy podstawie obiektu,
obracamy obiekt wokól osi X, jeeli wykorzystamy niebieskie pólkole przy podstawie
obiektu, obrócimy obiekt wokól osi Z. Wana informacja. Jeeli obrotu dokonywa bdziemy
w trybie koordynacji osi lokalnej (`Local'), czyli wzgldem zaznaczonego obiektu, to cale to
Gizmo bdzie obracalo si w odpowiednim kierunku razem z obiektem. Jeeli obrotu
dokonywa bdziemy w trybie koordynacji osi wzgldem terenu naszej mapki (`World') to
strzalki zawsze bd wskazywa bezwzgldne poloenie osi X, Y i Z. Tryb koordynacji osi
wybiera si za pomoc listy na pasku narzdziowym:



Jeeli podczas przesuwania lub obracania obiektu za pomoc Gizma przytrzymamy klawisz
SHIFT, to w momencie puszczenia klawisza myszki i klawisza SHIFT, aktywujemy opcj
kopiowania obiektu. Otworzy si okno `Make Copy':



148


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

W polu `Number' (na panelu `Copy') wpisujemy ilo kopii obiektu, które zostan zrobione.
W polu `Selection name' wpisujemy nazw grupy selekcji (o tworzeniu grup selekcji itp.
mona przeczyta w podrozdziale o zaznaczaniu i selekcji obiektów). W ten sposób
stworzon grup obiektów bdzie mona szybko zaznaczy za pomoc okna zaznaczania i
selekcji obiektów. Opcja `Attach to original parent' pozwala dolczy kopi obiektu do
,,rodzica". Na koniec klikamy na przycisku `OK'. W ten sposób zostan stworzone kopie
naszego obiektu. Tu do istotna informacja. Jeeli zrobimy kopi jakiego obiektu to nie
zawsze s skopiowane wszystkie atrybuty tego obiektu. Dla przykladu, jeeli kopiowa
bdziemy obiekt wiatla to wszystkie ustawienia te zostan skopiowane, jeeli kopiowa
bdziemy obiekt AI (obiekt kierowany przez komputer) to punkty patrolowe, do których
dolczony jest dany obiekt AI nie zostan skopiowane.
Za pomoc klawiszy + i ­ (ale tych z klawiatury numerycznej), mona powiksza i
zmniejsza wielko Gizma. Mala informacja. Jeeli mamy zaznaczony jeden obiekt to
Gizmo znajdowa bdzie si w tym samym miejscu, co obiekt, jeeli natomiast zaznaczymy
kilka obiektów to Gizmo znajdowa bdzie si w rodku tej selekcji o ile jestemy w trybie
koordynacji osi wzgldem terenu mapki (`World'), bo jeeli bdziemy w trybie koordynacji
osi lokalnej (wzgldem obiektu) to kady obiekt bdzie mial swoje Gizmo. Na koniec wana
uwaga! Zielony okrg u podstawy Gizma (za pomoc, którego moemy obraca obiekty w
okól osi Y) informuje take o tym, gdzie jest punkt pocztkowy obiektu. Patrzc na ten okrg
wiemy, w jakim punkcie nastpi np. ,,rzucenie" obiektu na teren. Dla przykladu, aby lepiej to
zrozumie: obiekt Logana (Logan.3da) ma punkt pocztkowy u jego stóp:



natomiast np. obiekt wiey straniczej (WiezaMala_Kolumna.3da) nie ma punktu
pocztkowego u podstawy obiektu:


149


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Wic jeeli klikniecie na ikonie ,,rzucania" obiektu na teren, cz obiektu wiey wbije si w
teren, poniewa punkt pocztkowy obiektu wiey nie znajduje si u jego podstawy. Prosz na
to zwraca uwag!

5.3 Atrybuty obiektów.
W rozdziale o tworzeniu terenu zetknlicie si ju z oknem atrybutów obiektów.
Wtedy atrybuty te dotyczyly naszej mapki (mapka to take obiekt!) i mialy duy zwizek z
plug-in'em ,,Environment" (take omówiony w rozdziale o tworzeniu terenu). Kady obiekt
ma swoje atrybuty, które moemy modyfikowa wlanie za pomoc okna atrybutów
obiektów. Dostpne w tym oknie atrybuty zalee bd od klasy, jaka jest przypisana do
danego obiektu (glównie dotyczy to zakladek `Java' i `Mission'). Klikajc na ikonie

otwieramy okno atrybutów obiektu (`Objects attributes'). Oczywicie wczeniej trzeba
zaznaczy ten obiekt (lub obiekty). Okno atrybutów mona te otworzy dwukrotnie klikajc
na obiekcie, którego atrybuty chcemy przeglda lub zmienia. Okno atrybutów obiektów
wyglda tak:


150

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Okno atrybutów obiektów podzielone jest na kilka zakladek. Kad z nich opisz, ale
najpierw omówi górn cze okna atrybutów obiektów:



Pole `Name' wywietla nazw naszego obiektu. Oczywicie moemy j zmieni na inn.
Najlepiej gdyby nazwa obiektu byla krótka i treciwa, wskazane jest te nie stosowa przerw
w nazwach (np. lepiej nada nazw BudynekMieszkalny ni Budynek Mieszkalny). Pole
`Mesh' wywietla nazw pliku mesh'a (mesh to plik 3da, który reprezentuje jaki obiekt 3D).
W zasadzie mesh standardowo wybierany jest ju w momencie stawiania obiektu na mapk
(za pomoc plug-in'a ,,Mesh Browser", który opisz w podrozdziale o dodawaniu obiektów)
wic nie ma potrzeby wybierania innego mesh'a. Oczywicie, jeeli ju bardzo tego chcemy
to moemy zmieni mesh'a klikajc na przycisku trzykropka obok pola `Mesh'. Otworzy si
okno wyboru mesh'a (`Choose mesh'), z którego bdziemy mogli wybra interesujcy nas
mesh. Mamy dostp tylko do katalogów zwizanych z gr Chrome i edytorem ChromEd.
Mesh'e znajduj si w katalogu \Data\Meshes\. Po wybraniu odpowiedniego mesh'a z listy
klikamy na przycisku `OK'. Edytor ChromEd poinformuje nas, e mesh zostal zmieniony i
zapyta si nas czy chcemy zmieni automatycznie jego nazw. Decyzj pozostawiam Wam .
Mesh zostanie zamieniony na ten, który wybralimy, ale jak ju wczeniej napisalem nie ma

151

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
potrzeby zmieniania mesh'a w ten sposób. Kolejne, co moemy zrobi to przypisa klas
(`Class') do naszego obiektu. Klikamy na przycisku trzykropka obok pola `Class'. Otworzy
si okno wyboru klasy (`Choose class'):



Zasada dostania si do poszczególnych klas przypomina obslug Eksploratora Windows, aby
rozwin jak gal drzewka trzeba klikn na malym znaku plus, aby zwin gal na
znaku minus. Z lewej strony mamy list dostpnych klas Java a z prawej list najczciej
uywanych przez nas klas. T list moemy sami modyfikowa dodajc do niej klasy lub
usuwajc z niej klasy. Wystarczy z lewej strony wybra interesujc nas klas i klikn na
przycisku `--->'. Klasa pojawi si po prawej stronie listy. Jeeli chcemy usun klas z tej
listy, klikamy na jej nazwie na licie (po prawej stronie okna) i klikamy na przycisku `<---`.
Po wybraniu odpowiedniej klasy dla naszego obiektu, klikamy na przycisku `OK'. Co do
wyboru klasy dla obiektu, zaley ona od tego co dany obiekt bdzie robil. Podstawowe
informacje o jzyku Java i klasach napisalem pod koniec rozdzialu o grze Chrome natomiast
bardziej rozbudowane informacje znajdziecie w rozdziale o tworzeniu zdarze w edytorze
ChromEd, gdzie bdziemy wykorzystywa duo klas i atrybutów obiektów. Pole `Parent'
wywietla nazw ,,rodzica" obiektu (o ile dany obiekt znajduje si w hierarchi z innym
obiektem). Jeeli chemy to moemy odlczy obiekt z hierarchii. Wystarczy klikn na
przycisku `X', który znajduje si obok pola `Parent':



Innym sposobem odlczenia obiektu z hierarchii jest kliknicie na odpowiedniej ikonie na
pasku narzdziowym edytora ChromEd. Jeeli obiekt naley do jakie grupy obiektów

152

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
(przeczytacie o tym w podrozdziale o grupowaniu obiektów) to w polu `Parent' wywietlana
jest nazwa tej grupy. W takim przypadku kliknicie na przycisku `X' powoduje odlczenie
obiektu od tej grupy. Na dole okna atrybutów obiektów znajduj si cztery przyciski:



Przycisk `Load defs' powoduje przywrócenie zdefiniowanych ustawie atrybutów na
zakladkach `Java' i `Mission' naszego obiektu. A jak definiuje si ustawienia? To proste. S
one definiowane automatycznie w momencie, gdy potwierdzimy nasze ustawienia atrybutów
klikajc na przycisku `Apply'. Jeeli zmienilimy ustawienia jakiego atrybutu i
potwierdzilimy je, klikajc na przycisku `Apply', to od teraz ustawienia te traktowane s
jako zdefiniowane. Za kadym razem, gdy otworzymy okno atrybutów obiektów i dokonamy
jaki zmian w atrybutach, ale nie potwierdzimy ich klikajc na przycisku `Apply', to klikajc
na przycisku `Load defs' zawsze bdziemy mogli powróci do poprzednich ustawie tzn.
tych, które zostaly zdefiniowane przy poprzednim (ostatnim) klikniciu na przycisku `Apply'.
Przycisk `Dump defs' (niedostpny w starszej wersji edytora) pozwala zapisa aktualne
ustawienia atrybutów zakladek `Object', `Misc' i `Lighting' do pliku def. Plik ten jest
generowany automatycznie pod nazw mesh'a (nie pod nazw obiektu!) i umieszczany w
katalogu, w którym znajduje si dany mesh a to z tego wzgldu, e plik ten utosamiany jest z
mesh'em obietu (np. Jeep.3da). Jeeli zmienimy jakie ustawienia atrybutów na zakladkach
`Object', `Misc' i `Lighting' i potwierdzimy je klikajc na przycisku `Apply' a potem
klikniemy na przycisku `Dump defs', to w katalogu glównym z gr Chrome zostanie
wygenerowany plik log informujcy o tym, czy zapis do pliku def powiódl si czy te nie.
Plik taki (log) mona przeglda za pomoc zwyklego notatnika z systemu Windows. Nazwa
takiego pliku wyglda tak:
DumpMeshDefs_d_m_rrrr_gg_mm.log
gdzie d,m i rrrr to data wygenerowania pliku (dzie, miesic i rok) a gg i mm to czas
wygenerowania pliku (godzina i minuty). Po otworzeniu takiego pliku moemy przeczyta,
co zostalo zrobione:
Files saved without problems:
data\meshes\vehicles\jeep.def
Pierwsza linijka informuje, e plik zostal zapisany bez problemów (`Files saved without
problems') natomiast druga informuje gdzie plik def zostal zapisany i pod jak nazw. Jeeli
w pliku log odczytamy co takiego:
Errors in writing to files:
data\meshes\vehicles\jeep.def
oznacza to, e nastpil jaki bld podczas zapisu do pliku (`Errors In writing to files').
Najprawdopodobniej przyczyn bldu moe by fakt, e plik def o takej nazwie ju istnieje,
ale posiada on atrybut tylko do odczytu, co uniemoliwia zapisanie w nim zmian. Po co w
ogóle zachodu z plikami def (nie myli z plikiem log, który slua tylko celom
informacyjnym)? Otó jak ju wczeniej napisalem, plik def utosamiany jest z mesh'em
obiektu, wic jeeli np. zmienimy ustawienia atrybutów na zakladkach `Object', `Misc' i
`Lighting' obiektu, który reprezentowany jest przez mesh Jeep.3da i zapiszemy je do pliku
def (klikajc na przycisku `Dump defs') to od teraz za kadym razem, gdy obiekt tego typu
(tu dla przykladu jest to Jeep.3da) bdziemy wstawia do mapki (nie do tyczy to tylko tej
mapki, nad któr obecnie pracujemy, ale take i przyszlych mapek!) to bdzie on mial takie
ustawienia atrybutów, jakie nadalimy mu w momencie kliknicia na przycisku `Dump defs'.
A co si stanie w momencie, gdy mamy zaznaczonych kilka obiektów o takim samym mesh'u

153

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
(np. kilka Jeep'ów)? Otó do pliku def zostan zapisane ustawienia tylko jednego z obiektów.
Dodatkowo, w pliku log mona odczyta tak informacj:
Conflicts in files:
data\meshes\vehicles\jeep.def
Oznacza to, e wystpil konflikt w pliku (`Conflicts In files'). Oprócz tego w samym pliku
def, ustawienia atrybutów, które s róne dla obiektów, zostan odpowiednio zaznaczone.
Dzialanie przycisku `Refresh' podobne jest do dzialaniu przycisku `Load defs' z tym, e ten
przycisk dziala na wszystkich zakladkach tzn. `Object', `Java', `Mission', `Misc' i `Lighting'
(nie zapisuje on jednak ustawie zakladek `Object', `Misc' i `Lighting' do pliku def).
Przycisk `Refresh' po prostu przywraca zdefiniowane wczeniej ustawienia atrybutów na
tych wszystkich zakladkach. Jak ju napisalem wczeniej przy omawianiu przycisku `Load
defs', za zdefiniowane ustawienia uwaa si te ustawienia, który zostaly zapamitane przy
poprzednim (ostatnim) klikniciu na przycisku `Apply'. Ostatni przycisk, `Apply', sluy do
potwierdzania dokonanych przez nas zmian w ustawieniach atrybutów obiektu. Jeeli chcemy
zastosowa wprowadzone przez nas zmiany do obiektu to musimy klikn wlanie na
przycisku `Apply'. Inaczej zmiany nie zostan zachowane! Teraz omówi poszczególnie
zaladki okna atrybutów obiektów. Oczywicie to, do jakich zakladek bdziemy mie dostp,
zaley od klasy, która jest przypisana do obiektu, wic moe si zdarzy, e w którym
obiekcie nie bdzie wszystkich opisanych tu zakladek.
Pierwsz zakladk jest zakladka `Objects'. Tu ustalamy podstawowe informacje na temat
naszego obiektu tzn. jego zachowania (jak np. fizyka), sposobu liczenia kolizji i wiele innych
(flagi). W zasadzie zakladka ta nie jest nam potrzebna przy tworzeniu mapek, ale postaram
si troch przybliy jej przeznaczenie, cho nie bd ukrywal, e s to bardziej techniczne
aspekty i mog by trudne do zrozumienia. Pierwszym panelem jest `Physics'
odpowiedzialnym za fizyk naszego obiektu:



Za pomoc listy `Type' ustalamy typ fizyki (sposobu jej liczenia, jest on róny dla rónych
obiektów) dla obiektu, mamy do wyboru 6 rodzajów:
- NONE ­ brak fizyki (np. dla budynków),
- WALK ­ fizyka dla obiektów chodzcych (np. gracz),
- 4WHEEL ­ fizyka dla obiektów jedcych (np. jeep),
- FLY ­ fizyka dla obiektów latajcych,
- FALL ­ spadanie z grawitacj,
- GRAVITYWALK ­ chodzenie z grawitacj.
W polu `Gravity' ustalamy grawitacj dla naszego obiektu. Jest ona rónie interpretowana w
zalenoci od typu fizyki. Generalnie im warto jest mniejsza, tym szybciej dany obiekt
spada, jeli warto jest równa 0 to obiekt w ogóle nie spada. Interpretacja grawitacji:
- prdko spadania ­ fizyka typu WALK,
- przyspieszenie ­ fizyka typu GRAVITYWALK, FALL,
- masa ­ fizyka typu 4WHEEL (dotyczy pojazdów),
- nie jest brana pod uwag ­ fizyka FLY i NONE.
Kolejnym panelem, w którym ustalamy opcje naszego obiektu jest panel `Flags':


154

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


`Collisions' ­ okrela, czy dla obiektu maj by liczone kolizje,
`Block move' ­ okrela, czy s liczone kolizje podczas poruszania obiektów,
`Block trace' ­ okrela, czy s liczone kolizje podczas rzucania promieni,
`FX particle collisions' ­ okrela, e na danym obiekcie bd odkladaly si FX'y (efekty
specjalne np. lady po strzalach itp.)
`Align to ground by normal' ­ okrela, czy obiekt ma by ustawiony na terenie zgodnie z
uksztaltowaniem terenu w tym punkcie, jeli nie jest wlczona to obiekt zawsze stoi
pionowo ­ zgodnie z wektorem 0, 1, 0 (troch nad ziemi),
`Render as bilboard (all such meshes)' ­ okrelana dla mesh'a, co jest wyjtkiem - wszystkie
pozostale flagi s okrelane dla poszczególnych obiektów, okrela, e obiekty o danym
mesh'u bd zawsze obracaly si przodem do gracza (podobnie jak ma to miejsce w
przypadku np. traw),
`Static' ­ obiekt jest statyczny, nieruchomy,
`Visible for Pathfinder' ­ okrela czy obiekt jest uwzgldniany (widziany) z punktu widzenia
generowania map kolizji dla AI (wicej na temat kolizji obiektów przeczytacie w rozdziale
o aspektach gry singleplayer w podrozdziale o kolizji obiektów dla AI).
`Cull by size' - wycinanie (culling) obiektu z uwzgldnieniem wielkoci
obiektu, a nie tylko odlegloci,
`No animation' ­ okrela, czy dany obiekt mona animowa,
`No animation refresh' ­ okrela, czy dla danego obiektu maj by liczone animacje, jeli
chodzi o aktualn klatk animacji, lecz bez uaktualnienia dla poszczególnych koci,
`Stop by Pathfinder' ­ okrela, czy obiekt stanowi przeszkod z punku widzenia generowania
map kolizji dla AI.
Co to wlaciwie jest kolizja? To proste. Jeeli obiekt zetknie si z innym obiektem np. gdy
gracz wejdzie w drzewo, nastpuje kolizja tych obiektów. Gdy taka kolizja nastpi, zalenie
od ustawie atrybutów poszczególnych obiektów, engine gry Chrome odpowiednio zareaguje
na t kolizj np. wracajc do naszego gracza i drzewa, po prostu nie pozwali mu przej przez
drzewo. Wszystkie obiekty kierowane przez komputer (AI) musz mie wygenerowan
kolizj obiektów po to, aby komputer ,,wiedzial" gdzie znajduj si przeszkody i aby mógl je
omija. Wicej informacji na ten temat w rozdziale o aspektach gry singleplayer
w
podrozdziale o kolizji obiektów dla AI. W zasadzie przy tworzeniu mapek
multiplayer'owych nie ma potrzeby zmiany opcji dotyczcych kolizji obiektów. Mona
mialo pozostawi te standardowe ustawienia. Oczywicie nie trzeba te generowa mapy
kolizji dla AI. Ostatnim panelem do omówienia z zakladki `Object' jest panel `Collisions'.
Jest on odpowiedzialny za ustawienia kolizji obiektu:


155

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Lista `Type' odpowiedzialna jest za typ kolizji obiektu. Dostpne s nastpujce opcje:
- ELLIPSOID ­ kolizja na elipsoidach - obiekt jest opisany zgrubnie przez elipsoid o osi Y
wyrównanej do osi Y terenu (wiata), inne obiekty przy poruszaniu traktuj go jak
elipsoid, stosowane m.in. dla postaci, beczek, i innych symetrycznych obiektów,
- PERFACE ­ kolizja per face - inne obiekty przy poruszaniu analizuj kolizje z kadym
facem obiektu, stosowane do obiektów o niesymetrycznych ksztaltach, obiektów
konstrukcyjnych (budynki, itp.), obiekty per face s traktowane jak face'y z terenu, drzewa
s zawsze traktowane per face,
- PERFACEOBJECT ­ kolizja per face z obiektem ­ jak per face, ale wykrywane jest z
jakiego obiektu pochodzil face, z którym nastpila kolizja, tym samym przy wywolywaniu
uchwytów przekazywane s oba kolidujce obiekty.
Lista `Action' odpowiedzialna jest za wybór, co si dzieje w razie kolizji obiektu z obiektem.
Dostpne s nastpujce opcje:
- STOP ­ zatrzymanie - obiekt zatrzymuje si i nie kontynuuje dalej ruchu,
- SLIDE ­ lizganie - obiekt zelizguje si po obiekcie, z którym skolidowal,
- BOUNCE - odbicie - obiekt odbija si sprycie wg. normalnej fizyki w punkcie kolizji,
- GRAVITYSTEP ­ opcja nieuywana.
Lista `Handler type' odpowiedzialna jest za rodzaj wywolywanego uchwytu (handlera) Java.
Okrela czy i z jakim zestawem parametrów zostanie wywolany uchwyt (handler) Java w
momencie kolizji. Dostpne s nastpujce opcje:
- NONE ­ bez wywolania uchwytu (handlera),
- CALL ­ wywolanie uchwytu (handlera) bez parametrów,
- OBJECT ­ wywolanie uchwytu (handlera) z obiektem, z którym nastpila kolizja,
- FULLINFO ­ wywolanie uchwytu (handlera) z obiektem, z którym nastpila kolizja,
punktem kolizji i normaln w punkcie kolizji,
- FULLINFOMOVE ­ wywolanie uchwytu (handlera) z obiektem, z którym nastpila kolizja,
punktem kolizji i normaln w punkcie kolizji oraz z wektorem okrelajcym przesunicie
obiektu do punktu kolizji.
Lista `Trace coll' odpowiedzialna jest za typ kolizji w momencie puszczania ledzenia
(trace'a). Dostpne s nastpujce opcje:
- COARSE_BOX ­ kolizja z duym ,,pudelkiem" opisujcym cal posta,
- COARSE_ELLIPSOID ­ kolizja z elipsoid opisujca cal posta,
- ELEMENT_BOX ­ kolizja z pojedynczym ,,pudelkiem" (opisujcym jak cz ciala),
- ELEMENT_ELLIPSOID ­ kolizja, jeli dana cz wpisana jest w elipsoid,
- PERFACE ­ dokladna kolizja z danym feac'em (elementem ,,pudelka"),
- EXTENTS ­ warto ustawiania tylko dla kolizji w pionie.
Jeeli czego nie rozumiecie to si nie martwcie, ja te nie rozumiem . A tak powanie, nie
bdziemy korzysta z tej zakladki a jak ju zajdzie taka potrzeba to bardziej szczególowo
omówi dan opcj.
Kolejnymi zakladkami okna atrybutów obiektów s zakladki `Java' i `Mission'. Nie bd ich
jednak omawial teraz, poniewa maj one cisly zwizek z klas, jaka jest przypisana do
obiektu (o czym ju wspominalem na wstpie tego podrozdzialu) a tym samym

156

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
przeznaczeniem samego obiektu na naszej mapce. Jeeli chodzi o zmian wartoci atrybutów
to jest to rozwizane w bardzo prosty sposób. Niektóre atrybuty maj listy, z których mona
wybra odpowiedni warto. Jeeli musimy wpisa jak warto to kilkamy dwukrotnie w
polu `Value' danego atrybutu i wpisujemy odpowiedni warto. Inne atrybuty musz mie
przypisane dane obiekty. Aby przypisa obiekt do atrybutu, najpierw zaznaczamy dany
atrybut a potem klikamy prawym przyciskiem myszki na obiekcie, który chemy przypisa do
atrybutu. Z menu, które si otworzy wybieramy polecenie Set <...> as <...>. Do innych
atrybutów trzeba doda elementy. Aby doda nowy element do atrybutu naley zaznaczy
dany atrybut i nacisn klawisz INSERT. Jeeli chcemy usun warto atrybutu to po prostu
zaznaczamy dany atrybut i naciskamy klawisz DELETE. Jeeli chcemy usun element
atrybutu, to zaznaczamy dany element i take naciskamy klawisz DELETE. Wicej
szczególów na temat tych zakladek znajdziecie w dalszej czci tego rozdzialu a take w
rozdziale o zdarzeniach w edytorze ChromEd, w rozdziale o aspektach gry singleplayer i w
rozdziale o aspektach gry multiplayer, gdzie po prostu czsto bd wykorzystywal klasy i
atrybuty obiektów. O tych zakladkach wspominalem te w rozdziale o tworzeniu terenu w
podrozdziale opisujcym korzystanie z plug-in'u "Environment". Dodam tylko, e obie te
zakladki maj bardzo wan wlaciwo. Otó atrybut, którego wartoci nie zmienialimy
podwietlany jest na szaro, natomiast ten, który byl zmieniany (nawet wtedy, jeeli ponownie
ustawilimy standardow warto) podwietlany jest na czarno. W ten sposób latwo
zauway, które wartoci s standardowe a które zmienialimy.
Nastpn zakladk jest zakladka `Matrix' (nie, nie chodzi o film ). Za pomoc tej zakladki
moemy precyzyjnie (nawet z dokladnoci do jednej milionowej punktu!!!) pozycjonowa
obiekt na mapce a take obraca go i skalowa. Zakladka ta wyglda tak:



Jak widzicie na zakladce tej mona wyodrbni trzy sekcje. Pierwsza z nich sluy do
ustawiania pozycji obiektu (`Position'), druga do obracania obiektu (`Rotation') a trzecia
skalowania obiektu (`Scale'). Kady obiekt mona pozycjonowa, obraca i skalowa w
osiach X, Y i Z. Dalej, w polach na panelu `Spinters steps', moemy okreli skok, z jakim
bdziemy pozycjonowa, obraca i skalowa obiekty. Panel `Whole matrix' pozwala
kopiowa (`Copy'), wkleja (`Paste') i resetowa (`Reset') wszystkie wartoci obiektu
znajdujce si na zakladce `Matrix'. W ten sposób bardzo szybko mona przenie wartoci z
jednego obiektu do drugiego, nie trzeba ich rcznie przepisywa. Przycisk `Reset' pozwala
przywróci standardowe wartoci dla wszystkich trzech sekcji (pozycjonowanie, obracanie i
skalowanie) w osiach X, Y i Z. Ale co w momencie jak chcemy skopiowa wartoci np.
pozycji obiektu? Twórcy edytora ChromEd pomyleli i o tym . Przy sekcji pozycjonowania,
obracania i skalowania znajduj si 3 male przyciski:


157

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Pierwszy z nich, `C' (`Copy'), pozwala skopiowa wartoci z osi X, Y i Z. Drugi,
`P' (`Paste'), pozwala wklei skopiowane wczeniej wartoci (wartoci te zostan wklejone
odpowiednio dla osi X, Y i Z). Trzeci przycisk, `R' (`Reset'), pozwala przywróci domyln
warto w sekcji pozycjonowania, obracania i skalowania (z reguly jest to warto 0.000000
dla pozycjonowania i obracania oraz warto 1.000000 dla skalowania). Pod panelem
`Spriners steps' znajduje si jeszcze jedno pole - `Primary scale':



Za pomoc tego pola ustawiamy mnonik skalowania obiektu. Dla przykladu, jeeli skala
naszego obiektu we wszystkich trzech osiach wynosi 2.000000 a mnonik (`Primary scale')
ustawimy na 5:




to po zastosowaniu zmian (za pomoc przycisku `Apply') nasz obiekt zostanie przeskalowany
do wartoci 10.000000 (we wszystkich trzech osiach):



Musz powiedzie, e ja dla tego przykladu wykorzystalem obiekt Logana i po takim
przeskalowaniu osignl on imponujce wymiary . Znamy ju teori zakladki `Matrix', teraz
przejdmy do malej praktyki. Zalómy, e chcemy nasz obiekt obróci o 45 stopni w osi Y.
Mona to zrobi na kilka sposobów. Pierwszy z nich to po prostu wpisanie wartoci 45 w
polu `Y' dla sekcji obracania (`Rotation'):



i klikniciu na przycisku `Apply' w celu potwierdzenia zmian. Drugi ze sposobów to
ustawienie kroku dla sekcji obracania na 45 i klikniciu na mal strzaleczk skierowan ku
górze przy polu wartoci obrotu dla osi Y:

158

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Kade kliknicie na strzaleczk w gór (lub w dól) zwiksza warto (lub zmniejsza) o
podany skok w polach `Spiners Steps'. I tu mala uwaga. Jeeli do pozycjonowania, obracania
lub skalowania wykorzystujemy male strzaleczki znajdujce si przy odpowiednich polach, to
zmiany na naszym obiekcie zostan zatwierdzone automatycznie, jeeli natomiast rcznie
wpiszemy wartoci, to musimy je potwierdzi klikajc na przycisku `Apply' znajdujcy si na
dole, po prawej stronie okna atrybutów obiektów (zastosowanie tych przycisków opisalem na
wstpie tego podrozdzialu ). Tak wyglda zastosowania zakladki `Matrix'. Dodam tylko, e
obrót obiektu mona wykona w obrbie -180 do 180 stopni (czyli o 360 stopni). Oczywicie
nic nie stoi na przeszkodzie, aby obiekt obróci za pomoc narzdzia Gizmo, jednak nie
bdzie to dokladny obrót o 45 stopni (no chyba, e kto ma dobre oko ). Jeeli bdziecie
czsto korzysta z tej zakladki, to zapewniam Was, e szybko dojdziecie do wprawy.
Zwrócie te uwag, na jaki tryb ustawiona jest koordynacja osi. Jeeli chcecie
pozycjonowa, obraca itp. obiekty w stosunku do terenu naszej mapki, to tryb ten musi by
ustawiony na `World'.
Kolejn zakladk jest zakladka `Misc'. Wywietlane s tu informacje o poziomie szczególów
(ang. Level of detail, w skrócie LOD). Co to jest ten poziom szczególów? Otó twórcy gry
Chrome, chcc, aby ich engine, na którym zbudowana jest gra (engine gry take nazywa si
Chrome) byl bardzo wydajne wpadli na pomysl , aby obiekty, które znajduj si daleko od
gracza mialy mniej szczególów a te które s blisko wicej. W miar zbliania si gracza do
danego obiektu, detale te zwikszaj si. Oczywicie wszystko nastpuje plynnie i gracz tego
nie zauwaa. W ten sposób osignito du wydajno samego engine nawet na wolniejszych
komputerach. Kady z obiektów w Chrome moe mie max 3 poziomy szczególów. Zakladka
`Misc' informuje o poziomie szczególów danego obiektu:



W zasadzie podczas tworzenia mapek informacje te nie s a tak niezbdne, ale opisa je
warto, bo moemy mie pewien wplyw na zawarte tu informacje. W polu `Total LOD
meshes' podana jest liczba mesh'ów dla danego obiektu (tu wida, e obiekt zbudoway jest z
trzech mesh'ów, kady ma inny poziom szczególów). W polu `Mesh size' podana jest
wielko mesh'a, który sklada si na dany obiekt. Dalej podany jest dystans (pola `LOD

159

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
distances') dla kadego z trzech poziomów szczególów (pola `1st', `2nd' i `3rd'). Moemy
zobaczy, w jakiej odlegloci od obiektu musi by gracz, eby zostal wywietlony mesh z
odpowiednim poziomem szczególów. Wystarczy okreli wspólczynnik wyboru poziomu
detalu w polu `LOD sel. coefficient' i klikn na przycisku `Recalc'. W ten sposób zmieni
si dystans dla poszczególnych poziomów szczególów. Oczywicie nie wszystkie obiekty
skladaj si z trzech mesh'ów. Budynki skladaj si z jednego mesh'a i w zasadzie nie maj
one poziomów szczególów. T zakladk traktowa naley raczej informacyjnie. Przynajmniej
ja z niej nie mialem potrzeby korzysta.
Nastpna zakladk jest zakladka `Anims'. Zakladka ta sluy do odtwarzania animacji
obiektów. Nie ma on adnego wplywu na tworzenie mapek. Moe si jednak przyda w
przyszloci przy tworzeniu kodu w jzyku Java odpowiedzialnego za animacj mesh'a,
dotyczy to glównie modyfikacji gry Chrome, jednak ta sprawa nie bdzie omawiana w tym
dokumencie. Za pomoc zakladki `Anims' nie mona tworzy nowych klatek animacji, ale
mona okrela sekwencje animacji. Mona take przejrze budow mesh'a danego obiektu a
take odpowiedniemu mesh'owi przyporzdkowa sekwencj animacji (plik scr). Tak
wyglda zakladka `Anims':



W górnej czci znajduje si struktura mesh'a obiektu. W dolnej czci wywietlana jest lista
poszczególnych animacji mesh'a. Pod list animacji znajduj si przyciski pozwalajc m.in.
odtwarza animacj, zatrzymywa, dodawa now sekwencj animacji itp. Jednak jak ju
wczeniej napisalem, zakladka ta nie ma wplywu na tworzenie mapek, wic nie bd jej
szczególowo opisywal.
Kolejna zakladka to `Info', która take nie ma wplywu na tworzenie mapek. Wywietla
informacje na temat wykorzystanych materialów i tekstur w mesh'u dla danego obiektu:


160

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Na licie moemy zobaczy material wchodzcy w sklad mesh'a w raz z przypisan do niego
tekstur (podana jest te cieka dostpu do tekstury). Zaznaczajc opcj `Sort by textures',
na dole listy, wywietlona zostanie najpierw nazwa tekstury wraz ze ciek dostpu do niej a
pod ni material, do którego zostala wykorzystana owa tekstura.
Nastpn zakladk jest zakladka `Skins' (zakladka ta nie jest dostpna w starszej wersji
edytora). Zakladka ta pozwala wybra skór (ang. skin) dla obiektu. Traktujmy skóry jako
swego rodzaju ubranka dla obiektów . Na panelu `Skins' jest wywietlana lista skór
dostpnych dla danego obiektu:



Aby wybra odpowiedni skór wystarczy po prostu klikn na jej nazwie. Pod panelem
`Skins', po lewej stronie, wywietlana jest lista materialów wchodzcych w sklad domylnej
(`Default') skóry (`Default skin (3da)'). Natomiast z prawej strony wywietlana jest lista
materialów wchodzca w sklad aktualnie wybranej skóry (`Skins'). Tu mala informacja.
Edytor ChromEd nie odwiea tej listy zaraz po wybraniu jakie skóry. Aby odwiey t
list naley zamkn okno atrybutów obiektów a potem jeszcze raz je otworzy (mona
klikn na przycisku `Refresh', ale wtedy zostan te przywrócone zdefiniowane ustawienia
atrybutów, co moe by niechcianym skutkiem). Wybranie nowej skóry dla obiektu nie
trzeba potwierdza przyciskiem `Apply', zmiana nastpuje automatycznie po wybraniu skóry
z listy. A oto kilka skór dla obiektu Logana (Logan.3da):


161



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Ostatni zakladk i jedn z waniejszych jest zakladka `Lighting'. Zakladka ta generuje
lightmap' (map owietlenia) dla obiektów (nie dla terenu!). Uwaga! Dla kadego obiektu
na naszej mapce trzeba wygenerowa lightmap'! Mona to robi dla kadego obiektu
pojedynczo lub te dla wszystkich obiektów jednoczenie. Wskazane jest generowanie
lightmap'y dla obiektów dopiero po zakoczeniu prac nad mapk. Dobrym nawykiem jest
zaraz po wstawieniu obiektu do mapki, ustalenie jego podstawowych parametrów dla
owietlenia wlanie w tej zakladce (np. kolor cienia itp.). O ile wygenerowan ligtmap' dla
terenu trzeba naloy na map koloru, o tyle z ligtmap' do obiektów nie trzeba ju nic robi.
S one automatycznie wykorzystywane zaraz po wygenerowaniu. Szczególowo opisz teraz
zakladk `Lighting'. Najpierw omówi panel `Lightmap paramters':



Przede wszystkim, aby dla danego obiektu zostala wygenerowana lightmap'a trzeba
zaznaczy opcj `use lightmaps'. Pole `Samples per pixel' okrela ile próbek ma by
generowanych dla kadego piksela w wygenerowanej lighmap'ie (podajemy tu bok kwadratu,
czyli dla wartoci 1 liczona bdzie 1 próbka, dla 2 bd 4 itd. ­ po policzeniu próbek wynik
jest uredniany). Dziki temu wygladza si krawd lighmap'y. Pole `Texels' odpowiedzialne
jest za dokladno lightmap'y tzn. ile texeli (pikseli na lightmap'ie) bdzie przypada na
kady metr. W obu przypadkach proponuj pozostawia wartoci domylne (1 dla Samples
per pixel i 1.00 dla Texels). Nastpnie musimy ustawi kolor ambientu (Ambient color) .
Kolor ambientu to kolor owietlenia (wic mona tu mówi o wietle ambientowym), jaki
bdzie rzucany na nasz obiekt. Po klikniciu na polu koloru, otworzy si standardowe
okienko Windows do wyboru koloru, z którego moemy wybra odpowiedni kolor (lub poda
wartoci RGB dla stworzenia wlasnego koloru). Tak wyglda obiekt (tu jest to jeep) z
czerwonym witalem ambientowym:


162



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Takim standardowym kolorem dla wiatla rzucanego na obiekt jest kolor szary (wartoci
R = 106, G = 106, B = 106). Z takim kolorem nasz obiekt bdzie wygldal tak:



Oczywicie wszystko zaley od tego, jaki efekt chcecie uzyska na mapkach, które bdziecie
robi. Dobrze, dalej ustawiamy flagi (panel `Flags'):



Zaznaczenie pierwszej z opcji, `cast shadows', oznacza, e nasz obiekt bdzie rzucal cienie.
Tu wana informacja. T opcj naley zaznaczy dla wszystkich obiektów, które s statyczne
tzn. takie, które na naszej mapce nie bd si porusza! Zaznaczenie drugiej opcji, receive
shadows oznacza, e nasz obiekt moe odbiera cienie tzn. cie rzucany przez inny obiekt
bdzie widziany na drugim obiekcie (pod warunkiem, e oba obiekty bd na tyle blisko
siebie, e jeden na drugiego bdzie mógl rzuca cienie). Przechodzimy do panelu `Generate
lightmaps'. Na tym panelu znajduje si kolejny panel o nazwie `Lights':



Zaznaczenie opcji `use all editor lights' oznacza, e przy generowaniu ligtmap'y dla obiektów
wykorzystane zostan wszystkie wiatla znajdujce si na mapce (np. takie, który pochodz z
ulicznych lamp itp., jak takie wiatla robi a take inne, znajdziecie w rozdziale opisujcym
tworzenie zdarze w podrozdziale o dodawaniu wiatla. Zaznaczenie drugiej opcji, `use sun
light' oznacza, e przy generowaniu lightmap'y dla obiektów zostanie wykorzystane wiatlo

163

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
sloneczne. Wybór opcji zaley od miejsca, w którym dany obiekt si znajduje. Jeeli np.
obiekt jest w budynku to nie powinien mie zaznaczonej opcji `use sun light'. Na panelu
`Generate ligtmaps' znajduje si jeszcze jedna opcja ­ `raytrace in both directions':



Zaznaczenie tej opcji powoduje, e kolizja promienia slonecznego liczona jest w obu
kierunkach. Chodzi o to, aby obiekty z jednostronnymi face'ami te rzucaly cienie. Do
obiektów z jednostronnymi face'ami mona zaliczy traw i krzaki (które w Chrome nie s
obiektami 3D lecz po prostu bitmapami, zawsze skierowanymi w kierunku gracza).
Wskazane jest, aby ta opcja zawsze byla zaznaczona, ale wydlua to czas generowania
lightmap'y. Ok, mamy ustawione wszystkie opcje, moemy zacz generowa ligthmap'y dla
naszych obiektów. W tym celu kilkamy na jeden z przycisków dostpnych na panelu
`Generate lightmaps':



Pierwszy przycisk ­ `Generate', wygeneruje lightmap dla obiektu, którego atrybuty wlanie
przegldamy (czy ustawiamy). Przycisk `Generate for all objects' wygeneruje lightmap dla
wszystkich obiektów na naszej mapce. Proces taki jest naprawd dlugotrwaly, zaley do od
ustawionych opcji a take od moliwoci naszego komputera. Po klikniciu na jednym z
przycisków pojawi si okno `Generating lightmaps' (po klikniciu na przycisku `Generate for
all objects' pojawi si najpierw zapytanie czy chcemy wygenerowa lightmap'y dla
wszystkich obiektów):



Jeeli chcemy wyj z tego okna naciskamy klawisz ESC. Kliknicie na przycisku `Start'
rozpocznie proces generacji lightmapy dla obiektu (lub obiektów). Proces widoczny bdzie
na tym oknie, gdzie pasek `Current object' wywietla postp generowania lightmap'y dla
aktualnie przetwarzanego obiektu, natomiast pasek `All objects' wywietla calkowity postp
generowania lightmap'y. Po zakoczeniu w katalogu z nasz mapk pojawi si podkatalog
\LMaps\ a w nim pliki lmap dla kadego obiektu z naszej mapki. To s wlanie mapy
owietlenia dla obiektów. Tu musz poda do istotn informacj. Jeeli nasza mapka bdzie
miala duo obiektów to lightmap'y dla tych wszystkich obiektów bd zajmowa sporo
miejsca na dysku. Mona temu zaradzi. Otó wszystkie lightmap'y dla obiektów mona
skompresowa do pliku zip (np. za pomoc programu WinZIP). Trzeba jednak pamita o
zachowaniu struktury katalogów w takim pliku zip oraz o odpowiedniej nazwie takiego pliku.
Dla przykladu, jeeli nasza mapka mieci si w katalogu \Data\LevelsNet\MojaMapka\ to

164

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
struktura katalogów w pliku zip powinna wyglda tak:
\Data\LevelsNet\MojaMapka\LMaps\. Po prostu trzeba na dysku stworzy odpowiedni
struktur katalogów i j wlanie skompresowa do pliku zip (pamitajcie, aby wszystkie pliki
z wygenerowanymi lightmap'ami dla obiektów znalazly si w podkatalogu \LMaps\). Nazwa
pliku powinna brzmie LMaps.zip a sam plik powinien znale si w katalogu glównym
naszej mapki (np. \Data\LevelsNet\MojaMapka\LMaps.zip). Jeeli pokusimy si o
skompresowanie lightmap do pliku zip, to póniej mona usun caly podkatalog \LMaps\ w
katalogu z nasz mapk (nie usuwa przypadkiem pliku LMap.zip!).
W nowszej wersji edytora ChromEd, na zakladce `Lighting' pojawil si dodatkowy panel -
`Lighting model':



Do czego on sluy? Otó do kadego obiektu mona stworzy model wiatla. Model wiatla
to obiekt wiatla (`Light'), który jest dolczony do hierarchii z obiektem. Tak stworzony
model wiatla mona zapisa klikajc na przycisku `Save'. Zapisany model wiatla pojawi si
na licie, na panelu `Lighting model'. W ten sposób za kadym razem, gdy dodamy obiekt
danego typu, bdziemy mogli wczyta jego owietlenie wybierajc go z listy na panelu
`Lighting model' i klikajc na przycisku `Load'. Tym samym nie bdziemy musieli za
kadym razem od nowa tworzy owietlenia tego obiektu. Trzeba pamita, e jeeli
zmienimy atrybuty obiektu wiatla to trzeba jeszcze raz zapisa model wiatla. Niestety nie
ma przycisku, który usuwalby niepotrzebne modele wiatla z listy, ale jest na to sposób .
Otó w katalogu, w którym znajduje si mesh obietu (standardowo mesh'e s w katalogu
\Data\Meshes\) szukamy pliku lmf z z tak nazw, jak nadalimy modelowi wiatla i
usuwamy ten plik (najlepiej gdyby edytor w tym momencie byl zamknity). Aby lepiej
zrozumie tworzenie modelu wiatla podam przyklad. Na mapce mamy obiekt Jeep.3da a
obok niego obiekt typu `Light' (to bdzie wlanie nasze owietlenie). Obiekt typu `Light'
dolczamy do hierarchii z obiektem Jeep.3da (zaznaczamy obiekt typu `Light', kilkamy na
ikonie dolczania obiektu do hierarchii i klikamy na obiekcie Jeep.3da). Ustawiamy
interesujce nas atrbuty obiektu typu `Light' (np. kolor owietlenia itp.). Potem otwieramy
okno atrybutów obiektu Jeep.3da, przechodzimy na zakladk `Lighting' i klikamy na
przycisku `Save'. Otworzy si okno `Get lighting model name':



W polu `Name' wpisujemy nazw modelu wiatla i klikamy na przycisku `OK'. Tak zapisany
model wiatla pojawi si na licie:


165


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W ten sposób, gdy dodamy kolejny obiekt Jeep.3da bdziemy mogli wczyta model wiatla
dla tego obiektu. Wybieramy go z listy i klikamy na przycisku `Load'. Trzeba pamita, aby
potem wygenerowa lightmap'e dla tego obiektu Jeep.3da. Oczywicie nie musimy owietla
obiektów z wykorzystaniem modeli wiatla itp., mona wygenerowa standardow
lightmap'. Wszystko zaley od tego, jaki efekt kocowy chcemy uzyska na obiektach.
Na tym koczymy omawianie okna atrybutu obiektów. W niektórych przypadkach
dostpna jest jeszcze jedna zakladka o nazwie `Indoors'. Poniewa zakladka ta dotyczy
portali, omówi j, a take same portale, w w podrozdziale o portalach. Na koniec mala
informacja. Jeeli zaznaczymy kilka, rónych obiektów i wybierzemy okno atrybutów
obiektów to dostpne bd tylko te zakladki, które s wspólne dla wszystkich obiektów
(przewanie bd to zakladki `Java', `Mission', `Matrix' i `Lighting').

5.4 Zaznaczanie i selekcja obiektów.
Za pomoc ikony
otwieramy okno zaznaczania i selekcji obiektów (Objects
selection and filters). Dziki niemu moemy m.in. wyszukiwa i zaznacza obiekty na naszej
mapce. Jest to take jedyny sposób, aby znale i zaznaczy ukryte przez nas wczeniej
obiekty (za pomoc ikony ukrywania obiektów). Okno to pozwala take wyszukiwa
elementy zwizane z tworzeniem zdarze na naszej mapce np. cieki patrolowe, dialogi itp.
a które, nie s widoczne na naszej mapce w postaci obiektów. Okno zaznaczania i selekcji
obiektów wyglda tak:



Gdy bdziecie tworzy swoje mapki, z czasem taka mapka bdzie bardzo rozbudowana
(przynajmniej mam tak nadziej ). Coraz trudniej bdzie znale na niej obiekty (np. w
celu zmiany jakiego atrybutu itp.). I wlanie tu przychodzi z pomoc okno zaznaczania i

166

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
selekcji obiektów. Okno podzielone jest na dwie sekcje, pierwsza (`Selection'): dotyczy
zaznaczania obiektów oraz tworzenia selekcji obiektów, druga (`Filters'): dotyczy filtrowania
oraz tworzenia selekcji klas obiektów. Standardowo wywietlana jest tylko pierwsze sekcja
(`Selection'). Jeeli chcemy odsloni drug sekcj (`Filters'), musimy klikn na przycisku
`Advanced >>', który znajduje si na dole okna zaznaczania i selekcji obiektów:



Moemy oczywicie ukry drug sekcj. W tym celu klikamy na przycisku `<< Hide':



Najpierw omówi poszczególne elementy pierwszej sekcji okna, dotyczcej zaznaczania i
tworzenia selekcji obiektów. Zerknijcie na poniszy rysunek:



Obiekty mona wyszukiwa (i zaznacza) wedlug kilku kategorii: nazwy obiektu (pole
`Name'), klasy obiektu (pole `Class') czy identyfikatora obiektu (pole `ID'). Kady obiekt na
mapce ma swoj nazw. Przy wstawieniu obiektu na mapk jest to nazwa standardowa np.
BudynekMieszkalny01. Oczywicie tak nazw mona (lecz nie trzeba) zmieni na swoj
wlasn. Mona nawet kilku obiektom nada t sam nazw, ale nie jest to wskazana
praktyka! Kady obiekt ma te przypisan klas, standardowo wikszo obiektów ma
przypisan klas MeshObject (zastosowanie jzyka Java i klas w grze Chrome i edytorze
ChromEd opisalem pod koniec rozdzialu o grze Chrome, do czsto bd take poruszal ten
temat w innych rozdzialach). Identyfikator obiektu to unikalna liczba, któr obiekt otrzymuje
automatycznie po wstawieniu go na mapk. Identyfikatora nie da si zmienia, przydziela go
edytor ChromEd! Poniewa lista obiektów moe by naprawd dluga (zaley to od tego jak
rozbudowana bdzie nasza mapka) moemy j ograniczy wybierajc mask klasy z listy
`Class selection mask'. Kady element listy maski klas odpowiada za wywietlenie na licie
obiektów zgodnie z przypisanymi do nich klasami. I tak:
- `ALL' ­ wywietlone zostan wszystkie obiekty dostpne na mapce (bez wzgldu na rodzaj
przypisanych do nich klas),
- `AI' ­ wywietlone zostan obiekty, które maj przypisane klasy AIGroup, NewAI i
Waypoint a take pochodne klas AIGroup i NewAI,
- `ActionChain' ­ wywietlone zostan obiekty, które maj przypisan klas ActionChain a
take pochodne tej klasy,
- `Alarms' ­ wywietlone zostan obiekty, które maj przypisane klasy Alarm, LightSignal i
AlarmTerminal a take pochodne tych klas,

167

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
- `Cameras' ­ wywietlone zostan obiekty, które maj przypisane klasy CameraEditorObject
i CameraTargetEditorObject,
- `Computers' ­ wywietlone zostan obiekty, które maj przypisan klas
ComputerTerminalNew a take pochodne tej klasy,
- `Dialogs' ­ wywietlone zostan obiekty, które maj przypisan klas Dialog a take
pochodne tej klasy,
- `ForceField' ­ wywietlone zostan obiekty, które maj przypisane klasy ForceField i
ForceFieldFence a take pochodne tych klas,
- `Level' ­ wywietlone zostan obiekty, które maj przypisan klas Module a take
pochodne tej klasy (jest to obiekt z mapk, któr tworzymy - jak ju wspominalem, mapka
traktowana jest przez edytor jak obiekt),
- `Lifts' ­ wywietlone zostan obiekty, które maj przypisane klasy LiftPlatform,
LiftPlatformFloor i LiftPlatformButton a take pochodne tych klas,
- `Lights' ­ wywietlone zostan obiekty, które maj przypisan klas LightEditorObject,
- `Movies' ­ wywietlone zostan obiekty, które maj przypisan klas Movie a take
pochodne tej klasy,
- `Music' ­ wywietlone zostan obiekty, które maj przypisan klas Music a take
pochodne tej klasy,
- `Objectives' ­ wywietlone zostan obiekty, które maj przypisane klasy Objective,
SubObjective i Location a take pochodne tych klas,
- `Other' ­ wywietlone zostan obiekty, które maj przypisan klas FXEmitter a take
pochodne tej klasy,
- `Player' ­ wywietlone zostan obiekty, które maj przypisan klas PlayerSingle (jest to
obiekt gracza w grze singleplayer'owej, przewanie Logan ) a take pochodne tej klasy,
- `Security systems' ­ wywietlone zostan obiekty, które maj przypisane klasy
SecuritySystem i SecurityCannon a take pochodne tych klas,
- `Sensors' ­ wywietlone zostan obiekty, które maj przypisan klas Sensor a take
pochodne tej klasy,
- `Simple meshes' ­ wywietlone zostan obiekty, które maj przypisan klas MeshObject
(w zasadzie bd to wszystkie obiekty z naszej mapki, które nie wchodz w adn
interakcj np. budynki, wntrza budynków itp.),
- `Triggers' ­ wywietlone zostan obiekty, które maj przypisan klas Trigger a take
pochodne tej klasy.
Wicej na temat przeznaczenia poszczególnych klas znajdziecie w podrozdziale o plug-in'ie
,,Mesh Browser". W polach `Name' i `Class' nie s rozróniane wielkie litery, wic bez
rónicy jest czy wpiszemy Budynek czy te budynek. Dodatkowo mona stosowa znaki * i
?, tak samo jak np. przy wyszukiwaniu plików w systemie Windows. Znak * odpowiada
dowolnemu cigowi a znak ? jednemu znakowi. Jeeli poszukujemy jaki obiekt, ale nie
znamy jego calej nazwy moemy wpisa np. Budynek*. Tym samym zostan znalezione i
zaznaczone wszystkie obiekty zaczynajce si od slowa budynek. Tu bardzo istotna uwaga!
Jeeli znamy nazw obiektu (czy nawet fragment) a nie znamy klasy obiektu i identyfikatora
to w polu `Name' wpisujemy nazw poszukiwanego obiektu (jeeli nie znamy calej nazwy to
na koniec stawiamy znak *) a w polach `Class' i `ID' wpisujemy znak *. To samo tyczy si
innej sytuacji np., gdy znamy identyfikator obiektu. Wtedy w polu `ID' wpisujemy
identyfikator obiektu a w polach `Name' i `Class' wpisujemy znak *. Jeeli nie bdziemy
pamita o tej zasadzie to moemy mie problemy ze znalezieniem poszukiwanego obiektu.
Wyszukanie i zaznaczenie obiektów nastpi zaraz po wprowadzeniu nazwy obiektu itd. Nie
ma potrzeby potwierdzania klawiszem ENTER. Wszystkie obiekty znajdujce si na mapce i
pasujce do kategorii klasy, któr wybralimy z listy maski selekcji klas (`Class selection

168

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
mask'), zostan wywietlone na licie obiektów (`Objects'), która znajduje si tu pod
panelem `Selection'):



Natomiast poszukiwane przez nas obiekty, na licie zostan zaznaczone na niebiesko i s
automatycznie zaznaczane na mapce. Jeeli poszukiwany przez nas obiekt nie zostanie
znaleziony to aden obiekt nie zostanie zaznaczony. Obiekty na licie sortowane s
alfabetycznie. Standardowy format wywietlania obiektów jest taki:
nazwa_obiektu (identyfikator_obiektu) [klasa_obiektu_w_Java]
Moemy zmieni format wywietlania zaznaczajc opcj `Show class first' dostpn pod list
obiektów:



Obiekty zostan wywietlone w nowym formacie:
[klasa_obiektu_w_Java] nazwa_obiektu (identyfikator_obiektu)
Jeeli zaznaczymy opcj `Hidden' (dostpna tu nad opcj `Show class first'), na licie
zostan wywietlone tylko obiekty, które zostaly przez nas ukryte (za pomoc ikony
),
pod warunkiem, e pasuj do kategorii klasy (`Class selection mask'). Opcja `Hidden' to
jedna moliwo na zaznaczenie obiektów, które s ukryte. W ten sposób mona przywróci
wywietlanie ukrytych obiektów za pomoc ikony
. Mona oczywicie klikn na ikonie
tym samym odkrywajc wszystkie ukryte obiekty, ale jeeli chcemy odkry tylko jeden
obiekt (lub kilka, ale nie wszystkie) musimy posluy si oknem zaznaczania i selekcji
obiektów. Jeeli zaznaczymy opcj `Show objects hierarchy' (dostpna pod opcj `Show
class first') to na licie obiektów zostanie uwzgldniona hierarchia obiektów tzn. pod
obiektem ,,rodzica" zostanie wywietlony obiekt ,,dziecko":



Jak wida na powyszym rysunku, obiekt logan01 (ten obiekt jest ,,dzieckiem") jest
polczony w hierarchii z obiektem Jeep01 (ten obiekt jest ,,rodzicem"). Obiekty, które nie
maj swoich ,,rodziców" s wywietlane alfabetycznie. Jeli obiekt ma ,,dzieci" to s one
wywietlane bezporednio pod nim (oczywicie uwzgldniajc to, e mog one mie swoje
,,dzieci" itd.). Dodatkowo, jeeli mamy zaznaczon opcj `Select subtree':

169

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



to na licie obiektów zawsze z obiektem ,,rodzica" automatycznie zostanie zaznaczony obiekt
,,dziecka":



Dostpna jest jeszcze jedna opcja, opcja `Expand all groups' (znajduje si tu nad opcj
`Select subtree'). Opcja ta dotyczy zaznaczania i selekcji obiektów wchodzcych w sklad
grupy (o grupowaniu przeczytacie w podrozdziale o grupowaniu obiektów). Standardowo na
licie nie s wywietlane obiekty wchodzce w sklad grup a same grupy na licie
wywietlone s w kolorze szarym, poprzedzone slowem `GROUP' oraz podan nazw grupy:



Wic jeeli chcemy znale (i zaznaczy) obiekty wchodzce w sklad jakiej grupy, musimy
zaznaczy opcj `Expand all groups'. Tym samym na licie wywietlone zostan obiekty,
które wchodz w sklad grup. Dodam tylko, e poszukiwany przez na obiekt nie zostanie
zaznaczony na licie, lecz zostanie zaznaczona grupa, w której w sklad ten obiekt wchodzi.
Tu pod list obiektów znajduj si cztery przyciski:



Pierwszy z przycisków, `All', powoduje, e zostaj zaznaczone wszystkie obiekty
wywietlone na licie, tym samym zaznaczone s wszystkie obiekty na mapce. Przycisk
`None' anuluje zaznaczenie obiektów na licie i tym samym odznaczenie obiektów na mapce.
Przycisk `Inverse' zamienia zaznaczenie obiektów na licie: to, co bylo zaznaczone zostanie
odznaczone a to, co bylo odznaczone zostanie zaznaczone . Ostatni przycisk, `Attribs',
pozwala otworzy okno atrybutów zaznaczonych obiektów (o tym oknie moecie przeczyta
w podrozdziale o atrybutach obiektów). Jeeli na licie mamy zaznaczony jeden obiekt, to
mona na nim dwukrotnie klikn, co take spowoduje otworzenie okna atrybutów obiektów.
Oczywicie obiekty na licie mona zaznacza ,,rcznie" za pomoc myszki (klikajc na
nazwie interesujcego nas obiektu). Dopuszczalna jest multiselekcja. Ulatwiaj to klawisze
CTRL (dodawanie lub odejmowanie pojedynczych obiektów do zaznaczenia) i SHIFT
(dodawanie lub odejmowanie calych grup obiektów do zaznaczenia). Zastosowanie klawisza
CTRL i SHIFT dziala tak samo jak w innych aplikacjach systemu Windows. Dodatkowo po

170

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
zaznaczeniu obiektu moemy wyporodkowa na tym obiekcie kamer obserwatora
aktywnego okna widokowego. Po znalezieniu i zaznaczeniu interesujcego nas obiektu (lub
obiektów), klikamy na pasku tytulowym edytora ChromEd (w innym przypadku operacja ta
moe si nie uda) a potem naciskamy klawisz X. Kamera zostanie wyporodkowana na
naszym obiekcie. Jeeli obiektów bdzie wicej to kamera zostanie tak wyporodkowana, aby
bylo wida wszystkie zaznaczone obiekty. Jeeli chcemy calkowicie usun obiekty z listy
(tym samym usun go z mapki), klikamy prawym klawiszem myszki na obiekcie, który
chcemy usun i wybieramy polecenie Delete Object:



Niestety, za pomoc polecenia Delete Object nie mona usuwa kilku obiektów jednoczenie
nawet pomimo tego, e na licie zaznaczonych jest kilka obiektów. Zawsze zostanie usunity
tylko ten obiekt, który kliknlimy prawym klawiszem myszki. Jest jednak sposób, aby temu
zaradzi . Po prostu zaznaczamy obiekty, które chcemy usun z listy (no i z mapki), potem
klikamy na pasku tytulowym edytora ChromEd a póniej naciskamy klawisz DELETE.
Proste? Mam nadziej, e tak. Na samym dole okna `Objects selection and filters' znajduje
si meneder selekcji obiektów:



Za pomoc tego menedera mona stworzy grup selekcji obiektów. Póniejsze wybranie
tak stworzonej grupy z listy grup selekcji (`Object selections'), pozwoli automatycznie
zaznaczy wszystkie obiekty na licie obiektów (`Objects') jak i na samej mapce, wchodzce
w sklad tej grupy selekcji. Aby stworzy tak grup zaznaczamy interesujce nas obiekty na
licie obiektów (oczywicie mona te stworzy grupy z obiektów znalezionych z uyciem
masek na panelu `Mask & class filter'). Jeeli mamy ju zaznaczone interesujce nas obiekty,
klikamy na przycisku `Manager'. Otworzy si okno menedera selekcji obiektów (`Selections
management'):


171

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W polu `Name' (na panelu `New selection') wpisujemy nazw naszej grupy selekcji i
klikamy na przycisku `Create':






W ten sposób stworzymy now grup selekcji skladajc si z zaznaczonych wczeniej przez
nas obiektów. Edytor ChromEd doda na kocu nazwy naszej grupy kolejny numer:



Klikamy na przycisku `OK' aby zamkn menedera selekcji. Teraz, jak zaznaczymy nazw
naszej grupy selekcji na licie `Objects selections', zostan automatycznie zaznaczone
obiekty wchodzce w sklad jej grupy. Meneder grup ma jeszcze inne funkcje. Jeeli chcemy
np. zmieni nazw grupy selekcji, zaznaczamy j na licie grup selekcji (`Object selections') i
klikamy na przycisku `Manager'. W menederze klikamy na przycisku `Rename':



Podajemy now nazw grupy i klikamy na przycisku `OK'. Moemy te usun grup
selekcji za pomoc przycisku Delete. Tu wana informacja. Usunicie grupy selekcji nie
usuwa obiektów wchodzcych w jej sklad z mapki! Za pomoc przycisku `Export' moemy
wyeksportowa nasz grup selekcji obiektów do pliku (w formacie eds). Tak
wyeksportowan grup moemy póniej wstawia do mapki (za pomoc plug-in'a ,,Mesh
Browser" opisanego w podrozdziale o dodawananiu obiektów), dlatego wyeksportowany plik
najlepiej zapisywa w katalogu \Data\ lub \Data\Meshes\ ew. w katalogu z nasz mapk. A do
czego mona wykorzysta tak wyeksportowan grup selekcji? A np. stworzylimy budynek
(lcznie z wntrzami itp.). Z wszystkie obiektów wchodzcych w sklad tego budynku
tworzymy grup selekcji i j eksportujemy. Teraz za kadym razem, gdy bdziemy chcieli do
jakie mapki wstawi budynek, to zamiast tworzy go od nowa, wystarczy na mapk wstawi
t wlanie grup selekcji, tym samym nie musimy od nowa tworzy budynku. To tyle o

172

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
eksportowaniu grupy selekcji obiektów. Za pomoc przycisku `Add' na panelu `Object in
current selections' moemy do grupy selekcji dodawa nowe obiekty. Aby taki obiekt doda
naley na licie grup selekcji (`Object selections') wybra grup, do której chcemy doda
nowe obiekty, potem klikamy na przycisku `Manager'. Otworzy si okno menedera selekcji
obiektów gdzie kilkamy na przycisku `Add':



Przycisk ten dziala jak przelcznik, wic w tej chwili zostanie wcinity. Potem klilkamy na
przycisku `OK'. Teraz na mapce (nie na licie obiektów!) klikamy na tych obiektach, które
chcemy doda do grupy selekcji. Po dodaniu obiektów, ponownie klikamy na przycisku
`Manager' i w oknie menedera selekcji klikamy na przycisku `Add' (tym razem zostanie
wycinity). Zamykamy okno menedera selekcji klikajc na przycisku `OK'. Niestety, nie
moemy usuwa obiektów z grupy selekcji, nie wiedzie czemu, nie dziala przycisk
`Remove' .
Tak wyglda funkcjonowanie pierwszej sekcji okna zaznaczania i selekcji obiektów. Druga
sekcja, `Filters' (otwierane za pomoc przycisku `Advanced >>') funkcjonuje w bardzo
podobny sposób do pierwszej z tym, e selekcja dotyczy klas Java. Zadaniem selekcji klas
jest ograniczy zbiór obiektów wywietlanych na licie obiektów (w pierwszym sekcji okna).
Jak ju par razy napisalem, mapki mog by bardzo rozbudowane i posiada setki obiektów
a tym samym ta setka obiektów zostanie wywietlona na licie obiektów. Co prawda mona
j ograniczy za pomoc maski selekcji klas (`Class selection mask') ale co w momencie, gdy
do takiej kategorii klas nadal naley duo obiektów?! Wlanie za pomoc selekcji klas
moemy jeszcze bardziej ograniczy list obiektów! W sekcji selekcji klas moemy poda
nazw obiektu (pole `Name') oraz nazw klasy (pole `Class'), do których chcemy ograniczy
list obiektów:



Posluymy si pewnym przykladem. Zalómy, e mamy mapk, na której jest duo wie
straniczych. Wiee te posiadaj windy za pomoc których mona na nie wjeda. Nie bd
tu wchodzil w szczególy (tworzenie m.in. wie straniczych omówi w rozdziale na temat
tworzenia zdarze itp.) ale napisz tylko tyle, e przewanie jedna wie stranicza sklada si
z obiektów: kolumna, gondola, winda i przyciski przywolujce wind. Kolumna i gondola to
podstawy windy, przypisane maj klasy LiftPlatfromFloor. Winda przypisan ma klas
LiftPlatform natomiast przyciski przywolujce wind przypisan maj klas
LiftPlatfromButton. Skoro tych wie jest duo to nawet wybierajc odpowiedni mask
selekcji klas (`Class selection mask', w naszym przykladzie bdzie to `Lifts') nadal lista
obiektów moe by spora. My chcemy zaznaczy np. tylko przyciski. Wic zamiast szuka
ich na licie obiektów moemy ograniczy t list tylko do samych przycisków. I to wlanie
robimy w sekcji selekcji klas. Skoro wiemy, e przyciski maj przypisan klas
LiftPlatformButton to tak nazw wpisujemy w polu `Class' (na panelu `Mask'). W ten
sposób na licie obiektów zostan wywietlone tylko obiekty majce przypisan klas

173

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
LiftPlatformButton. Oczywicie tak klas mona zaznaczy rcznie za pomoc myszki.
Robimy to na licie klasy (`Classes'):



Wystarczy znale interesujc nas klas na tej licie i zaznaczy j. Tu take jest dozwolona
multiselekcja. Jeeli nie wiemy do jakiej kategorii klas naley zaznaczona przez nas kalsa, to
proponuj na licie maski selekcji klas (`Class selection mask') wybra ALL. Znaczenie
przycisków znajdujcych si pod list klas (`All', `None' i `Inverse') jest identyczne jak dla
listy obiektów. Pod list klas dostpne s dwie opcje:



Zaznaczenie pierwszej z nich, `Subclasses', powoduje, e za kadym razem, gdy klikniemy
nazw klasy nadrzdnej, to automatycznie zostan zaznaczone wszystkie klasy podrzdne:



Na powyszym rysunku zaznaczenie klasy MeshObject (z zaznaczon wlanie opcj
`Subclasses') spowodowalo automatyczne zaznaczenie wszystkich klas podrzdnych.
Zaznaczonie drugiej z tych opcji, `Select classes from selection' powoduje, e za kadym
razem, gdy na licie obiektów zaznaczymy jaki obiekt, to na licie klas automatycznie
zostanie zaznaczona klasa, która przypisana jest do zaznaczonego obiektu. Cho musz
przyzna, e ta opcja nie do koca dziala . W sekcji selekcji klas dostpny jest take
meneder selekcji klas (wystarczy klikn na przycisku `Manager' na panelu `Class
selection') z tym, e troch si róni od menedera selekcji obiektów. Okno menedera
selekcji klas wyglda tak:


174

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Zadaniem tego menedera jest oczywicie tworzenie grupy selekcji klas. Znaczenie
poszczególnych przycisków jest takie samo jak dla menedera selekcji obiektów. Nie ma tu
jednak przycisku dodawania klas. Za pomoc przycisku `Export' moemy wyeksportowa
grup selekcji klas do pliku (w formacie edcs) a za pomoc przycisku `Import' importowa
grup selekcji klas. Stworzona przez nas grupa selekcji klas (za pomoc przycisku `Create')
pojawi si na licie grup selekcji klas ( `Class selection'):



Edytor ChromEd doda na kocu nazwy naszej grupy kolejny numer.
I to wszystko. Wiem, e mona si w tym wszystkim pogubi, ale to tylko takie
wraenie. Z pocztku proponuj korzysta tylko z pierwszej sekcji okna zaznaczania i
selekcji obiektów. Dopiero z czasem zajmijcie si selekcj klas (o ile zajdzie taka potrzeba).
Jeeli chcecie mie pewno, e w sekcji selekcji obiektów pod uwag brane s wszystkie
klasy, w sekcji selekcji klas w polu `Name' i `Class' wpiszcie znak * i kliknijcie na przycisku
`All':



Mala uwaga. Praca z sekcj selekcji klas moe powodowa chwilowe podwieszanie edytora
ChromEd. Nie przejmujcie si tym i uzbrojcie w cierpliwo. Po prostu edytor musi
zweryfikowa to, co zaznaczylimy itp. co troch moe potrwa.

175

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

5.5 Grupowanie obiektów.
Po klikniciu na ikonie
otworzymy okno grupowania obiektów. Jest to co
podobnego do grupowania selekcji obiektów, ale nie do koca. Okno to sluy do grupowania
kilku zaznaczonych obiektów, które w pewnym sensie bd traktowane jak jeden (np. w
momencie zaznaczenia którego z obiektu wchodzcego w sklad grupy itd.). Mona
oczywicie takie grupy usuwa (rozgrupowa). Okno grup (`Groups') wyglda tak:



Co daje grupowanie obiektów? Przede wszystkim komfort pracy. Powiedzmy, e mamy jaki
gotowy budynek z obiektami wewntrz (np. stoly, krzesla, lampy itp.) i chcemy go przesun
w inne miejsce. Chyba nawet nie wiecie ile musielibycie przesuwa pojedynczych obiektów
skladajcych si na ten budynek. Oczywicie, mona zaznaczy caly budynek z obiektami i
przesun go, ale co by bylo gdybymy mieli t operacj powtarza co jaki czas? Po co sobie
utrudnia ycie, skoro calo mona zgrupowa w jeden obiekt. Druga sprawa jest taka, e
grupy obiektów wykorzystuje si przy tworzeniu portali (opisz je w podrozdziale o
portalach). Do dziela . Zaznaczamy obiekty, które chcemy zgrupowa i klikamy na ikonie
grupowania obiektów (`Groups'). Na panelu `Create / destroy' wpisujemy nazw naszej
grupy i klikamy na przycisku `Create':



W ten sposób stworzylimy grup obiektów (tu o nazwie MojaGrupa). Nazwa naszej grupy
pojawila si na licie istniejcych grup (`Existing groups') a take na licie struktury grupy
(`Selected groups structure').:


176


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Na licie struktury grupy bdziemy mogli przeglda obiekty wchodzce w sklad grupy,
dodawa obiekty do grupy itp., o czym bdziecie mogli przeczyta w dalszej czci tego
podrozdzialu. Zwrócie uwag, e nazwa grupy na licie istniejcych grup wywietlana jest w
kolorze czerwonym. Na mapce nasze obiekty zostaly zgrupowane za pomoc bialego
obramowania:



Od tej pory, gdy zawsze zaznaczymy obiekt wchodzcy w sklad grupy, automatycznie
zostan zaznaczone wszystkie obiekty tej grupy (chyba, e struktura grupy jest otwarta, o
czym te bdziecie mogli przeczyta za chwil). Oczywicie grup mona usun, mona
usun z niej obiekty, dodaa do niej obiekty a take eksportowa grup do pliku. Jeeli
chcemy usun grup, klikamy na ikonie okna `Groups', zaznaczamy nazw grupy na licie
istniejcych grup (nazwy grup sortowane s w kolejnoci ich tworzenia tzn. pierwsza
stworzona grupa znajduje si na dole listy) i klikamy na przycisku `Destroy':



Uwaga! W ten sposób nie usuniemy obiektów wchodzcych w sklad grup, lecz sam grup!
Jeeli chcemy wyeksportowa grup do pliku, zaznaczamy nazw grupy na licie i klikamy
na przycisku `Export':



Niestety, eksportowanie grupy nie dziala w obecnej wersji edytora ChromEd. Oczywicie z
pomoc okna grupowania obiektów, moemy zaznaczy tak grup na naszej mapce (np. w

177


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
przypadku, gdy grupa znajduje si w innym miejscu ni kamera obserwatora). W tym celu
zaznaczamy nazw grupy na licie istniejcych grup i klikamy na przycisku `Select objects',
który znajduje si tu pod list struktury grupy:



Moliwa jest take multiselekcja grup na licie istniejcych grup. Dodatkowo moemy
wyporodkowa kamer aktywnego okna widokowo na naszej grupie obiektów naciskajc
klawisz X (przed naciniciem klawisza X naley klikn na pasku tytulowym edytora
ChromEd, w innym przypadku wyporodkowanie okna moe si nie powie). W porzdku.
Idziemy dalej. Tu pod list istniejcych grup znajduj si cztery przyciski ­ `Open', `Open
All', `Close' i `Close All'. Jeeli zaznaczymy interesujc nas grup na licie istniejcych
grup i klikniemy na przycisku `Open', to wtedy na licie struktury grup otworzy si struktura
zaznaczonej grupy tzn. zostanie wywietlona lista obiektów wchodzca w sklad tej grupy:



Dodatkowo przy otwartej grupie na licie istniejcych grup, pojawilo si slowo `opened', co
oznacza, e struktura tej grupy jest otwarta. Jak latwo si domyli za pomoc przycisku
`Close' zamykamy zaznaczon struktur (o ile jest otwarta). Za pomoc przycisku `Open All'
otwieramy struktury wszystkich grup znajdujcych si na na licie istniejcych grup,
natomiast za pomoc przycisku `Close All' zamykamy wszystkie struktury. Jeeli na licie
struktury grupy zaznaczymy obiekt wchodzcy w sklad grupy, na naszej mapce zostanie on
oznaczony óltym obramowaniem:



Na licie struktury grupy dozwolona jest multiselekcja. Jeeli mamy zaznaczony obiekt na
licie struktury grupy i teraz klikniemy na przycisku `Select objects', obiekt ten zostanie
zaznaczony na naszej mapce w sposób standardowy:


178


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Przy takim zaznaczaniu take mona wykorzysta klawisz X w celu wyporodkowania
kamery aktywnego okna widokowego na zaznaczonym obiekcie. Tu wana informacja. Jeeli
struktura grupy jest otwarta, to na mapce moemy zaznacza obiekty wchodzce w jej sklad
w taki sam sposób jak obiekty niewchodzce w sklad adnej grupy tzn. klikajc na nim.
Otwarta struktura grupy oraz przycisk `Select objects' to jedyne sposoby na zaznaczenie
pojedynczego obiektu wchodzcego w sklad grupy (oczywicie mona usun grup i
zaznaczy odpowiedni obiekt, ale po co tak robi skoro mona prociej?). Jeeli chcemy
usun jaki obiekt z grupy, zaznaczamy go na licie struktury grupy i klikamy na przycisku
`Remove selected', który znajduje si tu pod list struktury grupy:



Jeeli chcemy doda obiekt do grupy, zaznaczmy ten obiekt na mapce, natomiast na licie
struktury grupy (struktura grupy musi by otwarta, inaczej nie bdzie mona dodawa
obiektów!) zaznaczamy nazw grupy (nie aden z obiektów wchodzcych w sklad grupy!),
która zawsze znajduje si na górze listy i klikamy na przycisku `Add selected':





To wszystko, jeeli idzie o grupowanie obiektów. Myl, e z grupami sobie poradzicie.
Zapewne bdziecie czsto korzysta z moliwoci tworzenia grup obiektów. Bardzo ulatwia
to prac nad mapk. Naprawd. Gdy mamy zaznaczon jak grup obiektów i otworzymy
okno atrybutów obiektów, bdziemy mie dostp tylko do czterech zakladek tego okna (a
szczerze mówic do dwóch, bo w zakladkach `Java' i `Mission' nie bdzie adnych
atrybutów):

179

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Jak latwo zauway zamiast nazwy obiektu w polu `Name' wywietlana jest nazwa naszej
grupy. W zakladce `Matrix' moemy precyzyjnie pozycjonowa, obraca lub skalowa cal
grup. Natomiast na zakladce `Lighting' bdziemy mogli wygenerowa ligtmap' dla
zaznaczonych (lub wszystkich) obiektów. Jeeli zauwaymy, e jaka opcja jest wyszarzona
(tak jak na powyszym rysunku, zaznaczona czerwonym obramowaniem) oznacza to, e
niektóre obiekty w grupie maj t opcj zaznaczon a inne obiekty grupy nie.
Tak wyglda sprawa grupowania obiektów. Na koniec wana informacja. Nie wolno
dodawa do grupy obiektów, które maj przypisan klas LiftPlatform! Obiekty te musz by
niezalene. Dolczenie takiego obiektu do jakie grupy, spowoduje nieprawidlowe dzialanie
tego obiektu np. ruch windy bdzie nieprawidlowy. Uwaga ta nie dotyczy grupy selekcji
obiektów.

5.6 Kolapsowanie obiektów.
Klikajc na ikonie
otwieramy okno kolapsowania obiektów (`Collapsed objects').
Kolapsowanie obiektów to po prostu lczenie kilku obiektów w jeden (w doslownym
znaczeniu!). Okno kolapsowania obiektów wyglda tak:


180

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Po co w ogóle stosuje si kolapsowanie obiektów? Wyobracie sobie, e mamy jaki budynek
a w nim wntrze skladajce si z kilkudziesiciu innych obiektów. Te kilkadziesit obiektów
wywietla si (renderuje) o wiele dluej ni jeden duy obiekt. Dlatego stosuje si
kolapsowanie (lczenie) obiektów. Dziki kolapsowaniu obiektów moemy naprawd
zwikszy prdko dzialania naszej mapki! W praktyce jest tworzony nowy obiekt (plik
3da), który jest wstawiany w miejsce tych kilkudziesiciu obiektów. Tu bardzo wana
informacja! Kolapsowa mona tylko obiekty statyczne tzn. nieporuszajce si (wiec np.
drzwi nie mog by kolapsowane), niewchodzce w adn interakcj z otoczeniem. Wic
zaczynamy. Zaznaczamy na mapce obiekty, które chcemy skolapsowa i otwieramy okno
kolapsowania obiektów. Na licie skolapsowanych obiektów (`(de)collapsed objects')
zaznaczymy opcj kolapsowania nowych obiektów (klikamy na opcji `<new> -d'):



Teraz musimy doda te zaznaczone na mapce obiekty do listy obiektów, które chcemy
skolapsowa. Zrobimy to za pomoc malego przycisku `+', który znajduje si na dole okna
kolapsowania obiektów (przycisk ten bdzie dostpny dopiero w momencie zaznaczenia opcji
`<new> -d'):




181

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Na licie szczególów kolapsowania (`Collapse details') pojawi si lista obiektów, które
chcemy skolapsowa:



Jeeli chcemy doda wicej obiektów do listy to nic nie stoi temu na przeszkodzie. Wystarczy
zaznaczy kolejne obiekty na mapce, zaznaczy opcj `<new> -d' i klikn na przycisku `+'.
Nowe obiekty zostan dodane do listy. Jeden obiekt nie zostanie dodany do listy dwa razy,
wic nie musimy si martwi, jeeli przez pomylk jeszcze raz dodamy obiekt, który ju
wczeniej dodalimy. Dobrze, przyjrzyjmy si tej licie. S tu obiekty wywietlane w kolorze
czarnym i w kolorze czerwonym. Obiekty wywietlane na czerwono to obiekty, które
sprawiaj problemy i nie mog by skolapsowane. W moim przykladzie s to akurat obiekty
ruchome (wiea stranicza z wind). Có, skoro obiekty te nie mog by skolapsowane to
musimy je z listy usun. W tym celu klikamy na przycisku `Select trouble'. Obiekty
sprawiajce problemy zostan zaznaczone na licie:



Te zaznaczone obiekty na licie moemy take znaznaczy na naszej mapce za pomoc
przycisku `Select in editor' lub usun z listy za pomoc przycisku `-`. I to wlanie robimy,
klikamy na przycisku `-`:



Oczywicie, jeeli chcemy usun jakie inne obiekty z listy to nie ma problemu. Wystarczy
zaznaczy te obiekty na licie szczególów kolapsowania (dopuszczalna jest multiselekcja) i
klikn na przycisku `-`. Przed rozpoczciem kolapsowania moemy zaznaczy, które

182


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
wierzcholki podczas kolapsowania obiektów bd ze sob lczone. Lczone s wszystkie
wierzcholki, których odleglo od siebie jest mniejsza ni warto w polu `Vertex align
threshold' na panelu `Selected collapse object paramteres':



Proponuj t warto (0.001) pozostawi bez zmian. Potem kilkamy na przycisku `Collapse'



Pojawi si okno `Collapse Objects Info':



W polu `Object name' wywietlana jest nazwa, któr otrzyma skolapsowany obiekt. Jest to
nazwa zarówno pliku 3da, który zostanie wygenerowany podczas kolapsowania obiektów, jak
i nazwa, któr zobaczymy w oknie atrybutów obiektów a take na licie skolapsowanych
obiektów. Oczywicie moemy tu wpisa wlasn nazw. Jeeli zaznaczymy opcj `mesh path
based on object name', nasz skolapsowany obiekt zostanie umieszczony w katalogu z mapk,
nad któr obecnie pracujemy (jest to ten katalog, z którego zostala wczytana mapka do
edytora ChromEd) a dokladniej, w katalogu z mapk zostanie utworzony podkatalog
\Meshes\ a w nim umieszczony nowy obiekt. Proponuj zaznaczy t opcj. Oczywicie
mona te obiekty zapisa w innym katalogu, ale nie jest to wskazane, najlepiej wszystko
zapisywa w obrbie katalogu z gr Chrome. Gdyby przypadkiem edytor chcial zapisa pliki
w innym katalogu ni nasza mapka, odznaczamy opcj `mesh path based on object name' i
klikamy na przycisku trzykropka obok pola `Object mesh'. Tam kierujemy si do katalogu, z
nasz mapk. Niestety, jest pewien bld w edytorze ChromEd i trzeba cal ciek wpisa
,,rcznie" (nie dziala przycisk trzykropka). Na koniec klikamy na przycisku `OK'. Tu moe
pojawi si nastpujcy komunikat:



Komunikat ten ostrzega nas, e edytor nie mógl skolapsowa obiektów, poniewa pliki maj
atrybut tylko do odczytu. Z dowiadczenia wiem, e nie chodzi tu o pliki z atrybutem tylko

183

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
do odczytu, lecz po prostu edytor nie mógl stworzy podkatalogu \Meshes\ w katalogu z
nasz mapk. Nie wiem czy to wina samego edytora ChromEd czy te mojego systemu , ale
wiem jak temu zaradzi, wic w razie, gdy ujrzycie podobny komunikat bdziecie wiedzie,
co robi. ,,Rcznie" stworzymy podkatalog \Meshes\. Kierujemy si do katalogu z nasz
mapk (w moim przykladzie jest to \Data\LevelsNet\MojaMapka\) i tam tworzymy
podkatalog \Meshes\ (\Data\LevelsNet\MojaMapka\Meshes\). Otwieramy okno kolapsowania
obiektów (o ile wczeniej je zamknlimy) i na licie skolapsowanych obiektów zaznaczamy
nazw, któr wczeniej nadalimy skolapsowanemu obiektowi:





W moim przypadku ta nazwa to ,,Beczki". Tak nazw otrzyma mój skolapsowany obiekt.
Jeeli nazwa naszego obiektu wywietlana jest w kolorze niebieskim i zakoczona dopiskiem
`-d', oznacza to, e obiekt ten nie zostal skolapsowany (lub zostal zdekolapsowany, o czym w
dalszej czci tego podrozdzialu). Klikamy na przycisku `Collapse':



Gotowe! Obiekty zostaly skolapsowane. Wszystkie dodane do kolapsowania obiekty zostaly
zastpione jednym. Taki obiekt na licie skolapsowanych obiektów wywietlany jest w
kolorze czerwonym (i ju bez przypisku `-d'):



W podkatalogu \Meshes\ z nasz mapk pojawi si dwa pliki ­ plik nowego mesh'a
(Beczki.3da) i plik grupy selekcji obiektów (taki jaki tworzy si za pomoc okna zaznaczania
i selekcji obiektów, okno to zostalo omówione w podrozdziale o zaznaczaniu i selekcji
obiektów). Taki skolapsowany obiekt mona póniej wstawia do mapki za pomoc plug-in'a
,,Mesh Browser" na dwa róne sposoby. Pierwszy to wstawienie pojedynczego obiektu 3da (z
mojego przykladu bdzie to plik Beczki.3da). Drugi sposób to wstawienie grupy selekcji
obiektów (Beczki.eds) z tym, e w taki sposób wstawimy nie jeden obiekt (skolapsowany),
lecz wszystkie obiekty wchodzce w sklad tego skolapsowanego obiektu (tak jakbymy
wyeksportowali grup selekcji obiektów). Prosz pamita te o tym, e skolapsowany obiekt
traktowany jest jak wszystkie inne obiekty.
Skolapsowane obiekty mona take dekolapsowa, czyli przywróci go do poprzedniej formy
(w miejsce jednego obiektu zostan przywrócone wszystkie obiekty, z których powstala
kolapsacja). Uwaga! W starszej wersji edytora nie mona bylo dekolapsowa obiektów! Aby
dekolapsowa obiekt naley go zaznaczy na licie skolapsowanych obiektów i klikn na
przycisku `Decollapse':


184

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Na naszej mapce z powrotem pojawi si poprzednie obiekty (tak jak to bylo przed
kolapsowaniem, nie dotyczy to jednak skolapsowanych obiektów, wstawionych do mapki za
pomoc plug-in'a ,,Mesh Browser", one pozostan bez zmian!) a na licie skolapsowanych
obiektów pojawia si znajomy zapis:



Jeeli taki obiekt jest nam niepotrzebny to moemy usun go z listy skolapsowanych
obiektów. W tym celu zaznaczamy nazw tego obiektu na licie i klikamy na przycisku
`Destroy':



Przycisk `Collapse all' sluy do kolapsowania wszystkich obiektów na raz z listy
skolapsowanych obiektów. Na koniec wana informacja. Bez rónicy na to czy nasz obiekt
zdekolapsujemy a nawet usuniemy z listy, wczeniej skolapsowany obiekt i grupa selekcji
obiektów zostanie w podkatalogu \Meshes\ w katalogu z nasz mapk!
Tak wyglda funkcjonowanie okna kolapsowania obiektów. Jeeli mog co doradzi,
to naley kolapsowa obiekty tu po zakoczeniu prac nad mapk (gdy bdziemy pewni, e
nic ju nie bdziemy zmienia w samych obiektach itp.).

5.7 Dodajemy obiekty.
Powoli zbliamy si do etapu dodawanie obiektów do naszej mapki. Aby doda
jakikolwiek obiekt do mapki jest potrzebne jakie narzdzie. Tym narzdziem jest wlanie
plug-in ,,Mesh Browser". W zasadzie jest to drugi, po plug-in'ie ,,Environment",
najwaniejszy plug-in w edytorze ChromEd. Plug-in ,,Mesh Browser" ma o wiele wiksze
zastosowanie ni tylko dodawanie obiektów. To wlanie za pomoc tego plug-in'a m.in.
przesuwamy, skalujemy i obracamy obiekty, tworzymy hierarchi obiektów czy nawet
robimy zdjcie satelitarne potrzebne do minimapy. Wikszo z tych funkcji opisalem w
rozdziale o podstawach obslugi edytora w podrozdziale o interfejsie edytora. Po prostu
wikszo z funkcji plug-in'a ,,Mesh Browser" dostpna jest bezporednio z paska
narzdziowego edytora ChromEd (nawet wtedy, gdy sam plug-in nie jest uruchomiony). Aby
uruchomi plug-in ,,Mesh Browser" klikamy na ikonie
. Jeeli ta ikona jest wcinita:



to oznacza, e plug-in jest ju uruchomiony. Okno plug-in'a znajduje si z prawej strony
edytora ChromEd:

185

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Najpierw omówi dodawanie normalnych obiektów do mapki. Piszc ,,normalne obiekty"
mam na myli obiekty, które reprezentowane s przez mesh'e (pliki 3da). S to typowe
obiekty jak budynki, pojazdy, skrzynki, beczki, AI itp. Aby doda taki obiekt trzeba najpierw
wybra typ `Normal' z listy `Type' na zakladce `Settings':



Jest to standardowo wybrany typ obiektów zaraz po uruchomieniu plug-in'u ,,Mesh
Browser". Teraz naley wybra obiekt, który chemy doda do mapki. Obiekty wybieramy z
listy obiektów. Lista ta zawiera struktur katalogów gry Chrome wraz z dostpnymi plikami
3da (s to obiekty a dokladnie mesh'e tych obiektów, jak pamitamy obiekty reprezentowane
s przez mesh'e) i eds (grupy selekcji obiektów), oczywicie pod warunkiem, e takie pliki
mieszcz si w danym podkatalogu:


186

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Wszystkie obiekty, jakie dostajemy wraz z gr Chrome i edytorem ChromEd dostpne s w
katalogu \Data\Meshes\ i pogrupowane s w odpowiednich podkatalogach (bardziej
szczególowe informacje na temat poszczególnych katalogów i podkatalogów znajdziecie w
rozdziale pierwszym). Po wybraniu obiektu, który chemy wstawi do mapki klikamy na
przycisku `Put Object':



a potem klikamy na mapce w miejscu, gdzie dany obiekt chcemy umieci. Jeeli jestemy w
trybie dodawnia obiektów to przycisk `Put Object' jest wcinity:



Jeeli chcemy wyj z tego trybu dodawania obiektów to po prostu jeszcze raz klikamy na
przycisku `Put Object'. Mona te wybra inny tryb pracy np. zaznaczania obiektów. List
obiektów mona rozwij w sposób standardowy dla Eksploratora Windows tzn. aby
rozwin jak gal drzewka trzeba klikn na malym znaku plus, aby zwin gal na
znaku minus:



Na licie obiektów mona te wybra grup selekcji obiektów (plik eds) stworzon za
pomoc okna zaznaczenia i selekcji obiektów. Z tak grup selekcji postpujemy tak samo

187

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
jak z normalnym obiektem tzn. wybieramy go z listy, klikamy na przycisku `Put Object' a
potem na mapce w miejscu, gdzie tak grup selekcji obiektów chcemy wstawi. Zamiast
przycisku `Put Object' mona uy przycisku `Put selection at original pos':



Dziki temu przyciskowi grupa selekcji obiektów zostanie umieszczona w tej samej pozycji,
na której byly obiekty wchodzce w sklad tej grupy w momencie eksportownia. Tak wyglda
podstawowa operacja wstawiania obiektów do mapki za pomoc plug-in'a ,,Mesh Browser".
Ale to nie koniec . Powrómy jeszcze do listy obiektów. Twórcy edytora ChromEd stworzyli
moliwo tworzenia zakladek na tej licie, co ulatwia wybór obiektów z listy. Dla przykladu
stworzymy zakladk dla obiektów z pojazdami (VEHICLES). Najpierw na licie zaznaczamy
podkatalog \VEHICLES\ a potem klikamy na nim prawym przyciskiem myszki i wybieramy
polecenie Add tab:



Otworzy si okno `Add new tab':



W polu `Tab name' wpisujemy nazw zakladki. Mona pozostawi t zaproponown przez
edytor. W górnej czci okna mona odczyta ciek dostpu do katalogu, z którego
tworzona jest zakladka. Na koniec klikamy na przycisku `OK'. W ten sposób zostanie
stworzona nowa zakladka:



Tak zakladk mona te usun. Wystarczy klikn prawym przyciskiem myszki na nazwie
zakladki i wybra polecenie Remove:



188


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

Pod list obiektów, na panelu `Last used meshes' znajduje si jeszcze jedna lista:



Jest to lista ostatnio uywanych obiektów (mesh'ów). Kady wstawiony obiekt lub grupa
selekcji obiektów do mapki, automatycznie umieszczany jest na tej licie. Bez rónicy ile
razy dany obiekt zostanie dodany do naszej mapki, na licie ostatnio uywanych obiektów
pojawi si tylko raz. W ten sposób, gdy czsto wstawiamy do mapki te same obiekty, zamiast
za kadym razem wyszukiwa je z listy obiektów, mona je wybra z listy ostatnio
uywanych obiektów. Plug-in ,,Mesh Browser" daje nam moliwo wstawiania obiektów na
kilka sposobów. Zanim wstawimy obiekt do mapki, moemy wybra, w jaki sposób ten
obiekt zostanie dodany. Sposób wstawiania obiektu do mapki ustalamy za pomoc zakladki
`Drop':



- opcja `place in front of observer' pozwala umieci obiekt tu przed kamer obserwatora:



- opcja `drop to terrain' to standardowy sposób dodawnia obiektów do mapki tzn. obiekt
umieszczany jest na terenie mapki w miejscu kliknicia myszk,


189



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


- opcja `drop to objects' pozwala stawia jeden obiekt na drugim, z listy obiektów wybieramy
obiekt, który chcemy postawi na drugim, potem klikamy na przycisku `Put Object' a na
koniec klikamy na obiekcie, na którym bdzie wstawiony wybrany obiekt,



- opcja `drop with constraints' pozwala dodawa obiekty na jakiej plaszczynie, linii lub w
konkretnym punkcie, po wybraniu tej opcji aktywny staje si panel `Drop constraints':



Dla przykladu, aby dodawa obiekty w plaszczynie Y, zaznaczamy o Y a w polu obok
wpisujemy wysoko, na jakiej obiekty maj by umieszczane (100 jednostek = 1m
fizyczny):


190



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


potem kilkamy na przycisku `Put Object' a póniej klikamy na mapce w miejscu, gdzie
chcemy, aby obiekt byl umieszczony. W ten sposób dodawane obiekty zawsze bd
umieszczane na tej samej wysokoci:



Jeeli chcemy dodawa obiekty w jednej linii, zaznaczamy osie np. X i Y, w polach obok
wpisujemy odpowiednie wartoci:



potem klikamy na przycisku `Put Object' i póniej klikamy na mapce w miejscu, gdzie
chcemy, aby obiekt zostal umieszczony. W ten sposób dodawane obiekty zawsze bd
umieszczane w jeden linii:



Jeeli chcemy umieci obiekt w konkretnym punkcie, zaznaczamy osie X, Y i Z, wpisujemy
odpowiednie wartoci w polach obok:


191


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


potem klikamy na przycisku `Put Object', a potem klikamy gdzie chcemy na mapce. W ten
sposób obiekt zostanie umieszczony w odpowiednim miejscu. Jeeli chcemy standardowo
dodawa obiekty do mapki to po prostu wybieramy opcj `drop to terrain'. Za pomoc
zakladki `Rand Rotate' moemy dodawa obiekty do mapki od razu obrócone o losowo
wybrany kt wokól wybranych osi:



Standardowo w kadym polu dla kadej osi, znajduje si warto 0, co oznacza, e obiekt
bdzie wstawiany bez obortu. W polu `Min' wpisujemy minimalny kt, o jaki zostanie
obrócony obiekt a w polu `Max' maksymalny kt, o jaki zostanie obrócony obiekt. Wartoci
wpisujemy dla osi, wokól których chcemy, aby obiekt byl obrócony. Dla przykladu, chcemy
na naszej mapce umieci klika kamieni, ale nie chcemy, aby te kamienie zawsze byly
obrócone w ten sam sposób. Obrotu dokonamy wokól osi Y, wic w polu `Min' dla osi Y
pozostawiamy warto 0 (to bdzie minimalny kt obrotu) a w polu `Max' dla osi Y
wpisujemy 180 (to bdzie maksymalny kt obrotu):



Od tego momentu, za kadym razem, gdy bdziemy do mapki dodawa jaki obiekt, bdzie
on obracany wokól osi Y o losowo wybrany kt z przedzialu 0 - 180 stopni:



192


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

Jeeli chcemy dodawa obiekty do mapki bez adnego losowego obrotu, wystarczy we
wszystkich polach wpisa 0. Pozostala jeszcze jedna zakladka tj. `Rand Scale':



Za pomoc tej zakladki moemy dodawa obiekty do mapki od razu przeskalowane o podan
warto wokól wybranych osi. Standardowo w kadym polu dla kadej osi, znajduje si
warto 1, co oznacza, e obiekt bdzie wstawiany bez przeskalowania. W polu `Min'
wpisujemy minimaln warto przeskalowania natomiast w polu `Max' maksymaln warto
przeskalowania. Wartoci wpisujemy dla osi, wokól których chcemy, aby obiekt zostal
przeskalowany. Zaznaczenie opcji `all the same (as X)' pozwoli przeskalowa obiekt we
wszystkich osiach jednoczenie biorc pod uwag wartoci z pól dla osi X:



Przeskalowanie dziala na takiej samej zasadzie jak przeskalowanie opisane w rozdziale o
przyrodzie:



Jeeli chcemy doda obiekty do mapki bez adnego przeskalowania, wystarczy we
wszystkich polach wpisa 1. Na koniec powracamy jeszcze do zakladki `Settings':


193


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Jak ju wczeniej napisalem za pomoc listy `Type' wybieramy jaki typ obiektu bdziemy
dodwa do mapki. Za pomoc pola `Class' moemy odczyta, jaka klasa przypisana jest do
danego obiektu. Moemy te zmieni t klas klikajc na przycisku trzykropka obok pola
`Class' i wybierajc odpowiedni klas za pomoc okna `Chose class'. Za pomoc pola
`Mesh' moemy odczyta nazw pliku mesh'a (plika 3da) obiektu (jak pamitacie obiekty
reprezentowane s przez mesh'e) a take ciek dostpu do tego pliku. Wracajc jeszcze do
listy typów obiektów. Dostpne s nastpujce typy, dodatkowo podaj nazw klasy
przypisanej do obiektu danego typu:
- `Normal' ­ normalny tyb obiektu, reprezentowany przez mesh, s to wszystkie obiekty,
które widzimy w grze i w edytorze (budynki, pojazdy, beczki, skrzynki, bro, amunicja, AI
itd.), obiekt tego typu standardowo przypisan ma klas MeshObject,
- `AIGroup' ­ typ obiektu, który pozwala na wykonywanie akcji na kilku obiektach AI na raz
zamiast na kadym z osobna, obiekt tego typu standardowo przypisan ma klas AIGroup i
jest niewidoczny w grze Chrome, natomiast w edytorze reprezentuje go helper (obiekt
pomocniczy):



- `ActionChain' ­ typ obiektu, który pozwala na zapisanie cigu akcji poza miejscem
wykorzystania, obiekt tego typu standardowo przypisan ma klas ActionChain i jest
niewidoczny w grze Chrome a take w edytorze ChromEd a jednym sposobem dostpu do
tego obiektu po dodaniu go do mapki jest okno zaznaczania i selekcji obiektów,
- `Alarm' ­ tyb obiektu, który ustawia alarmy, obiekt tego typu standardowo przypisan ma
klas Alarm i jest niewidoczny w grze Chrome a take w edytorze ChromEd a jednym
sposobem dostpu do tego obiektu po dodaniu go do mapki jest okno zaznaczania i selekcji
obiektów,
- `Dialog' ­ tyb obiektu, która pozwala tworzy dialogi, obiekt tego typu standardowo
przypisan ma klas Dialog i jest niewidoczny w grze Chrome a take w edytorze ChromEd
a jednym sposobem dostpu do tego obiektu po dodaniu go do mapki jest okno zaznaczania
i selekcji obiektów,
- `DynamicLight' ­ typ obiektu, który pozwala dodawa dynamiczne owietlenie do mapki,
obiekt tego typu standardowo przypisan ma klas LightObject i jest niewidoczny w grze
Chrome, natomiast w edytorze reprezentuje go helper:


194





wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


- `FXEmitter' ­ typ obiektu, który pozwala tworzy rónego rodzaju efekty specjalne np.
wybuchy, obiekt tego typu standardowo przypisan ma klas FXEmitter i jest niewidoczny
w grze Chrome, natomiast w edytorze reprezentuje go helper:



- `FightPoint' ­ typ obiektu, który pozwala tworzy punkty walki, s to po prostu punkty, w
których AI bdzie strzelalo, obiekt tego typu standardowo przypisan ma klas FightPoint i
jest niewidoczny w grze Chrome, natomiast w edytorze reprezentuje go helper:



- `ForceField' ­ typ obiektu, który pozwala tworzy zbiór plotów (ForceFieldFence), które
zabijaj po wejciu w nie, pozwala grupowa ploty, aby mona bylo je calociowo lub
czciowo wlcza i wylcza, obiekt tego typu standardowo przypisan ma klas
ForceField i jest niewidoczny w grze Chrome a take w edytorze ChromEd a jednym
sposobem dostpu do tego obiektu po dodaniu go do mapki jest okno zaznaczania i selekcji
obiektów,
- `Light' ­ typ obiektu, który pozwala dodawa standardowe wiatlo do mapki, obiekt tego
typu standardowo przypisan ma klas LightEditorObject i jest niewidoczny w grze
Chrome, natomiast w edytorze reprezentuje go helper:



- `Location' ­ typ obiektu, który pozwala zaznacza lokacj na mapce, lokacja taka
zaznaczona jest na minimapie za pomoc liczby, obiekt tego typu standardowo przypisan
ma klas Location i jest niewidoczny w grze Chrome, natomiast w edytorze reprezentuje go
helper:


195




wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


- `Marker' ­ typ obiektu, który pozwala zaznaczy na mapce miejsce wykonania akcji, obiekt
tego typu standardowo przypisan ma klas Marker i jest niewidoczny w grze Chrome,
natomiast w edytorze reprezentuje go helper:



- `Movie' ­ typ obiektu, który powoduje uruchomienie filmiku a dokladniej pozwala ustali
parametry w wyniku których nastpi uruchomienie filmiku, obiekt tego typu standardowo
przypisan ma klas Movie i jest niewidoczny w grze Chrome a take w edytorze ChromEd
a jednym sposobem dostpu do tego obiektu po dodaniu go do mapki jest okno zaznaczania
i selekcji obiektów,
- `Music' ­ typ obiektu, który pozwala doda muzyk do mapki, obiekt tego typu
standardowo przypisan ma klas Music i jest niewidoczny w grze Chrome a take w
edytorze ChromEd a jednym sposobem dostpu do tego obiektu po dodaniu go do mapki
jest okno zaznaczania i selekcji obiektów,
- `Objective' ­ typ obiektu, który pozwala doda cel misji (cele misji wywietlane obok
minimapy), obiekt tego typu standardowo przypisan ma klas Objective i jest niewidoczny
w grze Chrome a take w edytorze ChromEd a jednym sposobem dostpu do tego obiektu
po dodaniu go do mapki jest okno zaznaczania i selekcji obiektów,
- `SecuritySystem' ­ typ obiektu, który pozwala zaznacza obiekty do ochrony, obiekt tego
typu standardowo przypisan ma klas SecuritySystem i jest niewidoczny w grze Chrome a
take w edytorze ChromEd a jednym sposobem dostpu do tego obiektu po dodaniu go do
mapki jest okno zaznaczania i selekcji obiektów,
- `Sensor' ­ typ obiektu, który reaguje na wejcie danego obiektu w jego obszar, generuje
akcje wejcia i wyjcia, obiekt tego typu standardowo przypisan ma klas Sensor i jest
niewidoczny w grze Chrome, natomiast w edytorze reprezentuje go helper:



Jeeli chcemy, aby obiekt tego typu obejmowal wikszy obszar wystarczy go przeskalowa.
Jeeli wybierzecie obiekt `Sensor' z listy typów a przycisk `Put Object' bdzie nieaktywny

196


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
to przypiszcie temu obiektowi klas sensor_Track, w tym celu klikamy na przycisku
trzykropka obok pola `Class' i za pomoc okna `Chose class' przypisujemy odpowiedni
klas (Sensor -> sensor_Track):



- `SubObjective' ­ typ obiektu, który pozwala doda dodatkowy cel misji nalecy do innego
celu misji, obiekt tego typu standardowo przypisan ma klas SubObjective i jest
niewidoczny w grze Chrome a take w edytorze ChromEd a jednym sposobem dostpu do
tego obiektu po dodaniu go do mapki jest okno zaznaczania i selekcji obiektów,
- `Trigger' ­ typ obiektu, który wyzwala inne zdarzenie ustalonym warunkiem, obiekt tego
typu standardowo przypisan ma klas Trigger i jest niewidoczny w grze Chrome a take w
edytorze ChromEd a jednym sposobem dostpu do tego obiektu po dodaniu go do mapki
jest okno zaznaczania i selekcji obiektów,
- `Waypoint' ­ typ obiektu, który pozwala tworzy cieki patrolowe dla AI i kamer itp.,
obiekt tego typu standardowo przypisan ma klas Waypoint jest niewidoczny w grze
Chrome, natomiast w edytorze reprezentuje go helper:



I to ju wszystkie typy obiektów. Wikszo z nich wykorzystuje si na mapkach dla gry
singleplayer, dlatego bardziej szczególowe informacje na temat wykorzystania obiektów
rónego typu znajdziecie w rozdziale o aspektach gry singleplayer. Dodam tylko, e majc
dostp do tych wszystkich typów obiektów mona stworzy doslownie wszystko, co tylko
dusza zapragnie . W nastpnym podrozdziele opisz jak tworzy budynki, wntrza tych
budynków itp. Wykorzystamy do tego celu plug-in ,,Mesh Browser", ale nie tylko,
wykorzystamy take inne dostpne narzdzia.

5.8 Budynki.
Przez nastpne kilka podrozdzialów zajmiemy si budynkami. Na wstpie napisz jak
zbudowane s budynki w grze Chrome. Kady budynek sklada si z kilkudziesiciu
obiektów. Obiekty te zasadniczo mona podzieli na dwie grupy. Pierwsza grupa to szkielet
samego budynku a dokladnie obiekt, który przedstawia wygld zewntrzny budynku a druga
grupa obiektów to wszystkie obiekty znajdujce si wewntrz budynku, czyli ciany, drzwi,
podlogi, sufit, windy itd. Do przedstawienia sposobu skladania budynków wykorzystam
budynkek posterunku (obiekt Posterunek.3da, obiekt ten znajduje si w katalogu
\Data\Meshes\Constructions\) a to z tego wzgldu, i budynek ten jest budynkiem kilku
pitrowym, co pozwoli nam wykorzysta w nim wind, a take posiada okna, co pozwoli

197

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
pokaza sposób dodawnia okien do budynków. W tym podrozdziale zloymy tylko parter
budynku posterunku, tak abycie nauczyli si zasad skladania budynków. W kolejnych
podrozdzialach dodamy do tego budynku drzwi, wspomian wczeniej wind, okna itp.
Potem uzupelnimy nasz budynek o inne obiekty, takie jak stoly, krzesla, skrzynki, komputery
itp. Na koniec dodamy wiatlo a take wygenerujemy lightmap'. Oczywicie do skladania
budynków wykorzystamy poznane wczeniej narzdzie takie jak plug-in ,,Mesh Browser",
snapowanie (przyciganie obiektów), rzutowanie obiektów itp., wic gdybycie nie wiedzieli
jak danego narzdzia uywa, to zawsze moecie si cofn do wczeniejszych rozdzialów i
sobie przypomnie. Zaczynamy. Aby bylo nam latwiej, na razie wylczymy wywietlanie
trawy i drzew. Otwieramy okno opcji wywietlania (renderowania) i odznaczamy opcj
`Render' na panelu `Trees' (drzewa) i `Grass' (trawa):



Potem klikamy na przycisku `OK'. Drzewa i trawa na naszej mapce nie bd ju wywietlane
(ale tylko w edytorze ChromEd, w trybie gry bd nadal wywietlane). Zmieniamy te tryb
pracy osi na lokalny (`Local') wybierajc odpowiedni opcj na pasku narzdziowym edytora
ChromEd:



Teraz, za pomoc plug-in'a ,,Mesh Browser" dodajemy do naszej mapki obiekt
Posterunek.3da. Wszystkie obiekty budynków znajduj si w katalogu
\Data\Meshes\Constructions\ natomiast obiekty cian, podlóg, sufitów itp. w katalogu
\Data\Meshes\Constrctions\Wall\ (o zawartoci poszczególnych katalogów katalogów
podkatalogów moecie przeczyta w rozdziale pierwszym tego dokumentu). Po dodaniu
budynku to mapki, kliknijcie na ikonie ,,rzucania" obiektu na teren, aby mie pewno, e
budynek bdzie przylegal do terenu mapki. Nasza mapka jest troch mala, aby umieszcza na
niej budynki, ale dla tego przykladu wystarczy. Pamitajcie tylko, aby Wasze mapki byly
due, jeeli zamierzacie na nich dodawa budynki. Pozwoli to unikn ciasnoty na mapkach.
Wracamy do skladnia budynku. Jeeli zajdzie taka potrzeba, moecie budynek posterunku
obróci. Przy skladaniu budynków zawsze wykorzystuje si obrót o skoku 90 stopni.
Najlepiej do obracania budynków a take innych obiektów skladowych budynków,
wykorzysta okno atrybutów obiektów. Wic klikamy dwukrotnie na budynku posterunku
(tego na mapce), w oknie atrybutów obiektów przechodzimy na zakladk `Matrix'.
Wpisujemy warto 90 w polu `Spiners steps' (warto standardowa) dla obrotu (`Rotation')
a potem obracamy obiekt wokól osi Y klikajc na malej strzaleczce skierowanej w dól lub w
gór:


198


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W ten sposób obracamy nasz budynek ze skokiem o 90 stopni. Ja mój budynek umiecilem w
ten sposób:



Nie przejmujcie si tym, e cze budynku wbija si w teren mapki. Teraz przyjrzyjcie si
temu budynkowi. Moecie to zrobi w trybie gry klikajc na ikon z literami `Go'. W trybie
gry zauwaycie, e drzewa i trawa znajduj si wewntrz budynku, dlatego za pomoc
plug-in'a ,,Forest" usuncie traw i drzewa z budynku (jak to zrobi przeczytacie w rozdziale o
przyrodzie). Zwrócie uwag, e z zewntrz wida budynek, ale jak do niego wejdziecie to
jest jakby przezroczysty i w zasadzie go nie wida. Dziej si tak, bo wewntrz budynku nie
ma cian, podlóg, sufitu itd. Zaraz to wszystko dodamy. Przede wszystkim musimy wlczy
wywietlanie haków (ang. hook's). Haki s to elementy lczenia obiektów. Jeeli mamy
wlczone snapowanie (przyciganie) to w momencie, gdy hak jednego obiektu zbliy si do
haka drugiego obiektu, nastpi automatycznie przycignicie obu obiektów. Dziki temu
mamy pewno, e obiekty bd równo przylega do siebie w odpowiednich miejscach. Aby
wlczy wywietlanie haków ponownie otwieramy okno opcji wywietlania i na panelu
`Misc' zaznaczamy opcj `Control: Render hooks':




199



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Klikamy na przycisku `OK'. W ten sposób na zaznaczonych obiektach pojawi si haki (nie
wszystkie obiekty maj haki!). Na naszym budynku te pojawi si haki (aby haki byly
widoczne, dany obiekt musi by zaznaczony):



Te ólte elementy to wlanie haki. W przypadku budynków s to przewanie miejsca, gdzie
znajduj si wejcia. Teraz, wewntrz budynku dodamy ciany. Poniewa na razie nie
bdziemy do naszego budynku dodawa drzwi, musimy w ich miejsce wstawi przepierzenie
bez drzwi. W pobliu wejcia do budynku posterunku (parter) dodajcie obiekt
PrzepierzenieE.3da:



Teraz, za pomoc Gizma, obiekt ten przesuwamy tak, aby znalazl si wewntrz budynku,
zaraz za wejciem do niego. Jeeli zajdzie potrzeba, to obrócie ten obiekt o odpowiedni kt.
Za nim przesuniemy obiekt, wlczymy snapowanie (przyciganie jednego obiektu do
drugiego). Bardzo nam to ulatwi prac, bo jak wczeniej napisalem, przy zblianiu si haków
dwóch obiektów, nastpi automatyczne przycignicie tych obiektów. Klikamy na ikonie

200



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
snapowania. W oknie `Snap properties' pozostawiamy warto pola `Connection distance'
bez zmian (standardowa warto 50):



Klikamy na przycisku `OK'. Teraz za pomoc Gizma przesuwamy obiekt PrzepierzenieE.3da
za wejcie do budynku posterunku. Musicie tak kierowa Gizmem, aby obiekt
PrzepierzenieE.3da sam, automatycznie ,,wskoczyl na swoje miejsce" tzn. znalazl si za
zewntrzn cian budynku, zaraz za wejciem do niego. Powinno to wyglda tak:



W porzdku. Teraz niedaleko wejcia do budynku dodajcie obiekt ScianaWejscieA.3da:




201



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Ten obiekt posiada ju wicej haków, które m.in. pozwalaj dolcza kolejne obiekty cian
do siebie. Zwrócie uwag na dól obiektu ScianaWejscieA.3da. Jest to fragment podlogi,
wic ta cze obiektu musi znale si wewntrz budynku. Musimy wic ten obiekt obróci o
180 stopni. Zróbcie to za pomoc okna atrybutów obiektów. I znowu, za pomoc Gizma
przesuwamy obiekt ScianaWejscieA.3da tak, aby znalazl si za obiektem PrzepierzenieE.3da.
Zwrócie te uwag na to, aby obiekt ScianaWejscieA.3da zostal przycignity za obiektem
PrzepierzenieE.3da! To wane, bo obiekt ScianaWejscieA.3da moe znale si w tym
samym miejscu co obiekt PrzepierzenieE.3da a to ju bdzie bld! Calo musi wyglda tak:





Na pierwszym rysunku widok z zewntrz budynku a na drugim widok z wntrza budynku.
Budynek posterunku jest bardzo duym budynkiem szczególnie, jeeli idzie o parter, i mona
go podzieli na kilka pomieszcze (oczywicie nic nie stoi na przeszkodzie, aby zrobi jedno
wielkie pomieszczenie). Na razie zrobimy tylko jedno pomieszczenie. Teraz przenosimy si
do wntrza budynku. Gdy ju jestemy wewntrz budynku, z lewej strony obiektu
ScianaWejscieA.3da dodajemy obiekt ScianaZakretMaly.3da, w razie potrzeby obrócie go
za pomoc okna atrybutów obiektów):

202



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Z lewej strony obiektu ScianaZakretMaly.3da dodajemy obiekt Sciana.3da:



Dodamy jeszcze dwa takie obiekty w tej czci pomieszczenia. Jednak tym razem posluymy
si tylko Gizmem. Zaznaczamy obiekt Sciana.3da, który znajduje si ju na naszej
mapce.Teraz, trzymajc wcinity klawisz SHIFT, przesuwamy w lewo obiekt Sciana.3da. W
pewnym momencie zauwaycie, z nie przesuwacie obiektu, który wczeniej zaznaczylicie,
lecz jego kopi (wlanie za pomoc klawisza SHIFT robimy kopi obiektów). Jak tylko
zauwaycie, e skopiowany obiekt znalazl si na swoim miejscu (nastapi przycignicie
jednego obiektu do drugiegu), pucie klawisz myszki oraz klawisz SHIFT. Pojawi si okno
`Make Copy'. W polu `Number' na panelu `Copy' wpisujemy 2:



Oznacza to, e chcemy zrobi dwie kopie tego obiektu (pamitajcie o tym, e obiekt, który
pojawil si podczas przesuwania z przytrzymanym klawiszem SHIFT, to pierwsza kopia

203




wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
obiektu). Klikamy na przycisku `OK'. W ten sposób zostan zrobione dwie kopie obiektu
Sciana.3da. Kopie te zostan automatycznie ustawione jeden obok drugiego w odlegloci, o
jak zostal przesunity skopiowany obiekt, czyli jeeli wszystko dobrze zrobilicie, obiekty
powinny by polczone ze sob za pomoc haków:



Na koniec dodajemy obiekt ScianaZakretMaly.3da. W ten sposób stworzylimy jedn cal
cian. Wracamy do wejcia. Z prawej strony obiektu ScianaWejscieA.3da take dodajemy
obiekt Sciana.3da:



Zróbcie jeszcze cztery kopie tego obiektu za pomoc Gizma. W razie potrzeby przesuncie te
obiekty w odpowiednie miejscay. W ten sposób stworzymy kolejn cian. Na koniec tej
ciany dodajemy obiekt ScianaZakretMaly.3da. Pamitajcie o tym, aby w razie potrzeby
obraca obiekty o odpowiedni kt. No i prosz, kolejna ciana zrobiona:



Pozostaly nam jeszcze dwie ciany, ale te zrobicie ju sami. Wykorzystajcie moliwo
kopiowania obiektów za pomoc Gizma. Nie zapomnijcie te na kocach cian doda obiekt
ScianaZakretMaly.3da. Pomieszczenie, nad którym obecnie pracujemy powinno wyglda
tak:


204



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W porzdku. Teraz dodamy podlog. Zaczniemy moe od wejcia, wic przesuwamy kamer
obserwatora w pobliu miejsca wejcia do budynku. Dodajemy obiekt
PodlogaKwadratowaBeton.3da:



Obiekt ten musi zosta przycignity do fragmentów podlogi ze cian, tak jak na powyszym
rysunku. Dalej bdzie ju do latwo. Zróbcie kopi tego obiektu na calej podlodze
wykorzystujc do tego celu Gizmo i funkcj kopiowania. W bardzo krótkim czasie
powinnicie stworzy co takiego:


205



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Pozostal nam jeszcze sufit i w zasadzie pomieszczenie bdzie gotowe. Zaczniemy te w
miejscu wejcia do budynku. Jak ju wiecie obiekt ciany ma dolczony fragment podlogi,
natomiast nie ma fragmentu sufitu, który w tej chwili jest potrzebny. Nad wejciem do
budynku posterunku dodajemy obiekt Sufit.3da:



Z lewej strony obiektu Sufit.3da dodajemy obiekt SufitZakretMaly.3da:


206



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Teraz obiekty Sufit.3da i SufitZakretMaly.3da dodajemy wokól calego pomieszczenia.
Myl, e z tym sobie ju poradzicie . Jak zwykle wykorzystajcie Gizmo i funkcj
kopiowania. Efekt kocowy powinien by taki:



Pozostaje wypelni jeszcze caly sufit. Zaczynamy w pobliu wejcia do budynku. Dodajemy
obiekt SufitKwadratowy.3da:


207



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Przy pomocy Gizma i funkcji kopiowania dodajcie ten obiekt wszerz pomieszczenia:



Nasze pomieszczenie musi by owietlone. Owietlenie dodamy w jednym z kolejnch
podrozdzialów dodajc obiekty wiatla. Jednak co to wiatlo musi emitowa. Wic do sufitu
dodamy obiekty, które imituj wiatlo (te obiekty nie bd wieci, one bd tylko udawa
wiatlo). Dodajmy obiekt SufitKwadratowyJarzeniowaOn.3da, który posiada zapalone
jarzeniówki:


208



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Aby jarzeniówki na suficie nie byly rozmieszczone zbyt gsto, dodajemy ponownie obiekt
SufitKwadratowy.3da. Dodatkowo moecie umieci obiekt
SufitKwadratowyJarzeniowaOff.3da, który posiada zagaszone jarzeniówki:



Teraz do koca tego rzdu dodajcie te obiekty na przemian ­ raz sufit zwykly raz z
jarzeniówkami:


209



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Teraz zlócie caly sufit dodajc na przemian caly rzd obiektów SufitKwadratowy.3da oraz
rzd z jarzeniówkami. Jak ju to zrobicie, powinnicie uzyska podbny efekt:



No i prosz bardzo! Stworzylimy pierwsze pomieszczenie! Co prawda nie ma jeszcze w nim
,,prawdziwego" wiatla no i jest troch pusto, ale co jednak jest! Myl, e nie bylo tak
trudno i sdz, e szybko mona opanowa technik skladania budynków! Uruchomcie tryb
gry i sprawdcie jak wyglda Wasze pomieszcznie . Powinnicie zwróci uwag na dwa
efekty. Pierwszy, to pewien problem z wchodzeniem do pomieszczenia a to z tego wzgldu,
e nie stworzylimy jeszcze dla tego pomieszczenia portalu. Zrobimy to w jednym z
kolejnych podrozdzialów. Na razie musicie si do tego przyzwyczai. Drugi efekt, to mgla
wewntrz pomieszczenia. To naprawimy do szybko. Uruchamiamy plug-in ,,Environment",
przechodzimy na zakladk `Fog' i zmieniamy typ mgly z `EXPOTENTIAL' na
`EXPOTENTIAL2'. Zmiany dokonujemy wybierajc odpowiedni typ z listy `Fog type':


210


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Klikamy na przycisku `Apply', aby potwierdzi zmiany. Moemy ju zamkn plug-in
,,Environment". Mgla zniknie. Teraz spróbujcie doda dodatkowe pomieszczenie. Parter
budynku posterunku jest bardzo rozlegly a my wykorzystalimy chyba tylko z ¼ jego
powierzchni. Moje drugie pomieszczenie wyglda tak:



Podpowiem tylko, e musicie usun obiekt Sciana.3da w cianie, gdzie ma by wejcie do
innego pomieszczenia, a w jego miejsce wstawi obiekt ScianaWejscieA.3da. Za tym
obiektem dodajemy obiekt PrzepierzenieE.3da a za nim ponownie obiekt
ScianaWejscieA.3da, ale odwrócony o 180 stopni:


211


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Potem pozostaje ju tylko w drugim pomieszczeniu doda ciany, podlog i sufit. Na
pocztku takie skladanie budynków moe okaza si czasochlonne. Przejrzyjcie sobie
wszystkie obiekty z katalogu \Data\Meshes\Constructions\Walls\. Znajdziecie tam sporo
rónych obiektów cian, podlóg i sufitów. Wykorzystajcie je do swoich budynków na
Waszych mapkach. Zwrócie te uwag, e niektóre obiekty s dwa razy wiksze. Uywajc
ich zostanie dolczonych mniej obiektów do budynku. Pamitajcie, e wicej obiektów
wywietla si (renderuje) o wiele dluej, wicej informacji na ten temat moecie przeczyta
w podrozdziale o kolapsowaniu obiektów.. Ze wzgldu na to, e w naszym pomieszczeniu
bdzie winda, wykorzystalem te mniejsze obiekty, co pozwoli póniej na uniknicie duych
modyfikacji sufitu i podlogi, jednak w pomieszczeniach gdzie takiej windy nie bdzie,
moecie stosowa wiksze obiekty. Podobnie jest z podlog. W zasadzie na tym etapie
skladania budynków, mona w naszych pomieszczeniach doda kilka stolów a to z tego
wzgldu, e póniej bdziemy kolapsowa cale pomieszczenia, a obiekt stolu mona zaliczy
do podlogi. W tym celu dodajemy obiekt Stol.3da (obiekt ten znajduje si w katalogu
\Data\Meshes\Constructions\Walls\), ale najpierw trzeba usun element podlogi a dopiero w
to miejsce doda obiekt Stol.3da:


212



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Co prawda podstawa obiektu Stol.3da nie za bardzo pasuje do naszej podlogi (bo ma
metalow podstaw a nasza podloga jest betonowa), ale zaraz temu zaradzimy. Usuwamy
obiekty z podlogi wokól obiektu Stol.3da:



Teraz z kadej strony dodajemy obiekt PodlogaPas.3da (obiekt ten znajduje si w katalogu
\Data\Meshes\Constructions\Walls\). W razie potrzeby obrócie go tak, aby cz metalowa
byla skierowana w stron obiektu Stol.3da:


213



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W miejsca, które jeszcze pozostaly dodajemy obiekt PodlogaPasZakret.3da (ten obiekt take
znajduje si w katalogu \Data\Meshes\Constructions\Walls\), w razie potrzeby obracajc go
(przypominam, e najlepiej obiekt obróci za pomoc okna atrybutów obiektów ze skokiem o
90 stopni). W ten sposób stworzymy wokól obiektu Stol.3da metalow podlog:



Teraz dodajcie stoly we wszystkich pomieszczeniach na kadym pitrze. Pamitajcie, e
latwiej jest doda obiekt w pobliu miejsca przeznaczenia ­ stawiajc jeden obiekt na drugim.
W tym celu naley zaznaczy opcj `drop to objects' na zakladce `Drop' w plug-in'ie ,,Mesh
Browser":




214


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Jak ju dodacie obiekt to potem go przesuncie w odpowiednie miejsce za pomoc Gizma.
Wane jest te, aby bylo wlczone snapowanie (przyciganie).

5.9 Wstawiamy drzwi.
Ta cz skladania budynku bdzie do prosta. Dodamy tylko drzwi. Przede wszystkim
usuwamy obiekty PrzepierzenieE.3da z wszystkich wej, zarówno do samego budynku, jak i
do innych pomieszcze. Oczywicie to tylko przyklad, jak kto chce pozostawi wejcia do
pomieszcze czy budynku bez drzwi, to nie musi nic usuwa. Po usuniciu obiektu
PrzepierzenieE.3da pozostanie wolna przestrze:



Za pomoc plug-in'a ,,Mesh Browser" dodajemy obiekt PrzepierzenieF.3da i za pomoc
Gizma przesuwamy go w odpowiednie miejsce (w razie potrzeby obrócie ten obiekt za
pomoc okna atrybutów obiektów, ze skokiem o 90 stopni):


215



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Obiekt ten zostanie automatycznie przycignity przy pomocy haków. Zwrócie tylko uwag,
aby jeden obiekt nie wchodzil na drugi (moe si tak zdarzy, jeeli obiekt zostanie
przycignity przez nieodpowiedni hak). Wewntrz budynku take musimy doda obiekt
PrzepierzenieF.3da:






216


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
W ten sposób oba obiekty PrzepierzenieF.3da stworz jedn calo (wejcie). Pamitajcie,
aby zawsze dodawa obiekt PrzepierzenieF z dwóch stron pomieszcze tak, aby one tworzyly
jedn calo. Teraz pomidzy obiekty PrzepierzenieF.3da dodajemy obiekt Drzwi.3da (obiekt
ten znajduje si w katalogu \Data\Meshes\Constructions\Walls):



Pomimo, e obiekt Drzwi.3da nie ma haków, to i tak bdzie przycigany do innych obiektów.
Wewntrz budynku nie musimy ju dodawa obiektu Drzwi.3da, poniewa jest to obiekt
dwustronny. No i mamy drzwi . Pamitajcie o tym, aby obiekty z drzwiami mialy przypisan
klas DoorsObject (MeshObject -> DoorsObject). Obiekt PrzepierzenieF.3da w górnej czci
ma miejsce, w które musimy doda jaki ekran informacyjny. Moe to by ekran informujcy
np. o przeznaczeniu danego pomieszczenia. Za pomoc plug-in'a ,,Mesh Browser" dodajemy
obiekt 100x50SectorA.3da (obiekt ten znajduje si w katalogu \Data\Meshes\Inside\Screens\)
i za pomoc Gizma przesuwamy go w odpowiednie miejsce:


217



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Jeeli zajdzie taka potrzeba, to za pomoc okna atrybutów obiektów obrócie ten obiekt o
odpowiedni kt. Jeeli dodajemy obiekt, który w zasadzie ley na drugim obiekcie, mona
sobie ulatwi prac wybierajc opcj `drop to objects' na zakladce `Drop' plug-in'a ,,Mesh
Browser":



Potem z listy wybieramy obiekt, który chcemy doda do drugiego obiektu
(100x50SectorA.3da) i klikamy na obiekcie, na którym ten obiekt ma si znale
(PrzepierzenieF.3da). W ten sposób, bdzie latwiej przesun obiekt w odpowiednie miejsce.
Do drugiego obiektu PrzepierzenieF.3da, wewntrz budynku, take musi doda jaki ekran.
Proponuj doda obiekt 100x50Exit.3da:



218


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

Pamitajcie, aby doda takie ekrany do wszystkich obiektów PrzepierzenieF.3da. I w ten
sposób nasz budynek zostal rozbudowany o funkcjonalne drzwi. Proste? Na pewno tak .
Uruchomcie mapk w trybie gry i wejdcie do budynku. W momencie, gdy zbliycie si do
drzwi, one automatycznie si otworz. Jednym slowiem dziala! Jeeli kto chce, to moe
pokusi si o zrobienie drzwi, które bd si otwiera dopiero po ich odblokowaniu za
pomoc terminala. Jak co takiego zrobi, moecie przeczyta w rozdziale o tworzeniu
zdarze w edytorze ChromEd. Proponuj jednak najpierw przeczyta do koca ten rozdzial,
bo ulatwi to korzystanie z rozdzialu o tworzeniu zdarze w edytorze ChromEd. Zauwacie, e
nadal pojawia si dziwny efekt przy próbie wejcia do budynku czy do innego pomieszczenia
w tym budynku. Jest to spowodowane brakiem portali w pomieszczeniach. Otwórzcie okno
atrybutów obiektu Drzwi.3da. Jak lato zauway ten obiekt ma dodatkow zakladk
`Indoors', przy pomocy której w jednym z kolejnych podrozdzialów stworzymy portale.
Przejrzyjcie te sobie zawarto katalogu \Data\Meshes\Inside\Sceens\. Tam znajdziecie
bardzo duo ekranów, które nie tylko moecie umieszcza nad drzwiami, ale take np. na
cianach wewntrz budynku (ekrany komputerów itp.).

5.10 Dodajemy wind.
Poniewa budynek posterunku jest posterunkiem pitrowym, musimy jako dosta si
na wysze pitra. W tym celu dodamy wind. Zanim jednak to zrobimy, musimy jeszcze
posklada poszczególnie pitra budynku posterunku. Parter ju mamy, zaczynamy od
pierwszego pitra. Pamitajcie, aby zawsze znale sobie jaki punkt ,,zaczepienia", od
którego zaczniecie sklada wntrze budynku. Proponuj, aby to zawsze byly wejcia
prowadzce do wntrza budynków. Pierwsze pitro budynku posterunku take posiada takie
wyjcie (a w zasadzie jest to wyjcie, które prowadzi do ldowiska). Wic pierwsze, co
zrobimy, to dodamy obiekt PrzepierzenieF.3da zarówno od strony zewntrznej budynku jak i
wewntrznej. Potem do tych dwóch obiektów PrzepierzenieF.3da dodajemy obiekt
Drzwi.3da. W ten sposób stworzymy kolejne drzwi:



Dodamy te jaki ekran informacyjny, proponuj 100x50Level1.3da:

219



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Pamitajcie, aby od wewntrz budynku te doda jaki ekran np. 100x50LandingField.3da.
Teraz Przenosimy si do wntrza budynku. Przed obiekt PrzepierzenieF.3da dodajemy obiekt
ScianaWejscieA.3da:



Oczywicie w razie potrzeby obrócie ten obiekt. Dla przypomnienia, najlepiej obróci go za
pomoc okna atrybutów obiektów ze skokiem o 90 stopni. Majc zloone wejcie, dalej
bdzie ju o wiele latwiej . Tworzymy cian pomieszczenia na pitrze wykorzystujc do
tego obiekt Sciana.3da i pamitajc o tym, aby na zakrtach dostawi obiekt
ScianaZakretMaly.3da. Postarajcie si o to, aby pomieszczenie na pierwszym pitrze bylo
do due:

220



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Pozostaje nam dodanie podlogi i sufitu. Na razie podlog i sufit dodamy w calym
pomieszczeniu. Miejsce na szyb windy a take na stoly zrobimy póniej. Na cal podlog
dodajemy obiekt PodlogaKwadratowaBeton.3da:



Jeeli kto chce, to oczywicie moe zloy podlog z innych obiektów. Jak zloy sufit to
ju wiecie. Pamitajcie, aby najpierw do okolo pomieszczenia doda obiekt Sufit.3da (na
zakrtach SufitZakretMaly.3da), natomiast przez cale pomieszczenie dodajacie obiekty
SufitKwadratowy.3da, SufitKwadratowyJarzeniowaOn.3da (zapalone jarzeniówki) i
SufitKwadratowyJarzeniowaOff.3da (zagaszone jerzyniówki):

221



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



W porzdku. Jeeli chcecie to moecie doda par stolów:



Gdybycie nie wiedzieli jak, to zerknijcie do jednego z powyszych podrozdzialów. Pierwsze
pitro mamy zloone. Zabieramy si za drugie pitro. Poniewa to pitro ma take wejcie,
zaczniemy od niego, dodajc obiekt PrzepierzenieF.3da z obu stron budynku. Midzy obiekty
PrzepierzenieF.3da jak zwykle dodajemy obiekt Drzwi.3da. W ten sposób stworzymy
kolejnce wejcie. Nie zapomnijcie te doda z obu stron obiektu PrzepierzenieF.3da jakiego
ekranu informacyjnego (np. 100x50Level2.3da):


222



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Teraz moemy przenie si do wntrza budynku. Przed obiektem PrzepierzenieF.3da
dodajemy obiekt ScianaWejscieA.3da:



Zwrócie te uwag na to, e na tym pitrza s okna. Wic skladamy cian z obiektów
Sciana.3da wszdzie tam, gdzie nie ma oknien. Pamitajcie, e na zakrcie trzeba doda
obiekt ScianaZakretMaly.3da. W miejscu gdzie znajduj si okna dodajemy obiekt
ScianaSzybaA.3da:


223



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Dodatkowo do obiektu ScianaSzybaA.3da trzeba doda szyb, czyli obiekt SzybaDuza.3da:



Dodajcie jeszcze podlog (moecie doda par stolów) i sufit, wykorzystujc znane ju
obiekty. Starajcie si jednak wykorzysta sufit z zagaszonymi jarzeniówkami (obiekt
SufitKwadratowyJarzeniowaOff.3da) a to dlatego, e na tym pitrze s okna i wiatlo jest
niepotrzebne . Pozostalo nam trzecie, ostatnie pitro. Poniewa i tu jest wejcie, to
zaczynamy wlanie od tego wejcia, dodajc obiekt PrzepierzenieF.3da z obu stron budynku
a pomidzy obiekty PrzepierzenieF.3da dodajemy obiekt Drzwi.3da. Pamitajcie te, aby
doda ekrany informacyjne w górnej czci obiektu PrzepierzenieF.3da:


224



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Jeeli chodzi o trzecie pitro, to ju wszystko. Nie bdziemy dodawa adnych cian, podlogi
itp. Zabieramy si za tworzenie windy, najpierw stworzymy szyb windy. Wewntrz budynku,
na trzecim pitrze, zaraz za obiektem PrzepierzenieF.3da dodajemy obiekt
SzybWindyGora.3da (obiekt ten znajduje si w katalogu
\Data\Meshes\Constructions\Walls\):



Zwrócie uwag, e obiekt SzybWindyGora.3da ma miejsce, w którym znajduje si wejcie
do windy:


225


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Dlatego musicie obróci ten obiekt tak, aby cze z wejciem do windy byla zwrócona ku
obiektowi PrzepierzenieF.3da na trzecim pitrze. Teraz otwieramy okno atrybutów obiektu
SzybWindyGora.3da. Zmiemy jego nazw na WindaDach:



Obiekt ten musi mie przypisan klas LiftPlatformFloor, wic w razie potrzeby przypiszcie
temu obiektowi tak klas (MeshObject -> LiftPlatformFloor). W tym celu klikamy na
przycisku trzykropka obok pola `Class' i w oknie `Choose class' wybieramy odpowiedni
klas, potem klikamy na przycisku `OK'. Na koniec klikamy na przycisku `Apply' w oknie
atrybutów obiektów, aby potwierdzi wszystkie zmiany. Wicej informacji na temat
przypisywania klas do obiektu moecie znale w podrozdziale o atrybutach obiektów.
Proponowane przeze mnie nazwy s nazwami przykladowymi. Jeeli chcecie, to moecie
nada inne nazwy obiektom. W porzdku, przenosimy si na drugie pitro. Poniej obiektu
SzybWindyGora.3da dodajemy obiekt WindaSrodekA.3da:


226



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Zwrócie uwag na to, aby dól tego obiektu znalazl si pod podlog. Teraz, za pomoc okna
atrybutów obiektów zmiemy nazw tego obiektu na WindaDrugiePietro. Ten obiekt take
musi mie przypisan klas LiftPlatformFloor (MeshObject -> LiftPlatformFloor). Nie
zapomnijcie klikn na przycisku `Apply' w celu potwierdzenia zmian. Jak pewnie widzicie
cz obiektu SzybWindyGora.3da jest wbita w sufit, natomiast cz podlogi zaslania dól
obiektu WindaSrodekA.3da. Na pocztek usuwamy obiekty z podlogi, które zaslaniaj dól
obiektu WindaSrodekA.3da. Potem usuwamy obiekty sufitu wokól szybu windy a take z
szybu windy:



Z kadej stronie szybu, do sufitu dodajemy obiekt SufitWindaA.3da. Oczywicie w razie
potrzeby obrócie ten obiekt. Po dodaniu tych obiektów powinnicie uzyska taki efekt:

227



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



W luki, które pozostaly dodajemy obiekt SufitWindaARog.3da. W ten sposób dodamy sufit
wokól szybu windy:



No i prosz. Drugie pitro zakoczone. Szyb windy na tym pitrze ju jest! Identycznie
postpujemy na pitrze poniej tzn. na pierwszym pitrze. Dodajemy obiekt
WindaSrodekA.3da. Za pomoc okna atrybutów obiektów zmiemy jego nazw na
WindaPierwszePietro i dopilnujcie, aby obiekt ten mial przypisan klas LiftPlatformFloor
(MeshObject -> LiftPlatformFloor). Nie zapomnijcie potwierdzi zmian klikajc na przycisku
`Apply' w oknie atrybutów obiektów. Na tym pitrze take usucie obiekty z podlogi, które

228



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
zaslaniaj szyb windy. Poprawcie te sufit. Usucie obiekty sufitu wokól szybu windy a take
z szybu windy, potem dodajcie obiekt SufitWindaA.3da z kadej strony szubu windy
natomiast w luki obiekt SufitWindaARog.3da. Pozostal ju tylko parter. Na parterze
dodajemy obiekt WindaDolA.3da. W ten sposób stworzylimy szyb windy. Za pomoc okna
atrybutów obiektów zmieniamy nazw tego obiektu na WindaParter. Obiekt ten take musi
mie przypisan klas LiftPlatformFloor (MeshObject -> LiftPlatformFloor). Klikamy na
przycisku `Apply' w oknie atrybutów obiektów, aby potwierdzi zmiany. Usuncie obiekt z
podlogi, który jest w szybie windy. Moe si okaza, e po usuniciu tego obiektu z podlogi,
zamiast spodu szybu windy bdzie widoczny teren mapki:



W takim przypadku za pomoc plug-in'u ,,Terrain" obniamy teren mapki w tym miejscu.
Gdybycie nie wiedzieli jak to zrobi, to zerknijcie do rozdzialu o tworzeniu terenu
do podrozdzialu o modyfikowaniu terenu. Usuncie te obiekty sufitu wokól szybu windy i z
szybu windy a potem dodajcie sufit wokól szybu windy tak jak na poprzednich pitrach.
Teraz na spód szybu windy dodajmy obiekt wind, czyli obiekt WindaPlatformaA.3DA:



W oknie atrybutów obiektów zmieamy nazw tego obiektu na Winda. Obiekt windy musi
mie przypisan klas LiftPlatform (MeshObject -> TriggerObject -> LiftPlatformBase ->
LiftPlatform). Potem klikamy na przycisku `Apply', aby potwierdzi zmiany. Teoretycznie
wind mamy gotow. Musimy jeszcze doda przyciski, za pomoc, których bdzie mona

229


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
przywolywa wind na odpowiednie pitro. W pobliu szybu windy na parterze dodajemy
obiekt PrzyciskStojak.3da (obiekt ten znajduje si w katalogu \Data\Meshes\Inside\):



Za pomoc okna atrybutów obiektów nadajemu mu nazw PrzyciskParter i w razie potrzeby
przypisujemy klas LiftPlatformButton (MeshObject -> TriggerObject -> Actor ->
ChromeActor -> Destroyable -> AnimatedScreen -> LiftPlatformButton). To samo zróbcie na
pierwszym i drugimy pitrze tzn. dodajcie obiekt PrzyciskStojak.3da w pobliu windy,
nadajcie im odpowiednie nazwy (PrzyciskPierwszePietro i PrzyciskDrugiePietro) a takae w
razie potrzeby przypiszcie mu klas LiftPlatformButton (MeshObject -> TriggerObject ->
Actor -> ChromeActor -> Destroyable -> AnimatedScreen -> LiftPlatformButton). Natomiast
na trzecim pitrze, od zewntrznej strony budynku, dodajemy obiekt Przycisk.3da (ten obiekt
take znajduje si w katalogu \Data\Meshes\Inside\) na obiekt PrzepierzenieF.3da:


230


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Za pomoc okna atrybutów obiektów zmieniamy nazw obiektu na PrzyciskDach. W razie
potrzeby przypisujemy mu klas LiftPlatformButton (MeshObject -> TriggerObject ->
Actor -> ChromeActor -> Destroyable -> AnimatedScreen -> LiftPlatformButton). To tyle,
jeeli idzie o konstruowanie windy. Aby winda i przyciski odpowiednio dzialaly, musimy
ustawi atrybuty tych obiektów. Przenosimy si na parter budynku. Zaczynamy od obiektu
Winda (w dalszej czci tego podrozdzialu bd uywal nazw, które nadalimy obiektom).
Zaznaczamy obiekt Winda i klikamy na ikonie blokowania zaznaczania (lub naciskamy
klawisz SPACE). W ten spoó bdziemy mie pewno, e przez przypadek nie zaznaczmy
innego obiektu. Teraz otwieramy okno atrybutów obiektu Winda. Jak zapewne pamitamy (i
widzimy) obiekt Winda ma przypisan klas LiftPlatform. Klasa ta posiada m.in. atrybut
aFloors, któremu naley przypisa obiekty, na których obiekt z klas LiftPlatform, bdzie si
zatrzymywal. Tlumacz to na prostrzy jzyk musimy zaznaczy, na których pitrach winda
ma si zatrzymywa. Kady element szybu windy, czyli obiekty WindaParter,
WindaPierwszePietro, WindaDrugiePietro i WindaDach, to poszczególnie pitra dla obiektu
Winda (na tych obiektach winda bdzie si zatrzymywa). Zaznaczamy atrybut aFloors w
sekcji LIFTPLATFORM na zakladce `Java'. Aby zaznaczy jaki atrybut wystarczny na nim
po prostu klikn:



Teraz klikamy prawym przyciskiem myszki na obiekcie WindaParter. Otworzy si menu, z
którego wybieramy polecenie Set <WindaParter> as <aFloors>:


231

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W taki wlanie sposób przypisuje si obiekty do atrybutów! Obiekt WindaParter zostanie
obramowany na ólto, co póniej ulatwia rozpoznanie, jaki obiekt zostal przypisany, do
jakiego atrybutu. Teraz klikamy prawym przyciskiem myszki na obiekcie
WindaPierwszePietro (przenosimy si na pierwsze pitro budynku). Pamitajcie, e atrybut
aFloors obiektu Winda musi by zaznaczony. Z menu, które si otworzy wybieramy
polecenie Set <WindaPierwszePietro> as <aFloors>. Obiekt WindaPierwszePietro take
zostanie obramowany na ólto. Przenosimy si na drugie pitro budynku i klikamy prawym
przyciskiem myszki na obiekcie WindaDrugiePietro (pamitajc aby atrybut aFloors obiektu
Winda byl caly czas zaznaczony). Z menu wybieramy polecenie
Set <WindaDrugiePietro> as <aFloors>. Kolejny obiekt zostanie obramowany na ólto. Do
przypisywanie obiektów do atrybutów (bo to wlanie caly czas robimy za pomoc polecenia
Set) mona wykorzysta okno zaznaczania i selekcji obiektów. Zrobimy tak z obiektem
WindaDach. Nie bdziemy przenosi si na trzecie pitro budynku . Otwieramy okno
zaznaczania i selekcji obiektów. W oknie tym, z listy maski selekcji wybieramy `Lifts' (czyli
windy). Teraz na licie wyszukujemy obiekt WindaDach i klikamy na nim prawym
klawiszem myszki i wybieramy polecenie Set <WindaDach> as <aFloors>:



Zamykamy okno zaznaczania i selekcji obiektów. Obiekt WindaDach zostanie obramowany
na ólto, o czym morzemy si przekona, przenoszc si na trzecie pitro budynku. Pierwszy
sposób przypisywania obiektów do atrybutów jest na pewno latwiejszy, ale jak latwo si
przekonalimy, wykorzystuj okno zaznaczania i selekcji obiektów nie musimy ,,lata" po
calej mapce w celu poszukiwania obiektu. Po prostu wyszukujemy go na licie w oknie
zaznaczania i selekcji obiektów. Dobrze. Kilkamy na przycisku `Apply' w oknie atrybutów
obiektów. Zwrócie uwag, e wszystkie obiekty szybu windy zostaly przypisane do obiektu
Winda:


232

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Te liczby, które zostaly przypisane do atrybutu aFloors, to identyfikatory poszczególnych
obiektów, które przypisywalimy do tego atrybutu (wicej na temat identyfikatorów obiektów
mona znale w podrozdziale o zaznaczaniu i selekcji obiektów). Wana informacja!
Poszczególne pitra do obiektu aFloors musz by przypisane w odpowiedniej kolejnoci
poczynajc od parteru. Warto doda, e za kadym razem jak zaznaczymy atrybut aFloors,
przypisane obiekty zostan obramowane na ólto. Ok, klikamy ponownie na ikonie
blokowania zaznaczania obiektów (lub naciskamy klawisz SPACE) po to, aby odblokowa
zaznaczenie z obiektu Winda. W zasadzie warto przyj zasad, aby blokowa zaznaczenie
na obiekcie, któremu ustawiamy atrybuty, szczególnie wtedy, jeeli bdziemy przypisywa
inne obiekty do atrybutów zaznaczonego obiektu. Pozwoli to unikn odznaczenia danego
obiektu. Teraz zajmiemy si przyciskami. Otwieramy okno atrybutów obiektu PrzyciskParter.
Obiekt ten ma przypisan klas LiftPlatformButton. Klasa ta posiada m.in. atrybut
cControlledLift, któremu naley przypisa obiekt, który bdzie przywolywany przez obiekt z
klas LiftPlatformButton, a take atrybut cFloorRef, któremu naley przypisa obiekt, na
którym bdzie zatrzymywal si przywolywany obiekt. Znowu tlumaczc to na prostszy jzyk
musimy zaznaczy, któr wind bdzie przywolywal przycisk i do jakiego pitra bdzie ta
winda przywolywana. Zaznaczamy atrybut cControledLift w sekcji BUTTON na zakladce
`Java':



i klikamy prawym przyciskiem myszki na obiekcie Winda. Z menu, które si otworzy
wibieramy, polecenie Set <Winda> as <cControlledLift>:



Obiekt Winda zostanie obramowany na ólto. Teraz zaznaczamy atrybut cFloorRef i klikamy
prawym przyciskiem myszki na obiekcie WindaParter. Z menu, które si otworzy,
wybieramy polecenie Set <WindaParter> as <cFloorRef>. Obiekt WindaParter zostanie
obramowany na ólto. Klikamy na przycisku `Apply'. Podobnie robimy z pozostalymi
przyciskami, pamitajc oczywicie, o tym, e kady przycisk przywoluje wind do innego
pitra. Zamiast wdrowa po pitrach, w celu przypisywania obiektów do poszczególnych
przycisków, znowu moemy posluy si oknem zaznaczania i selekcji obiektów. Otwieramy
to okno. Ponownie z listy maski selekcji wybieramy `Lifts'. Na licie wyszukujemy i
zaznaczamy obiekt PrzyciskPierwszePietro, potem kilkamy na przycisku `Attrib':


233

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



W ten sposób otworzymy okno atrybutów tego obiektu (o ile nie bylo ju otwarte). Teraz
zaznaczamy atrybut cControlledLift w oknie atrybutów obiektu, blokujemy zaznaczenie
(klikajc na ikonie blokowania zaznaczenia, w tym przypadku nie moecie nacisn klawisza
SPACE!), wyszukujemy obiekt Winda na licie w oknie zaznaczania i selekcji obiektów, i
klikamy na tym obiecie prawym klawiszem myszki. Z menu, które si otworzy, wybieramy
polecenie Set <Winda> as <cControlledLift>:



Potem zaznaczamy atrybut cFloorRef w oknie atrybutów obiektów, na licie w oknie
zaznaczania i selekcji obiektów wyszukujmy obiekt WindaPierwszePietro, klikamy prawym
przyciskiem myszki i z menu, które si otworzy wybieramy polecenie
Set <WindaPierwszePietro> as <cFloorRef>. Potem klikamy na przycisku `Apply' w oknie
atrybutów obiektów, aby potwierdzi wszystkie zmiany. Ponownie klikamy na ikonie
blokowania zaznaczenia obiektu (nie moecie teraz nacisn klawisza SPACE), aby
odblokowa zaznaczenie na obiekcie PrzyciskPierwszePietro. Proste? Mam nadziej, e tak.
W miar jak bdziecie zaznajomieni z edytorem ChromEd, bardzo docenicie moliwo
przypisywania obiektów do atrybutów z wykorzystaniem okna zaznaczania i selekcji
obiektów. Teraz przypiszcie odpowiednie obiekty do odpowiednich atrybutów obiektów
PrzyciskDrugiePietro i PrzyciskDach. I to wszystko . Winda gotowa! Uruchomcie mapk w
trybie gry i przekonajcie si, e wszystko dziala, tak jak powinno. Gdybycie zaobserwowali
efekty podobne do tych na poniszym rysunku:


234



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


lub zauwaycie, e znikaj obiekty itp. to nie przejmujcie si tym. Jest to spowodowane
brakiem portali dla szybu windy. Ju niedlugo stworzymy portale i efekt ten zniknie. Jest te
bardzo prawdopodobne, e zmniejszyla si wydajno naszej mapki. To przez to, e budynek
posterunku sklada si z bardzo duej liczby obiektów. Póniej skolapsujemy ten budynek, co
pozwoli uzyska wysz wydajno mapki. Jeeli chcecie sprawdzi ile klatek na sekundk
(FPS) jest wywietlanych na Waszej mapce, uruchomcie tryb gry i przywolajcie konsol
graficzn. Dla przypomnienia konsol graficzn przywoluje si za pomoc klawisza \.
Naciskajc klawisze PAGE UP lub PAGE DOWN przelczamy si na 4 stron konsoli
graficznej. Na tej wlanie stronie wywietlana jest liczba klatek na sekund:



Pamitajcie, e jeeli wlczona jest konsola graficzna, nie mona chodzi po mapce, mona
jedynie si rozglda (obraca) za pomoc myszki. I na tym zakoczylimy dodawanie
windy. Mam nadziej, e nie tylko bdziecie wiedzie jak sklada wind, ale take jak
przypisywa obiekty do atrybutów, jak do tego celu wykorzystywa okno zaznaczania i
selekcji obiektów itd.

235

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
5.11 Dodajemy wiatlo.
Kolejne zadanie przed nami, musimy doda owietlenie do budynku. Teraz pewnie
sobie pomylicie: ,,ale po co skoro jest w nim wystarczajco jasno?!". To troch mylne
spostrzeenie. Gdybymy teraz wygenerowali lightmap' dla tego budynku, byloby w nim
bardzo ciemno a to wlanie z braku wiatla. A gdzie to wiatlo doda? W zasadzie to te
zaley od Was, to Wy musicie wiedzie jak obiekt ma by owietlony. Wszystko zaley od
tego, jaki chcecie uzyska efekt. Ja Wam troch w tym pomog . Jakby tego bylo malo, to
wikszo obiektów zostala ju owietlona przez twórców gry Chrome i edytora ChromeEd.
Takie owietlenie moemy wykorzysta na naszych mapkach, wystarczy je tylko wczyta.
Zaczniemy moe od cian budynku. Na razie wykorzystamy gotowe owietlenie. Otwieramy
okno atrybutów obiektu Sciana.3da (obojtnie jaki obiekt Sciana.3da, który wchodzi w sklad
naszego budynku). Przechodzimy na zakladk `Lighting'. Zwrócie uwag na panel `Lighting
model':



Na tej licie znajduje si gotowy model wiatla dla danego obiektu. Aby wczyta taki model
wiatla wystarczy zaznaczy jego nazw na licie i klikn na przycisku `Load':



Model wiatla zostanie wczytane. Gdy teraz zamkniemy okno atrybutów obiektów, na dole
ciany pojawily si obiekty wiatla:


236


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Te ólte punkty to wlanie wiatlo. Teraz musimy wczyta takie modele wiatla dla
wikszoci obiektów wchodzcych w sklad naszego budynku (nie wszystkie obiekty musz
by owietlone i nie wszystkie maj gotowe modele wiatla). Otwieramy okno atrybutów
obiektów poszczególnych biektów, przechodzimy na zakladk `Lighting'. Jeeli na panelu
`Lighting model' dostpne s jakie modele wiatla to zaznaczamy nazw tego modelu i
klikamy na przycisku `Load'. Pamitajcie, aby przejrze wszystkie obiekty (drzwi, ciany,
sufit, podloga, ekrany informacyjne itd.). Mona te zaznaczy klika obiektów tego samego
typu i wtedy wczyta model wiatla. Dla przypomnienia, aby zaznaczy wicej ni jeden
obiekt, naley trzyma wcinity klawisz CTRL i zaznacza kolejne obiekty klikajc na nich.
Do zaznaczania obiektów mona wykorzysta okno zaznaczania i selekcji obiektów.
Wystarczy wyszuka obiekty, których nazwy zaczynaj si tak samo np. Sciana. Wicej na
ten temat znajdziecie w podrozdziale o zaznaczaniu i selekcji obiektów. Jeszcze taka mala
informacja. Jeeli klikniecie na przycisku `Load' i pojawi si taki komunikat:



to oznacza, e dla danego obiektu model wiatla zostal ju wczytany. Jeeli klikniemy na
przycisku `Nie' to model wiatla nie zostanie ponownie wczytany, natomiast jeeli klikniemy
na przycisku `Tak' to model wiatla jeszcze raz zostanie wczytany. Pamitajcie, aby wczyta
te model wiatla dla obiektu Posterunek.3da (czyli glówny obiekt budynku). Dodamy te
nasze wiatlo . Bdzie to wiatlo, które pada przez okno. Przenosimy si na drugie pitro (na
tym pitrze s okna). Teraz w plug-in'ie ,,Mesh Browser" na zakladce `Settings' z listy typów
obiektów wybieramy `Light':


237


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Pamitajcie, aby byla zaznaczona opcja `drop to objects' na zakladce `Drop':



Dalej postpujemy ju tak samo z innymi obiektami tzn. najpierw klikamy na przycisku `Put
Object' a potem w miejscu, gdzie chcemy doda dany obiekt (tu wiatlo). Dodajemy wiatlo
mniej wicej po rodku szyby:



w nieduej odlegloci od szyby:


238


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Jak zwykle do przesuwania obiektów wykorzystajcie Gizmo. Dodajcie takie obiekty wiatla
do dwóch nastpnych szyb. Teraz musimy ustawi atrybuty tych obiektów wiatla. Poniewa
wszystkie te obiekty bd mialy takie same ustawienia, moemy je wszystkie zaznaczy (przy
pomocy klawisza CTRL). Otwieramy okno atrybutów obiektów i przechodzimy na zakladk
`Light':



Najpierw omówi znaczenie poszczególnych opcji. Z listy `Type' mona wybra rodzaj
owietlenia:




239

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
- `Omni' ­ wiatlo punktowe np. takie jak zwykla arówka,
- `Spot' ­ wiatlo snopowe np. takie jak latarka,
Na panelu `Color' moemy ustawi kolor wiatla. Jeeli klikniemy w miejscu, gdzie jest
wywietlany aktualny kolor (s tam te podane wartoci RGB tego koloru) to otworzy si
standardowe okno wyboru koloru systemu Windows. Tam moemy wybra odpowiedni
kolor, lub stworzy inny kolor podajc wartoci RGB (R ­ czerwony, G ­ zielony,
B - niebieski). Na panelu `Color' dostpna jest jeszcze opcja `is negative':



Jeeli j zaznaczymy wiatlo zamiast si rozjania bdzie si ciemnia. Panelu
`Attenuation' odpowiada za wygasanie mocy wiatla:



Zaznaczajc opcj `use' wlczamy wygasanie mocy wiatla. W polu `Range' podajemy
maksymaln odleglo, przy której wiatlo bdzie gasn (przy podanej odlegloci wiatlo
nie bdzie ju wieci). Prosz pamita 100 jednostek = 1m fizyczny. Na panelu `Spot light
properties' ustawiamy promienie wiatla snopowego:



Jeeli z listy `Type' wybierzemy wiatlo typu `Spot' to wlanie na tym panelu musimy poda
promie snopa wiatla (z zakresu 0 ­ 180). Pole `HotSpot' odpowiada za promie
wychodzcy snopu wiatla a pole `FallOff' za promie kocowy snopu wiatla. Aby lepiej to
zrozumie proponuj zerkn na poniszy rysunek:


240


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Prosz pamita, e promie kocowy (`FallOff') nie moe by mniejszy od promienia
wychodzcego (`HotSpot'). Zaznaczajc opcj `enabled' na panelu `Misc' wlczamy wiatlo
tzn. to wiatlo bdzie bralo udzial w generowaniu lightmap'y:



Zaznaczenie opcji `render light range' na panelu `Misc' spowoduje, e wokól obiektu wiatla
bdzie wywietlany zasig wiatla:



Jeeli klikniemy na przycisku `Clear lighting model flag' na panelu `Misc' to obiekt tego
wiatla zostanie usunity z modelu wiatla (o ile ten obiekt wiatla pochodzil z modelu
wiatla). W porzdku. Mamy ju pojcie o ustawianiu atrybutów wiatla i to tyle teorii.
Wracamy do praktyki. Najpierw ustawiamy kolor wiatla. Proponuj nada mu wartoci
R, G i B równe 200:





241


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Aby wprowadzi takie wartoci klikamy na panelu `Color' w miejscu, gdzie wywietlany jest
kolor. Otworzy si standardowe okno wyboru koloru systemu Windows. Tam wpisujemy
warto 200 dla wszystkich trzech kolorów (czerwony, zielony, niebieski):



Poniewa wiatlo, które pada przez okno musi by mocne (w kocu rzuca je sloce) tu
ustawiamy odleglo wygasania mocy wiatla na 1500:



Upewniamy si, e wiatlo jest wlczone tzn. musi by zaznaczona opcja `enabled' na panelu
`Misc'



Na koniec klikamy na przycisku `Apply' w oknie atrybutów obiektów, aby potwierdzi
zmiany. Tak wyglda dodawanie wiatla. Spróbujcie jeszcze gdzie doda wiatlo. Czym
wicej parktyki, tym szybciej wszystko pojmiecie . To tyle, jeeli idzie o owietlenie.

5.12 Portale.
W tym podrozdziale zajmiemy si portalami. Na pocztek wypadaloby napisa, co to w
ogóle s portale i na czym one polegaj. System portali w engine Chrome (którym
,,napdzana" jest gra Chrome) sluy wylczeniu wywietlania (renderowania) jak najwikszej
ilo obiektów (przede wszystkim terenu mapki, drzew, traw, wody itd.). Z zaloenia jeli
gracz (lub kamera) znajduje si w zamknitym pomieszczeniu, to nie ma potrzeby
wywietlania (renderowania) ,,wiata zewntrznego". Jeeli pomieszczenie jest polczone z
innym pomieszczeniem, to trzeba tylko wywietli wntrza tych dwóch pomieszcze. I nic
wicej! Dodatkowo, jeeli przejcie pomidzy pomieszczeniami jest zamknite np. przez
drzwi, to nie bdzie wywietlane (renderowane) pomieszczenie, które znajduje si za
drzwiami. Po co obcia engine gry, skoro gracz (czy te kamera) i tak ,,nie widzi", co jest
w drugim pomieszczeniu?! Dziki portalom engine Chrome jest bardziej wydajny! Myl, e
tyle teorii na temat portali wystarczy. Teraz przejdziemy do praktyki. W kadym
pomieszczeniu, w którym jest przejcie do nastpnego pomieszczenia np. przez drzwi, okna a
nawet szyb windy, musi by dodany obiekt z portalem. Obiekty takie musz by umieszczone
tylko wewntrz budynu, nie mog znajdowa si na zewntrz budynku, tym samym nie
bdziemy umieszcza obiektów z portalami przy wejciach do budynku:

242



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Jednak ju wewntrz budynku tak. Najpierw dodamy obiekty z portalami do wszystkich
obiektów Drzwi.3da w naszym budynku. Przenosimy si do wntrza budynku. Niedaleko
drzwi, za pomoc plug-in'a ,,Mesh Browser" dodajemy obiekt PortalDrzwi.3da (obiekt ten
znajduje si w katalogu \Data\Meshes\Constructions\Walls\). Wybierzcie opcj `drop to
objects' na zakladce `Drop' w plug-in'ie ,,Mesh Browser". W ten sposób bdzie lepiej
dodawalo si obiekty. Poniewa obiekt taki nie ma mesh'a, który by go reprezentowal, moe
by ciko ustawi ten obiekt w odpowiednie miejsce. Ale na wszystko s sposoby .
Otwieramy okno atrybutów tego obiektu i przechodzimy na zakladk `Indoors'. Prosz
bardzo, obiekt jest na pewno lepiej widoczny:




243



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Teraz za pomoc Gizma przysuwamy go do obiektu Drzwi.3da.


Pamitajcie, aby bylo wlczone snapowanie (przyciganie obiektów). Pomimo, e obiekt
PortalDrzwi.3da nie ma haków, to i tak zostanie przycignity przez inne obiekty. Teraz
dodajemy obiekt PortalDrzwi.3da do wszystkich obiektów Drzwi.3da, z kadej strony
pomieszczenia, pamitajc o tym, e nie wolno doda tego obiektu na zewntrz budynku! Do
obiektu ScianaSzybaA.3da dodajemy obiekt PortalSzybaDuza.3da (obiekt ten take znajduje
si w katalogu \Data\Meshes\Constructions\Walls\):



Obiekt PortalSzybaDuza.3da dodajemy do wszystkich obiektów ScianaSzybaA.3da. Pozostal
nam jeszcze tylko szyb windy. Obiekty WindaDolA.3da i WindaSrodekA.3da posiadaj ju
portale, wic nie musimy dodawa adnych obiektów. Natomiast obiekt SzybWindyGora.3da

244


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
(a take nieuywany przez nas obiekt SzybWindyWejscie.3da) nie posiadaj portali, to
musimy doda dodatkowe obiekty z portalami. Przenosimy si na ostatnie pitro budynku.
Dodajemy obiekt PortalSzybWindy.3da (obiekt ten znajduje si w katalogu
\Data\Meshes\Constructions\Walls\) na dól obiektu SzybWindyGora.3da:



Ok, portale s ju dodane. W katalogu \Data\Meshes\Constructions\Walls\ dostpne jest
jeszcze kilka innych obiektów z portalami, wic aby Wam w przyszloci ulatwi zadanie,
napisz jakie obiekty z portalami trzeba doda do poszczególnych obiektów. I tak:
- obiekt PortalBrama.3da dodajemy do obiektu Brama.3da,
- obiekt PortalDrzwi.3da dodajemy do obiektu Drzwi.3da,
- obiekt PortalPodloga.3da wykorzystywany jest zamiast podlogi ­ aby zrozumie o chodzi
prpopnuj przyjrze si budynkowi na multiplayer'owej mapce BattleDust dla trybu
Assault:


245


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


- obiekt PortalSzybaDuza.3da dodajemy do obiektu ScianaSzybaA.3da,
- obiekt PortalSzybWentylacyjny.3da dodajemy do obiektu PodlogaZejscieA.3da,
- obiekt PortalSzybWindy.3da dodajemy do obiektu SzybWindyGora.3da oraz do obiektu
SzybWindyWejscie.3da,
- obiekt PortalWejscie.3da dodajemy do obiektu PrzepierzenieE.3da.
To wszystkie obiekty z portalami. Mam nadziej, e ten opis naprawd Wam pomoe w
przyszloci unikn problemu z tworzeniem portali. Skoro dodalimy ju portale to teraz
musimy stworzy polczenia midzy tymi portalami (w zasadzie zrobi to za na edytor
ChromEd), zanim jednak to zrobimy, musimy zgrupowa wszystkie obiekty wchodzce w
sklad pomieszczenia! Aby bylo nam latwiej, obiekty bdziemy grupowa stopniowo,
zaczynajc od podlogi, poprzez ciany a na koniec sufit. Zaczynamy! Przenosimy si do
pierwszego pomieszczenia i zaznaczamy wszystkie obiekty podlogi tego pomieszczenia. Aby
doda kolejne obiekty do zaznaczenia wystarczy trzyma wcinity klawisz CTRL a potem
klika na poszczególne obiekty. Proponuj przelczy si w tryb koordynacji osi wzgldem
terenu mapki (`World'):



Tak bdzie lepiej, poniewa dostpne bdzie tylko jedno Gizmo dla wszystkich zaznaczonych
obiektów. Pamitajcie, e jeeli w jakim pomieszczeniu dodalicie stól (obiekt Stol.3da), to
take musicie go traktowa jako obiekt podlogi. Po zaznaczeniu obiektów podlogi danego
pomieszczenia, klikamy na ikonie grupowania obiektów (ikona z liter `G'). Otworzy si
okno `Groups'. Na panelu `Create / destroy' wpisujemy nazw naszej grupy np. Parter_Pom1
i klikamy na przycisku `Create':



246

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

W ten sposób stworzylimy grup obiektów. Poniewa bdziemy jeszcze dodawa obiekty do
tej grupy (ciany i sufit ew. obiekty wiatel) to musimy otworzy struktur tej grupy. W tym
celu zaznaczamy nazw stworzonej przez nas grupy na licie istniejcych grup (`Existing
Group') a potem klikamy na przycisku `Open':



Zamykamy okno grupowania obiektów. Wicej informacji na temat okna grupowania
znajdziecie w podrozdziale o grupowaniu obiektów. Teraz zaznaczamy obiekty cian
wchodzce w sklad danego pomieszczenia. Tu bardzo wana uwaga! Obiekt Drzwi.3da nie
moe nalee do adnej grupy obiektów! Te obiekty bd tworzy polczenia z portalami.
Dodajemy natomiast obiekty ScianaWejscieA.3da, PrzepierzenieF.3da a take obiekt z
ekranem informacyjnym znajdujcy si w obiekcie PrzepierzenieF.3da. Do grup nie wolno
dodawa adnych pomocniczych obiektów edytora ChromEd (tzw. helpery) np. obiektów
wiatel, waypoin'y itd. Jednak prdzej czy póniej zauwaycie, e obiekty wiatel, które
zostaly zaladowane z modelu wiatla, zostaly dodane do grupy (nawet, jeeli Wy ich nie
dodalicie). Dzieje si tak, poniewa te obiekty wiatel s polczone w hierarchii z obiektami,
z których te modele wiatel zostaly zaladowane. Ogólnie, jeeli jaki obiekt jest polczony w
hierarchii z innym obiektem a obiekt ,,rodzica" dodamy do grupy obiektów, to obiekt
,,dziecka" take zostanie dodany do tej grupy. Jest to jedyny przypadek, w którym mog
zosta dodane obiekty pomocnicze do grupy obiektów. Sami obiektów pomocniczych nie
dodawajcie do adnej grupy!!! W porzdku, wracamy do grupowania pomieszcze. Gdy
mamy ju zaznaczone obiekty cian danego pomieszczenia, ponownie otwieramy okno
grupowania obiektów. Tam zaznaczamy nazw naszej grupy, do której wczeniej dodalimy
obiekty podlogi. Grupa ta powinna mie otwart struktur (nazwa grupy wywietlana jest na
niebiesko, dodatkowo przy nazwie grupy widnieje slowo `opened'). Teraz klikamy na
przycisku `Add selected', który znajduje si pod list struktury grupy:


247

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Zaznaczone obiekty zostan dodane do grupy. I tak samo postpujemy z obiektami sufitu
wchodzcymi w sklad danego pomieszczenia. Proponuj najpierw zaznaczy i doda do
grupy obiekty Sufit.3da i SufitZakretMaly.3da (czyli obrzee sufitu) a potem zaznaczy i
doda do grupy pozostale obiektu sufitu wchodzce w sklad pomieszczenia. Na koniec, do tej
grupy, musimy doda jeszcze obiekt z portalem, który wchodzi w sklad tego pomieszczenia.
Poniewa obiekt ten jest niewidoczny (nie ma mesh'a, który by go reprezentowal), musimy
posluy si oknem zaznaczania i selekcji obiektów. Otwieramy to okno. Jako mask selekcji
klas wybieramy `ALL' a w polu `Name' wpisujemy slowo `portal' (jeeli nie zmienilicie
nazwy obiektów z portalami, to standardowo maj one nazwy zaczynajce si od slowa
`Portal'):



Wszystkie obiekty zaczynajce si od slowa `portal' zostan zaznaczone na licie obiektów.
Zaznaczamy pierwsz obiekt na tej licie:



i sprawdzamy, czy znajduje si on w pomieszczeniu (moemy otworzy okno atrybutów tego
obiektu i przej na zakladk `Indoors', wtedy ten obiekt bdzie lepiej widoczny), które
aktualnie grupujemy. Jeeli nie, to w oknie zaznaczania i selekcji obiektów, zaznaczamy
kolejny obiekty z portalami. Robimy to tak dlugo, a znajdziemy obiekt, który znajduje si w
pomieszczeniu, które wlanie grupujemy. Jeeli taki obiekt znajdziemy to otwieramy okno
grupowania obiektów i klikamy na przycisku `Add selected' znajdujcy si pod list struktury
grupy (pamitajcie, aby grupa, do której chcemy doda obiekt byla otwarta). W porzdku.
Jeeli jestemy pewni, e mamy ju w gupie wszystkie obiekty, które nale do danego

248

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
pomieszczenia, to moemy t grup zamkn. W tym celu zaznaczamy nasz grup na licie
istniejcych grup w oknie grupowania obiektów i klikamy na przycisku `Close':



W ten sposób zgrupowalimy obiekty wchodzce w sklad jednego pomieszczenia. Tak samo
musimy postpi z innymi pomieszczeniami w naszm budynku. Obiekty wchodzce w sklad
danego pomieszczenia musz by zgrupowane. Nie dotyczy to jednak obiektów
pomocniczych tzn. helperów, o czym ju wspomnialem. Zgrupujcie reszt pomieszcze.
Pamitajcie, e do grupy nie moe by dodany obiekt Drzwi.3da (obiekt z przypisan klas
DoorsObject). Jeeli bdziecie grupowa pomieszczenie, w którym znajduje si winda, to
musicie pamita, aby do adnej grupy nie dodawa obiektu WindaPlatformaA.3da (obiekt
przypisan klas LiftPlatform). Oczywicie takie obiekty jak WindaDolA.3da czy te
SzybWindyGora.3da (i nie wykorzystany przez nas obiekt SzybWindyWejscie.3da) musicie
doda do grupy danego pomieszczeniu. To samo tyczy si obiektów PrzyciskStojak.3da,
obiekty te musz znale si w grupie danego pomieszczenia. Nie zapomnicie te doda
obiektów z portalami (obiek PortalDrzwi.3da) do grupy danego pomieszczenia, w którym te
obiekty si znajduj! W razie trudnoci z zaznaczeniem takich obiektów i dodaniem ich do
grupy, wykorzystajcie okno zaznaczania i selekcji obiektów (o tym take ju wspomnialem).
Mam nadziej, e jest to zrozumiale . Pamitajcie, e ,,praktyka czyni mistrza". Zreszt sami
troch poeksperymentujcie. Jeeli bdziecie grupowa pomieszczenie z oknami, pamitajcie,
aby to tej grupy doda obiekty z portalami tzn. obiekt PortalDrzwi.3da a take
PortalSzybaDuza.3da. Nie zapomnijcie te o szybie tzn. o obiekcie SzybaDuza.3da. Jeeli
Wasz pierwsz mapk wzorowalicie na tym dokumencie, to ostatnie pitro budynku
posterunku nie posiada adnych obiektów cian itp. Jednak jest to pewne pomieszczenie,
które posiada portale, wiec grup tych obiektów musimy stworzy. W takiej grupie musz
znale si obiekty SzybWindyGora.3da, PrzepierzenieF.3da, ekran informacyjny (u mnie
jest to obiekt 100x50Roof.3da) a take obiekty z portalami tzn. PortalDrzwi.3da (oczywicie
znajdujcy si w tym pomieszczeniu!) i PortalSzybWindy.3da (take znajdujcy si w tym
pomieszczeniu). I to wszystko. Jeeli zgrupujemy ju wszystkie pomieszczenia, to w oknie
grup obiektów (`Group') zamykamy wszystkie grupy. W tym celu kilkamy na przycisku
`Close all':


249

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Teraz musimy jeszcze stworzy polczenia midzy portalami. Otwieramy okno atrybutów
jeden z grup obiektów, czyli jakiego pomieszczenia, dla którego chcemy stworzy
polczenia midzy portalami. Jeeli grupa obiektów jest zamknita (co zrobilimy w oknie
grup klikajc na przycisku `Close all') to aby otworzy okno atrybutów tej grupy wystarczy
dwukrotnie klikn na jaki obiekt wchodzcy w sklad tej grupy. W oknie atrybutów
przechodzimy na zakladk `Indoors':



Najpierw omówi znaczenie poszczególnych opcji a potem stworzymy polczenia midzy
portalami. W górnej czci zakladki `Indoors' wywietlana jest lista portali aktualnie
zaznaczonego obiektu (lub grupy obiektów). Przycisk `Go through' znajdujcy si tu pod
list portali:



pozwala na ,,przechodzenie przez portale" ­ zostanie zaznaczony obiekt z którego wychodzil
dany portal. Zamiast klika na przycisku `Go Through' mona dwukrotnie klikn na portalu
znajdujcym si na licie. Na panelu `Object' mamy do wyboru dwie opcje:


250

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Pierwsza opcja, `all', stworzy polczenia wszystkich portali znajdujcych si na mapce,
natomiast opcja `this only' stworzy polczenia portali dla wybranego (zaznaczonego) obiektu
(lub grupy obiektów). W polu `Max connection distance' wpisujemy maksymaln odleglo
midzy rodkami portalów (midzy którymi ma by stworzone polczenie):



Jeeli rodki portali bd znajdowa si w wikszej odlegloci, to dla nich polczenie nie
zostanie stworzone. Na dole zakladki `Indoors' znajduje si przycisk `Create connections':



Za pomoc tego wlanie przycisku tworzymy polczenie midzy portalami. Ok. Wszystkie
opcje pozostawiamy bez zmian (zwróie uwag, aby wybrana byla opcja `all' na panelu
`Objects') i klikamy na przycisku `Create connections'. Brawo! Stworzylimy polczenia
midzy portalami. Oto lista polcze jednego z pomieszcze na mojem mapce:



A tak wygldaj polczenia widoczne na mapce:


251


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Uruchomcie teraz mapk w trybie gry. Pierwsze, co powinnicie zauway, to to, e
wydajno samej mapki wzrosla, wlanie dziki portalom ­ jak gracz znajduje si na
zewntrz budynku (na otwartym terenie) to engine Chrome nie wywietla (renderuje) wntrz
budynków, natomiast jak gracz znajduje si wewntrz budynku, to engine Chrome nie
wywietla wntrz innych pomieszcze a take terenu mapki. Drugie, na co powinnicie
zwróci uwag, to brak dziwnego efektu przy wchodzeniu do budynku lub innych
pomieszcze. Wypróbujcie wind! Myl, e teraz bdziecie potrafili ju tworzy portale i
polczenia midzy nimi.

5.13 Kolapsujemy budynek.
Na wstpie napisz, e obszerniejsze wiadomoci na temat kolapsowania znajdziecie
w podrozdziale o kolapsowaniu obiektów. W poprzednim podrozdziale wszystkie obiekty
wchodzce w sklad danego pomieszczenia polczylimy w grupy. W ten sposób mamy grupy
pomieszcze. W tym podrozdziale te grupy pomieszcze skolapsujemy. Po co? Przede
wszystkim dziki kolapsowaniu nasza mapka bdzie jeszcze bardziej wydajna ­ jak ju nie
raz wspominalem, jeden obiekt jest wywietlany (renderowany) szybciej ni kilka innych
obiektów. Zanim zaczniemy kolapsowa obiekty, najpierw w katalogu z nasz mapk
(\Data\LevelsNet\MojaMapka\) tworzymy podkatalog \Meshes\
(\Data\LevelsNet\MojaMapka\Meshes\). W tym katalogu bd umieszczane skolapsowane
obiekty. Teraz otwieramy okno grupowania obiektów klikajc na ikonie z liter `G'. Na licie
istniejcych grup zaznaczamy grup pomieszczenia, które chemy skolapsowa i klikamy na
przycisku `Open'. Ponownie na licie istniejcych grup zaznaczamy grup pomieszczenia,
które chcemy skolapsowa a potem na licie struktury tej otwartej grupy zaznaczamy
wszystkie obiekty wchodzce w jej sklad tzn. najpierw zaznaczamy pierwszy obiekt na licie,
potem trzymajc wcinity klawisz SHIFT zaznaczamy ostatni obiekt na licie. W ten sposób
zaznaczymy wszystkie obiekty wchodzce w sklad grupy:


252

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Uwaga! Na licie struktury grupy pierwszy obiekt na licie to nazwa grupy, tego obiektu nie
dodawajcie do zaznaczenia! Pierwszy obiekt, który macie zaznaczy znajduje si na drugiej
pozycji. Majc zaznaczone obiekty na licie struktury grupy, klikamy na przycisku `Select
objects', który znajduje si pod list struktury grupy:



W ten sposób obiekty zostan zaznaczone na mapce. Proponuj, aby wybra tryb koordynacji
osi wzgldem terenu mapki (`World'), aby bylo wywietlane tylko jedno Gizmo dla
wszystkich zaznaczonych obiektów. Na razie moemy zamkn okno grupowania obiektów a
otwieramy okno kolapsowania obiektów klikajc na ikonie:



W tym oknie, na licie skolapsowanych obiektów (`(de)collapsed objects') zaznaczymy opcj
kolapsowania nowych obiektów (klikamy na opcji `<new> -d'):



Teraz musimy doda obiekty, które wczeniej zaznaczylimy na mapce za pomoc okna
grupowania obiektów. Zrobimy to za pomoc `+', który znajduje si na dole okna
kolapsowania obiektów (przycisk ten bdzie dostpny dopiero w momencie zaznaczenia opcji
`<new> -d'):

253

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Na licie szczególów kolapsowania (`Collapse details') pojawi si lista obiektów, które
chcemy skolapsowa:



Obiekty wywietlane s na czerwono, co by oznaczlo, e obiekty te stwarzaj jakie problemy
(wicej informacji znajdziecie w podrozdziale o kolapsowaniu obiektów). Tak jednak nie jest.
W tym przypadku wszystko jest w porzdku. Teraz bardzo wana uwaga! Nie wolno
kolapsowa obiektów z portalami np. PortalDrzwi.3da, PortalSzybaDuza.3da,
PortalSzybWindy itp.! Nie mona te kolapsowa obiektów, które maj przypisane klasy
LiftPlatform, LiftPlatformFloor, LiftPlatformButton, DoorsObject. Wszystkie te
nieodpowiednie obiekty musimy usun z listy obiektów do kolapsowania. Aby to zrobi
wyszukujemy taki obiekt na licie obiektów, które chcemy skolapsowa. Dla przykladu takim
obiektem jest PrzyciskParter (jak pamitamym, tak nazw mu nadalimy). Zaznaczamy ten
obiekt na licie a potem klikamy na przycisku `-`:


254

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Nie zapomnijcie usun inne obiektów, które nie mog by skolapsowane (szczególnie
obiekty z portalami). Zreszt przy próbie kolapsowania nieodpowiedniego obiektu pojawi si
komunikat informujcy, e obiekt nie moe by skolapsowany. Wicej informacji znajdziecie
w podrozdziale o kolapsowaniu obiektów. Nie kolapsujcie te obiektów SzybaDuza.3da.
Skoro nieodpowiednie obiekty usunlimy ju z listy to moemy klikn przycisku
`Collapse':



Pojawi si okno `Collapse Objects Info:



Proponuj w polu `Object name' wpisa tak sam nazw, jak ma grupa obiektów
(pomieszczenie), któr wlanie kolapsujemy. Potem klikamy na przycisku `OK'. Jeeli
wszysko przebiegnie poprawnie, to po chwili na licie skolapsowanych obiektów, pojawi si
nazwa, któr nadalimy kolapsowanym obiektom:




255

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Oczywicie nasze pomieszczenie, a dokladnie obiekty wchodzce w sklad pomieszczenia,
zostaly skolapsowane do jednego obiektu. I tak postpujemy z wszystkimi pomieszczeniami
­ kolapsujemy obiekty wchodzce w sklad tych pomieszcze tzn. podlog, sufit i ciany.
Otwieramy okno grup (`Grups'), otwieramy struktur grupy, któr bdziemy kolapsowa
(grup obiektów, któr ju skolapsowalimy moemy zamkn) itd. Nie musice kolapsowa
ostatniego pitra (o ile jest ono podobne do mojego), bo nie ma czego tam kolapsowa. I to w
zasadzie wszystko na temat kolapsowania naszego budynku. Gdy ju skolapsujemy wszystkie
pomieszczenia budynku, musimy ponownie stworzy polczenia midzy portalami. W tym
celu otwieramy okno atrybutów jednej z grup obiektów (moemy te otworzy okno
atrybutów obiektu Drzwi.3da). W oknie atrybutów obiektów przechodzimy na zakladk
`Indoors', upewniamy si, e zaznaczona jest opcja `all' na panelu `Objects' i klikamy na
przycisku `Create connections':



W porzdku. Zakoczylimy kolejny etap tworzenia mapki. Myl, e nie jest to a takie
trudne i powinnicie sobie z tym poradzi . Znowu uruchomcie mapk w trybie gry. Nie da
si ukry, e po skolapsowaniu po raz kolejny zyskalimy na wydajnoci tej mapki.

5.14 ,,Meblujemy" budynek.
Nasz budynek wyglda co raz lepiej. ciany, podloga i sufit jest, drzwi te s. Jest
nawet winda a nawet s portale . Budynek zostal te skolapsowany. Ale czego wci
brakuje! Pomieszczenia s za puste i wlanie w tym rozdziale to zmienimy. Dodamy kilka
krzesel (stoly ju mamy), dodamy kilka ekranów na cianach imitujcych komputery itp.
Wikszo obiektów, które moemy umieszcza wewntrz pomieszcze znajduje si w
katalogu \Data\Meshes\Inside\. Pamitajcie, e latwiej jest doda obiekt w pobliu miejsca
przeznaczenia ­ stawiajc jeden obiekt na drugim. W tym celu naley zaznaczy opcj `drop
to objects' na zakladce `Drop' w plug-in'ie ,,Mesh Browser":



Jak ju dodacie obiekt to potem go przesuncie w odpowiednie miejsce za pomoc Gizma.
Wane jest te, aby bylo wlczone snapowanie (przyciganie). Na pocztek dodamy kilka
obiektów na stoly, aby nie byly takie puste. Dodamy obiekt Puszka.3da (obiekt ten znajduje
si w katalogu \Data\Meshes\Objects\):


256



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Puszki ju mamy, ale zauwacie, e te puszki le. A co zrobi, aby je ,,postawi"? To do
proste, wykorzystamy do tego Gizmo oraz ikony do precyzyjnego ,,rzucania" obiektów na
inne obiekty. Najpierw musimy obróci obiekt w osi Z. Zaznaczamy obiekt Puszka.3da, który
ley na stole. Teraz klikamy myszk na niebieskie pólkole u podstawy Gizma:



Trzymajc wcinity lewy klawisz myszki wykonujemy ruch myszk w dól tak dlugo, a
puszka bdzie sta (wicej informacji na temat Gizma i operacji dokonywanych za pomoc
Gizma moecie przeczyta w jednym z powyszych podrozdzialów). Co prawda puszka
bdzie ,,wbita" w stól, ale tym si nie przejmujcie. Po prostu podniecie puszk za pomoc
Gizma tak, aby znalazla si nad stolem. Wysoko na jak podniesiecie puszk nie gra roli:

257



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Teraz za pomoc ikon do precyzyjnego rzucania obiektów dosuniemy puszk do blatu stolu.
Moe najpierw omówi znaczenie poszczególnych ikon a take ich dzialanie:



Ikony `X+', `X-`, `Y+', `Y-`, `Z+' i `Z-` to osie i kierunki (+ i -), w których ,,rzuca" si
obiekty. Pole z wartoci 500.00 (warto standardowa) z lewej strony ikon) to maksymalna
odleglo na jak si rzuca obiekty (prosz pamita, e 100 jednostek = 1m fizyczny). Jeeli
mamy zaznaczony jaki obiekt i klikniemy na której z ikon osi, to pojawi si kreska
symbolizujca dany kierunek. Jeeli kreska jest zielona oznacza to, e ta kreska z niczym na
danej odlegloci (tu 500) nie koliduje. Jeeli kreska jest czerwona oznacza to, e kreska na
danej odlegloci w co tafila. W takim przypadku po klikniciu na przycisku `Apply' (który
znajduje si z prawej strony ikon z osiami), zaznaczony obiekt zostanie dosunity do obiektu,
na który trafila czerwona kreska. Przechodzimy do praktyki. Pamitajcie, aby byl ustawiony
tryb koordynacji osi lokalny. Zaznaczamy obiekt Puszka.3da (ten, który przed chwilk
obracalimy, o ile nie jest ju zaznaczony). Chcemy przesun puszk prosto w dól (do blatu
stolu). Normalnie przesunlibymy ten obiekt za pomoc czerwonej strzalki Gizma. Jeeli
spojrzymy na ikony osi to zauwaymy, e ikony te maj takie same kolory jak strzalki Gizma.
Dziki temu mona si lepiej orientowa. W takim razie klikamy na ikonie `X+'. Pojawi si
kreska. U mnie jest to czerwona kreska skierowana ku górze:



Skoro jest czerwona oznacza to, e na co natrafila. W tym przypadku jest to sufit. Gdybymy
teraz klikneli na przycisku `Apply' obiekt puszki zostalby dosunity do sufitu. Nie o to nam

258



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
chodzi (no i lamie to prawa fizyki ). W takim razie klikamy na ikonie `X-`. Tym razem
kreska skierowana jest w dól i take jest czerwona:



Skoro jest czerwona, to znowu na co trafila. Tym razem jednak jest to stól. Dobrze! Klikamy
na przycisku `Apply' (przycisk ten znajduje si z prawej strony z ikonami osi). Zrobione!
Obiekt zostanie dosunity do stolu:



Moemy by pewni, e puszka ley na blacie stolu. Na inne stoly dodajcie obiekt
HologramTeren.3da (obiekt ten znajduje si w katalogu \Data\Meshes\Inside\):


259



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W razie potrzeby wykorzystajcie ikony do precyzyjnego ,,rzucania. Wokól stolów moecie
doda obiekt Sterowka_Fotel.3da (obiekt ten znajduje si w katalogu \Data\Meshes\Movies\):



Moecie te do cian doda monitory. Najpierw dodajemy do ciany obiekt Monitor.3da
(obiekt ten znajduje si w katalogu \Data\Meshes\Inside\):


260



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W razie potrzeby mona przeskalowa ten obiekt (powikszy go lub zmniejszy, zalenie od
potrzeb). Teraz do obiektu Monitor.3da dodajemy obiekt 50x50TekstNiebieski.3da (obiekt
ten znajduje si w katalogu \Data\Meshes\Inside\Screens\):



Mona te wykorzysta obiekty 50x50TekstBursztynowy.3da i 50x50TekstZielony.3da. Przy
dodawaniu monitorów wykorzystajcie ikony do precyzyjnego ,,rzucania" obiektów na inne
obiekty. Te ikony naprawd ulatwiaj prac. Postarajcie si urozmaici Wasze
pomieszczenia. Zobaczcie jak wygldaj pomieszczenia grajc w gr Chrome. Jest naprawd
wiele obiektów, które mona tam doda. Wszystko zaley od Was i od Waszego projektu.
Nie zapomnijcie do kadego obiektu wczyta model wiatla (o ile dany obiekt posiada jaki
model wiatla) lub dodajcie swoje wiatlo (obiekt `Light'). Wane jest te to, aby kady
obiekt, który dodacie w danym pomieszczeniu (oprócz obiektów pomocniczych tzw.
helperów) doda do grupy pomieszczenia, w którym ten obiekt si znajduje! Jak to zrobi to
ju powinnicie wiedzie, ale dla przypomnienia: zaznaczamy obiekt, który chcemy doda do
grupy, otwieramy okno grupowania obiektów, otwieramy grup obiektów (za pomoc
przycisku `Open'), do której chcemy doda zaznaczony obiekt i klikamy na przycisku `Add
selected'. Na koniec grup moecie zamkn klikajc na przycisku `Close'. Jeeli obiektu nie
dodacie do grupy, to bdzie problem z wywietlaniem tego obiektu. Ma to zwizek z
portalami, które po prostu przechodz przez grupy obiektów. Dodane obiekty mona te
skolapsowa, z tym, e nie kolapsujcie ich jako cz podlogi, sufitu itp.! Niech to bdzie
oddzielna kolapsacja. Zawsze najpierw kolapsuje si podlog, ciany i sufit pomieszcze a
potem dodatkowe obiekty wchodzce w sklad danego pomieszczenia jak np. skrzynki,
monitory itp. jako oddzielna kolapsacja.


261

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
5.15 Generujemy lightmap' dla budynku.
Ostatnie, co nam pozostalo, to wygenerowanie lightmap'y dla budynku a take dla
poszczególnych pomieszcze i obiektów wchodzcych w sklad tych pomomieszcze.
Lightmap' generowa bdziemy za pomoc okna atrybutów obiektów, na zakladce
`Lighting'. Poniewa szczególowo opisalem t zakladk w podrozdziale o atrybutach
obiektów, to w tym rozdziale nie bd tego robil. Napisz tylko, jakie ustawi parametry dla
poszczególnych obiektów. Zaczniemy od obiektu Posterunek.3da (czyli glównego obiektu
naszego budynku). Otwieramy okno atrybutów tego obiektu i przechodzimy na zakladk
`Lighting'. Ustawiamy parametry tego obiektu w sposób podany poniej:
`use
lightmaps'
zaznaczamy
`Samples per pixel'

1
`Texels'
5
`Ambient color'

R = 70, G = 70, B = 70
`cast
shadows'
zaznaczamy
`receive
shadows'
zaznaczamy
`use all editor lights'

odznaczamy
`use sun light'


zaznaczamy
`raytrace in both directions'
zaznaczamy



Klikamy na przycisku `Apply' w oknie atrybutów obiektów, aby potwierdzi wprowadzone
zmiany. W zasadzie s to standardowe ustawienia, wic nie musimy nic zmienia.Teraz
otwieramy okno atrybutów obiektu pomieszczenia, który skolapsowalimy. Najpierw musimy
otworzy grup obiektów tego pomieszczenia za pomoc okna grupowania obiektów.
Otwieramy to okno i klilkmy na przycisku `Open all'. Dopiero teraz moemy otworzy okno
atrybutów skolapsowanego pomieszczenia. Ustawiamy parametry tego obiektu w sposób
podany poniej:
`use
lightmaps'
zaznaczamy
`Sampkes per pixel'

1
`Texels'
3
`Ambient color'

R = 32, G = 32, B = 32
`cast
shadows'
zaznaczamy
`receive
shadows'
zaznaczamy
`use all editor lights'

odznaczamy
`use sun light'


zaznaczamy

262

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
`raytrace in both directions'
zaznaczamy



Nie zapomnijcie klikn na przycisku `Apply', aby potwierdzi wprowadzone zmiany.
Pozostalym obiektom dostpnym w naszym budynku moemy ustawi parametry w sposób
podany poniej:
`use
lightmaps'
zaznaczamy
`Samples per pixel'

1
`Texels'
1
`Ambient color'

R = 32, G = 32, B = 32
`cast
shadows'
zaznaczamy
`receive
shadows'
zaznaczamy
`use all editor lights'

odznaczamy
`use sun light'


zaznaczamy



I to by bylo na tyle. Jeeli zauwaycie, e kolor ambientowy (`Ambient color') jest róny
inny od czarnego (R = 0, G = 0, B = 0) to proponuj taki kolor pozostawi. Teraz otwieramy
okno atrybutów jakiego obiektu wchodzce w sklad naszego budynku (moe to by nawet

263


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
budynek glówny, czyli obiekt Posterunek.3da), tam przechodzimy na zakladk `Lighting' i
klikamy na przycisku `Generate for all objects':



Moemy take klikn na przycisku `Generate'. Wtedy wygenerujemy lightmap' tylko dla
zaznaczonych obiektów. Po klikniciu na jednym z przycisków, otworzy si okno `Generate
lightmaps', gdzie klikamy na przycisku `Start'. Rozpocznie si proces generowania
lightmap'y dla naszego budynku. Ostrzegam, e moe to by proces czasochlonny (wszystko
zaley od prdkoci procesora Waszego komputera i iloci posiadanej pamici RAM). Po
zakoczeniu procesu generowania lightmap'y pojawi si odpowiedni komunikat:



Wystarczy klikn na przycisk `OK'. I gotowe!!! W katalogu z nasz mapk pojawi si
podkatalog \LMaps\ z lightmap'ami dla poszczególnych obiektów. A my moemy zobaczy
jak wyglda nasz budynek z wygenerowan lightmap' :



Gdyby w jakim pomieszczeniu bylo zbyt ciemno, to dodajcie dodatkowe owietlenie lub
zmodyfikujcie to, które ju tam jest. Pamitajcie, e jak dodacie nowe wiatlo czy
zmodyfikujecie inne, to trzeba jeszcze raz wygenerowa lightmap' dla danego obiektu lub
nawet calego pomieszczenia.

264

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

5.16 Uwagi kocowe na temat budynków i obiektów.
W ten sposób zakoczylimy skladanie budynku. Koczmy te rozdzial o obiektach.
Myl, e caly etap skladania budynków nie jest a taki trudny, tym bardziej, e raz zloony
budynek moemy wyeksportowa jako grup selekcji obiektów. Póniej, jak bdziecie
tworzy kolejn mapk , moecie tak grup selekcji zaimportowa. Unikniecie ciglego
skladania budynków. Wicej informacji na ten temat znajdziecie w podrozdziale
o zaznaczaniu i selekcji obiektów. Przy skladaniu budynków trzymajcie si pewnego
schematu:
1. Dodajecie podlog, ciany i sufit a take wejcia (ew. windy), jeeli istnieje taka potrzeba
to skladacie kilka pomieszcze.
2. Dodajecie owietlenie do poszczególnych obiektów a take obiekty z portalami.
3. Obiekty wchodzce w sklad danego pomieszczenia (podloga, ciany, sufit itd.) grupujecie
tworzc grupy z pomieszczeniami. Pamitajcie, e do grupy nie wolno dodawa takich
obiektów jak Drzwi.3da (obiekt z przypisan klas DoorsObject) czy WindaPlatformaA.3da
(obiekt z przypisan klas LiftPlatform). Nie dodawajcie te obiektów pomocniczych
edytora ChromEd tzw. helperów.
4. Tworzycie polczenia midzy portalami.
5. Kolapsujecie obiekty wchodzce w sklad poszczególnych pomieszcze (podloga, ciany,
sufit itd.). Pamitajcie, e nie moecie kolapsowa obiektów z portalami, a take innych
obiektów, które nie mog by kolapsowane.
6. Ponownie tworzycie polczenia midzy portalami.
7. Do pomieszcze dodajecie inne obiekty np. krzesla, komputery itp. Jednym slowem
,,meblujecie" pomieszczenia. Nie zapomnijce o dodaniu owietlenia do tych obiektów a
take o dolczeniu ich do grupy obiektów danego pomieszczenia. Moecie te te obiekty
skolapsowa.
8. Generujecie lightmap' dla wszystkich obiektów wchodzcych w sklad pomieszcze. Nie
zapomnijcie wygenerowa lightmap'y dla glównego obiektu budynku. Jeeli chcecie
zaoszczdzi miejsca na dysku, to podkatalog \LMaps\ moecie skompresowa do pliku
zip. Wicej informacji na ten temat znajdziecie w podrozdziale o atrybutach obiektów.
To tyle moich uwag. Mam nadziej, e ten schemat ulatwi Wam w jakim stopniu prac.
Najwiksze efekty osigniecie, gdy samy bdziecie eksperymentowa. Jest to o wiele lepsze
ni teoria.



Rozdzial 6 ­ Jak...

6.1 Wstp.
W tym rozdziale opisz tworzenie zdarze w edytorze ChomEd. Pozwoli to doda
naszej mapce troch elementów ,,z ycia codziennego" , tym samym nasza mapka stanie si
bardziej atrakcyjna i grywalna. Dotyczy to zarówno mapek singleplayer'owych jak i
multiplayer'owych, cho niektóre z tych zdarze bd dziala tylko na mapkach
singleplayer'owych, inne tylko na multiplayer'owych a jeszcze inne na obu. Oczywicie w
razie potrzeby napisz, na jakiej mapce dane zdarzenie mona stosowa. Z tego rozdzialu
dowiecie si te, jakie klasy Java trzeba przypisa do obiektów oraz jak ustawi atrybuty tych
klas, aby osign zamierzony cel np. ruch windy. W zasadzie postaram si opisa wikszo
zdarze, które moecie zaobserwowa podczas gry Chrome. Do potrzeb tego rozdzialu
wykorzystywalem mapk, któr wspólnie stworzylimy . Jednak abycie mogli w 100%

265


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
wykorzysta wiadomoci zawarte w tym rozdziale, musicie wiedzie wszystko o obiektach a
take zna obslug narzdzi zwizanych z obiektami. Nie powinno by dla Was tajemnic jak
zmieni nazw obiektu czy przypisa mu jaks klas itp. Jeeli czego nie bdziecie
wiedzieli, to zawsze moecie si cofn do rozdzialu o obiektach. Z tego rozdzialu dowiecie
si take, jak dodawa nowe elementy atrybutów, usuwa je itp. Wszystkie nazwy obiektów,
jakie bdziemy nadawa w tym rozdziale s nazwami przykladowymi zaproponowanymi
przeze mnie. Wy sami powinnicie wiedzie, jak nazw nada obiektom na Waszej mapce.

6.2 ... zrobi wiee stranicz?
Do stworzenia wiey straniczej (na któr bdzie mona wjecha za pomoc windy)
potrzebne bd nastpujce obiekty (obok podaje katalog gdzie, dany obiekt mona znale):
WiezaMala_Kolumna.3da
(\Data\Meshesh\Constructions\)
WiezaMala_Gondola.3da
(\Data\Meshesh\Constructions\)
WiezaMala_Winda.3da
(\Data\Meshesh\Constructions\)
Poniewa chcemy w jaki sposób przywolywa wind wiey, potrzebny bdzie jeszcze obiekt
PrzyciskStojak.3da (\Data\Meshesh\Inside\). Ok, musimy najpierw zloy wie w jedn
calo. Za pomoc plug-in'a ,,Mesh Browser" dodajemy obiekt WiezaMala_Kolumna.3da do
naszej mapki. Wlczamy snapowanie (przyciganie obiektów) i na dól kolumny wiey
dodajemy obiekt WiezaMala_Windwa.3da (moliwe, e trzeba bdzie obróci obiekt windy
tak, aby pasowal do wiey):



Na szczycie kolumny wiey dodajemy obiekt WiezaMala_Gondola.3da:


266




wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Tylko sprawdcie czy gondola jest dobrze skierowana w stosunku do kolumny wiey, tak jak
na powyszym rysunku. Na spód kolumny wiey, zaraz obok widny, dodajemy obiekt
PrzyciskStojak.3da (za pomoc tego przycisku bdziemy sprowadza wind na dól). Taki
sam obiekt dodajemy na gondoli wiey (za pomoc tego przycisku bdziemy sprowadza
wind do góry):




Na tym zakoczylimy skladanie wiey. Teraz musimy odpowiednim obiektom przypisa
odpowiednie klasy Java, zmienimy te nazwy obiektów. Dla przypomnienia napisz jak to
naley robi, ale wicej informacji znajdziecie w rozdziale o obiektach w podrozdziale o
windzie. Dwukrotnie klikamy na obiekcie WiezaMala_Kolumna.3da przywolujc w ten
sposób okno atrybutów obiektu. Zmiemy nazw tego obiektu na MojaWieza oraz, w razie
potrzeby, przypiszmy mu klas LiftPlatfromFloor (MeshObject -> LiftPlatformFloor):


267

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Aby przypisa klas do obiekty naley klikn na przycisku trzykropka obok pola `Class' i w
oknie `Choose class' wybra odpowiedni klas. Klikamy na przycisku `Apply' w celu
potwierdzenia zmian. To samo zróbmy z obiektem WiezaMala_Gondola.3da: nadajmy mu
nazw MojaGondola i w razie potrzeby przypisujemy mu LiftPlatformFloor (MeshObject ->
LiftPlatformFloor):



Tylko nie zapomnijcie klikn na przycisku `Apply' w celu potwierdzenia zmian. Dobrze.
Teraz zajmiemy si obiektem WiezaMala_Winda.3da. Nadajmy mu nazw MojaWinda i w
razie potrzeby przypiszmy klas LiftPlatform (MeshObject -> TriggerObject ->
LiftPlatformBase -> LiftPlatform):



Aby dalsza praca byla latwiejsza, zablokujmy zaznaczenie na tym obiekcie (wystarczy
zaznaczy obiekt MojaWinda i nacisn klawisz SPACE). Obiekt MojaWinda ma przypisan
klas LiftPlatform a klasa ta posiada m.in. atrybut aFloors, któremu naley przypisa obiekty,
na których obiekt z klas LiftPlatform, bdzie si zatrzymywal. Wiea stranicza, któr
tworzymy, wykorzystuje takie same klasy jak winda. Wicej na ten temat znajdziecie w
rozdziale o obiektach w podrozdziale o windzie. W oknie atrybutów obiektu MojaWinda
przechodzimy na zakladk `Java'. W sekcji LIFTPLATFORM zaznaczamy atrybut aFloors:



Teraz klikamy prawym klawiszem myszki na obiekcie MojaWieza. Otworzy si menu, z
którego wybieramy polecenie Set <MojaWieza> as <aFloors>:



Musimy klikn jeszcze prawym przyciskiem myszki na obiekcie MojaGondola i z menu,
które si otworzy wybra polecenie Set <MojaGondola> as <aFloors>:


268


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Na koniec klikamy na przycisku `Apply'. Obiekty MojaWieza i MojaGondola zostaly
przypisane do atrybutu aFloors obiektu MojaWinda:



W ten sposób poinformowalimy obiekt MojaWinda, gdzie ma si zatrzymywa. Od teraz, za
kadym razem, gdy zaznaczymy atrybut aFloor obiektu MojaWinda, obiekty MojaKolumna i
MojaGondola zostan obramowane na ólto:



Ok, mona ju odblokowa zaznaczenie obiektu MojaWinda naciskajc ponownie klawisz
SPACE. Sama winda ju dziala! Moemy j normalnie ju uywa, jednak chcemy jeszcze
mie moliwo przywolywania windy za pomoc przycisków. Otwieramy okno atrybutów
obiektu PrzyciskStojak.3da znajdujcego si na dole kolumny. Nadajmy mu nazw
MojPrzycisk1 i przypiszmy klas LitftPlatformButton (MeshObject -> TriggerObject ->
Actor -> ChromeActor -> Destroyable -> AnimatedScreen -> LiftPlatformButton):



Musimy jeszcze ustawi odpowiednie atrybuty tego obiektu. Obiekt MojPrzycisk1 ma
przypisan klas LiftPlatformButton. Klasa ta posiada m.in. atrybut cControlledLift, któremu
naley przypisa obiekt, który bdzie przywolywany przez obiekt z klas LiftPlatformButton,

269

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
a take atrybut cFloorRef, któremu naley przypisa obiekt, na którym bdzie zatrzymywal
si przywolywany obiekt. W oknie atrybutów obiektu zaznaczamy atrybut cControledLift (na
zakladce `Java'):



Teraz klikamy prawym klawiszem myszki na obiekcie MojaWinda. Otworzy si menu, z
którego wybieramy polecenie Set <MojaWinda> as <cControledLift>:



Podobnie robimy z atrybutem cFloorRef tzn. zaznaczamy go a potem klikamy prawym
przyciskiem myszki na obiekcie MojaWieza i z menu wybieramy polecenie
Set <MojaWieza> as <cControlledLift>. Na koniec kilkamy na przycisku `Apply', aby
potwierdzi wszystkie zmiany. Pozostal nam jeszcze drugi przycisk. W oknie atrybutach
obiektów nadajemy mu nazw np. MojPrzycisk2 i w razie potrzeby przypisujemy mu klas
LiftPlatformButton (MeshObject -> TriggerObject -> Actor -> ChromeActor ->
Destroyable -> AnimatedScreen -> LiftPlatformButton):



Teraz na zakladce `Java' w sekcji BUTTON przypisujemy atrybutowi cControlledLift obiekt
MojaWinda (jak to zrobi to ju wiecie) a atrybutowi cFloorRef przypisujemy obiekt
MojaGondola:



I to wszystko! Nasza wiea jest gotowa i dziala. Uruchomcie tryb gry i sprawdcie. Jeeli
chcecie, to moecie zgrupowa cal wie. Musicie jednak wiedzie, e obiekt MojaWinda
(ogólnie obiekty z przypisan klas LiftPlatform) nie moe by zgrupowany tzn. nie moe
nalee do adnej grupy obiektów! Wicej informacji na temat grupowania znajdziecie w
rozdziale o obiektach w podrozdziale o grupowaniu i rozgrupowaniu obiektów. To tyle. Jeeli
chcecie sprawdzi czy dzialaj nasze przyciski przywolujce wind to musicie troch
pokombinowa. Proponuj wej na wind, uruchomi j i w momencie, gdy winda zacznie
jecha w gór, zeskocznie z niej. Tym samym winda pojedzie do góry bez Was a Wy
bdziecie mogli przywola j za pomoc przycisku na dole (poczekajcie a winda dojedzie do
samej góry). A jak sprawdzi dzialanie przycisku u góry? Có, Wasza ju w tym glowa .
W zasadzie wszystkie obiekty maj przypisane odpowiednie klasy np. obiekt
PrzyciskStoajk.3da standardowo ma przypisan klas LiftPlatformButton. Nie ma wic

270


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
potrzeby ponownego przypisywania klas do obiektów, dlatego zaznaczalem, aby to zrobi w
razie potrzeby.

6.3 ... blokowa / odblokowa drzwi za pomoc terminala?
Zaczniemy od dodania terminala za pomoc, którego bdziemy mogli zablokowa lub
odblokowa otwieranie drzwi. Bdzie to terminal, doczepiony obok samych drzwi. W tym
celu za pomoc plug-in'a ,,Mesh Browser" dodajemy obiekt TerminalKlawiatura.3da (obiekt
ten znajduje si w katalogu \Data\Meshes\Inside\) do obiektu PrzepierzenieF.3da (lub innego
obiektu z podobym przepierzeniem):



Pamitajcie, aby bylo wlczone snapowanie (przyciganie) obiektów. Teraz otwieramy okno
atrybutów obiektu Drzwi.3da. Obiekt ten ma przypisan klas DoorsObject (MeshObject ->
DoorableBase -> DoorsObject). Klasa ta posiada m.in. atrybut bLock, który pozwala
zablokowa (warto true) lub odblokowa (warto false) dzialanie tego obiektu. Zmiemy
nazw tego obiektu na Drzwi. Na zakladce `Java' ustawiamy warto atrybutu bLock w
sekcji DOORSOBJECT na true:



W ten sposób zablokujemy drzwi ­ nie bd si one otwieraly w momencie, gdy zbliy si do
nich gracz, chyba, e prdziej je odblokuje wlanie za pomoc terminala. Teraz otwieramy
okno atrybutów obiektu TerminalKlawiatura.3da. Zmiemy jego nazw na Klawiatura a
take przypiszmy mu klas ComputerTerminalNew (MeshObject -> TriggerObject ->
Actor -> ChromeActor -> AnimatedScreen -> ComputerTerminalNew):


271

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Klikamy na przycisku `Apply' w celu potwierdzenia zmian. W momencie, gdy gracz
uruchomi terminal (za pomoc klawisza F) bdzie mial dostp do menu, za pomoc, którego
bdzie mógl zablokowa drzwi (jeeli byly odblokowane) lub je odblokowa (jeeli byly
zablokowane). Cale menu musi dziala tak, aby w momencie, gdy drzwi s zablokowane,
gracz mógl wybra tylko polecenie odblokowania drzwi, i na odwrót tzn., gdy drzwi bd
odblokowane, gracz moe wybra tylko polecenie zablokowania drzwi. Klasa
ComputerTerminalNew posiada m.in. atrybut aMenuGuest, który pozwala tworzy menu
terminala. Najpierw musimy doda element menu. W tym celu zaznaczamy atrybut
aMenuGuest w sekcji MENU:



i naciskamy klawisz INSERT. Dodalimy nowy element do atrybutu aMenuGuest:



Tak wlanie dodaje si nowe elementy do atrybutów, za pomoc klawisza INSERT ­
zaznaczamy atrybut, do którego chcemy doda nowy element i naciskamy klawisz INSERT.
Tu do wana uwaga, nie do wszystkich atrybutów mona dodawa nowe elementy.
Atrybuty, do których moemy dodawa nowe elementy maj na kocu dwa nawiasy
kwaratowe np. `aMenuGusert <mnu_Element[]>' (dokladnie oznacza to tablic elementów
danego atrybutu). Teraz z listy dostpnej obok nowo dodanego elementu wybieramy
mnu_Action:



W ten sposób stworzylimy element menu, który bdzie odpowiedzialny za jak akcj (typ
mnu_Action). W naszym przypadku akcj bdzie blokowanie lub odblokowanie otwierania
drzwi. Musimy ustawi kilka atrybutów nalecych do nowego elementu. Przypisujemy
atrybutowi sName tekst ,,Odblokuj drzwi". Jest to nazwa elementu menu, któr gracz zobaczy
na terminalu. Musimy te ustawi warunek, na podstawie, którego ten element menu bdzie
dostpny na terminalu (podwietlany jasnym kolorem). Z listy atrybutu cEnableCondition
wybieramy cnd_IsLocked:



272

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

Warunek ten sprawdza, czy dany obiekt jest zablokowany (typ cnd_IsLocked). Musimy
wybra obiekt, dla którego bdzie sprawdzany ten warunek. Poniewa wybralimy typ
cnd_IsLocked, to moemy wybra tylko te obiekty, które maj przypisan klas DoorsObject.
Takim obiektem s nasze drzwi. Wybieramy je z listy cTarget:



Caly warunek, który wlanie stworzylimy, mona odczyta w do prosty sposób: ,,jeeli
obiekt Drzwi jest zablokowany, to ... (tu akcja)". Zwrócie uwag na warto atrybutu
cNegate. Obecna warto tego atrybutu, to false (falsz). Gdybymy nadali mu warto true
(prawda), warunek brzmialby: ,,jeeli obiekt Drzwi nie jest zablokowany, to... (tu akacja)".
Jeeli atrybut cNegate ma warto true (prawda), to zaprzecza on warunkowi
cEnableCondition (neguje ten warunek). Poniewa my wczeniej zablokowalimy drzwi,
obecnie warunek ten jest prawdziwy, wic na terminalu bdzie podwietlany na jasno. Teraz
musimy stworzy akcj, która zajdzie w momencie, gdy gracz wybierze ten element menu na
terminalu. W tym celu zaznaczamy atrybut aOnCommand:



i naciskamy klawisz INSERT. W ten sposób dodalimy nowy element (now akcj) do
atrybutu aOnCommand:



Jeeli jest to potrzebne, to mona doda wicej elementów do atrybutu aOnCommand.
Pamitajcie, e akcje w atrybucie aOnCommand (i nie tylko, dotyczy to wszystkich
atrybutów, do których moemy dodawa akcj) wykonywane s po kolei ­ od góry na dól!
Jeeli chcemy doda jaki element (akcj) pomidzy element ju dodany, to po prostu
zaznaczamy element atrybutu aOnCommand i naciskamy klawisz INSERT. Jeeli
zaznaczymy ponownie atrybut aOnCommand i naciniemy klawisz INSERT, to nowy
element pojawi si na kocu elementów ju dodanych. Teraz z listy dostpnej obok nowo
dodanego elementu wybieramy act_LockUnlock:



W ten sposób dodalimy now akcj. Akcja ta bdzie miala miejsce, jeeli zostanie spelniony
warunek, który wczeniej stworzylimy. Akcja typu act_LockUnlock odpowiada za
blokowanie lub odblokowanie obiektów. Musimy jeszcze ustawi atrybuty nalece do
nowego elementu. Najpierw musimy zaznaczy, który obiekt ma by blokowany lub

273

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
odblokowany (zalenie od atrybutu cType, o czym za chwil). W tym celu zaznaczamy
atrybut cTarget:



Teraz klikamy prawym przyciskiem myszki na obiekcie Drzwi. Otworzy si menu, z którego
wybieramy polecenie Set <Drzwi> as <cTarget>:



Obiekt Drzwi zostanie automatycznie obramowany na ólto (przypisalimy go do atrybutu
cTarget). Oczywicie do przypisywania obiektów do atrybutów mona wykorzysta okno
zaznaczania i selekcji obiektów (opisalem to w poprzednim podrozdziale). Teraz z listy
atrybutu cType wybieramy _UNLOCK:



Typ _UNLOCK odblokowuje obiekt cTarget, czyli w tym przypadku nasz obiekt Drzwi.
Przypisujemy atrybutowi sMessage tekst ,,Drzwi zostaly odblokowane":



Jest to wiadomo, która pojawi si na terminalu po odblokowaniu drzwi. Klikamy na
przycisku `Apply' okna atrybutów obiektów w celu potwierdzenia wszystkich zmian. Cale
zdarzenie, które stworzylimy powinno wyglda tak:


274

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Kliknijcie na maly minus obok nowo dodanego elementu do atrybutu aMenuGuest
(zaznaczony na czerwono na powyszym rysunku). W ten sposób zwiniemy zawarto
pierwszego elementu menu:



Bdzie nam latwiej przy tworzeniu kolejnego elementuy menu. Dobrze. Podsumujmy, co
zrobilimy . Dodalimy pierwszy element menu o nazwie ,,Odblokuj drzwi". Ten element
bdzie dostpny na terminalu (podwietlany na jano), jeeli drzwi s zablokowane. Po
wybraniu tego elementu menu na terminalu, drzwi zostan odblokowane i pojawi si
wiadomo ,,Drzwi zostaly odblokowane". Poniewa po odblokowaniu drzwi, warunek
cEnableCondition bdzie nieprawdziwy, napis ,,Oblokuj drzwi" bdzie niedostpny
(podwietlony na ciemno). Teraz musimy doda kolejny element menu, który bdzie
pozwalal zablokowa drzwi. Zaznaczamy atrybut aMenuGuest w sekji MENU:



i naciskamy klawisz INSERT. W ten sposób dodamy kolejny element do atrybutu
aMenuGuest:



Z listy obok nowo dodanego elementu menu ponownie wybieramy typ mnu_Action (tak jak
to robilimy poprzedniu), tworzc w ten sposób element menu odpowiedzialny za jak akcj:

275

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Teraz atrybutowi sName przypisujemy tekst ,,Zablokuj drzwi" a z listy atrybutu
cEnableCondition wybieramy typ cnd_IsLocked:



Element menu ,,Odblokuj drzwi" bdzie dostpny (podwietlany na jasno) w momencie, gdy
drzwi bd odblokowane a poniewa typ warunku cnd_IsLocked sprawdza czy drzwi s
zablokowane, musi negowa ten warunek przypisujc warto true (prawda) do atrybutu
bNegate. Dodatkowo musimy wybra obiekt, dla którego bdzie sprawdzany ten warunek.
Wic z listy cTarget wybieramy obiekt z naszymi drzwiami:



Jak latwo si domyle tym razem moemy odczyta caly warunek jako: ,,jeeli obiekt Drzwi
nie jest zablokowany, to (tu akcja)". Teraz musimy stworzy akcj, która zajdzie w
momencie, gdy gracz wybierze ten element menu na terminalu. Zaznaczamy atrybut
aOnCommand:



i naciskamy klawisz INSERT aby doda nowy element (akcj) do atrybutu aOnCommand:



Z listy obok nowo danego elementu wybieramy akcj typu act_LockUnlock:



Tym razem akcja, któr tworzymy, bdzie odpowiadala za blokowanie otwierania drzwi.
Najpierw zaznaczymy, który obiekt ma by zablokowany. Zaznaczamy atrybut cTarget:

276

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



a potem klikamy prawym przyciskiem na obiekcie Drzwi. Otworzy si menu, z którego
wybieramy polecenie Set <Drzwi> as <cTarget>:



Obiekt drzwi zostanie obramowany na ólto. Z listy atrybutu cType wybieramy typ _LOCK:



W zasadzie jest to typ domylny, wic nie trzeba nic zmienia. Typ _LOCK blokuje obiekt
cTarget, czyli nasz obiekt Drzwi. Atrybutowi sMessage przypisujemy tekst ,,Drzwi zostaly
zablokowane":



Ta wiadomo pojawi si na terminalu po zablokowaniu drzwi. Klikamy na przycisku
`Apply' okna atrybutów obiektów w celu potwierdzenia wszystkich zmian. Drugie zdarzenie,
jakie stworzylimy, powinno wyglda tak:


277

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Przy drugim elemencie menu take kliknijcie na maly minus (zaznaczony na czerwono na
powyszym rysunku), aby zwin zawarto tego elementu:



Podsumowujc nasze dokonania, dodalimy drugi element menu o nazwie ,,Zablokuj drzwi".
Ten element bdzie dostpny na terminalu (podwietlany na jano), jeeli drzwi s
odblokowane. Po wybraniu tego elementu menu na terminalu, drzwi zostan zablokowane i
pojawi si wiadomo ,,Drzwi zostaly zablokowane". Element menu ,,Zablokuj drzwi" bdzie
ju niedostpny (warunek cEnableCondition bdzie nieprawdziwy, bo drzwi bd ju
zablokowane), podwietlony na szaro. Na koniec dodamy jeszcze jeden element menu, który
pozwoli opuci terminal. Zaznaczamy atrybut aMenuGuest w sekcji MENU:



i naciskamy klawisz INSERT. Z listy obok nowo dodanego elemenut wybieramy mnu_Exit a
atrybutowi sName przypisujemy tekst ,,Opusc terminal":



278


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

Klikamy na przycisku `Apply', aby potwierdzi zmiany. W ten sposób dodalimy ostatni
element menu pozwalajcy opuci terminal. Element menu typu mnu_Exit sam zadba o to,
aby tak si stalo. Nic ju nie musimy robi. Uruchamiamy tryb gry i uruchamiamy terminal:



Na koniec kilka uwag. Kady dodany element do atrybutu za pomoc klawisza INSERT,
mona usun za pomoc klawisza DELETE. W tym celu wystarczy zaznaczy element,
który chemy usun:



i naciskamy klawisz DELETE. Element zostanie usunity. Pamitajcie, aby zmiany
potwierdzi klikajc na przycisku `Apply'. Klasa ComputerTerminalNew (jak pamitamy
tak klas ma przypisan obiekt Klawiatura) posiada jeszcze jeden atrybut pozwalajcy
tworzy menu terminala, jest to atrybut aMenuAdmin:



Gdybymy nasze menu stworzyli uywajc tego atrybutu (zamiast aMenuGuest), gracz
musialby najpierw hakowa terminal za nim móglby, co kolwiek zrobi (zablokowa lub
odblokowa drzwi). Jeeli chcemy, to moemy przypisa tekst atrybutowi sTip w sekcji
TRIGGER:


279


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Tekst ten pojawi si pod terminalem w momencie, gdy gracz bdzie na niego zerkal:



Zamiast przypisywania poszczególnych tekstów do atrybutów, mona przypisa tag
tekstu pochodzcy ze stringów. Wicej na ten temat w rozdziale o aspektach gry singleplayer
w podrozdziale o dialogach. Uwaga! Terminale nie dzialaj na mapkach dla gry multiplayer!

6.4 ... zrobi drabin?
Najpierw dodamy obiekt drabiny. W tym celu za pomoc plug-in'a ,,Mesh Browser"
dodajemy obiekt DrabinaDol.3da (obiekt ten znajduje si w katalogu
\Data\Meshes\Constructions\Walls\):


280


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W razie potrzeby obrócie obiekt za pomoc Gizma lub okna atrybutów obiektów. Jeeli
drabina ma by dolczona do jakiego obiektu np. ciany (tak jak ja to zrobilem, co wida na
powyszym rysunku) to musimy zadba o to, aby obiekt DrabinaDol.3da przylegal do samej
ciany. Do tego celu mona wykorzysta ikony do precyzyjnego rzucania obiektów na
obiekty. W katalogu \Data\Meshes\Constructions\Walls\ znajduj si jeszcze obiekty
Drabina.3da i DrabinaGora.3da. Obiekt DrabinaDol.3da zawsze dodajemy na dól drabiny.
Jeeli drabina ma by wysza, to na gór obiektu DrabinaDol.3da musimy doda obiekt
Drabina.3da. Na koniec drabiny dodajemy zawsze obiekt DrabinaGora.3da. Kady z tych
obiektów ma haki, co pozwala odpowiednio dolcza jeden obiekt do drugiego. Pamitajcie,
aby bylo wlczone snapowanie (przyciganie) obiektów. Wicej na temat haków znajdziecie
w rozdziale o obiektach w podrozdziale o budynkach. Jeeli drabina ma mie odpowiedni
wysoko a do osignicia tej wysokoci brakuje zaledwie paru szczebli, to nie musimy
dodawa kolejnego obiektu. Wystarczy przeskalowa ten obiekt, który ju dodalimy. W tym
celu otwieramy okno atrybutów tego obiektu i przechodzimy na zakladk `Matrix'. Obiekt
trzeba przeskalowa tylko w osi Y. Aby bylo wygodniej, ustawimy odpowiedni skok, z jakim
bdzie nastpowalo przeskalowanie. W sekcji `Scale' na panelu `Sprinter steps' wpisujemy
warto 0.01:



Teraz klikamy na jedn z malych strzaleczek przy polu wartoci skalowania dla osi Y ­
kliknicie na strzaleczk skierowan do góry powoduje powikszenie obiektu, natomiast
kliknicie na strzaleczk skierowan w dól, powoduje pomniejszenie obiektu:




281


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Wicej informacji na ten temat znajdziecie w rozdziale o obiektach w podrozdziale o
atrybutach obiektów. Teraz do calej drabiny musimy doda kolejny obiekt. Ten obiekt take
nazwa si Drabina.3da, ale znajduje si w katalogu \Data\Interface\. Jest to specjalny obiekt
tzw. helper. Helper to obiekt pomocniczy, wykorzystywany tylko przez edytor ChromEd, nie
bdzie on widoczny podczas samej gry. Obiekt ten standardowo ma przypisan klas Ladder.
Gdyby tak nie bylo, to przypiszcie temu obiektowi tak klas (MeshObject -> Ladder). To
wlanie ta klasa odpowiada za to, e gracz bdzie mógl wchodzi na drabin. Uwaga! Obiekt
helpera (ten z przypisan klas Ladder) musi idealnie przylega do obiektu drabiny:



Nie moe te siga po za drabin (wysoko), ale moe zaczyna si niej od drabiny (aby
lepiej na tak drabin si wchodzilo). W razie potrzeby przeskalujcie obiekt helpera tak samo,
jak obiekty drabiny. Zwrócie uwag, e obiekt helpera drabiny z jeden strony ma
powierzchni koloru czerwonego a z drugiej zielonego. Powierzchnia, po której gracz moe
wchodzi na drabin jest koloru zielonego, wic musicie pamita, aby helper drabiny zawsze
byl zwrócony t powierzchni w stron, po której mona wchodzi. I to w zasadzie wszystko.
Wystarczy uruchomi mapk i sprawdzi, czy wszystko dziala . Gdyby byl jaki problem z
wejciem na drabin to przesucie j troch do góry. Oczywicie to samo zróbcie z helperem.
Na koniec mala uwaga. Jeeli drabina bdzie prowadzi na jaki pomost a nie na dach
budyneku tak jak ma to miejsce w moim przypadku, to helper drabiny musi siga do
pomostu a nie do koca drabiny:


282



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


6.5 ... doda skrzynk z amunicj, broni itp.?
W tym podrozdziale napisz, jak doda skrzynk, w której, dla przykladu, bdzie
znajdowala si karabin snajperski z amunicj. Najpierw za pomoc plug-in'a ,,Mesh
Browser" dodajemy do naszej mapki obiekt SkrzyniaOtwierana.3da (obiekt ten znajduje si
w katalogu \Data\Meshes\Objects\):



Obiekt ten powinien mie przypisan klas Container, wic gdyby tak nie bylo to przypicie
mu klas Container (MeshObject -> TriggerObject -> Container). Teraz do tej skrzyni
musimy ,,wloy" odpowiednie obiekty, ale aby co kolwiek do tej skrzyni wloy, najpierw
musimy j otworzy. Otwieramy okno atrybutów obiektu SkrzyniaOtwierana.3da i
przechodzimy na zakladk `Anims'. Na tej zakladce zaznaczamy struktur obiektu
SkrzyniaOtwierana.3da:




283


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
a potem, na dole zakladki `Anims', klikamy na przycisku `Play':



Nasza skrzynia zostanie otwarta:



Teraz wystarczy do tej skrzyni ,,wloy" obiekty, które chcemy, aby tam si znalazly. Aby
latwiej dodawa te obiekty, zaznaczamy opcj `drop to objects' na zaklade `Drop' w plug-
in'ie ,,Mesh Browser":



i do skrzyni dodajemy obiekt TPPsniper.3da (obiekt ten znajduje si w katalogu
\Data\Meshes\Equipment\):


284


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W razie potrzeby obrócie ten obiekt za pomoc Gizma lub okna atrybutów obiektów tak, aby
on w tej skrzyni leal. Dla wygody dolczymy obiekt TPPrifle.3da do hierarchii z obiektem
SkrzyniaOtiwerana.3da. W tym celu zaznaczamy obiekt TPPrifle.3da, klikamy na ikonie
dolczania obiektu do hierarchii:



i klikamy na obiekcie SkrzyniaOtwierana.3da. W ten sposób oba obiekty polczylimy w
hierarchi. Jednak, aby gracz mógl zabra bro ze skrzyni do swojego ekwipunku, musimy
jeszcze ustawi opcj kolizji obiektu TPPrifle.3da. Otwieramy okno atrybutów obiektu
TPPrifle.3da i na zakladce `Object' na panelu `Flags' zaznaczamy opcj `Collisions':



Od razu moecie zobaczy, e obiekty jest polczony w hierarchii z innym obiektem. W polu
`Parent' wywietlana jest nazwa ,,rodzica" obiektu, w naszym przypadku jest to obiekt o
nazwie SkrzyniaOtwierana01. Pamitajcie, e kady obiekt, który mona podnie i uy np.
bro, amunicja itp. musi mie zaznaczon opcj `Collisions' na panelu `Flags' (zakladka
`Object').Na koniec klikamy na przycisku `Apply' w celu potwierdzenia zmian. Do skrzyni
wlócie jeszcze amunicj do karabinu snajperskiego tzn. obiekt ammo_14long.3da (obiekt ten
take znajduje si w katalogu \Data\Meshes\Equipment\). Nie zapomnijcie dolczy tego
obiektu do hierarchii z obiektem SkrzyniaOtwierana.3da a take ustawcie flag kolizji dla
tego obiektu. Potem moecie uruchomi mapk i sprawdzi, czy wszystko dziala. Nie
przejmujcie si tym, e tak skrzynia jest otwarta. W samej grze bdzie ona zamiknita (chyba,

285


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
e j otworzymy). W edytorze ChromEd take bdzie zamknita, jeeli ponownie wczytamy
nasz mapk.

6.6 ... doda elementy do ekwipunku Logana?
W tym podrozdziale opisz, jak doda elementy do ekwipunku Logana. W zasadzie s
dwa sposoby, aby doda elementy do ekwipunku. Pierwszy, doda elementy ekwipunku za
pomoc pliku skryptu mapki singleplayer'owej (o tym dowiecie si z rozdzialu o aspektach
gry singleplayer) lub za pomoc odpowiednich zdarze i atrybutów. W tym podrozdziale
opisz ten drugi sposób. Jeeli chcecie dowiedzi si jak zmieni zawarto ekwipunku w
grze multiplayer'owej to moecie o tym przeczyta w rozdziale o aspektach gry multiplayer.
Dodamy nó do ekwipunku Logana. Najpierw za pomoc plug-in'a ,,Mesh Browser"
dodajemy do naszej mapki (najlepiej w pobliu obiektu Logan.3da) obiekt TPPknife.3da
(obiekt ten znajduje si w katalogu \Data\Meshes\Equipment\):



Z tym obiektem nie musimy ju nic robi. Teraz uruchamiamy plug-in ,,Environment" i
przechodzimy na zakladk `Mission'. Klasa ChromeModuleSingle (nasza mapka musi by
mapk singleplayer'ow) posiada m.in. atrybut cStartAction (w sekcji START na zakladce
`Mission'), który aktywuje jakie akcje zaraz po uruchomieniu mapki. Zaznaczamy atrybut
cStartAction:



i naciskamy klawisz INSERT. W ten sposób dodalimy nowy element (akcj) do atrybutu
cStartAction:



Jeeli jest to potrzebne, to mona doda wicej elementów do atrybutu cStartAction.
Pamitajcie, e akcje w atrybucie cStatAction (i nie tylko, dotyczy to wszystkich atrybutów,
do których moemy dodawa akcj) wykonywane s po kolei ­ od góry na dól! Jeeli chcemy

286

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
doda jaki element (akcj) pomidzy element ju dodany, to po prostu zaznaczamy element
atrybutu cStartAction i naciskamy klawisz INSERT. Jeeli zaznaczymy ponownie atrybut
cStartAction i naciniemy klawisz INSERT, to nowy element pojawi si na kocu elementów
ju dodanych. Teraz z listy dostpnej obok nowo dodanego elementu wybieramy akcj typu
act_InstantActions:



W ten sposób stworzylimy akcj typu act_InstantActions, która zostanie aktywowana zaraz
po uruchomieniu mapki (za to odpowiada atrybut cStartAction). Musimy zdefiniowa akcj
typu act_InstantAction. Zaznaczamy atrybut aInstatActions:



i ponownie naciskamy klawisz INSERT. Do atrybutu aInstantActions take mona dodawa
wicej elementów (w taki sam sposób jak do innych atrybutów np. cStartAction). Ok,
dodalimy nowy element do atrybutu aInstantActions:



Z listy obok nowo dodanego elementu wybieramy akcj InstantAddToInventory:



To wlanie akcja InstantAddToInventory pozwala doda obiekty do ekwipunku, nie tylko do
ekwipunku Logana, ale take np. do graczy kierowanych przez komputer - AI. Opisz
znaczenie poszczególnych atrybutów akcji InstantAddToInventory:
- atrybut cTarget zawiera obiekt, któremu bd dodane elementy, w naszym przykladzie
bdzie to obiekt Logana (gracz),
- atrybut aItemsToAdd zawiera elementy, które bd dodane do cTarget, w naszym
przykladzie bdzie to nó,
- atrybut aOnScuccess pozwala stworzy akcj, która bdzie aktywowana po udanym dodaniu
elementu do ekwipunku,

287

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
- atrybut aOnFailure pozwwala stworzy akcj, która bdzie aktywowana po nieudanym
dodaniu elementu do ekwipunku.
Dobrze. Zaznaczamy atrybut cTarget:



i klikamy prawym przyciskiem myszki na obiekcie Logana (gracz). Z menu, które si
otworzy wybieramy polecenie Set <logan01> as <cTarget>:



Przypisalimy obiekt Logan.3da do atrybutu cTarget. Pamitajcie, e obiekt Logan.3da musi
mie przypisan klas PlayerSingle (MeshObject -> TriggerObject -> ChromeActor ->
AnimActor -> Pawn -> PawnAnimated -> Player -> PlayerTriggered -> PlayerHUD ->
PlayerSingle), bo jest to gracz singleplayer'owy. Teraz zaznaczamy atrybut aItemsToAdd:



i klikamy prawym przyciskiem myszki na obiekcie TPPknife.3da. Z menu, które si otworzy,
wybieramy polecenie Set <TPPknife01> as <aItemsToAdd>:



Obiekt TPPknife.3da zostanie przypisany do atrybutu aItemsToAdd (w zasadzie zostanie
przypisany nr identyfikacyjny tego obiektu). Mona przypisywa kolejne obiekty do atrybutu
aItemsToAdd, zostan one oddzielone znakiem rednika. Cale zdarzenie powinno wyglda
tak:



Klikamy na przycisku `Apply', w celu potwierdzenia zmian. I gotowe. Uruchamiamy mapk
w trybie gry. Nó zostanie dodany do ekwipunku Logana (sam obiekt TPPknife.3da zniknie z
mapki). Jeeli w ekwipunku zabraknie miejsca na dodanie kolejnego elementu, to zostanie

288

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
wywietlony odpowiedni komunikat, dlatego lepszym rozwizaniem jest skorzystanie z pliku
skryptu mapki singleplayer'owej, o czym napisz w rozdziale o aspektach gry singleplayer.

289


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
6.7 ... doda dwiki i muzyk?
Kolejnym elementem, który urozmaici nasz mapk, jest na pewno dwik ­ zarówno
muzyka, która dodaje dynamiki naszej mapce, jaki i dwiki otoczenia np. szum wody, piew
taków itp., które dodaj rzeczywistoci do naszej mapki. Istotna uwaga dla tych, co bd
tworzy mapki multiplayer'owe ­ z zasady do takich mapek nie dodaje si muzyki!
Zaczniemy od dwików. Najpierw dodamy dwik szumu wody wokól mapki. W miejscu,
gdzie chcemy doda jaki dwik, za pomoc plug-in'a ,,Mesh Browser" dodajemy obiekt
Nutka.3da (obiekt ten znajduje si w katalogu \Data\ Interface\):



Teraz otwieramy okno atrybutów obiektu Nutka.3da. Obiekt ten ma standardowo przypisan
klas SoundEmitterSimple (MeshObject -> SoundEmitter -> SoundEmitterSimple). Poniewa
chcemy uzyska efekt szumu wody, przypisujemy temu obiektowi klas
SoundEmitterSeaLoop (MeshObject -> SoundEmitter -> SoundEmitterSimple ->
SoundEmitterSeaLoop). Klikamy na przycisku `Apply', aby potwierdzi zmiany. Teraz
dodajcie jeszcze kilka obiektów Nutka.3da wokól brzegu mapki i przypiszcie im klas
SoundEmitterSeaLoop. Na wysoko poloonych miejscach moemy doda dwik szumu
wiatru. Wic jak zwykle w odpowiednim miejscu dodajemy obiekt Nutka.3da:


290



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Ja dodalem ten obiekt na wiey straniczej. Otwieramy okno atrybutów tego obiektu i
przypisujemy mu klas SoundEmitterWinds (MeshObject -> SoundEmitter ->
SoundEmitterSimple -> SoundEmitterWinds). Klikamy na przycisku `Apply' w oknie
atrybutów obiektów, aby potwierdzi zmiany. I gotowe! Jeeli na mapce mamy las, moemy
take doda efekty dwikowe. Gdzie w lesie dodajemy obiekt Nutka.3da:



Oczywicie jeeli las jest duy, to musimy doda kilka obiektów Nutka.3da w tym lesie.
Otwieramy okno atrybutów tego obiektu i przypisujemy mu klas SoundEmitterForestLoop
(MeshObject -> SoundEmitter -> SoundEmitterSimple ->SoundEmitterForestLoop). Nie
zapomnijcie klikn na przycisku `Apply', aby potwierdzi zmiany. W taki sposób dodaje si
dwiki. Przejrzyjcie sobie klasy pochodzne od klasy SoundEmitterSimple:


291

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Jest tam naprawd wiele klas, które generuj jakie dwiki. S nawet klasy, które generuj
dwik w budynkach (pochodne od klasy SoundEmitterSimpleInBuilding). Kada z tych klas
posiada m.in. atrybut fMaxDistance, fMinDistance i bScriptControlled w sekcji
SOUND_EMITTER oraz sSoundName w sekcji SOUND_EMITTER_SIMPLE. Atrybut
fMaxDistance okrela odleglo (od gracza lub kamery), w jakiej dwik bdzie wygasal a
atrybut fMinDistance okrela odleglo, na jakiej dwik wybrzmiewa peln glonoci (100
jednostek = 1m fizyczny). Jeeli ustawimy atrybut bScriptControlled na false to nie bdzie
modyfikowany zasig dwików. W atrybucie sSoundName moemy poda nazw pliku
dwiku do odtwarzania (lczenie ze ciek dostpu do tego dwiku). Wszystkie klasy,
które na kocu nazwy maj Loop, generuj dwik, który jest zaptlony (jest odtwarzany w
kólko). To tyle, jeeli idzie o dwiki. Muzyk dodaje si inaczej. W plug-in'ie ,,Mesh
Browser" na zakladce `Settings' z listy `Type' wybieramy opcj `Music' a potem klikamy na
przycisku `Add Object' na panelu `Place Object':



Jak dodajemy normalne obiekty, to w miejscu przycisku `Add Object' dostpny jest przycisk
`Put Object'. Od razu pojawi si okno atrybutów obiektów z obiektem typu `Music':


292

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Obiekt taki standardowo ma przypisan klas Music i nie ma moliwoci przypisania innej
klasy. Opisz teraz poszczególne atrybuty klasy Music (dostpna jest tylko sekcja MUSIC):
- atrybut fDuration odpowiada za czas odtwarzania muzyki ­ jeeli wpiszemy warto 0 to
czas ten bdzie brany bezporednio z pliku z muzyk,
- atrybut fFadeOutTime odpowiada za czas, po jakim muzyka zostaje wyciszona, w
momencie, gdy rozpocznie si odtwarzanie innej muzyki,
- atrybut nLoops odpowiada za ilo powtórze odtwarzania muzyki ­ jeeli wpiszemy
warto -1, to muzyka bdzie odtwarzana w nieskoczono,
- atrybut sMusic zawiera nazw pliku z muzyk do odtwarzania (wraz z peln ciek
dostpu do tego pliku).
W zasadzie moemy pozostawi wartoci domylne. Klikamy tylko na przycisku trzykropka
obok wartoci atrybutu sMusic i kierujemy si do katalogu \Data\Sounds\Music\ (tu znajduj
si wszystkie pliki z muzyk z gry Chrome) i tam wybieramy jakis plik z muzyk, proponuj
`Chrome Moments 02.ogg'. Gra Chrome potrafi odtwarza pliki (i dwiki) zapisane w
formacie wav lub ogg. Klikamy na przycisku `Apply', aby potwierdzi zmiany i zamykamy
okno atrybutów obiektów. Tu do bardzo wana informacja. Obiekty typu `Music' s
niewidoczne na mapce. Jedynym sposobem, aby zaznaczy taki obiekt np. w celu zmian, jest
okno zaznaczania i selekcji obiektów. Otwórzcie teraz okno zaznaczania i selekcji obiektów.
Jako maske selekcji klas wybierzcie `Music'. Na licie obiektów zostan wszystkie obiekty
typu `Music', które dodalimy:



Wicej informacji na temat tego okna znajdziecie w w podrozdziale o zaznaczaniu i selekcji
obiektów. No dobrze, muzyka dodana, ale musimy j jeszcze wlczy. Moemy to zrobi na
kilka sposobów. Pierwszy z nich, to wlczy muzyk w momencie, gdy gracz wejdzie w
sensor. O sensorach moecie przeczyta w rozdziale o aspektach gry singleplayer w
podrozdziale o sensorach. Drugi sposób, to wlczy muzyk zaraz po uruchomieniu mapki.
Mona to tylko zrobi wtedy, jeeli nasza mapka jest mapk singleplayer'ow i ma

293

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
przypisan klas ChromeModuleSingle. W tym podrozdziale wykorzystamy wlanie ten
drugi sposób. Uruchamiamy plug-in ,,Environment" i przechodzimy na zakladk `Mission'.
Klasa ChromeModuleSingle posiada m.in. atrybut cStartAction (w sekcji START na zakladce
`Mission'), który aktywuje akcje zaraz po uruchomieniu mapki. Poruszalem ju spraw
atrybutu cStartAction w jednym z powyszych podrozdzialów. Najpierw zaznaczamy atrybut
cStartAction:



a potem naciskamy klawisz INSERT. W ten sposób dodalimy nowy element do atrybutu
cStartAction:



Dla przypomnienia, jeeli jest to potrzebne, to mona doda wicej elementów do atrybutu
cStartAction. Pamitajcie, e akcje w atrybucie cStatAction (i nie tylko, dotyczy to
wszystkich atrybutów, do których moemy dodawa akcj) wykonywane s po kolei ­ od
góry na dól! Jeeli chcemy doda jaki element (akcj) pomidzy element ju dodany, to po
prostu zaznaczamy element atrybutu cStartAction i naciskamy klawisz INSERT. Jeeli
zaznaczymy ponownie atrybut cStartAction i naciniemy klawisz INSERT, to nowy element
pojawi si na kocu elementów ju dodanych. Ok, teraz z listy dostpnej obok nowo
dodanego elementu wybieramy akcj typu act_Music:



W ten sposób stworzylimy akcj typu act_Music, która zostanie aktywowana zaraz po
uruchomieniu mapki (za to odpowiada atrybut cStartAction). Teraz musimy ustawi kilka
atrybutów nalecych do nowo dodanego elementu typu Action. Atrybut cMusic akcji typu
act_Music pozwala wybra obiekt typu `Music', który zostanie aktywowany. Jednym slowem
z listy atrybutu cMusic wybieramy obiekt z nasz muzyk:



294

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

Omówi jeszcze znaczenie pozostalych atrybutów akcji typu act_Music:
- atrybut fDelay odpowiada za opónienie wykonania akcji,
- atrybut fDelayWaits odpowiada za to, czy opónienie wykonania akcji wplywa na
wykonanie kolejnych akcji,
- atrybut cCondition odpowiada za warunek wyknania akcji.
Jeeli chcecie, to moecie zmieni warto atrybutu fDelay. Czas opónienia podawany jest
w sekundach. Dla przykladu wpisujemy warto 10 atrybutowi fDelay. Na koniec klikamy na
przycisku `Apply', aby potwierdzi zmiany. Uruchomcie teraz mapk. Po 10 sekundach od
uruchomienia mapki, bdzie odtwarzana muzyka .

6.8 ... doda deszcz lub nieg?
Za generowanie deszczu lub niegu na naszej mapce odpowiada plug-in ,,Environment"
a dokladniej odpowiadaj za to klasy ModuleNet, ModuleNetASSAULT i
ChromeModuleSingle. W plug-in'ie ,,Environment", na zakladce `Java' dostpnych jest kilka
sekcji zwizanych z generowaniem deszczu lub niegu:



Sekcje te zostaly ,,zwinite", aby lepiej byly widoczne na powyszym rysunku. Zasadniczo
nie ma podzialu na deszcz czy nieg ­ czy na naszej mapce bdzie generowany deszcz czy te
nieg zaley po prostu od ustawie poszczególnych atrybutów, dlatego w dalszej czci
podrozdzialu bd uywal okrelenia ,,deszcz". Najpierw opisz znaczenie poszczególnych
atrybutów a potem podam przyklady ustawie tych atrybutów dla deszczu i niegu:
sekcja Rain_Basic odpowiada za podstawowe parametry deszczu:
- atrybut m_bRainEnabled wlcza lub wylcza generowania deszczu na mapce,
- atrybut m_fRainCubeSize okrela dlugo boku szecianu, w którym pada deszcz,
- atrybut m_fRainDensity odpowiada za ilo pokazywanych kropli deszczu (w procentach),
- atrybut m_fRainDirVariationAngle odpowiada za kt rozrzutu kierunków ruchu kropli
deszczu (stoek),
- atrybut m_fRainMaxVelocity okrela maksymalny zakres prdkoci kropli deszczu,
- atrybut m_fRainMinVelocity okrela minimalny zakres prdkoci kropli deszczu,
- atrybut m_fRainTurbulencyAmplitude okrela promie spirali, jak zataczaj czsteczki
podczas turbulencji,
- atrybut m_fRainTurbulencySpeed okrela ilo obrotów po spirali na sekund, któr
wykonuje czstka, na któr dziala turbulencja,
- atrybut m_iRainDropsNumer odpowiada za najwiksz dopuszczaln ilo kropel deszczu,
- atrybut m_vRainDirection okrela kierunek padania kropli deszczu,
sekcja Rain_LightningAndThunder odpowiada za generowanie piorunów i grzmotów
(Uwaga! Obecnie nie mona generowa piorunów i grzmotów!):
- atrybut m_bRainLightningShowFlash odpowiada za generowanie burzy bez blysków, ale z
gromami (jeeli atrybut ten ustawiony jest na false),
- atrybut m_fRainMaxThunderDelay odpowiada za maksymalne opónienie gromu
wzgldem blyskawicy,
- atrybut m_fRainMaxThunderVolume odpowiada za maksymaln glono gromu (w
procentach),

295

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
- atrybut m_fRainMinThunderDelay odpowiada za minimalne opónienie gromu wzgldem
blyskawicy,
- atrybut m_fRainMinThunderVolume odpowiada za minimaln glono gromu (w
procentach),
- atrybut m_fRainThunderProbability odpowiada za prawdopodobiestwo, e kadej
blyskawicy towarzyszy dwik gromu (w procentach),
- atrybut m_iRainLightningsPerMinute odpowiada za redni ,,produkcj" piorunów
(piorunów na minut),
- atrybuty m_sRainThunderSound1, m_sRainThunderSound2, m_sRainThunderSound3 i
m_sRainThunderSound4 zawieraj nazwy plików z dwikami gromów, dwiki te bd
losowo odtwarzane,
sekcja Rain_EnvironmentSound odpowiada za dwiki towarzyszce deszczowi i burzy na
otwartej przestrzeni:
- atrybut m_bRainPlayEnvSound wlcza lub wylcza dwiki,
- atrybut m_fRainEnvironmentSoundVolume odpowiada za glono dwików,
- atrybut m_sRainEnvironmentSound zawier nazw pliku z zaptlonym dwikiem
rodowiska,
sekcja Rain_Appearance odpowiada za parametry rysowania kropel deszczu:
- atrybut m_bRainSortDrops wlcza lub wylcza sortowanie kropel deszczu wzgldem
kamery,
- atrybut m_fRainAlpha odpowiada za pocztkow alfa kadej kropli deszczu,
- atrybut m_fRainDropHeight odpowiada za wysoko kadej kropli deszczu,
- atrybut m_fRainDropWidth odpowiada za szeroko kadej kropli deszczu,
- atrybut m_fRainDropsRotationMax odpowiada za maksymaln szybko obrotu kropli
deszczu wokól jej rodka,
- atrybut m_fRainDropsRotationMin odpowiada za minimaln szybko obrotu kropli
deszczu wokól jej rodka,
- atrybut m_fRainFadeDistanceStart odpowiada za odleglo, do jakiej alfa kropel deszczu
ma warto 1.0 (dalej zaczyna si zmniejsza a osignie warto 0),
- atrybut m_iRainDrawMode odpowiada za sposób rysowania kropel deszczu,
- atrybut m_iRainTextureFramesX odpowiada za ilo poziomych ramek w teksturze,
- atrybut m_iRainTextureFramesY odpowiada za ilo pionowych ramek w teksturze,
- atrybut m_sRainMaterialName przechowuje nazw pliku z materialem uywanego dla
rysowania kropli deszczu,
sekcja RainSplash odpowiada ze generowanie efektu plusku w momencie upadania kropli
deszczu:
- atrybut m_fRainSplashProbability odpowiada za ilo kropel deszczu, która wywoluje efekt
plusku (w procentach),
- atrybut m_sRainConcreteSplashFX przechowuje nazw pliku z efektem specjalnym
uruchamianego w momencie uderzenia kropli deszczu o teren mapki, budynek lub drzewo,
- atrybut m_sRainWaterSplashFX przechowuje nazw pliku z efektem specjalnym
uruchamianego w momencie uderzenia kropli deszczu o wod,
Tak przedstawia si znaczenie poszczególnych atrybutów. Wiem, niektóre z nich mog by
trudne do zrozumienia , dlatego te podam Wam przyklady ustawienia tych atrybutów tak,
aby uzyska deszcz lub nieg :
Deszcz:
sekcja Rain_Basic:
- atrybut m_bRainEnabled ­ ustawiamy na true,
- atrybut m_fRainCubeSize ­ wpisujemy warto 5000.00000,
- atrybut m_fRainDirVariationAngle ­ wpisujemy warto 3,

296

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
- atrybut m_fRainMaxVelocity ­ wpisujemy warto 3000.00000,
- atrybut m_fRainMinVelocity ­ wpisujemy warto 2800.00000,
- atrybut m_iRainDropsNumber ­ wpisujemy warto 10000,
- atrybut m_vRainDirection ­ wpisujemy 0.0000, -1.0000, 0.2000,
sekcja Rain_Appearance:
- atrybut m_fRainAlpha ­ wpisujemy warto 1.00000,
- atrybut m_fRainDropHeight ­ wpisujemy warto 150.00000,
- atrybut m_fRainDropWidth ­ wpisujemy warto 2.00000,
- atrybut m_sRainMaterialname ­ wpisujemy data\materials\fx\Rain II.mat
Wartoci atrybutów, których nie podalem pozostawiamy bez zmian (pozostawiamy wartoci
domylne). Klikamy na przycisku `Apply' w oknie atrybutów obiektów, aby potwierdzi
zmiany. Moecie uruchomi teraz mapk w trybie gry (klikajc na ikonie z literami `Go') i
sprawdzi jak prezentuje si ulewa . I tu mala niespodzianka. Wejdcie do jakiego budynku.
Deszcz pada nawet wewntrz budynku (pewnie dach przecieka ). Wychodzimy z trybu gry.
Musimy jeszcze wygenerowa map wysokoci dla deszczu (lub niegu). Ta mapa wysokoci
nie ma nic wspólnego z map wysokoci potrzebn do stworzenia terenu mapki. Zanim
wygenerujecie map wysokoci dla deszczu, sprawdcie, czy wszystkie obiekty, przez które
deszcz nie ma pada np. budynki, maj ustawion opcj `Static' (w oknie atrybutów obiektów
na zakladce `Object' na panelu `Flags'):



Aby wygenerowa map wysokoci dla deszczu klikamy na ikonie z literami `Ph'. Otworzy
si okno `Create particle heightmap':



Najpierw klikamy na przycisku trzykropka obok pola `File name' i kierujemy si do katalogu
z nasz mapk (\Data\LevelsNet\MojaMapka\). Podajemy nazw pliku. Najlepiej aby nazwa
pliku byla taka sama jak nazwa naszej mapki, czyli w naszym przypadku MojaMapka. W
polach `Width' i `Height' wpisujemy 1024 (jest to warto standardowa, wic nie musimy nic
zmienia) i klikamy na przycisku `OK':

297

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Rozpocznie si proces generowania mapy wysokoci dla deszczu. Moe to zajc troch
czasu. Po wygenerowaniu mapy wysokoci, w katalogu z nasz mapk pojawi si plik
MojaMapka.fxm. Dziki tej mapie wysokoci, deszcz nie bdzie padal w miejscach, w
których nie powinien tego robi. To tyle.

Rozdzial 7 ­ Aspekty gry multiplayer

7.1 Wstp.
W tym rozdziale zajmiemy si aspektami gry multiplayer. Opisz w nim wszystko, co
jest potrzebne, aby nasza mapka stala si pelnowartociow mapk multiplayer'ow. W
kolejnych podrozdzialach opisz jak przygotowa mapk do trybu multiplayer'owego a take
opisz poszczególne tryby gry multiplayer'owej dostpne w grze Chrome. Od razu zaznacz,
e nie bd opisywal opcji gry multiplayer'owej dostpnej w grze Chrome np. jak postawi
serwer itp. Informacje na ten temat moecie znale w instrukcji do gry.
Kada mapka multiplayer'owa musi znale si w katalogu \Data\LevelsNet\. Kada
mapka musi mie swój podkatalog, w którym znajduj si wszystkie pliki zwizane z mapk.
Podkatalog, w którym znajduje si mapka musi mie tak sam nazw jak mapka. W tym
dokumencie, od samego pocztku dla naszej mapki uywam nazwy MojaMapka, wic
podkatalog te musi si nazywa MojaMapka (\Data\LevelsNet\MojaMapka\).

7.2 Rozgrywka multiplayer'owa.
Zaczn od opisania rozgrywki multiplayer'owej w grze Chrome. Bdzie to opis bardzo
skrótowy. Najpierw gracz tworzy swój profil (moe poda swoj ksywk itp.). Potem gracz
dolcza si do gry. Po dolczeniu gracza do gry, pojawia si okno wyboru druyny (ang.
team). Oczywicie, jeeli gracz dolczyl do gry druynowej np. Capture The Flag. Do
wyboru s dwie druyny (dwie korporacje znazne z gry singleplayer): ,,Zetrox" (Blue Team ­
druyna niebieska) lub ,,CoreTech" (Red Team ­ druyna czerwona). Nie bd pisal, która z
tych korporacji to ta ,,dobra" . Nastpnie gracz przechodzi do okna wyboru ekwipunku (ang.
inventory room). Tu gracz moe wybra bro, amunicj oraz dodatkowe wyposaenie.
Wybór jest ograniczony zalenie od danej mapki. Oczywicie to od twórcy danej mapki
(czyli od nas ) zaley, do jakiego ekwipunku gracz bdzie mial dostp. Po wybraniu
ekwipunku gracz spawnuje si tzn. ,,odradza si") w losowo wybranym punkcie (ang. spawn
point). Miejsca, w których gracz moe si spawnowa, s okrelone dla danej mapki, z
rozrónieniem miejsc dostpnych dla druyny niebieskiej i czerwonej (o ile jest to gra
druynowa). Miejsca respawnu dla graczy (i poszczególnych druyn) zale od twórcy danej
mapki. Jeeli na mapie znajduj si dostpne dla gracza pojazdy, to po zniszczeniu takiego
pojazdu, respawnuje si on w okrelonym dla niego miejscu. Wrak zniszczonego pojazdu
pozostaje na mapie do czasu, a jego zrespawnowany ,,klon" równie zostanie zniszczony,
wtedy ,,teleportuje si" i znika. Po mierci gracza, w czasie oczekiwania na kolejny respawn

298

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
wywietlany jest komunikat o moliwoci zmiany ekwipunku. Jeeli gracz nacinie klawisz
ENTER to trafi z powrotem do okna wyboru ekwipunku. Jeeli gracz nie zdecyduje si na
zmian ekwipunku, to zrespawnuje si z takim ekwipunkiem jak wybral poprzednio. Jeeli
gracz nie moe si zrespawnowa ze wzgldu na reguly obowizujce na mapce (np.
skoczyl si limit respawanów) to takiemu graczowi wlcza si tryb Ghost Cam (na ekranie
wywietlany jest napis informujcy o oczekiwaniu na zakoczenie rundy gry). ,,Trup" gracza
pozostaje na mapie (podobnie jak w przypadku wraków pojazdów) do czasu mierci jego
zrespawnowanego ,,klona". Tak mniej wicej wyglda rozgrywa multiplayer'owa w grze
Chrome. Teraz zajmiemy si przygotowaniem stworzonej przez nas mapki do gry
multiplayer'owej.

7.3 Zdjcie mapki.
Zaczniemy od zdjcia naszej mapki. Zdjcie to widoczne jest podczas wczytywania
mapki. Oczywicie jak kto nie chce przygotowa takiego zdjcia, to nie musi tego robi.
Wtedy, przy wczytywaniu mapki bdzie widoczne standardowe logo ChromeNet. A jak
zrobi takie zdjcie? W zasadzie jest to proste. Wystarczy zrobi zrzut ekranowy (ang. screen
shot) naszej mapki. Najlatwiejszym sposobem jest wczytanie mapki do edytora ChromEd i
naciniciu klawisza PRINT SCREEN. Jednak ze wzgldu na to, e rozdzielczo zdjcia
musi by równa 512x256 pikseli, to najpierw zmienimy aspekt aktualnego okna widokowego.
Aspekt zmienimy na 16:9 (stosunek szerokoci do wysokoci), co pozwoli unikn póniej
znieksztalce zwizanych z zmian rozdzielczoci zdjcia mapki. Cal operacj zrobimy w
widoku perspekywistycznym. Klikamy prawym klawiszem myszki w aktywnym oknie
widokowym (perspektywistycznym) i z menu, które si otworzy, wybieramy polecenie View
aspect
:



Otworzy si okno `View aspect'. Upewnijcie si, e stosunek szerokoci do wysokoci
(`Aspect [width : height]') wynosi 16:9:



Jeeli nie, to wpiszcie odpowiednie wartoci. Potem klikamy na przycisku `OK'. Zmieni si
aspekt okna. Teraz ustawcie kamer obserwatora widoku perspektywistycznego w jak
najlepszym miescu (tak, aby bylo wida jak najwicej szczególów Waszej mapki):


299


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Najlepiej gdyby nie byl zaznaczony aden obiekt (bo wtedy bdzie widoczne Gizmo) a take
aby nie bylo wida adnych helperów edytora ChromEd itp. Na powyszym rysunku
widziecie moje ujcie (dolny rysunek), które wykorzystam. Naciskamy klawisz PRINT
SCREEN. Uruchamiamy Paintbrush'a (tak, tego zwyklego Paintbrush'a z Windows'a ). Po
uruchomieniu Paintbrush'a naciskamy klawisze CTRL + V (wklej). W ten sposób mamy
zdjcie edytora ChromEd wraz z widokiem na nasz mapk. Teraz wybieramy narzdzie
`Zaznacz':



Za pomoc tego narzdzia zaznaczamy obszar okna widokowego (perspektywistyczne).
Postarajcie si, aby nie zaznacza paska informacyjnego okna. W zaznaczonym obszarze
klikamy prawym przyciskiem myszki i wybieramy polecenie Kopiuj do. W tem sposób
zapiszemy zaznaczony fragment do pliku Shot.bmp (chcia w tej chwili nazwa nie ma
znaczenia). Teraz uruchamiamy program Photoshop lub GIMP i wczytujemy plik Shot.bmp.
W Photoshopp'ie z menu Image wybieramy polecenie Image Size:

PHOTOSHOP


300

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

Otworzy si okienko `Image Size'. Tam wpisujemy wartoci 512 w polu `Width' (szeroko)
i 256 w polu `Height' (wysoko). Zwrócie uwag, aby opcja `Constrain Proportions' byla
odznaczona (jeeli opcja ta bdzie zaznaczona, to nie bdzie mona ustawi rozdzielczoci
512x256 a to z tego wzgldu, e zachowana zostanie proporcja):

PHOTOSHOP


Klikamy na przycisku `OK'. W GIMP'ie po wczytaniu pliku Shot.bmp. Klikamy prawym
przyciskiem myszki na pliku Shot.bmp i wybieramy polecenie Scale Image z menu Image:


GIMP



Otworzy si okno `Scale Image'. Na panelu `Pixel Dimensions' wpisujemy warto 512 w
polu `New Width' i 512 w polu `Height'. Zwrócie uwag, aby byl wylczona opcja
zachowania proporcji (zaznaczona na czerwono na poniszym rysunku), bo inaczej nie bdzie
mona zmieni rozdzielczoci na 512x256 (bdzie zachowana proporcja):


GIMP

301

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W porzdku. Tak przeksztalcony plik musimy jeszcze zapisa. Najlepiej, gdyby zdjcie
mapki mialo tak sam nazw jak mapka, ale zakoczona slowem `_Splash', w naszym
przypadku bdzie to nazwa MojaMapka_Splash (a to z tego wzgldu, e mapk, któr opisuj
w tym dokumencie nazwalem MojaMapka). Plik musi by zapisany w formacie png i musi
znale si w podkatalogu, z nasz mapk (dla mapki multiplayer'owej bdzie to katalog
\Data\LevelsNet\MojaMapka\, natomiast dla mapki singleplayer'owej bdzie to katalog
\Data\LevelsCustom\MojaMapka). Uytkownicy Photoshp'a przy zapisywaniu pliku w
formacie png, w oknie `PNG Options' wybieraj opcj `None' i klikaj na przycisku `OK'.
Uytkownicy GIMP'a przy zapisywaniu pliku w formacie png, w oknie `Save as PNG'
pozostawiaj wszystkie opcje bez zmian i klikaj na przycisku `OK'. I to wszystko. Mamy
ju zdjcie, które bdzie widoczne przy wczytywaniu naszej mapki. Wicej informacji na
temat okien widokowych edytora ChromEd moecie znale w rozdziale o podstawach
obslugi edytora w podrozdziale o interfejsie edytora.


302


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
7.4 Plik skryptu mapki multiplayer'owej.
Najwaniejsz rzecz, jaka decyduje o przeznaczeniu naszej mapki, jest plik skryptu
mapki. To za pomoc tego pliku gra Chrome identyfikuje, dla jakiego trybu gry multiplayer
przeznaczona jest nasza mapka. W tym pliku znajduj si te podstawowe informacje na
temat zada do wykonania na mapce, ekwipunku i implantów dostpnych na mapce,
pojazdów itp. Plik skryptu mona stworzy w zwyklym Notatniku. Taki plik musi mie
rozrzerzenie scr. W przypadku gry mutltiplayer, nazwa tego pliku jest zwizan z trybem gry,
dla jakiego przeznaczona jest nasza mapka:
DM.scr
- nazwa pliku skryptu dla trybu Death Match (DM),
TDM.scr
- nazwa pliku skryptu dla trybu Team Death Match (TDM),
SMD.scr
- nazwa pliku skryptu dla trybu Single Man Domination (SMD),
TD.scr
- nazwa pliku skryptu dla trybu Team Domination (TD),
TTD.scr
- nazwa pliku skryput dla trybu Team Total Domination (TTD),
CTF.scr
- nazwa pliku skryptu dla trybu Capture The Flag (CTF),
ASSAULT.scr - nazwa pliku skryptu dla trybut Assault.
Plik skryptu mapki multiplayer'owej musi znajdowac si w tym samym katalogu, w którym
znajduje si nasza mapka (\Data\LevelsNet\MojaMapka\). W ten sposób nasza mapka bdzie
dostpna na licie mapek w grze Chrome:



Kady plik skryptu mapki sklada si z komend, które realizuj pewne zadania. Niektóre
komendy s zalene od trybu gry multiplayer'owej, dla jakiego jest przeznaczony plik
skryptu mapki, a niektóre komendy s takie same dla wszystkich trybów gry
multiplayer'owej. Tyle teorii, przechodzimy do praktyki. Stworzymy pierwsz plik skryptu dla
naszej mapki . Otwieramy Notatnik. Pierwsza linijka pliku skryptu mapki multiplayer'owej
musi zawiera komend !include, dolczajca plik definicji komend dla mapki
mutltiplayer'owej:
!include("../LevelNet.def")

303

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Komenda !include dolcza inny plik do pliku skryptu. Plik LevelNet.def (plik ten znajduje si
w katalogu \Data\LevelsNet\), który musimy zawsze dolczy do pliku skryptu mapki
multiplayer'owej (wlanie za pomoc komendy !include), zawiera definicj komend
uzywanych w plikach skryptu mapek multiplayer'owych. Kady parametr komendy
podawany jest w nawiasach okrglych (). Jeeli parametrem komendy jest tekst, to tekst ten
musi by umieszczony w cudzyslowiu " ". Do formatowania tekstu mona wykorzysta
klawisze SPACE, TAB i ENTER. Kolejna linijka zawiera komend Description:

Description("Moja Mapka [ASSAULT]\n\nDruyna Czerwona:\n
Zniszczy kontener z obc form ycia.\n\n\nDruyna
Niebieska:\nObroni kontener z obc form ycia.")
Komenda Description wywietla informacje podczas wczytywania mapki (pod zdjciem
mapki). Jako parametr komendy Description podajemy tekst, który bdzie wywietlony.
Tekst powinien zawiera nazw mapki, informacje na temat, dla jakiego trybu gry
multiplayer'owej ta mapka jest przeznaczona oraz krótko opisane zadania, jakie gracz musi
wykona na tej mapce. Przyjla si zasada, e najpierw podajemy nazw mapki a potem w
nawiasach kwadratowych [] nazw trybu gry multiplayer'owej, do którego przeznaczona jest
mapka. Nazw trybu gry najlepiej pisa w caloci tzn. DEATH MATCH, TEAM DEATH
MATCH, SINGLE MAN DOMINATION, TEAM DOMINATION, CAPTURE THE FLAG
i ASSAULT. Jeeli chcemy, aby tekst byl wywietlony od nowej linii, to wystarczy uy
znaków \n tak, jak to wida na powyszym przykladzie. Kolejna linijka zawiera komend
DescriptionBackground:

DescriptionBackground("MojaMapka_Splash.png")
Komenda ta wywietla zdjcie naszej mapki podczas wczytywania (wida j nad tekstem
opisujcym mapk). Jako parametr komendy DescriptionBackground podajemy nazw pliku
zdjcia mapki (takie zdjcie przygotowalimy w jednym z powyszych podrozdzialów).
Jeeli nie uyjemy komendy DescriptionBackground w pliku skryptu mapki, to przy
wczytywaniu mapki bdzie widoczne standardowe logo ChromeNet. Dwie nastpne linijki
zawieraj komendy AObjective:

AObjective(100, "Broni kontenera z obc form ycia.")
AObjective(200,
"Zniszczy kontener z obc form ycia")
Komenda AObjective dodaje zadania dla poszczególnych druyn, jakie musz by wykonane
na danej mapce. Pierwszym parametrem komendy AObjective jest liczba, okrelajca, dla
której druyny przeznaczone jest zadanie: 1 ­ zadanie dla wszystkich graczy (brak podzialu
na druyny), 100 ­ druyna niebieska, 200 ­ druyna czerwona. Jako drugi paramet komendy
AObjective wpisujemy tre zadania. Jeeli mapka przeznaczona jest dla trybu gry
multiplayer'owej, w którym nie ma podzialu na druyny wystarczy wpisa tylko jedn
komend AObjective z odpowiednimi parametrami:

AObjective(1, "Zlikwiduj wszystkich innych graczy.")
Jeeli obie druyny maj takie same zadanie do wykonania, to wpisujemy dwie komendy
AObjective z t sam treci zadania, ale przeznaczon dla rónych druyn:
AObjective(100, "Przejmij trzy punkty kontrolne.")
AObjective(200, "Przejmij trzy punkty kontrolne.")
Kolejne linijki w pliku skryptu mapki odpowiadaj za to, co bdzie dostpne w oknie wyboru
ekwipunku:



304


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


InventoryRoom()
{
SetInvWeaponNum("WeaponPistolNet",
1)
SetInvWeaponNum("WeaponPistolHeavyNet",
1)
SetInvWeaponNum("WeaponRifleShortNet",
1)
SetInvWeaponNum("WeaponRifleShotgunNet",
1)
SetInvWeaponNum("WeaponRifleNet",
1)
SetInvWeaponNum("WeaponRifleSniperNet",
1)
SetInvWeaponNum("WeaponRifleSniperHeavyNet",
1)
SetInvWeaponNum("WeaponRifleMachineGunNet",
1)
SetInvWeaponNum("WeaponRifleHeavyNet",
1)
SetInvWeaponNum("WeaponHeavyElectroNet",
1)
SetInvWeaponNum("WeaponHeavyRocketLauncherNet",
1)
SetInvWeaponNum("WeaponGrenadeOffensiveNet",
2)


SetInvAmmoNum("Ammo9mmShort",
4)
SetInvAmmoNum("Ammo8mmLong",
4)
SetInvAmmoNum("Ammo12mmShort",
4)
SetInvAmmoNum("Ammo14mmLong",
4)
SetInvAmmoNum("AmmoShotgun",
4)

AddInvEquip("DrugHealthex",
1)
AddInvEquip("BinocularsExtended",
1)
AddInvEquip("CloakingDevice",
2)

DefaultWeapon("WeaponRifleNet")
DefaultWeapon("Ammo8mmLong")
DefaultWeapon("Ammo8mmLong")

305


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
DefaultWeapon("WeaponPistolNet")
DefaultWeapon("Ammo9mmShort")
DefaultWeapon("DrugHealthex")
DefaultWeapon("WeaponGrenadeOffensiveNet")
DefaultWeapon("WeaponGrenadeOffensiveNet")

}
Komenda InventoryRoom() definiuje zawarto okna wyboru ekwipunku. Lista dostpnego
ekwipunku w oknie wyboru ekwipunku wypisana jest w nawiasach klamrowych {}, w
postaci kolejnych komend. Komenda SetInvWeaponNum ustawia ilo broni danego typu w
oknie wyboru ekwipunku. Pierwszy parametr tej komendy to nazwa broni a drugi to liczba
okrelajca ile sztuk tej broni bdzie dostpne w oknie wyboru ekwipunku. W zasadzie
wskazane jest, aby zawsze byla dostpna jedna sztuka danej broni, chyba, e s to granaty.
Jeeli nie chcemy, aby gracz mial dostp do jakie broni, to po prostu wpisujemy warto 0
dla drugiego parametru komendy SetInvWeaponNum. Komenda SetInvAmmoNum ustawia
ilo amunicji danego typu w oknie wyboru ekwipunku. Pierwszy parametr tej komendy to
nazwa amunicji a drugi to liczba okrelajca ile paczek danej amunicji bdzie dostpne w
oknie wyboru ekwipunku. Komenda AddInvEquip dodaje dodatkowe wyposaenie do okna
wyboru ekwipunku (np. apteczki). Pierwszy parametr tej komendy to nazwa wyposaenia a
drugi to liczba okrelajca ile sztuk tego wyposaenia bdzie dostpne w oknie wyboru
ekwipunku. Ostatnia komenda, DefaultWeapon, okrel zawarto domylnego ekwipunku
gracza:



Parametrem tej komendy jest nazwa danego elementu ekwipunku (moe to by bro,
amunicja czy te dodatkowe wyposaenie). Jeeli chcemy, aby gracz dostal klika elementów
tego samego typu np. kilka paczek amunicji, to trzeba t komend powtórzy tyle razy, ile
jest to potrzebne. Gracz dostaje domylny ekwipunek w momencie, jeeli nie dokona
adnych zmian w ekwipunku lub te w momencie, gdy w ogólne nie bdzie mial dostpu do
okna wyboru ekwipunku. Domylny ekwipunek mona te wczyta klikajc na przycisku

306


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
`DEFAULT LOAD' w oknie wyboru ekwipunku. Musimy jeszcze okreli, do jakich
implantów bdzie mial dostp gracz podczas rozgrywki. Komenda ImplantsRoom() definiuje
dostp do poszczególnych implantów:

ImplantsRoom()
{
ImplantAssimilation("ImplantZoom",
1.0)
ImplantAssimilation("ImplantArmor",
1.0)
ImplantAssimilation("ImplantSpeed",
1.0)
ImplantAssimilation("ImplantAccuracy",
1.0)
ImplantAssimilation("ImplantStrength",
1.0)
ImplantAssimilation("ImplantTermovision",
1.0)
}
Lista dostpnych implantów wypisana jest w nawiasach klamrowych {}, w postacji kolejnych
komend. Komenda ImplantAssimilation zmienia stopie asymilacji danego implantu.
Pierwszy parametr tej komendy to nazwa implantu a drugi to liczba okrelajca stopie
asymilacji tego implantu, gdzie warto 0.0 to komplety brak asymilacji (gracz nie ma
dostpu do tego implantu) a warto 1.0 to maksymalna asymilacja implantu. Uwaga!
Niektóre implanty mog dziala niepoprawnie (lub wcale) na mapkach multiplayer'owych!
Za pomoc komendy GameSettings() moemy zdefiniowa ustawienia mapki:




GameSettings()
{
}
Lista ustawie mapki wypisana jest w nawiasach klamrowaych {}, w postacji kolejnych
komend. Tu do wana uwaga. Kady tryb gry multiplayer'owej ma dostpne domylne
ustawienia, które zalene s od trybu gry. Z tego wzgldu nie musimy pisa definicji
GameSettings(). Wartoci poszczególnych ustawie moemy zmieni przed rozgrywk
klikajc na przycisku `MAP SETTINGS' w oknie tworzenia gry sieciowej. Domylne

307


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
ustawienia mona te wczyta klikajc na przycisku `DEFAULT' w oknie `MAP
SETTINGS'. Natomiast, gdy chcemy ,,narzuci" swoje domylne ustawienia dla mapki, to
musimy to zrobi wlanie za pomoc listy ustawie mapki. Ustawienia, które narzucimy dla
naszej mapki za pomoc tej listy, bd domylnymi ustawieniami dla tej mapki. Teraz nie
bd opisywal komend zwizanych z ustawieniami mapki. Zrobi to przy omawianiu
poszczególnych trybów gry multiplayer, poniewa niektóre komendy uzaleniona s wlanie
od trybu gry. W pliku skryput mapki mona stosowa komentarze:

// Moja Mapka

// autor: Wsik ,,TobiAlex" Slawomir
Komentarz zaczyna si od znaków //. Po tych znakach moemy wpisa dowolny tekst. Nie
bdzie mial on wplywu na przetwarzanie pliku skryptu. Na koniec dodam, e zawarto pliku
skryptu mapki jest przykladowa, bo to od Was zaley, jakie implanty bd dostpne na
Waszej mapce i czy w ogóle bd dostpne, to od Was zaley, jaka bro bdzie dostpna na
Waszej mapce itd. Ok, teraz przejdziemy do poszczególnych trybów gry multiplayer.
Proponuj, abycie przeczytali wszystkie opisy poszczególnych trybów gry multiplayer, bo
przy opisie kadego znich znajdziecie duo wanych informacji, które mog przyda si w
innych trybach. Pamitajcie te, aby zawsze dobrze opisywa, jakie zadania trzeba wykona
na mapce (za pomoc komendy Description).

7.5 Tryb Death Match (DM).
Tryb Death Match (DM) jest chyba najbardziej znaznym trybem gry multiplayer'owej.
Kady gracz zdobywa 1 punkt (tzw. frag) za zabicie innego, dowolnego gracza. Rozgrywka
koczy si zwycistwem gracza, który pierwszy osignie limit fragów okrelony w
ustawieniach mapki (pole `Frags Limit'), lub bdzie mial najwiksz ilo fragów po uplywie
czasu okrelonego w ustawieniach mapki (pole `Time Limit'). Mapka musi mie przypisan
klas ModuleNet (Module -> ChromeModule -> ModuleNetBase -> ModuleNet). Aby
przypisa klas do mapki trzeba uruchomi plug-in ,,Environment". Wicej informacji na ten
temat moecie znale w rozdziale o tworzeniu terenu w podrozdziale, gdzie plug-in ten jest
wykorzystywany. Musimy te stworzy tzw. spawn point'y. S to punkty, gdzie gracz bdzie
si ,,odradzal". Gdzie te punkty zostan dodane zaley ju tylko od Was i Waszej mapki.
Wane jest, aby nie byly blisko siebie. Aby doda spawn point naley za pomoc plug-in'a
,,Mesh Browser" doda obiekt Dot.3da (obiekt ten znajduje si w katalogu \Data\Interface\):




308

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Uwaga! Niech ten obiekt nie dotyka terenu mapki, niech ley troch nad powierzchni (w
razie potrzeby podniecie go za pomoc Gizma). To samo tyczy si innych miejsc. Jeeli
zrobicie spawn point'y np. w budynku, to niech nie dodyka podlogi. Teraz temu obiektowi
trzeba przypisa klas NetSpawnPoint (MeshObject -> NetTeamObject -> NetSpawnPoint).
Powinnicie ju wiedzie jak przypisywa klasy (przypominam, e klasy przypisuje si za
pomoc okna atrybutów obiektów, wicej informacji w rozdziale o obiektach w podrozdziale
o atrybutach obiektów). Klasa NetSpawnPoint posiada atrybuty m_bInside,
m_bSpawnOnTerrain i m_cAllowTeam (w sekcji Net na zakladce `Java'). Jeeli nasz spawn
point nie bdzie znajdowal si na terenie mapki, lecz np. w budynku, to atrybut m_bInside
tego spawn point'a musimy ustawi na true a atrybut m_bSpawnOnTerrain musimy ustawi
na false. Gdybymy umiecili jaki spawn point np. w transportowcu (obiekt
TransporterBig.3da) to atrybut m_bInside tego spawn point'a i m_bSpawnOnTerrain
ustawiamy na false. Oczywicie, gdy spawn point znajduje si na terenie mapki, to atrybut
m_bInside tego spawn point'a ustawiamy na false a atrybut m_bSpawnOnTerrain na true. Za
pomoc atrybutu m_cAllowTeam moemy przydzieli spawn point'y do odpowiedniej
druyny. Poniewa rozgrywka w trybie DM nie jest z podzialem na druyny, ustawiamy ten
atrybut na _ALL (w zasadzie jest to warto domylna):



Nie zapomnijcie potwierdzi zmian klikajc na przycisku `Apply' w oknie atrybutów
obiektów. Dodajcie do mapki klika takich spawn point'ów (nie zapomnijcie przypisa im
odpowiednie klasy i ustawi atrybutu m_cAllowTeam na _ALL) w do duych odstpach od
siebie. Aby nasza mapka byla dla trybu DM, w katalogu z mapk musi znale si plik
skryptu mapki o nazwie DM.scr. W tym pliku, do listy ustawie mapki, moemy doda
nastpujce komendy:

GameSettings()
{
MaxFrags(4)
GameTime(20)
AvailableInventoryRoom("yes")
EnemiesVisibleOnHudMap("no")
RespawnCntLimit(-1)
MinRespawnTime(-1)
AvailableVehicles("yes")
VehicleRespawnTime(5)
VehicleRespawnCntLimit(120)
}
Komenda MaxFrags ustala maksymaln liczb fragów. Jeeli gracz zdobdzie maksymaln
liczb fragów, rozgrywa zostanie zakoczona. Uwaga! Warto -1 zawsze oznacza ,,bez
limitu". Dotyczy to wszystkich komend na licie ustawie mapki, które jako parametr
przyjmuj warto -1. Komenda GameTime ustala czas gry (czas podawany jest w minutach).
Po uplywie tego czasu rozgrywka zostaje zakoczona a wygrywa gracz, który zdobyl
najwicej fragów. Komenda AvailableInventoryRoom ustala, czy gracz bdzie mial dostp do
okna wyboru ekwipunku - jeeli wpiszemy ,,yes" to bdzie mial dostp, jeeli wpiszemy ,,no"
to nie bdzie mial dostpu do tego okna. Komenda EnemiesVisibleOnHudMap ustala, czy na
HUD'zie widoczni bd wrogowie (inni gracze ew. gracze z druyny przeciwnej) - jeeli

309

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
wpiszemy ,,yes" to bd widoczni, jeeli wpiszemy ,,no" to wrogowie nie bd widoczni na
HUD'zie. Komenda RespawnCntLimit ustala maksymaln liczb respawnów gracza. Jeeli
ten limit zostanie wyczerpany, gracz ju nie bdzie mógl ,,odradza si". Komenda
MinRespawnTime ustala czas midzy kolejnymi respawnami graczy (czas podawany jest w
sekundach). Jeeli gracz zginie, to po tym czasie si ,,odrodzi". Komenda AvailableVehicles
ustala dostpnoc pojazdów na naszej mapce ­ jeeli wpiszemy ,,yes" to bd dostpne, jeeli
wpiszemy ,,no" to pojazdy nie bd dostpne. Komenda VehicleRespawnCntLimit ustala
maksymaln liczb respawnów pojazdów. Jeeli ten limit zostanie wyczerpany, pojazdy na
mapce nie bd si ju dostpne. Komenda VehicleRespawnTime ustala czas midzy
kolejnymi respawnami pojazdów (czas podawany jest w sekundach). Oczywicie najpierw
musimy doda spawn point'y dla pojazdów. Jak to zrobi, dowiecie si z ostatniego
podrozdzialu. I tak wyglda najprostsza rozgrywka w grze Chrome. Najbardziej dynamiczna i
pokazowa . Ten tryb nie wymaga duej liczby graczy, mona gra nawet tylko we dwóch.

7.6 Tryb Team Death Match (TDM).
W tym trybie udzial bior dwie druyny. Kady gracz zdobywa 1 punkt za zabicie
gracza z druyny przeciwnej. Za zabicie gracza z wlasnej druyny 1 punkt jest odejmowany.
Jeeli w ustawieniach mapki wlczona jest opcja `Friendly Fire' zabijanie graczy z wlasnej
druyny jest niemoliwe. Punkty graczy jednej druyny s sumowane jako ,,Team Score".
Rozgrywka koczy si zwycistwem druyny, która pierwsza osignie, okrelony w
ustawieniach mapki limit fragów (pole `Frags Limit') lub bdzie miala wyszy liczb
punktów (`Team Score') po uplywie czasu okrelonego w ustawieniach mapki (pole `Time
Limit'). Tryb TDM jest druynow wersj trybu DM. Mapka musi mie przypisan klas
ModuleNet (Module -> ChromeModule -> ModuleNetBase -> ModuleNet). Trzeba te doda
kilka spawn point'ów z tym, e musimy je podzieli na druyny (jak si tworzy spawn
point'y moecie przeczyta przy opisie trybu DM). Kada druyna musi posiada kilka
spawn point'ów, jednak spawn point'y jednej druyny musz by oddalne od spawn point'ów
drugiej druyny. Dla jednej druyny ustawiamy atrybut m_cAllowTeam spawn point'ów na
_BLUE (to bd spawn point'y dla druyny niebieskiej):



a dla drugiej druyny ustawiamy ten atrybut spawn point'ow na _RED (to bd spawn
point'y dla druyny czerwonej):



Pamitajcie o odpowiednim ustawieniu atrybutów m_bInside i m_bSpawnOnTerrain
poszczególnych spawn point'ów. Wicej informacji na ten temat moecie przeczyta przy
omawianiu trybu DM. Aby nasza mapka byla dla trybu TDM, w katalogu z mapk musi
znale si plik skryptu mapki o nazwie TDM.scr. W tym pliku, do listy ustawie mapki,
moemy doda nastpujce komendy:
GameSettings()

310

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
{
MaxFrags(15)
GameTime(15)
AvailableInventoryRoom("yes")
TeamBalance("no")
FriendlyFire("yes")
EnemiesVisibleOnHudMap("no")
FriendsVisibleOnHudMap("yes")
RespawnCntLimit(-1)
MinRespawnTime(-1)
AvailableVehicles("yes")
VehicleRespawnTime(5)
VehicleRespawnCntLimit(120)
}
Komenda TeamBalance ustala, czy ilo graczy obu druyn ma by wyrównana
(balansowana) - jeeli wpiszemy ,,yes" to bdzie wyrównana, jeeli wpiszemy ,,no" to ilo
graczy obu druyn nie bdzie wyrównana. Komenda FriendlyFire ustala, czy mona strzela
do graczy wlasnej druyny ­ jeeli wpiszemy ,,yes" to bdzie mona strzela (za zabicie
gracza z wlasnej druyny odejmowany bdzie punkt), jeeli wpiszemy ,,no" to trafienie
gracza wlasnej druyny nie bdzie moliwe. Komenda FriendsVisibleOnHudMap ustala, czy
na HUD'dzie widoczni bd gracze z wlasnej druyny - jeeli wpiszemy ,,yes" to bd
widoczni, jeeli wpiszemy ,,no" to gracze wlasnej druyny nie bd widoczni na HUD'zie.
Pozostale komendy zostaly opisane w podrozdziale o trybie DM. Pamitajcie, e trzeba
jeszcze doda spawn point'y dla pojazdów. Jeeli na mapce nie ma pojazdów, to wpiszcie
,,no" dla komendy AvailableVehicles.

7.7 Tryb Single Man Domination (SMD).
Tryb SMD to tryb, podobnie jak w trybie DM, w którym kady z graczy jest dla innych
wrogiem. Na mapce znajduje si punkt kontrolny. Punkt ten jest ,,kontrolowany" przez
gracza, który na nim stanie (wystarczy, e go dotknie). Gracz, który kontroluje punkt
kontrolny otrzymuje 1 punkt za kady uplytnity czas okrelony w ustawieniach mapki (pole
`Score Update Time'). Rozgrywka koczy si zwycistwem gracza, który jako pierwszy
osignie limit punktów okrelony w ustawieniach mapki (pole `Point Limit') lub ma
najwysz liczb punktów po uplywie czasu okrelonego w ustawieniach mapki (pole `Time
Limit'). Aby nasza mapka byla dla trybu SMD musi mie przypisan klas ModuleNet
(Module -> ChromeModule -> ModuleNetBase -> ModuleNet). Trzeba doda te kilka
spawn point'ów. Poniewa tryb SMD nie jest trybem druynowym, ustawcie atrybut
m_cAllowTeam wszystkich spawn point'ów na _ALL. Postarajcie si, aby spaw point'y byly
od siebie oddalone. Teraz musimy doda punkt kontrolny, czyli punkt, który bdzie mógl by
kontrolowany gracz gracza. Na mapce w miejscu, gdzie ma si znale taki punkt, za pomoc
plug-in'a ,,Mesh Browser" dodajemy obiekt Flagstand.3da (obiekt ten znajduje si w katalogu
\Data\Meshes\Objects\):


311



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Do tego obiektu dodajemy obiekt Flag.3da (ten obiekt take znajduje si w katalogu
\Data\Meshes\Objects\):



Bdzie o wiele latwiej doda jeden obiekt do drugiego, gdy wlczycie snapowanie
(przyciganie) obiektów (oba obiekty maj haki). Wybierzcie te opcj `drop to object' na
zakladce `Drop' w plug-in'ie ,,Mesh Browser". Potem za pomoc Gizma przesucie obiekt w
odpowiednie miejsce. W porzdku. Teraz za pomoc okna atrybutów obiektów obiektowi
Flagstand.3da przypisujemy klas DominationBaseFlagStand (MeshObject ->
DominationBaseFlagStand). Klikamy na przycisku `Apply' w oknie atrybutów obiektów, aby
potwierdzi zmiany. Obiektowi Flag.3da przypisujemy klas DominationBaseFlag
(MeshObject -> TriggerObject -> DominationBase -> DominationBaseFlag). Klikamy na
przycisku `Apply', aby potwierdzi zmiany. I to wszystko! Aby nasza mapka byla dla trybu

312

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
SMD, w katalogu z mapk musi znale si plik skryptu mapki o nazwie SMD.scr. W tym
pliku, do listy ustawie mapki, moemy doda nastpujce komendy:
GameSettings()
{
MaxPoints(100)
GameTime(30)
AvailableInventoryRoom("yes")
ScoreUpdateTime(5)
AllowControlByDeadPlayer("no")
EnemiesVisibleOnHudMap("no")
BasesVisibleOnHudMap("yes")
RespawnCntLimit(-1)

MinRespawnTime(10)
AvailableVehicles("yes")
VehicleRespawnCntLimit(5)
VehicleRespawnTime(120)
}
Komenda MaxPoints ustala maksymaln liczb punktów, jak moe zdoby gracz. Jeeli
gracz zdobdzie odpowiedni ilo punktów, rozgrywka zostaje zakoczona. Komenda
ScoreUpdateTime ustala czas (czas podawany jest w sekundach), po jakim gracz dostaje
punkt za dominacj nad ,,punktem kontrolnym". Komenda AllowControlByDeadPlayer
ustala, czy gracz, który kontrolowal punkt kontrolny, ale zginl, nadal kontroluje ten punkt ­
jeeli wpiszemy ,,yes" to nadal go kontroluje, jeeli wpiszemy ,,no" to punkt kontrolny
przestaje by kontrolowany przez gracza, który zginl. Komenda BasesVisibleOnHudMap
ustala, czy na HUD'zie bd widoczne bazy ­ jeeli wpiszemy ,,yes" to bd widoczne, jeeli
wpiszemy ,,no" to bazy nie bd widoczne na HUD'zie. Pozostale komendy opisalem w
poprzednich trybach gry. Jeeli na mapce chcecie mie pojazdy, to pamitajcie, aby je doda
(wicej informacji na ten temat w ostatnim podrozdziale) lub wpiszcie ,,no" dla komendy
AvailableVehicles.

7.7 Tryb Team Domination (TD) i Team Total Domination (TTD).
Tryb TD to po prostu druynowa wersja trybu SMD. Na mapce znajduje si kilka punktów
kontrolnych (moe by jeden, ale moe by ich te kilka), które staj si ,,kontrolowane"
przez druyn gracza, jeeli gracz tej druyny stanie na jednym z tych punktów kontrolnych
(wystarczy, e go dotknie). Druyna gracza, która kontroluje punkty kontrolne otrzymuje 1
punkt za kady przedzial czasu okrelony w ustawieniach mapki (pole `Score Update Time').
Rozgrywka koczy si zwycistwem druyny, która jako pierwsza osignie limit punktów
okrelony w ustawieniach mapki (pole `Point Limit') lub ma najwysz liczb punktów po
uplywie czasu okrelonego w ustawieniach mapki (pole `Time Limit'). Wariantem trybu
Team Domination jest Team Total Domination. Rónica polega na tym, e druyna zaczyna
otrzymywa punkty dopiero, gdy bdzie kontrolowa wszystkie punkty kontrolne na mapce.
Pamitajcie, aby doda kilka spawn point'ów dla druyny niebieskiej (ustawcie atrybut
m_cAllowTeam tych spawn point'ów na _BLUE) i druyny czerwonej (ustawcie atrybut
m_cAllowTeam tych spawn point'ów na _RED). Spawn point'y jednej druyny powinny by
oddalone od spawn point'ów drugiej druyny. Dodajcie te kilka punktów kontrolnych (jak je
doda moecie przeczyta w podrozdziale o trybie SMD). Aby nasza mapka byla dla trybu
TD, w katalogu z mapk musi znale si plik skryptu mapki o nazwie TD.scr, natomiast
jeeli chcemy aby nasza mapka byla dla trybut TTD, to w katalogu z mapk musi znale si
plik skryput mapki o nazwie TTD.scr. W pliku TD.scr lub TTD.scr, do listy ustawie mapki,
moemy doda nastpujce komendy:

313

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
GameSettings()
{
MaxPoints(100)
GameTime(30)
ScoreUpdateTime(5)
AvailableInventoryRoom("yes")
TeamBalance("no")
FriendlyFire("yes")
EnemiesVisibleOnHudMap("no")
FriendsVisibleOnHudMap("yes")
BasesVisibleOnHudMap("yes")
RespawnCntLimit(-1)

MinRespawnTime(10)
AvailableVehicles("yes")
VehicleRespawnCntLimit(5)
VehicleRespawnTime(120)
}
Opis komend znajdziecie w powyszych podrozdzialach przy omawianiu poprzednich trybów
gry multiplayer. Jak zwykle musicie pamita, aby doda spawn point'y dla pojazdów lub
wpiszcie ,,no" dla komendy AvailableVehicles.

7.9 Tryb Capture The Flag (CTF).
Tryb CTF jest rozgrywk druynow. Kada z druyn posiada baz, w której znajduje si ich
flaga. Zadaniem gracza jest zdobycie flagi druyny przeciwnej i dotarcie z ni do wlasnej
flagi, która musi cigle znajdowa si w bazie. Kade takie ,,doniesienie" nagradzane jest
jednym punktem. Rozgrywka koczy si zwycistwem druyny, która jako pierwsza osignie
limit punktów okrelony w ustawieniach mapki (pole `Point Limit') lub ma najwysz liczb
punktów po uplywie czasu okrelonego w ustawieniach mapki (pole `Time Limit'). Mapka
musi mie przypisan klas ModuleNet (Module -> ChromeModule -> ModuleNetBase ->
ModuleNet). Na mapce musimy znale dwa dogodne miejsca, w których bd bazy
poszczególnych druyn. Jako baz dla druyny mona traktowa flag druyny, ale lepiej by
bylo, aby flaga byla dobrze strzeona i posiadala jakie umocnienia . T kwesti do
rozwizania pozostawiam Wam i Waszej wyobrani. Wokól kadej z baz dodajemy kilka
spawn point'ów. Dla jednej druyny ustawiamy atrybut m_cAllowTeam spawn point'ów na
_BLUE (to bd spawn point'y dla druyny niebieskiej) a dla drugiej druyny ustawiamy ten
atrybut spawn point'ow na _RED (to bd spawn point'y dla druyny czerwonej). Mam
nadziej, e ju pamitacie jak tworzy si spawn point'y. Jeeli macie jeszcze jakie
problemy to zerknijcie do powyszych rozdzialów (najbardziej szczególowe informacje na
ten temat znajdziecie w podrozdziale o trybie DM). Pamitajcie tylko, e jeeli jaki spawn
point nie ley na terenie mapki, lecz np. w budynku, to musicie ustawi atrybut
m_bSpawnOnTerrain tego spawn point'a na false. Musimy jeszcze doda flagi w bazach dla
poszczególnych druyn. Za pomoc plug-in'a ,,Mesh Browser" dodajemy obiekt
Flagstand.3da (obiekt ten znajduje si w katalogu \Data\Meshes\Objects\):


314


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Obiekt ten dodajemy w bazach obu druyn. Teraz temu obiektowi za pomoc okna atrybutów
onbiektów przypisujemy klas CTFBase (MeshObject -> NetTeamObject -> CTFBase).
Klasa CTFBase posiada atrybut m_cAllowTeam (taki sam jak klasa NetSpawnPoint,
dostpny w sekcji Net na zakladce `Java'). W bazie druyny niebieskiej ustawiamy ten
atrybut obiektu Flagstand.3da na _BLUE:



Natomiast w bazie druyny czerwonej ustawiamy atrybut m_cAllowTeam obiektu
Flagstand.3da na _RED:



Przypominam o klikniciu na przycisku `Apply' w oknie atrybutów obiektów w celu
potwierdzenia zmian. Aby nasza mapka byla dla trybu CTF, w katalogu z mapk musi
znale si plik skryptu mapki o nazwie CTF.scr. W tym pliku, do listy ustawie mapki,
moemy doda nastpujce komendy:
GameSettings()
{
MaxPoints(5)
GameTime(30)
AvailableInventoryRoom("yes")
FlagAutoReturnTime(120)
TeamBalance("no")
FriendlyFire("yes")
EnemiesVisibleOnHudMap("no")
FriendsVisibleOnHudMap("yes")
FlagsVisibleOnHudMap("yes")
RespawnCntLimit(-1)

MinRespawnTime(10)

315

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
AvailableVehicles("yes")
VehicleRespawnCntLimit(5)
VehicleRespawnTime(120)
}
Komenda FlagAutoReturnTime ustala czas (czas podawany jest w sekundach)
automatycznego respawnu flagi. Komenda FlagsVisibleOnHudMap ustala, czy na HUD'zie
maj by widoczne flagi ­ jeeli wpiszemy ,,yes" to bd widoczne, jeeli wpiszemy ,,no" to
flagi nie bd widoczne na HUD'zie. Opis pozostalych komend znajdziecie w powyszych
podrozdzialach. Pamitajcie, aby doda spawn point'y dla pojazdów lub wpiszcie ,,no" dla
komendy AvailableVehicles.

7.10 Tryb Assault.
Tryb Assault (zwany te Mission) jest druynowym trybem gry, w którym jedna z
druyn ma do wykonania okrelony na danej mapie cel (ang. objective) np. zniszczy
generator, zaj ldowisko lub seri celów, a druga druyna ma za zadanie im w tym
przeszkodzi (nie dopuci do realizacji celów druyny przeciwnej przez okrelony dla danej
mapy czas). Rozgrywka koczy si zwycistwem druyny atakujcej, jeeli wykona cele w
okrelonym czasie, lub druyny bronicej, jeeli cele przetrwaj przez okrelony dla mapy
czas. Rozgrywka w tym trybie sklada si z dwóch rund, pomidzy którymi druyny
zamieniaj si stronami, a wynik rozgrywki jest sum tych dwóch rund. W porównaniu do
innych trybów gry multiplayer, mapka dla trybu Assault musi mie przypisan klas
ModuleNetASSAULT (Module -> ChromeModule -> ModuleNetBase -> ModuleNet ->
ModuleNetASSAULT). Dodajemy te klika spawn point'ów. Poniewa tryb Assault jest
rozgrywk druynow, pamitajcie, aby spawn point'y podzieli na dwie druyny. Dla
druyny niebieskiej ustawicie atrybut m_cAllowTeam spawn point'ów na _BLUE, natomiast
dla druyny czerwonej ustawcie ten atrybut spawn point'ów na _RED. Pamitajcie, aby
spawn point'y jednej druyny byly oddalone od spawn point'ów drugiej druyny. Przy
pierwszej rozgwyce druyn bronic jest druyna niebieska. Musimy doda jeszcze obiekt,
który bdzie celem rozgrywki w trybuie Assault. Druna niebieska bdzie musiala broni
tego celu a druyna czerwona bdzie musiala zniszczy ten cel (po pierwszej rozgrywce
druyny zamieniaj si stronami). Cel musi znajdowac si w pobliu bazy druyny
niebieskiej (bronicej). W zasadzie celem moe by kady obiekt, wszystko zaley od Was.
To Wy robicie mapki i musicie wiedzie, jaki cel trzeba osign na Waszej mapce. Dla
przykladu celem druyny atakujcej bdzie zniszczenie kontenera z obc form ycia
(druyna bronica bdzie musiala broni ten kontener). W pobliu bazy druyny niebieskiej,
za pomoc plug-in'a ,,Mesh Browser" dodajemy obiekt ZbiornikFormalina.3da (obiekt ten
znajduje si w katalogu \Data\Meshes\Constructions\Walls\):


316


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Oczywicie celem rozgrywki w trybuie Assault moe by zupelnie inny obiekt. Moe to by
nawet budynek! Cel rozgrywki moe znajdowa si równie w budynku (obiekt
ZbiornikFormalina.3da równie mona doda w budynku). Obiekt, który jest celem
rozgrywki w trybie Assault musi mie przypisan klas ASSAULTDestroyable
(MeshObject
-> TriggerObject -> Actor -> ChromeActor -> Destroyable ->
DestroyableNet -> ASSAULTDestroyable) wic obiektowi ZbrionikFormalina.3da
przypisujemy klas ASSAULTDestroyable. Klasa ASSAULTDestroyable posiada atrybuty
bDeleteAfterDestroy (w sekcji DESTROYABLE na zakladce `Java') i fHealth (w sekcji
ACTOR take na zakladce `Java'). Jeeli atrybut bDeleteAfterDestroy jest ustawiony na true,
to obiekt, który ma przypisan klas ASSAULTDestroyable, po jego zniszczeniu zostaje
usunity z mapki. Atrybut fHealth odpowiada za sil obiektu z przypisan klas
ASSAULTDestroyable. Czym wartoc tego atrybutu jest wysza, tym obiekt ten jest trudniej
zniszczy (ale nie przesadzajcie, druyna przeciwna musi mie jakie szanse na zniszczenie
tego obiektu ). Ustawimy atrybut bDeleteAfterDestory w sekcji DESTROYABLE na true
(jest to warto domylna):



Warto atrybutu fHealth w sekcji ACTOR ustawiamy na 1000:



I gotowe! Aby nasza mapka byla dla trybu ASSAULT, w katalogu z mapk musi znale si
plik skryptu mapki o nazwie ASSAULT.scr. W tym pliku, do listy ustawie mapki, moemy
doda nastpujce komendy:
GameSettings()

317


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
{
MaxPoints(5)
GameTime(30)
ChangeSideOnNextRound("no")
RevengeMatch("no")
AvailableInventoryRoom("yes")
TeamBalance("no")
FriendlyFire("yes")
EnemiesVisibleOnHudMap("no")
FriendsVisibleOnHudMap("yes")
RespawnCntLimit(-1)

MinRespawnTime(10)
AvailableVehicles("yes")
VehicleRespawnCntLimit(5)
VehicleRespawnTime(120)
}
Komenda ChangeSideOnNextRound ustala, czy po rundzie nastpi zamiana stron midzy
druynami ­ jeeli wpiszemy ,,yes" to nastpi zmiana (druyna, która atakowala bdzie
broni a druyna która bronila, bdzie atakowa), jeeli wpiszemy ,,no" to druyny nie
zmieni stron. Komenda RevengeMatch ustala, czy bdzie rozgrywka rewanowa (na tej
samej mapce) ­ jeeli wpiszemy ,,yes" to bdzie, jeeli wpiszemy ,,no" to nie bdzie
rozgrywki rewanowej. Opis pozostalych komend znajdziecie w powyszych podrozdzialach.
Pamitajcie, aby doda spawn point'y dla pojazdów lub wpiszcie ,,no" dla komendy
AvailableVehicles. Na tym zakoczymy opis poszczególnych trybów gry multiplayer.

7.11 Pojazdy.
Jeeli chcemy, aby na naszej mapce byly pojazdy, to musimy doda spawn point'y dla
pojazdów. Najpierw za pomoc plug-in'a ,,Mesh Browser" dodajemy obiekt VehiclePOD.3da
(obiekt ten znajduje si w katalogu \Data\Meshes\Objects\):



Za pomoc okna atrybutów obiektów obiektowi VehiclePOD.3da przypisujemy klas
VehiclePod (MeshObject -> VehiclePod). Nie zapomnijcie klikn na przycisku `Apply' w

318


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
celu potwierdzenia zmian. Teraz na obiekt VehiclePOD.3da dodajemy obiekt z pojazdem np.
Jeep.3da (obiekt ten znajduje si w katalogu \Data\Meshes\Vehicles\):



Aby obiekt Jeep.3da nie byl wbity w obiekt VehiclePOD.3da, wybierzcie opcj `drop to
objects' na zakladce `Drop' w plug-in'ie ,,Mesh Browser":



i dopiero wtedy dodajcie obiekt Jeep.3da. Obiekt Jeep.3da musi mie przypisan klas Jeep,
wic w razie potrzeby przypiszcie mu klas Jeep (MeshObject -> TriggerObject -> Actor ->
ChromeActor -> Vehicle -> VehicleCar -> VehicleAttacker -> Jeep). Klasa Jeep posiada
atrybut m_cPod (w sekcji Net na zakladce `Java'). Atrybut ten przypisuje obiekt z przypisn
klas VehiclePod, wic z listy atrybutu m_cPod wybieramy odpowiedni obiekt VehiclePod:



Tu bardzo wana uwaga! Z listy atrybutu m_cPod musimy wybra ten obiekt, na którym stoi
nasz pojazd! Ok, stworzylimy nasz pierwszy spawn point dla pojazdów. Obiekt z przypisan
klas VehiclePod bdzie zawsze sygnalizowal alarmem i efektem specjalnym respawn
nowego pojazdu. Jeeli w czasie respawnu pojazdu, na obiekcie VehiclePOD.3da bdzie stal
jaki gracz to niestety zakoczy on swój ywot . Inne pojazdy, jakie moecie wykorzysta na
swoich mapkach to obiekt Walker_h.3da:


319



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Obiekt Walker_h.3da musi mie przypisan klas WalkerHeavy (MeshObject ->
TriggerObject -> Actor -> ChromeActor -> Vehicle -> Walker -> WalkerHeavy). Nastpnym
obiektem jest obiekt Walker_k.3da:



Obiekt Walker_k.3da musi mie przypisan klas WalkerLight (MeshObject ->
TriggerObject -> Actor -> ChromeActor -> Vehicle -> Walker -> WalkerLight). Kolejnym
obiektem jest obiekt Walker_w.3da:


320



wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Obiekt Walker_w.3da musi mie take przypisan klas WalkerHeavy (MeshObject ->
TriggerObject -> Actor -> ChromeActor -> Vehicle -> Walker -> WalkerHeavy). Wszystkie
te obiekty znajduj si w katalogu \Data\Meshes\AI. Ostatnim obiektem jest obiekt
Scigacz.3da (obiekt ten znajduje si w katalogu \Data\Meshes\Vehicles\):



Obiekt Scigacz.3da musi mie przypisan klas Speeder (MeshObject -> TriggerObject ->
Actor -> ChromeActor -> Vehicle -> VehicleCar -> Speeder). Klasy WalkerLight,
WalkerHeavy i Speeder posiadaj atrybut m_cPod (taki sam jak klasa Jeep), wic moecie
mu przypisa obiekt, który ma przypisan klas VehiclePod (VehiclePOD.3da). Dodam, e
na mapce moe by kilka spawn point'ów dla pojazdów i na kadej mapce moe by
dostpne wiele pojazdów rónego typu. Wszystko zaley od Was. Uwaga! Obiekty
Walker_h.3da i Walker_w.3da w grze multiplayer'owej nie maj drugiego trybut strzalu
(rakiety), natomiast aby mona strzela z obiektu Jeep.3da, musi w nim znale si drugi
gracz (strzelec). Na koniec, dla przypomnienia, w pliku skryptu mapki, do listy ustawie
mapki, musimy doda komend, która pozwala na wykorzystanie pojazdów na naszych
mapkach:

321

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
GameSettings()
{
AvailableVehicles(,,yes")
}
Mona te jeszcze doda komendy zwizane z czasem respawnów pojazdów a take z iloci
respawnów, ale o tym moecie przeczyta w podrozdziale o trybie Deatch Math (DM). Tak
wyglda caly tryb multiplayer w grze Chrome. Na koniec taka mala informacja. Nie trzeba
koniecznie stawia pojazdów na obiekcie VehiclePOD.3da. Pojazdy mog sta w dowolnym
miejscu na dowolnym terenie .



Rozdzial 8 ­ Aspekty gry singleplayer

8.1 Wstp
Jak latwo si zorientowa, w tym rozdziale porusz aspekty gry singleplayer. W miar
moliwoci, postaram si opisa wszystko, co jest zwizane z tym trybem. Niestety, nie jest
to kompleny opis moliwoci tworzenia mapek dla trybu singleplayer a to z tego wzgldu, e
jest on bardzo rozbudowany, a zadanie do wykonania, jakie stoi przed graczem na danej
mapce, zaley tylko i wylcznie od pomyslu autora danej mapki.
Wszystkie mapki singleplayer'owe musz si znajdowa w podkatalogu
\LevelsCustom\ w katalogu \Data\ (\Data\LevelsCustom\). Podkatalog \LevelsCustom\ nie
jest tworzony podczas instalacji gry Chrome, wic trzeba taki podkatalog utworzy samemu.
W podkatalogu \LevelsCustom\ musicie utworzy kolejny podkatalog. Pamitajcie, e ten
podkatalog musi mie tak sam nazw jak nazwa mapki. W tym podkatalogu musz
znajdowa si wszystkie pliki zwizane z dan mapk. Dla przykladu, w tym dokumencie,
dla naszej mapki uywam nazwy MojaMapka, wic podkatalog te musi si nazywa
MojaMapka (\Data\LevelsCustom\MojaMapka\). W podkatalogu z mapk musi znale si
plik skryptu mapki singleplayer'owej (plik scr) o nazwie takiej samej, jak nazwa mapki. W
naszym przypadku taki plik musi si nazywa MojaMapka.scr. Dziki plikowi skryptu mapki,
mapka bdzie dostpna na licie misji dodatkowych (`Custom Missions'):


322


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


W pliku skryptu mapki zawarte s take informacje m.in. na temat zdjcia mapki, które
bdzie si pojawialo podczas wczytywania mapki (miniaturka tego zdjcia widoczna jest na
licie misji dodatkowych, co wida na powyszym rysunku) a take tekst informujcy o
zadaniu, jakie musi gracz wykona na danej mapce, dostpnym ekwipunku itp. Dokladn
zawarto tego pliku opisz w nastpnym podrozdziale. Musimy take przygotowa zdjcie
mapki. Zdjcie to bdzie widoczne podczas wczytywania mapki. Jak zrobi takie zdjcie
moecie przeczyta w rozdziale o aspektach gry multiplayer w podrozdziale o zdjciu mapki.
Pamitajcie, e zdjcie mapki musi znale si w tym samym podkatalogu, co mapk
(\Data\LevelsCustom\MojaMapka\ i najlepiejby bylo, gdyby nazwa pliku ze zdjciem mapki
byla taka sama jak nazwa mapki, ale zakoczona slowem `_Splash'. W naszym przykladzie
bdzie to nazwa MojaMapka_Splash.png (zdjcie musi by zapisane w formacie png).
Kada mapka singleplayer'owa musi posiada punkt startowy. Jest to miejsce, w
którym gracz zaczyna gr i w porównaniu do mapki multiplayer'owej, na mapce
singleplayer'owej powinno by tylko jedno miejsce startu. Punktem startowym dla mapki
singleplayer'owej jest obiekt Logan.3da (obiekt ten znajduje si w katalogu
\Data\Meshes\Logan\) i musi mie przypisan klas PlayerSingle (MeshObject ->
TriggerObject -> ChromeActor -> AnimActor -> Pawn -> PawnAnimated -> Player ->
PlayerTriggered -> PlayerHUD -> PlayerSingle). Mapka singleplayer'owa musi mie
przypisan klas ChromeModuleSingle (Module -> ChromeModule ->
ChromeModuleSingle).
Tak wygldaj podstawowe informacje na temat mapek singleplayer'owych. Duo
informacji na temat wykonania mapek singleplay'owych moecie znale na samych
mapkach wczytujc do edytora ChromeEd mapki stworzone przez twórców gry Chrome. Ten
rozdzial to drugi, najbardziej rozbudowany rozdzial w tym dokumencie!


323


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
8.2 Plik skryptu mapki singleplayer'owej.
Plik skryptu mapki singleplayer'owej jest bardziej rozbudowany ni dla mapki
multiplayer'owej, mona wykorzysta w nim o wiele wicej komend. Plik skryptu mona
stworzy w zwyklym Notatniku. Taki plik musi mie rozszerzenie scr. W przypadku gry
singleplayer nazwa pliku musi by taka sama jak nazwa naszej mapki. Poniewa w tym
dokumencie uywam nazwy MojaMapka, to w tym przypadku plik skryptu mapki
singleplayer'owej musi si nazywa MojaMapka.scr. Pamitajcie, aby plik ten znajdowal si
w podkatalogu, w którym znajduje si dana mapka. Teraz stworzymy nasz pierwszy plik
skryptu mapki singleplayer'owej. Otwieramy Notatnik. Pierwsza linijka pliku skryptu mapki
singleplayer'owej musi zawiera komend !include, dolczajc plik definicji komend dla
mapki singleplayer'owej:

!include("../../Level.def")
Komenda !include dolcza inny plik do pliku skryptu. Plik Level.def (plik ten znajduje si w
katalogu \Data\), który musimy zawsze dolczy do pliku skryptu mapki singleplayer'owej
(wlanie za pomoc komendy !include), zawiera definicj komend uywanych w plikach
skryptu mapek singleplayer'owych. Kady parametr komendy podawany jest w nawiasach
okrglych (). Jeeli parametrem komendy jest tekst, to tekst ten musi by umieszczony w
cudzyslowiu " ". Do formatowania tekstu mona wykorzysta klawisze SPACE, TAB i
ENTER. Kolejne linijki w pliku skryptu mapki odpowiadaj za to, co bdzie dostpne w
oknie wyboru ekwipunku:



Scenery()
{
PrepareToMissionMode()


{
AddInvWeapon("WeaponKnife",
1)
AddInvWeapon("WeaponPistol",
1)
AddInvWeapon("WeaponPistolSilenced",
1)

324

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
AddInvWeapon("WeaponPistolHeavy",
1)
AddInvWeapon("WeaponRifleShort",
1)
AddInvWeapon("WeaponRifleShortSilenced",
1)
AddInvWeapon("WeaponRifleShotgun",
1)
AddInvWeapon("WeaponRifle",
1)
AddInvWeapon("WeaponRifleHeavy",
1)
AddInvWeapon("WeaponRifleSniper",
1)
AddInvWeapon("WeaponRifleSniperHeavy",
1)
AddInvWeapon("WeaponRifleMachineGun",
1)
AddInvWeapon("WeaponHeavyRocketLauncher",
1)
AddInvWeapon("WeaponHeavyHEX",1)
AddInvWeapon("WeaponHeavyElectro",1)
AddInvWeapon("WeaponGrenade",
4)
AddInvWeapon("WeaponGrenadeCluster",
2)



AddInvAmmo("Ammo9mmShort",
3)
AddInvAmmo("Ammo8mmLong",
3)
AddInvAmmo("Ammo12mmShort",
3)
AddInvAmmo("AmmoShotgun",
3)
AddInvAmmo("Ammo14mmLong",
6)
AddInvAmmo("AmmoRockets",
3)
AddInvAmmo("AmmoEnergy",
3)


AddInvEquip("BinocularsExtended",
1)
AddInvEquip("DrugHealthex",
2)
AddInvEquip("DrugNeuralHealthex",
1)
AddInvEquip("CloakingDevice",
2)



DefaultWeapon("WeaponKnife")
DefaultWeapon("WeaponPistol")
DefaultWeapon("WeaponRifle")
DefaultWeapon("Ammo9mmShort")
DefaultWeapon("Ammo8mmLong")
DefaultWeapon("Ammo8mmLong")
DefaultWeapon("DrugHealthex")
DefaultWeapon("DrugHealthex")
DefaultWeapon("DrugNeuralHealthex")
DefaultWeapon("WeaponGrenade")
DefaultWeapon("WeaponGrenade")
DefaultWeapon("WeaponGrenade")
DefaultWeapon("WeaponGrenadeCluster")
DefaultWeapon("WeaponGrenadeCluster")
DefaultWeapon("BinocularsExtended")


}
}
Teraz opisz znaczenie poszczególnych komend. Dziki komendzie Scenery(), przed
uruchomieniem mapki, dostpne bdzie okno wyboru ekwipunku. Jeeli chcemy, aby nasza
mapka uruchamiala si bez dostpu do tego okna, to po prostu nie dodajemy komendy
Scenery() lcznie z list komend wypisanych w nawiasach klamrowych {}. Komenda
PrepareToMissionMode() przygotowuje m.in. zawarto okna wyboru ekwipunku. Lista
dostpnego ekwipunku w oknie wyboru ekwipunku wypisana jest w nawiasach klamrowych

325


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
{}, w postaci kolejnych komend. Komenda AddInvWeapon dodaje bro danego typu do okna
wyboru ekwipunku. Pierwszy parametr tej komendy to nazwa broni a drugi to liczna
okrelajca ile sztuk tej broni bdzie dostpne w oknie wyboru ekwipunku. Wskazane jest,
aby zawsze byla dostpna jedna sztuka danej broni, chyba, e s to granaty. Jeeli nie
chcemy, aby gracz mial dostp do jakiej broni, to po prostu wpisujemy warto 0 dla
drugiego parametru komendy AddInvWeapon. Prosz zwróci uwag, e nazwy broni dla
mapki multiplayer'owej zakoczone s slowem Net, natomiast dla mapki singleplayer'owiej
nie posiadaj takiego slowa. Komenda AddInvAmmo dodaje amunicj danego typu do okna
wyboru ekwipunku. Pierwszy parametr tej komendy to nazwa amunicji a drugi to liczba
okrelajca ile paczek danej amunicji bdzie dostpne w oknie wyboru ekwipunku. Komenda
AddInvEquip dodaje dodatkowe wyposaenie do okna wyboru ekwipunku (np. apteczki,
lornetka itp.). Pierwszy parametr tej komendy to nazwa wyposaenia a drugi to liczba
okrelajca ile sztuk tego wyposaenia bdzie dostpne w oknie wyboru ekwipunku. Ostatnia
komenda, DefaultWeapon, okrela zawarto domylnego ekwipunku. Gracz moe wybra
domylny ekwipunek, poprzez kliknicie na przycisku `DEFAULT LOAD' w oknie wyboru
ekwipunku:



Parametrem tej komendy jest nazwa danego elementu ekwipunku (moe to by bro,
amunicja czy te dodatkowe wyposaenie). Jeeli chcemy, aby gracz dostal klika elementów
tego samego typu np. kilka paczek amunicji, to trzeba t komend powtórzy tyle razy, ile
jest to potrzebne. Kolejne linijki w pliku skryptu mapki odpowiadaj ju za sam mapk:


LevelMap("Data/LevelsCustom/MojaMapka/MojaMapka.map")
{
Description("Moja
Mapka
[SINGLEPLAYER]\n\n
Satelita wykryl wroga w Twoim
pobliu.\nZlikwiduj go.")
DescriptionBackground("MojaMapka_Splash.png")

326

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Briefing("Zlikwiduj
wszystkich
wrogów.")
SaveName("Moja
Mapka")

ImplantAssimilation("ImplantZoom",
1.0)
ImplantAssimilation("ImplantArmor",
1.0)
NewImplantAssimilation("ImplantSpeed",
1.0)
ImplantAssimilation("ImplantAccuracy",
1.0)
ImplantAssimilation("ImplantStrength",
1.0)
ImplantAssimilation("ImplantTermovision",
1.0)
ImplantAssimilation("ImplantSlomo",
1.0)
ImplantAssimilation("ImplantHack",
1.0)
ImplantsChanged()

HackMovesMult(1)
HackElemsRange(6,7)
HackCombo(2)

StartItem("WeaponKnife")
StartItem("WeaponPistol")
StartItem("WeaponRifle")
StartItem("Ammo9mmShort")
StartItem("Ammo8mmLong")
StartItem("Ammo8mmLong")
StartItem("DrugHealthex")
StartItem("DrugHealthex")
StartItem("DrugNeuralHealthex")
StartItem("WeaponGrenade")
StartItem("WeaponGrenade")
StartItem("WeaponGrenade")
StartItem("BinocularsExtended")

StartLevelWithWeapon("WeaponRifle")

LeaveInventory()
}
Komenda LevelMap przechowuje nazw mapki wraz z dokladn ciek dostpu do danej
mapki. Zwrócie uwag, e przy oddzielaniu kolejnych podkatalogów uywa si znaku
,,lamane na" (/) a nie jak to standardowo bywa znaku ,,backslash" (\). Wlanie za pomoc
komendy LevelMap zostanie wczytana odpowiednia mapka po wybraniu jej z listy misji
dodatkowych (`Custom Mission'), zaraz po wybraniu ekwipunku przez gracza (o ile
oczywicie gracz ma dostp do okna wyboru ekwipunku, jeeli nie ma dostpu, to mapka
zostaje wczytana natychmiast po wybraniu jej z listy misji dodatkowych). Komenda
Description wywietla informacje podczas wczytywania mapki (pod zdjciem mapki). Jako
parametr komendy Description podajemy tekst, który bdzie wywietlony. Tekst ten
powinien zawiera informacj na temat mapki, jakie zadania czekaj gracza na tej mapce itp.
Jeeli chcemy, aby tekst byl wywietlony od nowej linii, to wystarczy uy znaków \n, tak
jak to wida na powyszym przykladzie. Komenda DescriptionBackground wywietla zdjcie
naszej mapki podczas wczytywania (wida j nad tekstem opisujcym mapk). Jako parametr
komendy DescriptionBackground podajemy nazw pliku zdjcia mapki (jak takie zdjcie
zrobi moecie przeczyta w rozdziale o aspektach gry multiplayer w podrozdziale o zjdciu
mapki). Jeeli nie uyjemy komendy DescriptionBackground w pliku skryptu mapki, to przy

327


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
wczytywaniu mapki nie pojawi si adne zdjcie. Jednak ze wzgldu na to, e zdjcie mapki
jest wywietlane na licie misji dodatkowych (zdjcie to jest automatycznie pomniejszone),
wskazane jest, aby dla mapki singleplayer'owej zdjcie takie umieszcza (w innym
przypadku na licie misji dodatkowych bdzie wywietlany czerwony prostokt). Komenda
Briefing wywietla informacje, które bd dostpne w oknie wyboru ekwipunku, po
klikniciu na przycisku `BRIEFING':




328

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Jako parametr komendy Briefing podajemy tekst, który bdzie wywietlony. Tekst ten
powinien zawiera informacje na temat mapki, jakie zadania czekaj na gracza na tej mapce
itp. Jeeli gracz nie ma dostpu do okna wyboru ekwipunku, to nie musimy uywa komendy
Briefing w pliku skryptu mapki singleplayer'owej. Aby tekst byl wywietlony od nowej linii,
to mona uy znaków \n (tak samo jak dla komendy Description). Komenda SaveName
pozwala ustali nazw, pod jak gracz bdzie mógl przechowywa zapisy gry grajc w nasz
mapk:


329


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Komenda ImplantAssimilation zmienia stopie asymilacji danego implantu. Pierwszy
parametr tej komendy to nazwa implantu a drugi to liczba okrelajca stopie asymilacji tego
implantu, gdzie warto 0.0 to kompletny brak asymilacji (gracz nie ma dostpu do tego
implantu) a warto 1.0 to maksymalna asymilacja implantu. Zamiast komendy
ImplantAssimilation mona uy komendy NewImplantAssimilation. Parametry dla komendy
NewImplantAssimilation s takie same jak dla komendy ImplantAssimilation. Rónica
midzy komendami jest taka, e komenda NewImplantAssimilation dodatkowo wywietla
informacj podczas gry o dostpnoci nowego implantu. Komenda ImplantsChanged()
wywietla informacj podczas gry o zmianie asymilacji implantów. Komendy
HackMovesMult, HackElemsRange i HackCombo maj zwizek z hakowaniem terminali. Do
hakowania terminali sluy lamacz kodów:


330


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Jeeli na naszej mapce znajduj si jakie terminale, które trzeba zhakowa, to za pomoc
tych trzech komend moemy odpowiednio skonfigurowa lamacza kodów tzn. ustawi
stopie trudnoci hakowania. Komenda HackMovesMult ustawia ilo dostpnych ruchów, w
których gracz musi zhakowa terminal. Parametrem komendy HackMovesMult jest liczba,
okrelajca mnonik dostpnych ruchów. Liczba ta standardowo mnoona jest przez 18. Dla
przykladu, jeeli wpiszemy HackMovesMult(2) to gracz bdzie mial 36 ruchów, w których
musi zhakowa terminal. Na kocow ilo dostpnych ruchów, w których gracz musi
zhakowa terminal ma wplyw komenda HackElemsRange. Komenda HackElemsRange
ustawia ilo zabezpiecze, które gracz musi zhakowa oraz stopie zabezpiecze.
Pierwszym parametrem komendy HackElemsRange jest liczba, okrelajca ilo
zabezpiecze (ilo par sekwencji, jakie trzeba odkry). Drugim parametrem komendy
HackElemsRange jest take liczba, okrelajca stopie zabezpiecznia. Im mniejsza warto
drugiego parametru, tym terminal bdzie trudniejszy do zhakowania. Warto drugiego
parametru komendy HackElemsRange ma take wplyw na ilo zabezpiecze oraz ilo
dostpnych ruchów, w których gracz musi zhakowa terminal. Komenda HackCombo
ustawia ilo elementów, które trzeba jednoczenie odkry. Parametrem komendy
HackCombo jest liczba, okrelajca ilo elementów, które trzeba jednoczenie odkry, aby
zostalo zlamane jedno zabezpiecznie w terminalu. Jeeli na naszej mapce nie znajduj si
adne terminale, które trzeba zhakowa, to nie ma potrzeby uywania tych trzech komend w
pliku skryptu mapki singleplayer'owej. Komenda StartItem dodaje obieky do ekwipunku
gracza zaraz po uruchomieniu mapki. Parametrem tej komendy jest nazwa danego elementu
ekwipunku (moe to by bro, amunicja lub te dodatkowe wyposaenie). Jeeli chcemy, aby
gracz dostal klika elementów tego samego typu np. kilka paczek amunicji, to trzeba t
komend powtórzy tyle razy, ile jest to potrzebne. Tu do wana informacja. Jeeli gracz
ma dostp do okna wyboru ekwipunku, to nie musimy uywa komendy StartItem w pliku
skryptu mapki singleplayer'owej, poniewa w tym przypadku gracz i tak bdzie mial w
ekwipunku to, co wybral w oknie wyboru ekwipunku. Komenda StartLevelWithWeapon
okrela, jak bro gracz bdzie trzymal w rkach zaraz po uruchomieniu mapki. Parametrem

331

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
komendy StartLevelWithWeapon jest nazwa broni. Ostatni komend w pliku skryptu mapki
singleplayer'owej jest komenda LeaveInventory(). Komenda LeaveInventory() przenosi
ekwipunek gracza zdobyty na jednej mapce do drugiej mapki (jeeli mamy polczonych klika
mapek w kampani, o czym za chwil) tzn. gracz rozpocznie gr na nastpnej mapce z takim
ekwipunkiem, jaki posiadal na koniec poprzedniej mapki. No wlanie, majc kilka mapek
singleplayer'owych mona je polczy w jedn kampani tzn. cig uruchamianych po sobie
mapek. W takim przypadku dla mapek singleplayerowych wchodzcych w sklad kampani,
tworzymy tylko jeden plik skryptu mapki singleplayer'owej. Najlepiej plik ten umieci w
podkatalogu, w którym znajduje si pierwsza mapka kampanii. Plik skryptu mapki
singleplayer'owej powinien wyglda mniej wicej tak:

LevelMap("Data/LevelsCustom/Mapka1/Mapka1.map")
{


... // tu konfiguracja pierwszej mapki
}
LevelMap("Data/LevelsCustom/Mapka2/Mapka2.map")

{


... // tu konfiguracja drugiej mapki
}
//
itd.
Nazwy mapek s przykladowe. Jeeli chcemy, aby gracz przed kad mapk mial dostp do
okna wyboru ekwipunku to musimy dodatkowo uy komendy Scenery(). W takim
przypadku plik skryptu mapki singleplayer'owej powinien wyglda mniej wicej tak:

Scenery()
{
PrepareToMissionMode()


{



... // tu konfiguracja okna wyboru ekwipunku


}
}
LevelMap("Data/LevelsCustom/Mapka1/Mapka1.map")
{


... // tu konfiguracja pierwszej mapki
}
Scenery()
{
PrepareToMissionMode()


{



... // tu konfiguracja okna wyboru ekwipunku


}
}
LevelMap("Data/LevelsCustom/Mapka2/Mapka2.map")

{


... // tu konfiguracja drugiej mapki
}
//
itd.
Oczywicie mona zachowa ekwipunek z jednej mapki do drugiej za pomoc komendy
LeaveInventory(). Pewnie jestecie ciekawi, co zrobi, aby przed mapk wywietli jaki
filmik (tak jak to mona zobaczy w grze Chrome). Otó zamiast komendy Scenery() uywa
si komendy LevelMap, z tym e w tym przypadku komenda LevelMap musi wskazywa
ciek dostpu i nazw danego filmiku. W takim przypadku plik skryptu mapki
singleplayer'owej powinien wyglda mniej wicej tak:

332

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

LevelMap(,,Data/Films/Film1/Film1.map")
{
}
LevelMap("Data/LevelsCustom/MojaMapka/MojaMapka.map")
{


... // tu konfiguracja mapki
}
Jeeli chcemy wywietli filmik, po którym gracz bdzie mial dostp do okna wyboru
ekwipunku, to plik skryptu mapki singleplayer'owej powinien wyglda mniej wicej tak:

LevelMap(,,Data/Films/Film1/Film1.map")
{
PrepareToMissionMode()


{



... // tu konfiguracja okna wyboru ekwipunku


}
}
LevelMap("Data/LevelsCustom/MojaMapka/MojaMapka.map")
{


... // tu konfiguracja mapki
}
Oczywicie trzeba pamita o wczeniejszym przygotowaniu filmiku. W pliku skryput mapki
mona stosowa komentarze:

// Moja Mapka

// autor: Wsik ,,TobiAlex" Slawomir
Komentarz zaczyna si od znaków //. Po tych znakach moemy wpisa dowolny tekst. Nie
bdzie mial on wplywu na przetwarzanie pliku skryptu. Na koniec dodam, e zawarto pliku
skryptu mapki jest przykladowa, bo to od Was zaley, jakie implanty bd dostpne na
Waszej mapce i czy w ogóle bd dostpne, to od Was zaley, jaka bro bdzie dostpna na
Waszej mapce itd. I w tym podrozdziale to ju wszystko .

8.3 Misja.
Przez kilka kolejnych podrozdzialów stworzymy wspólnie nasz pierwsz mapk
singleplayer'ow. Zadanie, które gracz bdzie mial do wykonania bdzie do proste ­
zlikwidowa wszystkich wrogów na mapce. Umówmy si, e tych wrogów bdzie trzech.
Scenariusz przewiduje, e po paru sekundach od uruchomienia mapki, gracz dostanie
informacje od Carrie (przyjaciólka Logana), e w pobliu jest kilku wrogów i aby si nimi
,,zajl". Dodatkowo, po zabiciu kadego wroga, Carrie poinformuje o tym gracza. Aby
urozmaici troch misj, wróg bdzie poruszal si po mapce. Po zabiciu wszystkich wrogów,
Carie nas o tym poinformuje i misja zostanie zakoczona. Wiem, scenariusz nie jest twórczy,
ale to pozostawiam Wam. Zakladam, e obiekt gracz'a tzn Logan.3da z przypisan klas
PlayerSingle macie ju dodany na mapce a take, e macie przypisan klas
ChromeModuleSingle do mapki. Zanim zaczniemy, otwieramy okno opcji wywietlania
(renderowania) i zaznaczamy opcje `Render' na panelu `Attributes visualization':



W ten sposób wlczymy wywietlanie wizualizacji atrybutów. Dziki temu widoczne bd
linie midzy punktami patrolowymi, polczenia midzy obiektami AI z punktami

333


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
patrolowymi itp. Potem klikamy na przycisku `OK', aby zamkn okno opcji wywietlania
(renderowania). Teraz ju moemy zacz tworzenie naszej misji!

8.4 Obiekty AI i grupy obiektów AI.
Tworzenie naszej misji zaczniemy od dodania wrogów, czyli obiektów kierowanych
przez komputer (AI). Za pomoc plug-in'a ,,Mesh Browser" dodajemy obiekt LSoilder.3da
(obiekt ten znajduje si w katalogu \Data\Meshes\AI\):



Dodajcie ten obiekt gdzie w oddali od gracza. Za pomoc okna atrybutów obiektów
nadajemy obiektowi LSoilder.3da nazw Wrog1 a take przypisujemy klas NewAIHuman
(MeshObject -> TriggerObject -> Actor -> ChromeActor -> AnimActor -> Pawn -> NewAI -
> NewAIHuman):



Klasa NewAIHuman posiada atrybut cAIWeapon (w sekcji NewAI na zakladce `Java'). Tam
moecie wybra bro, jak obiekt Wrog1 (jeeli jakiemu obiektowi nadam nazw, to w
dalszej czci tego rozdzialu bd odowolywal si to tej nazwy) bdzie uywal podczas misji:




334


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Wybór pozostawiam Wam . Przechodzimy na zakladk `Skins'. Na panelu `Skins'
wybieramy skór dla naszego obiektu Wrog1:



Do wyboru mamy naprawd wiele rónych skór. Wybierzcie co, co Wam bdzie
odpowiadalo. Klasa NewAIHuman posiada take atrybut cWaypoint (w sekcji AI na zakladce
`Mission'), do którego póniej przypiszemy ciek patrolow. Teraz klikamy na przycisku
`Apply' w oknie atrybutów obiektów. Ok, w ten sposób dodalimy pierwszego wroga. Teraz
sami dodajcie jeszcze dwa obiekty LSoldier.3da. Niech te wszystkie obiekty bd w pewnej
odlegloci od siebie. Obiektom tym nadajemy nazwy Wrog2 i Wrog3. Nie zapomnijcie im
przypisa klasy NewAIHuman. Moecie te wybra dla tych obiektów odpowiedni bro i
skóry. Dobrze. Teraz gdzie w pobliu tych trzech obiektów LSoldier.3da dodamy obiekt
typu `AIGroup'. W tym celu na zakladce `Settings' w plug-in'ie ,,Mesh Browser" z listy
`Type' wybieramy obiekt typu `AIGroup':



Potem klikamy na przycisku `Put Object' na panelu `Place object' i dodajemy ten obiekt w
pobliu trzech obiektów LSoldier.3da:



Otwieramy okno atrybutów tego obiektu. Obiekt typu `AIGroup' standardowo ma przypisan
klas AIGroup, wic tu nic nie zmieniamy, ale nadajemy mu nazw GrupaWrogow. Klasa
AIGroup posiada atrybut aMembers (w sekcji MEMBERS na zakladce `Java'). Do tego

335


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
atrybutu przypiszemy obiekty Wrog1, Wrog2 i Wrog3. W tym celu zaznaczamy atrybut
aMembers:



i klikamy prawym przyciskiem myszki na obiekcie Wrog1. Z menu, które si otworzy,
wybieramy polecenie Set <Wrog1> as <aMembers>:



W ten sposób przypisalimy obiekt Wrog1 do atrybutu aMembers obiektu GrupaWrogo. Nie
zapomnicie, e do przypisywania obiektów do atrybutów mona wykorzysta okno
zaznaczania i slekcji obiektów. Wicej informacji na ten temat znajdziecie w rozdziale o
obiektach w podrozdziale o zaznaczaniu i selekcji obiektów. Klikamy na przycisku `Apply' w
oknie atrybutów obiektów, aby potwierdzi zmiany. Tak samo postpujemy z obiektami
Wrog2 i Wrog3. Majc dalej zaznaczony atrybut aMembers klikamy prawym przyciskiem
myszki na obiekcie Wrog2 i z menu, które si otworzy, wybieramy polecenie
Set <Wrog2> as <aMembers>. Identycznie postpujemy z obiektem Wrog3. W ten sposób
przypisalimy obiekty Wrog1, Wrog2 i Wrog3 do atrybutu aMembers obiektu
GrupaWrogow:



Jeeli mamy wlczon opcj `Render' na panelu `Attributes visualization' w oknie opcji
wywietlania (zaznaczania) to bdzie widoczna óla linia lczca obiekt GrupaWrogow
(obiekt typu `AIGroup) a obiektami Wrog1, Wrog2, Wrog3:



Co wlaciwie daje obiekt typu `AIGroup'? Zamiast kontrolowa oddzielnie obiekty Wrog1,
Wrog2 i Wrog3, bdziemy kontrolowa obiekt typu `AIGroup', do którego wlanie
przypisane s te trzy obiekty. W ten sposób ulatwimy sobie prac, bo nie bdziemy musieli
kontrolowa trzech obiektów, lecz tylko jeden. Obiekt typu `AIGroup' posiada take atrybut
aOnSingleMemberDie (w sekcji AIGROUP na zakladce `Mission'), który pozwala wywola
akcj, w momencie, gdy który z obiektów przypisanych do obiektu typu `AIGroup' zostanie
zniszczony. Kolejnym atrybutem jest atrybut aOnDie (w sekcji AIGROUP take na zakladce

336


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
`Mission'), który pozwala wywolywa akcj, w momencie, gdy wszystkie obiekty przypisane
do obiektu typu `AIGroup' zostan zniszczone. Teraz do obiektów Wrog1, Wrog2 i Wrog3
dodamy cieki patrolowe.

8.5 Scieki patrolowe (waypoint'y).
cieki patrolowe, s to cieki, po których porusza si dany obiekt np. gracz sterowany
przez komputer (AI), kamera itp. cieka patrolowa sklada si z kilku punktów patrolowych
tzn. waypoint'ów. Waypoint'y mog by ze sob polczone tworzc wlanie ciek
patrolow. Obiekty ,,dolczone" do cieki patrolowej pokonuj kolejne punkty patrolowe
wchodzce w sklad tej cieki. Przy kadym punkcie patrolowym moe zosta wywolana
jaka akcja. Na potrzeby naszej misji dodamy 6 punktów patrolowych (waypoint'ów).
Punkty te polczymy po dwa, tworzc 3 scieki patrolowe. Dla kadego obiektu Wrog1,
Wrog2 i Wrog3 bdzie jedna cieka patrolowa. Aby doda punkt patrolowy naley na
zakladce `Settings' w plug-in'ie ,,Mesh Browser" z listy `Type' wybra obiekt typu
`Waypoint':



Teraz klikamy na przycisku `Put Object' na panelu `Place object' i dodajemy dwa punkty
patrolowe ­ jeden blisko obiektu Wrog1 a drugi gdzie dalej. Oba punkty patrolowe bd ze
sob polczone, co bdzie pokazywala czerwona linia midzy nimi:



Przy drugim punkcie patrolowym, jaki dodalimy, bdzie wywietlana strzalka, która
wskazuje, od którego, do którego punktu patrolowego bdzie odbywal si ruch obiektu
dolczonego do tych punktów patrolowych:


337


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Otwieramy okno atrybutu pierwszego punktu patrolowego (tego bliej obiektu Wrog1).
Obiekt typu `Waypoint' (punkt patrolowy) standardowo przypisan ma klas Waypoint. Tak
kals pozostawiamy. Nadajemy temu obiektowi nazw Ruch1A. Klasa Waypoint posiada
atrybut aAction (w sekcji WAYPOINT na zakladce `Mission'), który pozwala wywola jak
akcj w momencie, gdy dolczony obiekt dotrze do tego punktu patrolowego. Kolejnym
atrybutem jest atrybut cMotion, który pozwala wybra typ ruchu, jaki wykona dolczony
obiekt w momencie, gdy dotrze do danego punktu kontrolnego. Z listy obok atrybutu cMotion
wybieramy ruch typu mt_Move:



Typ ruchu mt_Move odpowiada za sposób pokonywania drogi do danego punktu
patrolowego przez dolczony obiekt tzn. czy ten obiekt ma i, biec, kuca, czolga si itp.
Odpowiedni sposób moemy wybra za pomoc listy atrybutu cSpeed w sekcji MT_MOVE
(sekcja ta jest dostpna dopiero po wybraniu odpowiedniego typu ruchu). Z tej listy
wybieramy _WALK (jest to zreszt warto domylna):



Moecie te wybra inne opcje m.in.:

338

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
_CRAWL ­ czolganie,
_DUCK ­ kucanie,
_RUN ­ bieganie,
_SWIM ­ plywanie,
_WALK ­ chodzenie.
Nastpnym atrybutem klasy Waypoint, jest atrybut cNext. Do tego atrybutu moemy
przypisa kolejny punkt patrolowy, po którym bdzie poruszal si obiekt. W naszym
przypadku kolejny punkt patrolowy jest ju przypisany:



wic atrybut cNext pozostawiamy bez zmian. Klikamy na przycisku `Apply', aby potwierdzi
zmiany. Teraz otwieramy okno atrybutów drugiego punktu patrolowego. Nadajemu mu
nazw Ruch1B. Dla tego punktu patrolowego take ustawcie typ ruch mt_Move i wybierzcie
odpowiedni sposób ruchu (proponuj _WALK). Z zaloenia naszej misji, dolczony obiekt
(tu bdzie to obiekt Wrog1) ma porusza si od jednego punktu patrolowego do drugiego
punktu patrolowego i z powrotem.Wic do atrybutu cNext punktu patrolowego Ruch1B
musimy przypisa punkt patrolowy Ruch1A. Mona tego dokona na dwa sposoby. Pierwszy
sposób to zaznaczy atrybut cNext:



a potem klikn prawym przyciskiem myszki na punkcie patrolowym, który chemy przypisa
do atrybutu cNext (tu punkt patrolowy Ruch1A). Z menu, które si otworzy, wybieramy
polecenie Set <Ruch1A> as <cNext>:



Drugi sposób to po prostu wybranie odpowiedniego punktu patrolowego z listy atrybutu
cNext (na tej licie dostpne s wszystkie punkty patrolowe na naszej mapce). Wic
wybieramy z tej listy punkt patrowy Ruch1A:



W ten sposób stworzylimy polczenie dwukierunkowe midzy tymi punktami patrolowymi
­ dolczony do tej cieki patrolowej obiekt bdzie poruszal si od jednego punktu
patrolowego do drugiego i z powrotem. Klikamy na przycisku `Apply' w oknie atrybutów
obiektów, aby potwierdzi zmiany. Teraz nam pozostalo tylko dolczy cieke patrolow, a
dokladniej punkt patrolowy 1A, do obiektu Wrog1. Otwieramy okno atrybutów obiektu
Wrog1 i z listy atrybutu cWaypoint (w sekcji AI na zakladce `Java') wybieramy punkt
patrolowy Ruch1A:



339


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

Oczywicie klikamy na przycisku `Apply' w oknie atrybutów obiektów. Midzy obiektem
Wrog1 a punktem patrolowym Ruch1A pojawi si biala linia sygnalizujca polczenie
midzy tymi dwoma obiektami:



I to w zasadzie wszystko. Teraz Waszym zadaniem jest dodanie kolejnych dwóch punktów
patrolowych. Nadajcie im nazwy Ruch2A i Ruch2B. Ustawcie te odpowiedni tryb ruchu
tych punktów patrolowych, stwórzcie dwukierunkowe polczenie midzy tymi punktami
patrolowymi. Na koniec dolczcie obiekt patrolowy Ruch2A do obiektu Wrog2. Taka mala
uwaga. Moe si zdarzy, e po dodaniu kolejnego punktu patrolowego, zostanie on
automatycznie polczony z ostatnio dodanym punktem patrolowym. W naszym przpadku
moe si zdarzy, e punkt patrolowy Ruch1B zostanie polczony z punktem patrolowym
Ruch2A. Musimy usun to polczenie. W tym celu otwieramy okno atrybutów obiektów
punktu patrolowego, od którego wychodzi niewlaciwe polczenie (w naszym przypadku
punkt patrolowy Ruch1B) i w tym oknie zaznaczamy atrybut cNext (na zakladce `Mission') i
naciskamy klawisz DELETE. W ten sposób usuniemy punkt patrolowy, który jest przypisany
do atrybutu cNext. Klikamy na przycisku `Apply', aby potwierdzi zmiany. Musicie jeszcze
doda punkty patrolowe dla obiektu Wrog3 (nadajcie im nazwy Ruch3A i Ruch3B). Ustawcie
odpowiednie atrybuty tych punktów patrolowych i stwórzcie dla nich dwukierunkowe
polczenie. Na koniec dolczcie obiekt patrolowy Ruch3A do obiektu Wrog3. Dobrze, nasz
wróg nie bdzie ju stal w miejscu, bdzie si poruszal. Nasuwa si jednak pytanie, co z
przeszkodami? Przecie na naszej mapce s drzewa, skaly, budynki itp. Przecie obiekt AI
(obiekt kierowany przez komputer) musi omija te przeszkody. Aby tak si stalo musimy
wygenerowa map kolizji obiektów dla AI.

8.6 Kolizja obiektów dla AI.
Dziki mapie kolizji obiektów, gracz sterowany przez komputer (AI), bdzie ,,widzial"
przeszkody istniejce na naszej mapce. Aby wygenerowa map kolizji (zawana te
potocznie pathmap) naley klikn na ikonie z literami `Ai'. Otworzy si okno `Collision for
AI generator':


340

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Najpierw omówi znaczenie poszczególnych opcji a potem wygenerujemy map kolizji. Pole
`Cell size' na panelu `Map properties' odpowiada za rozmiar kratki (podawany w cm) na
terenie mapki. Czym mniejsza warto tym mapa kolizji bdzie dokladniejsza, ale bdzie
zajmowa wicej miejsca w pamici. Opcje na panelu `Generation options' pozwalaj
zdecydowa, które elementy mapki bd brane podczas generowania mapy kolizji. I tak:
- `Boundary' ­ przy generowaniu mapy kolizji bdzie brana pod uwag ramka wokól naszej
mapki,
- `Water' ­ przy generowaniu mapy kolizji bdzie brana pod uwag woda na naszej mapce,
zarówno ta na obrzeach mapki, jak i ta wewntrz mapki (jeziora itp.),
- `Objects' ­ przy generowaniu mapy kolizji bd brane pod uwag wszystkie obiekty na
naszej mapce,
- `Trees' ­ przy generowaniu mapy kolizji bd bran pod uwag drzewa, skaly itp., (ogólnie
obiekty wygenerowane za pomoc plug-in'a ,,Forest") wystpujce na naszej mapce,
- `Terrain height' ­ przy generowaniu mapy kolizji bdzie brana pod uwage wysoko terenu
naszej mapki (chodzi o tereny nie dostpne np. wysokie wzgórza itp.), jeeli ta opcja jest
zaznaczona to w polu `Max height difference' wpisujemy maksymaln dopuszczaln
rónic wysokoci terenu naszej mapki.
Pozostawiamy wszystkie opcje bez zmian (zaznaczone). W polu `Max height difference'
wpisujemy warto 50. Jeeli zauwaycie, e na Waszej mapce obiekty AI (kierowane przez
komputer) wchodz na jakie trudnodostpne wzgórze, to zmniejszcie t warto. Klikamy na
przycisku `Save filename' a potem na przycisku trzykropka obok pola `Filename' i kierujemy
si do katalogu z nasz mapk (\Data\Levels\MojaMapka\). Nazwy pliku nie musimy
wpisywa (pojawila si ona automatycznie poprzez kliknicie na przycisku `Save filename',
upewnijcie si tylko, e jest to nazwa mapki, w naszym przypadku MojaMapka). Na koniec
klikamy na przycisku `OK'. Zacznie si proces generowania mapy kolizji dla AI. W katalogu
z nasz mapk pojawi si plik z map kolizji o nazwie MojaMapka.pfm a take podkatalog
\PMGFiles\, który zawiera pliki pomocnicze dla mapy kolizji. Od teraz nasze obiekty Wrog1,
Wrog2 i Wrog3 bd ,,widzialy" przeszkody na naszej mapce. Jeeli bdziecie robi swoje
mapki singleplayer'owe, na których obiekty AI (obiekty kierowane przez komputer) a take
cieki patrolowe itp. bd znajdowa si w budynkach, to po pierwszym uruchomieniu
mapki w grze Chrome (za pomoc przycisku `CUSTOM MISSION' w menu glównym gry),
w podkatalogu z mapk pojawi si jeszcze pliki wp. S to pliki kolizji obiektów AI dla
budynków. Podobnie jak pliki z lightmap'ami dla obiektów, pliki wp mona skompresowa
do pliku zip np. za pomoc programu WinZIP. Jednak w porównaniu do kompresowania

341


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
lightmap dla obiektów, kompresujc pliki wp nie trzeba zachowa adnej struktury
katalogów. Po prostu naley wszystkie pliki wp skompresowa do jednego pliku. Wane jest
tylko to, aby plik ten nazywal si Waypoint.zip i byl umieszczony w podkatalogu, w którym
znajduje si Wasza mapka. Oczywicie po skompresowaniu pliki wp mona usun.
Pamitajcie, e edytor ChromEd nie potrafi odczyta zawartoci plików zip. Dlatego
doradzam, aby pliki wp skompresowa na sam koniec tworzenia mapki tzn. wtedy, gdy
bdzie kompletnie gotowa.


8.7 Lokacje.
Kolejnym etapem tworzenia naszej misji jest dodanie lokacji. Lokacja zaznacza
konkretne miejsce na naszej mapce. Miejsce to zaznaczone jest na mapie satelitarnej
(uruchamiana za pomoc klawisza M podczas gry) w postaci kolejnych punktów 1, 1a, 1b,
1c, 2 itd.:



Aby doda lokacj naley na zakladce `Settings' w plug-in'ie ,,Mesh Browser" z listy `Type'
wybra obiekt typu `Location':



Teraz klikamy na przycisku `Put Object' na panelu `Place object' i dodajemy obiekt typu
location do naszej mapki w pobliu miejsca trzech obiektow Wrog1, Wrog2 i Wrog3 (obiekt
pomocniczy tzn. helper obiektu typu `Location' jest taki sam jak obiektu typu `Waypoint').
Wlanie w tym miejscu bdzie wywietlona lokacja na mapie satelitarnej, to tu gracz bdzie

342

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
mial do wykonania zadanie, które jest celem naszej misji tzn. likwidacja wroga. Otwieramy
okno atrybutów obiektu typu `Location'. Obiekt tego typu standardowo przypisan ma klas
Location. Nadajemy temu obiektowi nazw MiejsceWrogow. Klasa Location posiada atrybut
bEnableOnStart (w sekcji EDITORLOCATION na zakladce `Java'), który odpowiada za to,
czy dana lokacja bdzie widoczna na mapie satelitarnej zaraz po uruchomieniu mapki.
Ustawiamy ten atrybut na false:



W ten sposób lokacja ta nie bdzie od razu widoczna na mapie satelitarnej zaraz po
uruchomieniu mapki, co zalada scenariusz naszej misji ­ Carrie najpierw poinformuja Logana
o zadaniu, które ma do wykonania, dopiero potem pokae si lokacja na mapie satelitarnej
(lcznie z treci zadania do wykonania). Kolejnym atrybutem klasy Location jest atrybut
cPicture. Z listy tego atrybutu moemy wybra numer, jaki zostanie przyporzdkowany tej
lokacji. Numer ten bdzie widoczny na mapie satelitarnej. Dla naszej misji z listy atrybutu
cPicture wybieramy `_1' (warto domylna):



Na koniec klikamy na przycisku `Apply' w celu potwierdzenia zmian. Dodalimy lokacj na
naszej mapce, które bdzie informowa gracza, gdzie ma wykona zadanie. To ju co .

8.8 Dialogi.
Przyszedl czas na stworzenie dialogów. Dialogi w grze Chrome to takie proste
konwersacje midzy postaciami gry np. midzy Loganem (graczem) a jakim innym
obiektem AI (obiekt kierowany przez AI) np. Carrie ­ przyjaciólka Logana. Zasada dzialania
dialogów jest do prosta ­ gdy ,,mówi" Logan (gracz) napisy wywietlane s na dole ekranu,
natomiast jeeli ,,mówi" jaki inna posta np. obiekt AI, to wizerunek tego obiektu AI
pojawia si w górnej czci ekranu a obok wywietlany jest tekst, który ten obiekt ,,mówi".
Wedlug scenariusza naszej misji, musimy stworzy 5 dialogów. Kady z nich to rozmowa
midzy Carrie a Loganem (graczem). Pierwszy dialog bdzie informowal Logana o celu jego
misji, drugi bdzie ostrzegal Logana, e zblia si do wroga, a trzy ostatnie bd informowa
Logana, o likwidacji kolejnych celów. Aby doda dialog naley na zakladce `Setting' w plug-
in'ie ,,Mesh Browser" z listy `Type' wybra obiekt typu `Dialog':


343

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Potem klikamy na przycisku `Add Object' na panelu `Pleace object'. Od razu pojawi si okno
atrybutu obiektu typu `Dialog'. Obiekt typu `Dialog' standardowo ma przypisan klas
Dialog. Nadajemy temu obiektowi nazw Zadanie. Klasa Dialog posiada atrybut aLines (w
sekcji DIALOG na zakladce `Mission'). Atrybut ten odpowiada za linie tekstu, które bd
wywietlane na ekranie. Dodatkowo do kadej linii tekstu mona przyporzdkowa posta,
która dany tekst ,,mówi". Zaznaczamy atrybu aLines:



i naciskamy klawisz INSERT. Dodalimy nowy element atrybutu aLines:



Z listy nowo dodanego elementu do atrybutu aLines wybieramy dlg_Lines:



W ten sposób stworzylimy pierwsz lini tekstu w naszym dialogu. Musimy jeszcze wybra
posta, która dany tekst bdzie wypowiada oraz wpisa dany tekst. Najpierw bdzie mówi
Carrie (przyjaciólka Logana), dlatego z listy atrybutu cCharacter wybieramy chr_Carrie:



Atrybut cCharacter odpowiada wlanie za posta, której wizerunek bdzie wywietlany w
oknie dialogu. Atrybut sTextID odpowiada wlanie za tekst, który dana posta bdzie
wypowiada. Wpisujemy tam ,,Logan! Satelita wykryl obecnosc wroga w tym rejonie!
Zlikwiduj go!":


344

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


No i mamy pierwsz kwesti naszego dialogu. Oczywicie Logan (gracz) musi co na to
odpowiedzie. Ponownie zaznaczamy atrybut aLines:



i naciskamy klawisz INSERT. Dodamy kolejny element do atrybutu aLines:



Bdzie to druga linia tekstu w naszym dialogu. Tym razem bdzie wypowiadal j Logan
(gracz). Z listy nowo danego elementu atrybutu aLines wybieramy dlg_Lines. Teraz z listy
atrybutu cCharacter wybieramy chr_Logan a w atrybucie sTextID wpisujemy ,,Ok,
zalatwione!":



No i prosz, kolejna linijka dialogu dodana. Oczywicie jak to bywa z kobietami Carrie
musi co odpowiedzie na tekst Logana. Zaznaczamy atrybut aLines i nciskamy klawisz
INSERT. Z listy nowo dodanego elementu do atrybutu aLines wybieramy dlg_Lines a z listy
atrybutu cCharacter wybieramy chr_Carrie. W atrybucie sTextID wpisjemy ,,Logan, potraktuj
to zadanie powaznie! Zawsze robisz jakies jaja!":



Uff, ale si rozgadali . Dodajemy kolejn lini dialogu, tym razem ju ostatni. Zaznaczamy
atrybut aLines i naciskamy klawisz INSERT. Z listy nowo dodanego elementu do atrybut

345


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
aLines jak zwykle wybieramy dlg_Lines. Z listy atrybut cCharacter wybieramy chr_Logan a
w atrybucie sTextID wpisujemy ,,Dobrze. Moesz mi zaufac.":



Na koniec klikamy na przycisku `Apply' w oknie atrybutów obiektów, aby potwierdzi
zmiany. W ten sposób stworzylimy nasz pierwszy dialog. Calo bdzie mniej wicej
wyglda tak: najpierw wypowied Carrie:



a potem Logana:


346


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Wszystko jasne?! Mam nadziej, e tak . Klasa Dialog posiada take atrybut fWavePause (w
sekcji DIALOG na zakladce `Java'). Atrybut ten odpowiada za dlugo przerwy midzy
tekstami w dialogu (czas podawany jest w sekundach). Pozostawiamy warto domyln
(0.5). Pamitajcie, e obiekty typu `Dialog' s niewidoczne w edytorze ChromEd a jedynym
sposobem dostpu do tego typu obiektów jest okno zaznaczania i selekcji obiektów.
Otwieramy okno zaznaczania i selekcji obiektów. Z listy maski selekcji klas (`Class selection
mask') wybierzcie `Dialog'. Na licie obiektów (`Objects') zostan wywietlone wszystkie
obiekty typu `Dialog', które s dostpne na naszej mapce:



Wicej informacji temat tego okna znajdziecie w rozdziale o obiektach w podrozdziale
o zaznaczaniu i selekcji obiektów. W porzdku. Teraz ju sami dodajcie kolejne dialogi.

347


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Napisz Wam jak maj nazywa si poszczególne obiekty typu `Dialog' oraz opisz kolejne
linie dialogów z postaciami i teksty, które powinny te postacie wypowiada:
- dialog o nazwie BliskoWroga (dialog bdzie si uaktywanil, gdy Logan bdzie zblial si do
miejsca celu misji)
chr_Carrie
Logan, jestes ju blisko! Uwazaj na siebie!
chr_Logan
Dobra,
dobra.
- dialog o nazwie JedenZabity (dialog bdzie si uaktywnial, gdy Logan zabije pierwszego
wroga)
chr_Carrie
Jednego masz z glowy.
- dialog o nazwie DrugiZabity (dialog bdzie si uaktywnial, gdy Logan zabije drugiego
wroga), zwrócie uwag, e tu pierwszy odzywa si Logan (gracz)
chr_Logan
Carrie, zabilem kolejnego! Ilu ich jest?!
chr_Carrie
Jeszcze tylko jeden! Uwazaj!
- dialog o nazwie TrzeciZabity (dialog bdzie si uaktywnial, gdy Logan zabije ostatniego
wroga)
chr_Carrie
To ju wszyscy! Gratuluje!
chr_Logan
Jestem najlepszy!
Tak wygladaj wszystkie dialogi w naszej misji. Wyszla z tego niezla rozmowa . Mam
nadziej, e nie napotkacie na adne problemy przy dodawaniu kolejnych dialogów.

8.9 Cele misji (obiectiv'y).
Przyszedl czas, aby w kocu doda cel naszej misji. Cele misji, a dokladniej ich tre,
wywietlana jest na licie celów na mapie satelitarnej na panelu `OBJECTIVES'
(przywolywana za pomoc klawisza M podczas gry):



Za dodawanie celów misji (zwanych te objectiv'ami) odpowiadaj obiekt typu `Objective' i
obiekt typu `SubObjective'. Nasza misja jest do prosta, wic wykorzystamy tylko obiekt
typu `Objective'. Obiekt typu `SubObjective' pozwala doda cele poboczne do glównego
celu misji. Aby doda obiectiv (obiekt typu `Objective') naley na zakladce `Setting' w plug-
in'ie ,,Mesh Browser" z listy `Type' wybra obiekt typu `Objective':

348

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



a potem klikn na przycisku `Add Object' na panelu `Place Object'. Pojawi si okno
atrybutów obiektu typu `Objective'. Obiekt typu `Objective' ma standardowo przypisan
klas Objective. Nadajemu temu obiektowi nazw Zadanie (tak sam nazw ma te jeden z
dialogów, ale s to dwa róne typy obiektów, wic w niczym to nie przeszkadza). Klasa
Objective posiada atrybut bEnableOnStartup (w sekcji EDITOROBJECTIVE na zakladce
`Java'), który odpowiada za to, czy dany obiectiv (obiekt typu `Objective') bdzie widoczny
na mapie satelitarnej zaraz po uruchomieniu mapki. Ustawiamy ten atrybut na false:



W ten sposób objectiv naszej misji nie bdzie od razu widoczny na mapie satelitarnej zaraz
po uruchomieniu mapki. Jak pamitamy, takie zaloenia s scenariusza naszej misji. To
Carrie najpierw poinformuje Logana o zadaniu, które ma do wykonania, dopiero potem
pokae si cel misji na mapie satelitarnej (na panelu `OBJECTIVES', lcznie z lokacj
miejsca celu misji). Kolejnym atrybutem klasy Objective jest atrybut cLocation (w sekcji
EDITOROBJECTIVE na zakladce `Java'). Atrybut ten odpowiada za lokacj na mape,
któremu dany obiectiv jest przypisany. Jednym slowem atrybutowi cLocation musimy
przypisa obiekt typu `Location'. My ju taki obiekt dodalimy (nadalimy mu nazw
MiejsceWrogow). Obiekt typu `Location' do atrybutu cLocation klasy Objective mona
przypisa na dwa sposoby. Pierwszy sposób to zaznaczy atrybut cLocation:



a potem klikn prawym przyciskiem myszki na obiekcie typu `Location', który chemy
przypisa do atrybutu cLocation (w naszym przypadku jest to lokacja MiejsceWrogow). Z
menu, które si otworzy, wybieramy polecenie Set <MiejsceWrogow> as <cLocation>:




349

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Drugi sposób to po prostu wybranie odpowiedniego obiektu typu `Location' z listy atrybutów
cLocation (na tej licie dostpne s wszystkie obiekty typu `Location' dostpne na naszej
mapce). Wybieramy z tej listy lokacje MiejsceWrogow:



Kolejnym atrybutem klasy Objective jest atrybut iObjectiveOrderNumber (w sekcji
EDITOROBJECTIVE na zakladce `Java'). Atrybut ten decyduje o kolejnoci wywietlania
danego obiectiv'a na mapie satelitarnej. Wpisujemy warto 1:



Tym samym nasz objectiv (obiekt typu `Objective') zostanie wywietlony na pierwszej
pozycji na licie celów do wykonania (na mapie satelitarnej na panelu `OBJECTIVES').
Gdyby nasza misja miala kilka celów, to wlanie za pomoc atrybutu
iObjectiveOrderNumber moglibymy ustali ich kolejno na licie celów. Ostatnim
atrybutem klasy Objective jest atrybut sTextID. Atrybut ten odpowiada za tekst danego
objectiv'a, który wietlany jest na licie celów do wykonania. Wpisujemy ,,1. Zlikwiduj
wszystkich wrogow.":



Na koniec klikamy na przycisku `Apply' w oknie atrybutów obiektów, aby potwierdzi
wszystkie zmiany. Podobnie jak obiekty typu `Dialog' tak i obiekty typu `Objective' a take
obiekty typu `SubObjective' s niewidoczne w edytorze ChromEd a jedynym sposobem
dostpu do obiektów tego typu jest okno zaznaczania i selekcji obiektów. Otwórzcie to okno.
Z listy maski selekcji klas (`Class selection mask') wybierzcie `Objective'. Na licie
obiektów (`Objects') zostan wywietlone wszystkie obiekty typu `Objective' (i
`SubObjective'), które s dostpne na naszej mapce:


350

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Wicej informacji temat tego okna znajdziecie w rozdziale o obiektach w podrozdziale
o zaznaczaniu i selekcji obiektów. Zwrócie uwag, e na licie obiektów (`Objects')
wywietlony jest te obiekt z lokacj (obiekt typu `Location), któremu nadalimy nazw
MiejsceWrogow. Dzieje si tak, dlatego, e obiekty typu `Location' s blisko zwizane z
obiektami typu `Objective' i `SubObjective'. To tyle. Kolejny etap tworzenia naszej misji
zostal zakoczony. Cel misji zostal ju jasno okrelony .

8.10 Sensory.
Scenariusz naszej misji zaklada, e gdy Logan (gracz) zbliy si do wrogów, Carrie (jego
przyjaciólka) poinformuje go o tym. Pojawia si pytanie - skd bdziemy wiedzie, e akurat
zbliamy si do wrogów? Odpowied na to pytanie jest do prosta. Do tego slu sensory.
S to obiekty, które aktywuj jak akcj w momencie, gdy gracz (Logan) ,,wejdzie" w taki
sensor lub ,,wyjdzie" z niego. Aby doda sensor naley na zakladce `Settings' w plug-in'ie
,,Mesh Browser" z listy `Type' wybra obiekt typu `Sensor':



Jeeli wybierzecie obiekt typu `Sensor' z listy `Type' a przycisk `Put Object' bdzie
nieaktywny, to przypiszcie temu obiektowi klas sensor_Track. W tym celu klikamy na
przycisku trzykropka obok pola `Class':






351


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Otworzy si okno `Chose class'. Przypisujemy temu obiektowi klas sensor_Track
(Sensor -> sensor_Track):



Teraz klikamy na przycisku `OK' w oknie `Choose class'. Teraz klikamy na przycisku `Put
Object' na panelu `Pleace Object' i do naszej mapki dodajemy obiekt typu `Sensor'. A gdzie
go doda? Dodajcie go midzy graczem (Logan) a miejscem, w którym gracz ma wykona
zadanie naszej misji. Chodzi o to, aby gracz w drodze do miejsca, w którym ma wykona
zadanie ,,wszedl" w ten sensor. Po dodaniu obiektu typu `Sensor' do mapki, musimy go
przeskalowa tak, aby zajmowal do duy obszar:



Aby przeskalowa ten obiekt wlczamy tryb skalowania klikajc na odpowiedniej ikonie.
Musimy jeszcze wybra osie, w których chcemy przeskalowa ten obiekt. Wybieramy osie
XZ klikajc na odpowiedniej ikonie:




352

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Teraz wystarczy klikn na obiekcie typu `Sensor' i trzymajc wcinity lewy klawisz
myszki, wykonujemy ruch mysz w odpowiednim kierunku. Postarajcie si, aby sensor
zajmowal do spory obszar tak, aby mie pewno, e gracz bdzie musial przej przez ten
sensor. Sam sensor mona wsun troch pod teren mapki po to, aby nie zaslanial innych
elementów mapki. Teraz otwieramy okno atrybutów obiektu typu `Sensor'. Nadajemy mu
nazw WrogJestBlisko. Temu obiektowi przypisalimy klas sensor_Track. Klasa
sensor_Track posiada atrybut bEnabled (w sekcji SENSOR na zakladce `Mission'). Atrybut
bEnabled odpowiada za to, czy dany sensor jest wlczony (aktywny) lub wylczony
(nieaktywny). Ustawiamy ten atrybut na true (jest to zreszt warto domylna). Kolejnym
atrybutem klasy sensor_Track (i sensor_TrackCylinder) jest atrybut cOnEnter (w sekcji
SENSOR na zakladce `Mission'). Atrybut ten aktywuje jak akcj, w momencie, gdy gracz
(lub jaki inny obiekt) ,,wejdzie" w sensor. W naszym przypadku ma pojawi si dialog, w
którym Carrie (przyjaciólka Logana), ostrzega Logana (gracza), e wlanie zblia si do
miejsca, gdzie satelita wykryl wrogów. Musimy tak akcj stworzy. W tym celu zaznaczamy
atrybut cOnEnter:



i naciskamy klawisz INSERT. W ten sposób dodalimy nowy element do atrybutu cOnEnter:



Teraz z listy nowo dodanego elementu do atrybutu cOnEnter wybieramy akcj typu
act_Dialog:



Akcja tego typu wywoluje obiekt typu `Dialog'. Musimy jeszcze wybra dialog, który ma by
wywolany. Odpowiada za to atrybut cDialog nowo dodanego elementu do atrybutu cOnEnter.
Z listy atrybutu cDialog wybieramy dialog o nazwie BliskoWroga:



353

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1

Musimy jeszcze ustali, ile razy sensor bdzie aktywny, po ,,wejciu" danego obiektu w ten
sensor. Za to odpowiada atrybut nOnEnterTimes (w sekcji SENSOR na zakladce `Mission').
Wartoci domyln atrybutu nOnEnterTimes jest -1, co oznacza, e akcja, któr
stworzylimy bdzie wywolywana za kadym razem, gdy dany obiekt ,,wjedzie" w sensor.
Zmieniamy warto tego atrybutu na 1:



W ten sposób nasz sensor bdzie aktywny tylko raz. Tym samym dialog zostanie
wywolywany tylko raz, w momencie, gdy Logan (gracz) ,,wejdzie" w ten sensor. Nastpnym
atrybutem klasy sensor_Track jest atrybut fCheckInterval (w sekcji SENSOR na zakladce
`Java'). Atrybut ten odpowiada za czas, co który bdzie sprawdzany sensor, czy jaki obiekt
w niego ,,wszedl". Czas podawany jest w sekundach. Pozostawiamy warto domysln
atrybutu fCheckInterval (0.10000). Na koniec klikamy na przycisku `Apply' w celu
potwierdzenia zmian. Tym samy zrobilimy krok naprzód w tworzeniu naszej pierwszej misji
.

8.11 Wyzwalacze (trigger'y).
Scenariusz naszej misji zaklada, e po zabiciu kadego wroga, Carrie poinformuje o
tym Logana (gracza). Przygotowalimy ju nawet odpowiednie dialogi. Ale co zrobi, aby
wywola odpowiednie dialogi i to w dodatku w odpowiednim momencie? Tu z pomoc
przychodz wyzwalacze (tzn. trigger'y). S to obiekty, które aktywuj jakie akcje w
momencie spelnienia jakiego warunku. Nasz akcj bdzie wywolanie dialogu, natomiast,
aby dialog zostal wywolany, musi zgin który z wrogów. Musimy take kontrolowa liczb
zabitych wrogów, po to, aby móc wywola kolejny dialog w odpowiednim momencie. Do
kontrolowania liczby zabitych wrogów zadeklarujemy pewn zmienn, która bdzie si
zmniejszana w momencie, gdy zginie który z wrogów. Zmiennymi zajmiemy si w
nastpnym podrozdziale, natomiast teraz stworzymy dwa wyzwalacze. Czemu tylko dwa (w
kocu zabi trzeba trzech wrogów)? A to dlatego, e po zabiciu trzeciego wroga wywolamy
odpowiedni dialog bezporednio z obiektu GrupaWrogow (obiekt typu `AIGroup'). Aby
doda wyzwalacz (trigger) naley na zakladce `Setting' w plug-in'ie ,,Mesh Browser" z listy
`Type' wybra obiekt typu `Trigger':



Potem klikamy na przycisku `Add Object' na panelu `Pleace object'. Pojawi si okno
atrybutów obiektu typu `Trigger'. Obiekty typu `Trigger' maj standardowo przypisan klas
Trigger. Nadajemy temu obiektowi nazw ZabityPierwszyWrog. Klasa Trigger posiada
atrybut aActions (w sekcji TRIGGER na zakladce `Mission'), który aktywuje jak akcj w
momencie, jeeli jest spelniony jaki warunek. W naszym przypadku ma pojawi si dialog,
w którym Carrie mówi, e zabity zostal pierwszy wróg. Aby doda akcj zaznaczamy atrybut
aActions:

354

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



i naciskamy klawisz INSERT. Dodalimy nowy element do atrybutu aActions:



Z listy nowo dodanego elementu do atrybutu aActions wybieramy akcj typu act_Dialog:



Akcj tego typu ju znamy. Dla przypomnienia wywoluje ona obiekt typu `Dialog'. Musimy
jeszcze wybra, który dialog ma by wywolany. Odpowiada za to atrybut cDialog nowo
dodanego elementu do atrybutu aActions. Z listy atrybutu cDialog wybieramy dialog o
nazwie JedenZabity:



W porzdku. Akcj mamy zrobion. Musimy jeszcze stworzy warunek, który po spelnieniu,
wywola nasz akcj. Klasa Trigger posiada atrybut cCondition (w sekcji TRIGGER na
zakladce `Mission'), który wlanie odpowiada za warunek. Z listy atrybutu cCondition
wybieramy warunek typu cnd_Expression:



Uwaga! Warunek cnd_Expression wybieramy z listy atrybutu cCondition nalecej do klasy
Trigger, a nie do akcji typu act_Dialog! Ok, warunek typu cnd_Expression odpowiada za
jakie logiczne wyraenie. Wyraenie to przypisujemy do atrybutu sExpression nalecego
do warunku cnd_Expression. Naszym wyraeniem bdzie: Zabici = = 2. Takie w lanie
wyraenie przypisujemy atrybutowi sExpression:

355

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Zabici to zmienna, któr zadeklarujemy w nastpnym podrozdziale. Zmienna ta odpowiada za
ilo zabitych wrogów. Bdzie zmniejszana o jeden w momencie, gdy jeden wróg zginie.
Wyraenie logiczne = = porównuje warto z lewej strony znaku = = z wartoci z prawej
strony znaku = =. Jeeli s równe to warunek jest prawdziwy (ang. true) i nastpuje
wywolanie danej akcji. Jeeli nie jest prawdziwy (ang. false), to nic si nie dzieje.
Podsumowujc to, co stworzylimy. Gdy zostanie zabity jeden wrog, zmienna Zabici bdzie
miala warto 2 (o to si postaramy). Skoro warunek Zabici = = 2 jest prawdziwy, to zostanie
wywolany dialog. Zrozumiale? Na pewno tak . Nastpnym atrybutem klasy Trigger jest
atrybut fCheckInterval (w sekcji TRIGGER na zakladce `Mission'). Atrybut ten odpowiada
za czas, co który bdzie sprawdzany warunek wyzwalacza i w razie bdzie on prawdziwy,
zostanie wywolana akcja. Czas podawany jest w sekundach. Pozostawiamy warto
domyln atrybutu fCheckInterval (0.10000). Kolejnym atrybutem klasy Trigger jest atrybut
nTimes (w sekcji TRIGGER na zakladce `Mission'). Atrybut ten odpowiada za to, ile razy
dany wyzwalacz (trigger) bdzie aktywny. Wartoci domyln jest 1, co oznacza, e
wyzwalacz bdzie aktywny tylko raz. To nam odpowiada, wic pozostawiamy warto
domyln. Gdybymy ustawili warto tego atrybutu na -1, wyzwalacz bylby aktywny w
nieskoczono a tym samym, akcja wyzwalacza wywolywana bylaby za kadym razem, gdy
zostalby spelniony warunek tego wyzwalacza. Nastpnym atrybutem klasy Trigger jest
atrybut bEnabled (w sekcji TRIGGER na zakladce `Mission'). Atrybut ten odpowiada za to,
czy dany wyzwalacz (trigger) jest wlczony (aktywny) czy te wylczony (nieaktywny).
Ustawiamy ten atrybut na true. Zreszt jest to warto domylna, wic nie trzeba nic
zmienia. Teraz klikamy na przycisku `Apply' w oknie atrybutów obiektów, aby potwierdzi
wszystki zmiany. W ten sposób stworzylimy pierwszy wyzwalacz (trigger). Wiem, tym
razem bylo ju trudniej, ale myl, e nie a tak, aby nie dalo si tego zrozumie . Waszym
zadaniem jest dodanie kolejnego wyzwalacza (trigger'a). Nadajcie mu nazw
ZabityDrugiWrog. Ustawcie akcj tego wyzwalacza na act_Dialog. Akcja ta musi wywola
dialog o nazwie DrugiZabity. Ustawcie typ warunku tego wyzwalacza na cnd_Expression i
przypiszcie mu wyraenie Zabici = = 1. Nie zapomnijcie klikn na przycisku `Apply' w
oknie atrybutów obiektów w celu potwierdzenia zmian. Na koniec jak zwykle informacja.
Obiekty typu `Trigger' (wyzwalacze) s niewidoczne w edytorze ChromEd a jedynym
sposobem dostpu do tego typu obiektów jest okno zaznaczania i selekcji obiektów.
Otwórzcie okno zaznaczania i selekcji obiektów. Z listy maski selekcji klas (`Class selection
mask') wybierzcie `Trigger'. Na licie obiektów (`Objects') zostan wywietlone wszystkie
obiekty typu `Triggers', które s dostpne na naszej mapce:


356

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Wicej informacji temat tego okna znajdziecie w rozdziale o obiektach w podrozdziale
o zaznaczaniu i selekcji obiektów

8.12 Deklaracja zmiennych.
Przyszedl czas, aby w kocu zadeklarowa zmienn Zabici, która zostala wykorzystana
ju w wyzwalaczach. Zmienna musi by zadeklarowana na pocztku misji, czyli zaraz po
uruchomieniu mapki. Wic najlepszym sposobem jest wywolanie odpowiedniej akcji za
pomoc atrybutu cStartAction klasy ChromeModuleSingle, bo atrybut ten aktywuje akcje
zaraz po uruchomieniu mapki. Uruchamiamy plug-in ,,Environment" i przechodzimy na
zakladk `Mission'. Zaznaczamy atrybut cStartAction (w sekcji START na zakladce
`Mission'):



i naciskamy klawisz INSERT. Dodalimy nowy element do atrybutu cStartAction:



Z listy nowo dodanego elementu do atrybutu Start action wybieramy act_Script:



Akcja typu act_Script polega na wykonaniu fragmentu jakiego skryput. Takim skryptem
moe by np. deklaracja zmiennej. I to wlanie zrobimy. Tre skryptu wpisujemy w

357

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
atrybucie sScript nowo dodanego elementu do atrybutu cStartAction. Wpisujamy tam
Zabici := 3:



Wyraenie := przypisuje zmiennej z lewej strony znaku := warto z prawej strony znaku :=,
podobnie jak w Pascal'u (dla niewtajemniczonych Pascal to jzyk programowania). Czemu
akurat zmiennej Zabici przypisalimy twarto 3, to chyba nie musz pisa . I to by bylo tyle,
jeeli idzie o deklaracje zmiennych. Naciskamy przycisk `Apply' w oknie atrybutów
obiektów. Moemy zamkn plug-in ,,Environment". Zaraz po uruchomieniu mapki zostanie
wykonana nasza akcja tzn. zmiennej Zabici zostanie przypisana warto 3. W przyszloci, jak
bdziecie tworzy wielkie misje singleplayer'owe moe przyda si Wam okno referencji.
Okno to sluy do wyszukiwana w obiektach referencji na inne obiekty, ale dotyczy to tylko
referencji poprzez atrybuty obiektów (atrybuty Java). Upraszczajc cal spraw, moemy
m.in. sprawdzi czy dany obiekt jest przypisany do atrybutów innego obiektu. Otwieramy
okno referencji klikajc na ikonie `R'. Otworzy si okno `Object References':



Teraz, dla przykladu zaznaczcie na naszej mapce punkt kontrolny Ruch1A a potem kliknijcie
na przycisku `Update to current selection' na dole okna referencji obiektów:



Przycisk `Update to current selection' powoduje przeszukanie wszystkich obiektów na mapce
i wywietleniu w oknie referencji wszystkich obiektów, które maj przypisany do jakiego
atrybutu, zaznaczony aktualnie obiekt, czyli w naszym przypadku punkt patrolowy Ruch1A:


358

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Wywietlane s nastpujce informacje:
- w kolumnie `Object' wywietlane s nazwy obiektów, które maj przypisany obiekt
Ruch1A do którego z atrybutów, jak widzicie wywietlone zostaly obiekty Ruch1 (punkt
patrolowy) i Wrog1 (obiekt AI),
- w kolumnie `Java attribute' wywietlane s nazwy atrybutów, które maj przypisany obiekt
Ruch1A, mona z tego wywnioskowa, e obiekt Ruch1A przypisany jest do atrybutu
cNext obiektu Ruch1B a take do atrybutu cWaypoint obiektu Wrog1, w przypadku
zloonych atrybutów np. takich, do których zostaly dodane nowe elementy wywietlane
bd nazwy kolejnych atrybutów z drzewa atrybutów prowadzcych do glównego atrybutu
obiektu, zobaczymy to na przykladzie, gdy bdziemy wyszukiwa zmienn, o czym za
chwil,
- kolumna `Referenced object' wywietla po prostu nazw obiektu, który przypisany jest do
atrybutów innych obiektów, jest to po prostu obiekt, który zaznaczylimy na naszej mapce,
- kolumna `Description' jest nieuywana, z zaloenia miala wywietla jaki komentarz.
Uwaga! Lista w oknie referencji wywietlana jest tylko w momencie kliknicia na przycisku
`Update to current selection'! Nie jest aktualizowana w momencie, gdy na naszej mapce
zaznaczymy inny obiekt! Na wywietlonej licie moemy zaznaczy interesujcy nas obiekt
(moliwa jest multiselekcja):



Jeeli teraz klikniemy na przycisku `Select objects':



to obiekt zaznaczony na licie zostanie zaznaczony na naszej mapce. Moemy
wyporodkowa kamer aktywnego okna widokowego na naszym obiekcie przez nacinicia
klawisza X (najpierw jednak kliknijcie na pasku tytulowym edytora ChromEd). Kliknijcie
teraz na przycisku `Find variable':



Otworzy si okno `Get script variable name':



W polu `Variable name' moemy wpisa nazw zmiennej, która jest wykorzystywana w
atrybutach innych obiektów, a obiekty te chcemy wlanie znale. Wpiszcie nazw naszej

359

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
zmiennej, czyli Zabici (zwrócie uwag na wielko liter) i kliknijcie na przycisku `OK'. W
oknie referencji na licie pojawi si wszystkie obiekty, które maj przypisan do którego z
atrybutów, zmienn Zabici:



Przyjrzyjcie si kolumnie'Java attribute'. Wywietlone zostalo drzewko atrybutów, do
którego przypisana jest zmienna Zabici. Tak przedstawia si zastosowanie okna referencji
obiektów. Przy duych mapkach i rozbudowanych misjach moe naprawd pomó w
wyszukiwaniu obiektów i referencji do tych obiektów. W tym dokumencie stosowalem zwrot
,,przypisanie" obiektu do atrybutu. Fachowo powinno brzmie ,,referencja" obiektu do
atrybutu. To tyle, jeeli idzie o deklarowanie zmiennych. Musimy jeszcze stworzy kilka
akcji i nasza pierwsza misja singleplayer'owa bdzie gotowa.

8.13 Zakoczenie.
Powoli zbliamy si do koca. A co nam wlaciwie jeszcze pozostalo do zrobienia?!
Musimy stworzy zdarzenie, które bdzie wywolywalo dialog na pocztku misji, w którym
Carrie poinformuje Logana (gracza) o jego zadaniu. Po tym dialogu musi zosta
zaktualizowana lista celów wywietlana na mapie satelitarnej (wywolywanej za pomoc
klawisza M podczas gry). Trzeba stworzy te akcj, która bdzie wywolywala odpowiedni
dialog po zabiciu wszystkich wrogów i która bdzi koczyla nasz misj. Zaczniemy moe
od tego drugiego. Otwieramy okno atrybutów obiektu GrupaWrogow (obiekt typu
`AIGroup'). Jak pamitamy klasa AIGroup (klasa przypisana do obiektów typu `AIGroup)
posiada atrybut aOnSingleMemberDie, która pozwala wywola akcj, w momencie, gdy
który z obiektów przypisanych do obiektu typu `AIGroup' zostanie zniszczony. Wic ten
atrybut jest idealnym miejscem, w którym moemy stworzy akcj, która bdzie zmniejszala
warto naszej zmiennej Zabici o 1. Zaznaczamy atrybut aOnSingleMemberDie (w sekcji
AIGROUP na zakladce `Mission'):



i naciskamy klawisz INSERT. Dodalimy nowy element do atrybutu aOnSingleMemberDie:



Z listy nowo dodanego elementu do atrybutu aOnSingleMemberDie wybieramy znan ju
akcj typu acr_Script:




360

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Atrybutowi sScript musimy przypisa skrypt, któr bdzie zmniejszal warto zmiennej Zabici
o 1. Wic wpisujemy tam Zabici := Zabici ­ 1:



Wyraenie to dziala w prosty sposób ­ od aktualnej wartoci zmiennej Zabici jest
odejmowana warto 1 a potem wynik tego odejmowania jest przypisywany z powrotem do
zmiennej Zabici. Jak latwo si domylic, po zabiciu pierwszego wroga, zmienna Zabici
bdzie miala warto 2, i jak pamitamy, w tym momencie zostanie aktywowany wyzwalacz
ZabityPierwszyWrog, który wywola dialog JedenZabity. Gdy zginie kolejny wróg, zmienna
zabici bdzie znowu pomniejszona o 1, a tym samym równa 1. W tym momencie
aktywowany zostanie kolejny wyzwalacz tzn. ZabityDrugiWrog, który wywola dialog
DrugiZabity. Gdy zostanie zabity trzeci wróg, zostan spelnione warunki naszej misji. Akcj
koczc nasz misj dodamy do atrybutu aOnDie (w sekcji AIGROUP na zakladce
`Mission') klasy AIGroup, który odpowiada za wywolanie akcji w momencie, gdy zostan
zniszczone wszystkie obiekty przypisane do obiektu `AIGroup'. Zaznaczamy atrybut
aOnDie:



i naciskamy klawisz INSERT dodajc kolejny element atrybutu aOnDie:



Pierwsz akcj jak wywolamy po zabiciu wszystkich wrogów jest dialog, w którym Carrie
poinformuje Logoana (gracza), e wszycy wrogowie zostali zlikwidowani. Z listy nowo
dodanego elementu do atrybutu aOnDie wybieramy akcj typu act_DialogWait:



A czym si rónia akcji typu act_Dialog od act_DialogWait? Przede wszystkim musicie
pamita, e akcje wykonywane s po kolei, z góry do dolu. Kolejn akcj atrybutu aOnDie
bdzie zaliczenie celów misji. Jednak my chcemy zrobi tak, aby ta akcja zostala wywolana
dopiero po wysluchaniu ostatniego dialogu midzy Carrie a Loganem (graczem). Osigniemy
to wlanie dziki akcji typu act_DialogWait. Po prostu na czas dialogu zatrzymywane jest
wykonywanie kolejnych akcji. Dopiero po zakoczeniu dialogu zostanie wywolana nastpna
akcja. Znaczenie pozostalych atrybutów akcji typu act_DialogWait jest takie samo jak akcji
typu act_Dialog, dlatego z listy atrybutu cDialog wybieramy dialog TrzeciZabity:

361

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Teraz dodamy kolejn akcj. Akcja ta bdzie zalicza wykonanie celów misji. Ponownie
zaznaczamy atrybut aOnDie:



i naciskamy klawisz INSERT (moecie zwin pierwsz akcj tzn. akcj tupu
act_DialogWait klikajc na malym znaku minus obok pierwszego elementu atrybutu
aOnDie). Dodalimy kolejny element do atrybutu aOnDie:



Teraz z listy nowo dodanego elementu do atrybutu aOnDie wybieramy akcj typu
act_Accomplish:



Akcja typu act_Accomplish powoduje zaliczenie jakiego celu misji. Cel ten musimy wybra
z listy atrybutu cTarger, wic wybieramy z tej listy obiekt Zadanie:



Dla przypomnienia, obiekt Zadanie jest obiektem typu `Objective'. To wlanie temu
obiektowi przypisalimy tre celu naszej misji a take przypisalimy mu lokacj. Atrybut
cType akcji typu act_Accomplish odpowiada za to, czy dany cel misji zostal zaliczony.
Ustawcie ten atrybut na _ACCOMPLISH (jest to warto domylna). Gdybymy ustawili ten
atrybut na _UNACCOMPLISH, cel naszej misji nie zostalby zaliczony. Tak wyglda druga
akcja, która bdzie wywolana po zabiciu wszystkich wrogów. Dodamy ostani akcj. Akcja
ta bdzie koczy nasz misj. Ponownie zaznaczamy atrybut aOnDie:


362

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


i naciskamy klawisz INSERT dodajc tym samym kolejny element do atrybutu aOnDie:



Z listy nowo dodanego elementu do atrybutu aOnDie wybieramy akcj typu act_MissionEnd:



Akcja typu act_MissionEnd koczy misj singleplayer'ow. Atrybut bSuccess akcji tupu
act_MissionEnd odpowiada za to, czy misja zakoczyla si sukcesem czy te porak.
Ustawiamy atrybut bSuccess na true (misja zakoczona sukcesem):



Atrybut sComment akcji typu act_MissionEnd odpowiada za tre tekstu, jaki pojawi si po
zakoczeniu misji. Wpisujemy tam ,,Zadanie wykonane!":



Akcja typu act_MissionEnd posiada jeszcze bardzo interesujcy atrybut. Jest nim atrybut
sCameraTarget. Atrybut ten odpowiada za obiekt, na którym ,,zawinie" kamera po
zakoczeniu misji. Oczywicie zbrobimy, aby tym obiektem byl Logan (gracz). Zaznaczamy
atrybut cCameraTarget:


363

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


a potem klikamy prawym przyciskiem myszki na obiekcie Logana (gracz singleplayer'owy).
Z menu, które si otworzy, wybieramy polecenie Set <Gracz> as <cCameraTarget>:



Gracz to nazwa obiektu Logan.3da. Obiekt ten musi mie przypisan klas PlayerSingle.
Mam nadziej, e taki obiekt dodalicie ju na samym pocztku tworzenia mapki. Jeeli nie,
to zróbcie to teraz. Obiekt ten znajduje si w katalogu \Data\Meshes\Logan\. Pamitajcie, aby
obiekt ten mial przypisan klas PlayerSingle (MeshObject -> TriggerObject -> Actor ->
ChromeActor -> AnimActor -> Pawn -> PawnAnimated -> Player -> PlayerTriggered ->
PlayerHUD -> PlayerSingle). I to by bylo na tyle! Kocowa cze misji zrobiona . Nie
zapomnijcie klikn na przycisku `Apply' w oknie atrybutów obiektów, aby potwierdzi
zmiany. Tak sobie myl, wprowadzimy mal zmian do akcji atrybutu aOnDie . Midzy
akcj wywolujc dialog, w którym Carrie mówi, e zostal zabity ostatni wróg, a akcj
zaliczajc cel naszej misji, dodamy akcj, która wprowadzi pewne opónienie midzy jedn
akcj a drug. W ten sposób poka Wam, jak dodawa nowe elementy atrybutów midzy
elementy ju dodane. Otwieramy ponownie okno atrybutów obiektu GrupaWrogow (o ile
okno to zamknlimy), przechodzimy na zakladk `Mission' i zaznaczamy element [1] z
akcj typu act_Accomplish:



i naciskamy klawisz INSERT. Dodalimy nowy element do atrybutu aOnDie, z tym, e
element ten pojawil si midzy zaznaczonym elementem a elementem nad nim:



Z listy nowo dodanego elementu do atrybutu aOnDie wybieramy akcj typu act_Wait:


364

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Akcja typu act_Wait powoduje przerw w wywolywaniu kolejnych akcji. Czas przerwy
ustalamy w atrybucie fDelay (czas podawany jest w sekundach). Ustawcie warto atrybutu
fDelay na 3 natomiast atrybut fDelayWaits ustawcie na true:



To atrybut bDelayWaits ma wplyw na to, czy przerwa midzy wywolywaniem kolejnych
akcji nastpi (true) czy te nie (false). Na koniec klikamy na przycisku `Apply' w celu
potwierdzenia zmian. Jeeli chcielibycie usun jaki element atrybutu, to po prostu
zaznaczcie ten atrybut i nacinijcie klawisz DELETE. Ostatnim etapem tworzenia naszej
misji, jest dodanie akcji, która wywola pierwszy dialog tzn. ten w którym Carrie poinformuje
Logana o celach jego misji a take akcji, która wlczy nasze zadanie. Ponownie uruchamiamy
plug-in ,,Environment" (dla przypomnienia klikamy na ikonie z literami `Lv') i przechodzimy
na zakladk `Mission'. Zaznaczamy atrybut cStartAction (nie usuwajcie akcji, która deklaruje
nasz zmienn Zabici!):



I naciskamy klawisz INSERT. Dodamy nowy element do atrybutu cStartAction:



Z listy nowo dodanego elementu do atrybut cStartAction wybieramy znan ju akcj typu
act_DialogWait:


365

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Co robi akcja typu act_DialogWait powinnicie ju wiedzie . Z listy atrybutu cDialog nowo
dodanego elementu do atrybutu cStartAction wybieramy dialog Zadanie:



Jest to ten pierwszy dialog, który dodalimy, w którym Carrie mówi Loganowi (graczowi) o
celu jego misji. Jednak scenariusz przewiduje, e informacje te Logan dostanie dopiero po
jakim czasie od uruchomienia mapki. Czas ten moemy ustawi za pomoc atrybutu fDelay
akcji typu act_DialogWait (czas podawany jest w sekundach). Wpisujemy tam warto 20:



Dziki temu, po uruchomieniu naszej mapki, dopiero po 20 sekundach zostanie wywolana
akcja, która wywietli odpowiedni dialog. Poniewa akcja ta jest typu act_DialogWait, to
kolejne akcje zostan wywolane dopiero w momencie zakoczenia dialogu, tym samym cel
naszej misji zostanie dodany dopiero wtedy, gdy Carrie skoczy rozmawia z Loganem
(graczem). Ponownie zaznaczamy atrybut cStartAction:



i naciskamy klawisz INSERT. Dodalimy kolejny element do atrybutu cStartAction:



Z listy nowo dodanego elementu do atrybutu StartAction wybieramy akcj typu
act_EnableDisable:




366

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Akcja typu act_EnableDisable wlcza (aktywuje) lub wylcza (deaktywuje) inny obiekt (nie
wszystkie obiekt mog by wlczone lub wylczone za pomoc akcji typu
act_EnableDisable!). W naszym przpadku akcja tpu act_EnableDisable bdzie aktywowala
obiekt Zadanie, chodzi jednak o obiekt typu `Objective', który odpowiada za cel naszej misji.
Wic z listy cTarget akcji typu act_EnableDisable wybieramy obiekt Zadanie:



Musimy jeszcze ustawi, czy bdziemy aktywowa obiekt Zadanie czy te deaktywowa.
Odpowiedzialny jest za to atrybut cType, którego ustawiamy na _ENABLE (jest to zreszt
warto domylna). Klikam na przycisku `Apply', aby potwierdzi zmiany. I to wszystko!
Stworzylimy nasz pierwsz misj singleplayer'ow. Zagrajcie teraz w Wasze dzielo.
Przeprowadcie beta testy tej misji . Nie da si ukry, e twórcza ta misja nie jest i pokazuje
jedn milionow moliwoci edytora ChromEd a take gry Chrome, ale i tak zapraszm do
grania. Pamitajcie, e gdy wróg Was zauway, nie bdzie poruszal si po wytyczonej przez
Was ciece patrolowej, lecz zacznie Was goni i spróbuje Was zlikwidowa .



Rozdzial 9 ­ Par slów na zakoczenie.

To ju wszystko. Piszc ten dokument staralem si nauczy Was przynajmniej podstaw
edytora ChromEd. Napisanie tego dokumentu zajlo mi prawie trzy miesice. Przez ten okres
nie istnialy dla mnie weekendy czy te inne wolne dni. Nie powiem, nie raz pisanie tego
dokumentu bylo cikie, ale pomimo tego przyjemne! Zdarzylo si te, e niektóre rozdzialy
czy podrozdzialy pisalem od nowa, szczególnie, gdy pojawila si nowsza wersja edytora
ChromEd. Pomimo tak dlugiego czasu pisania tego dokumentu, staralem si, aby zawsze
brzmial podobnie. Nie do koca jednak si to udalo, ale nie powinno to w niczym
przeszkadza.
Jeeli chodzi o tworznie mapek, czy to mapek multiplayer'owych czy te
singleplayer'owych, to nie ma lepszej szkoly ni wlasne dowiadczenia. Próbujcie
wszystkiego, co si da i jak si da. Twórcy gry Chrome i edytora ChromEd dali nam
moliwo wczytywania mapek stworzonych przez nich do edytora ChromEd a mapki te s
naprawd wielkim skarbem informacji. Pamitajcie, e za nim udostpnicie Wasz mapk
innym graczom, przetestujcie j dobrze. Znajdcie sobie grupk chtnych graczy, którzy
Wam pomog w tych testach. Do mapki dolczcie te jaki plik tekstowy z informacj o tym,
kto jest autorem tej mapki, przeznaczeniem tej mapki a take sposobie uruchamiania i
instalowania. Pamitajcie, e graczom musicie udostpnic caly podkatalog z Wasz mapk.
Mona jednak wykluczy kilka plików. Nie trzeba udostpnia plików z mapami gstoci
(pliki potrzebne do generowania rolinnoci za pomoc plug-in'u ,,Forest", wicej informacji
na ten temat znajdziecie w rozdziale o przyrodzie). Nie trzeba udostpnia pliku z lightmap
do terenu, mam na myli plik w formacie tga, wygenerowany za pomoc edytora ChromEd
(wicej informacji na ten temat znajdziecie w rozdziale o tworzeniu terenu w podrozdziale
o lightmap'ie) w zasadzie plik ten mona w ogóle usun, zajmuje prawie 50MB. Oczywicie,

367

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
aby mapka zajmowala mniej miejsca, moecie skompresowa podkatalog z Wasz mapk np.
za pomoc programu WinZIP. ycz Wam dobrej zabawy i sukcesów na scenie Chrome.

Slawomir ,,TobiAlex" Wsik



Dodatek A ­ Zdjcie satelitarne inaczej

W starszej wersji edytora ChromEd nieprawidlowo dziala funkcja robienia zdjcia
satelitarnego, które uywa si do stworzenia mapy satelitarnej (mapa terenu wywolywana
klawiszem M podczas gry). Mona jednak temu zaradzi. Wczytujemy nasz mapk. Jeeli
posluchalicie mojej rady to uywanym do pracy widokiem jest tylko widok
perspektywiczny. Tym razem jednak przyda si inny, widok z góry (Top). Aby przelczy si
na ten widok klikamy prawym przyciskiem myszki na pasku informacyjnym okna
widokowego:



Zaznaczony na czerwono obszar to wlanie miejsce gdzie naley klikn prawym
przyciskiem myszki. Z menu wybieramy widok z góry ­ Top. Przyciskamy klawisze ALT +
Z (zblianie / oddalanie kamery obserwatora). Trzymajc wcinity lewy przycisk myszki
przesuwamy j do góry tak dlugo a w widoku zobaczymy caly nasz teren. Jeeli mamy
myszk z rolk to do zbliania / oddalania kamery moemy uy rolki. Jeeli zajdzie taka
potrzeba to mona przesun kamer na rodek ekranu. W tym celu przyciskamy klawisze
ALT + P i trzymajc wcinity lewy przycisk myszki wykonujemy ruch myszk w
odpowiednim kierunku. Musimy kamer wycentrowa mniej wicej tak:


368


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1


Teraz naciskamy klawisz PRINT SCREEN. Uruchamiamy zwyklego Paintbrush'a z
Windows'a. Nareszcie na co si przyda . Naciskamy klawisze CTRL + V (wklej). W ten
sposób w Paincie mamy widok naszego edytora wraz z widokiem naszej mapki z góry.
Wybieramy narzdzie `Zaznacz':



Za pomoc tego narzdzia zaznaczamy tylko i wylcznie obszar naszego terenu. W tym
zaznaczonym obszarze klikamy prawym przyciskiem myszki i wybieramy polecenie Kopiuj
do
. Zapisujemy to jako MojaMapa_S.bmp (bmp to standardowy format pliku Paintbrush'a).
Paintbrush'a moemy ju wylczy i tak do nic innego si nie przyda . Uruchamiamy
program Photoshop lub GIMP i wczytujemy nasz plik MojaMapa_S.bmp. W Photoshopp'ie z
menu Image wybieramy polecenie Image Size:

PHOTOSHOP


Otworzy si okienko `Image Size'. Tam wpisujemy wartoci 512 w polu `Width' (szeroko)
i 512 w polu `Height' (wysoko). Zwrócie uwag, aby opcja `Constrain Proportions' byla

369

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
odznaczona (jeeli opcja ta bdzie zaznaczona, to nie bdzie mona ustawi rozdzielczoci
512x512 a to z tego wzgldu, e zachowana zostanie proporcja):



Klikamy na przycisku `OK'. Nasz bitmap musimy jeszcze odbi (nie obróci!) w pionie i
poziomie. W tym celu z menu Image najpierw wybieramy poleceie Flip Canvas Vertical a
potem Flip Canvas Horizontal (Image -> Rotate Canvas -> Flip Canvas Vertical i Flip
Canvas Horizontal
):

PHOTOSHOP


W GIMP'ie w oknie `The GIMP' (glówne okno programu) wybieramy polecenie Open z
menu File i wczytujemy plik MojaMapa_S.bmp. Klikamy prawym przyciskiem myszki na
naszym zdjciu satelitarnym i wybieramy polecenie Scale Image z menu Image:


GIMP

370

wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1



Otworzy si okno `Scale Image'. Na panelu `Pixel Dimensions' wpisujemy warto 512 w
polu `New Width' i 512 w polu `Height'. Zwrócie uwag, aby byl wylczona opcja
zachowania proporcji (zaznaczona na czerwono na poniszym rysunku), bo inaczej nie bdzie
mona zmieni rozdzielczoci na 512x512 (bdzie zachowana proporcja):

GIMP


Potem klikamy na przycisku `OK'. Teraz odbijemy nasze zdjcie satelitarne w pionie i
poziomie. Klikamy prawym przyciskiem na naszej bitmapie i z menu Tools wybieramy
polecenie Flip (Tools -> Transform Tools -> Flip):

GIMP



371


wersja dokumentu 1.23.14 / 11.06.2003
ChromEd wersja 2.10.0.1
Kursor przyjmie ksztalt dwóch strzaleczek skierowanych w lewo i prawo, co oznacza, e
odbicie bdzie wykonane w poziomie. Teraz wystarczy po prostu klikn na naszej bitmapie.
Aby odbi bitmap w pionie wystarczy przycisn klawisz CTRL (kursor przyjmie ksztalt
dwóch malych strzaleczek skierowanych w gór i dól, co oznacza, e odbicie wykonane
zostanie w pionie) i klikamy na naszej bitmapie. Tak, mamy ju gotowe zdjcie satelitarne,
które wykorzystamy do mapy satelitarnej. Musimy jeszcze je tylko zapisa. Podajemy nazw
pliku MojaMapa_S a jako format pliku wybieramy png. W Photoshop'ie na zadane pytanie
wybieramy opcj `None' i klikamy na przcisku `OK'. W GIMP'ie nie zmieniamy adnych
opcji i klikamy na przycisku `OK'. Uruchamiamy edytor ChromEd, wczytujemy nasz
mapk, uruchamiamy plug-in ,,Environment", przechodzimy na zakladk `Java' i w atrybucie
slnGameMap w sekcji MAP wskazujemy nasz plik MojaMapa_S.png (szczególowy opis tych
czynnoci znajduje si w rozdziale o tworzeniu terenu w podrozdziale o zdjciu satelitarnym).
Uruchamiamy tryb gry, naciskamy klawisz M i prosz, oto rezultat naszej pracy:






372