Centrum WorldCraft

<<< |  Kurs online edytora WorldCraft - www.cs.fpp.pl/worldcraft | >>>

ZAWARTOŚĆ

ZAAWANSOWANE

MATERIAŁY oraz OBIEKTY PRZESUWALNE (func_breakable, func_pushable)

   Do zmiany rodzaju materiału, posłuż nam byt func_breakable oraz func_pushable. Za ich pomocą możemy stworzyć przedmioty takie jak: szkło które można rozbić, drewno które można połamać itp. Są to byty uzależnione od bloków, więc nie wstawiamy ich za pomocą narzędzia ENTITY TOOL, tylko przekształcamy za pomocą TIE TO ENTITY. Powstałe w ten sposób byty będą posiadały liczne ustawienia:

(func_breakable)

  • TARGET ON BREAK - procedura wykonywana po zniszczeniu bloku.
  • STRENGTH - wytrzymałość bloku. Wartość 1 określa, że blok zostanie zniszczony w przypadku użycia najmniejszej siły.
  • MATERIAL TYP - typ materiału:
  • GLASS - szkło.
  • WOOD - drewno.
  • MEATL - metal.
  • FLESH - mięso.
  • CINDER BLOCK - cegła.
  • CEILING TILE - płytki.
  • COMPUTER - komputer (płyty główne, procesory, dyski twarde itp).
  • UNBREAKABLE GLASS - kuloodporne szkło.
  • ROCKS - kamienie.

Każdy materiał posiada swój specyficzny dźwięk przy uderzeniu i zniszczeniu bloku.

EXAMPLE:

Materials

  • DELAY BEFORE FIRE - czas po jakim ma zostać wykonany procedura ustalona w polu TARGET ON BREAK, gdy zniszczymy obiekt.
  • SPAWN ON BREAK - przedmiot tworzony po zniszczeniu bloku.
  • EXPLODE MAGNITUDE - wywołanie eksplozji o ustalonej sile po zniszczeniu bloku.

   FLAGS:

  • ONLY TRIGGER - ustawienie spowoduje że wszystkie zewnętrzne próby zniszczenia bloku (strzał z pistoletu, uderzenie łomem) zakończą się niepowodzeniem. Jedynym sposobem zniszczenia obiektu w takim przypadku są metody wewnętrzne (odniesienia w programie) np. za pomocą parametru TARGET, którego celem jest właśnie ten byt.
  • TOUCH - zniszczenie obiektu przy dotknięciu.
  • PRESSURE - zniszczenie obiektu podczas nacisku np. gdy na ten blok będzie działać jakiś innym np. winda.

(func_pushable)

   Dodatkową atutem tego bytu jest możliwość suwania blokami. Większość parametrów tego obiektu została już omówiona wyżej. Nowe opcje służą przede wszystkim do ustalania właściwości bloku przy przesuwaniu:

  • FRICTION - tarcie. Im większa wartość tym potrzeba większej siły aby przesunąć obiekt.
  • BUOYANCY - wyporność w wodzie. Wartość dodatnia powoduje, że obiekt jest wypierany z wody. Natomiast wszystkie wartości poniżej zera, oznaczają że obiekt posiada większy ciężar od wody na skutek czego idzie na dno.

   FLAGS:

  • BREAKABLE - powoduje włączenie podatności na zniszczenia.

  Nie trzeba tworzyć własnych skrzyń. Można skorzystać z gotowych, przygotowanych przez twórców edytora. Są one prefabsami umieszczonymi w kategorii CRATES.

EXAMPLE:

func_able

 

DRABINKA  (func_ladder)
   Drabinkę tworzymy za pomocą dwóch elementów (bloków przekształconych w byty):
  • func_wall - element wizualny.
  • func_ladder - element funkcjonalny. To właśnie po tym bycie będziemy wchodzić. Jest on niewidoczny podczas gry.

   Najprościej będzie jak przedstwię kolejne etapy tworzenia drabinki:

1. Wstawiamy blok, który będzie wielkości naszej drabinki.
2. Nadajemy mu efekt półprzeźroczystości (w przypadku gdy naniesione tekstury zaczynają się od znaku " { ").

  Na blok możemy nakładać wszystkie dostępne tekstury. Pełni on jedynie funkcję wizualną.


BLOK WIZUALNY

3. Tworzymy drugi blok (najlepiej wielkości tego pierwszego) i ustawiamy go przed naszą drabinką.


BLOK FUKKCJONALNY (ZIELONY), ZARAZ
POD NIM ZNAJDUJE SIĘ BOLK WIZUALNY

4. Przekształcamy nasz blok w byt  func_ladder.

   W taki właśnie sposób utworzyliśmy drabinkę, składającą się z dwóch elementów. Pamiętajmy że wchodzić będziemy zawsze po bycie  func_ladder, byt ten można również wykorzystać na inne sposoby. Wszystko zależy od waszej wyobraźni.

EXAMPLE:

Ladder

 

PRZYCISKI  (func_button, func_rot_button, button_target, momentary_rot_button)
   Przyciski służą do uruchamiania różnych sekwencji, z poziomy gracza. Powiązaniem pomiędzy przyciskiem a sekwencja jest parametr TARGET, który odnosi się do określonej nazwy obiektu. Proszę zwrócić uwagę na fakt, że inne byty także posiadają ten parametr. W pole TARGET możemy wpisać np. nazwę światła, co spowoduje jego włączenie lub wyłączenie.
   W przypadku przycisków, cel określony w polu TARGET jest wykonywany w chwili naciśnięcia przycisku przez gracza. Buttony są przekształconymi w bloki bytami.

   Każdy przycisk może zawierać teksturę. Najlepiej skorzystać z tekstur zaczynających się od znaku "+". Każda tekstura tego typu jest powiązana z inną przedstawiającą drugi stan przycisku.
   Przykładowo powiązane tekstury:

(button_target)

  • TARGET - byt lub sekwencja docelowa, którą może być np. nazwa światła.

   FLAGS

  • USE ACTIVATES - jeżeli opcja jest aktywna, wtedy przycisk jest aktywny podczas gry.
  • START ON - powoduje zmianę aktywnej tekstury przycisku na powiązaną (tylko w przypadku tekstur zaczynających się znakiem " + ").

(func_button)
PRZYCISK PRZESUWALNY

  • TARGET - byt lub sekwencja docelowa.
  • SPEED - prędkość przesuwania się przycisku po naciśnięciu.
  • HEALTH - opcja umożliwiająca inicjacje przycisku po użyciu określonej siły (np. po strzale z pistoletu). Gdy pole przyjmuje wartość 0, wtedy przycisk można uruchomić tylko klawiszem klawiatury.
  • LIP - zmniejszenie lub zwiększenie wartości przesunięcia obiektu. Przy wartości 0, przycisk przesuwa się o wartość równą swojej grubości.

    Często się zdarza że po naciśnięciu przycisku jego powierzchnia styka się z powierzchnią ściany. Wtedy ma miejsce zanikanie tekstury przycisku:


ZANIKANIE TEKSTURY PRZYCISKU
PODCZAS STYKU Z INNA POWIERZCHNIĄ

Aby wykluczyć taki błąd należy w pole LIP wpisać wartość większą od 0. Wtedy obiekt będzie się przesuwał o wartość równą swojej grubości pomniejszoną o wartość z pola LIP. Wpisanie wartości ujemnej spowoduje zwiększenie przesunięcia.

  • SOUNDS - dźwięk emitowany po naciśnięciu przycisku. Efekt dźwiękowy można wybrać z dostępnych na liście lub wpisać własną ścieżkę dostępową do pliku postaci sounds/nazwa_dzwieku. Wszystkie dźwięki możemy przejrzeć za pomocą programu HL MODEL VIEWER (program do ściągnięcia w DOWNLOAD).
  • DELAY BEFORE RESET - czas po jakim przycisk ma powrócić do stanu pierwotnego. Wpisanie wartości -1 spowoduje, że przycisk nie powróci do stanu początkowego.
  • DELAY BEFORE TRIGGER - opoźnienie z jakim ma zostać wykonana sekwencja docelowa.

   FLAGS

  • DON'T MOVE - gdy opcja jest aktywna, wtedy przycisk sie nie przesuwa.
  • TOUCH ACTIVATES - aktywacja przycisku przez dotyk.
  • TOGGLE - włączenie opcji spowoduje że przycisk stanie się dwu sekwencyjnym. Po pierwszym naciśnięciu zostanie włączony, a po drugim wyłączony.
    Inna sytuacja ma miejsce jeżeli opcja jest nieaktywna. Wtedy tylko włączamy przycisk, a po określonym czasie sam się wyłączy.
  • SPARKS - włączenie opcji powoduje emisje z wnętrza przycisku iskier (efekt env_spark).

   Za pomocą czarnego kółeczka  możemy wybrać kierunek przesuwania się przycisku. Dodatkowo można stosować wartości DOWN oraz UP.

(func_rot_button)
PRZYCISK OBROTOWY

   Tworzenie przycisku obrotowego jest troszkę trudniejsze niż przesuwanego, ponieważ przycisk obrotowy składa się z dwóch zgrupowanych elementów. Pierwszy z nich jest przyciskiem, natomiast drugi niewidzialnym zawiasem, który wyznacza punkt obrotu. Prześlećmy proces tworzenie takiego przycisku:

1. Tworzymy blok przedstawiający przycisk.
2. Wstawiamy drugi blok tak jak na rysunku poniżej i nakładamy na wszystkie jego powierzchnie teksturę o nazwie ORIGIN (aby nałożyć tą samą teksturę na wszystkie powierzchnie, można skorzystać z narzędzia APPLY CURRENT TEXTURE).


PRZYCISK OBROTOWY Z PUNKTEM OBROTU (ZIELONY)

3. Zaznaczamy te dwa obiekty i przekształcamy w byt  func_rot_button.

   W taki sposób utworzyliśmy przycisk obrotowy. Oto jego ustawienia (wiele z parametrów tego bytu zostało już omówione podczas opisu bytu  func_button.

  • TARGETTED OBJECT - byt lub sekwencja docelowa.
  • DISTANCE -  kąt obrotu podawany w stopniach.

   FLAGS

  • NOT SOLID - włączenie spowoduje, że obiekt nie będzie blokiem.
  • REVERSE DIR - zmiana kierunku obrotu na przeciwny.
  • X - AXIS, Y - AXIS - wybór osi obrotu, którą jest linia przechodząca przez środek "zawiasu" i równoległa do zaznaczonej osi (X lub Y).

    Domyślnie osią obrotu jest linia przechodząca przez środek "zawiasu" i równoległa do osi Z.

  Pamiętajmy, że punkt obrotu nie musi się znajdować tylko w środku obiektu.

   Dodatkowo w prefbsach dostarczonych standardowo z edytorem, możemy znaleźć bloki przedstawiające przyciski obrotowe. Znajdują się one w kategorii USABLE OBJECTS po nazwami WHELL_...


BLOKI PRZEDSTAWIAJĄCE PRZYCISKI OBROTOWE

EXAMPLE:

Buttons

(momentary_rot_button)
PRZYCISK OBROTOWY, CHWILOWY

   Przycisk związany jest głównie z drzwiami  momentary_door. Pozwala on na płynne otwieranie lub zamykanie drzwi tego typu.
   Jest to przycisk obrotowy, a więc jego utworzenie jest identyczne jak w przypadku  func_rot_button.
Dodatkowymi parametrami tego bytu są:

  • AUTO RETURN SPEED - szybkość zamykania drzwi (tylko w przypadku włączonej opcji AUTO RETURN).

   FLAGS

  • NOT USEABLE - wyłączenie aktywności przycisku.
  • AUTO RETURN - uaktywnienie opcji auto zamykania. Gdy parametr jest włączony, wtedy po odejściu od przycisku (czyli dezaktywacji), drzwi będą się zamykały z określoną szybkością, którą ustalamy w polu AUTO RETURN SPEED.

EXAMPLE:

Momentary

 

Drzwi  (func_door, func_door_rotating, momentary_door)
   Drzwi są jednym z podstawowych elementów każdej mapy. W WorldCraft wyróżniamy dwa główne rodzaje drzwi:
  • Przesuwalne - przesuwają się w różnych kierunkach  (func_door).
  • Obrotowe - obracają się dokoła osi X, Y lub Z  (func_door_rotating).

   Tworzenie bloku przedstawiającego drzwi jest stosunkowo proste. Drzwi mogą być różnych kształtów i składać się z wielu obiektów:

1. Tworzymy blok wielkości drzwi. Ustawiamy go w odpowiednim miejscu.


BLOK WIELKOŚCI DRZWI

2. Następnie za pomocą narzędzia CARVE, tłoczymy dziurę tym blokiem w ścianie.
3. Nadajemy odpowiedniego kształtu oraz nakładamy właściwe tekstury.


UFORMOWANY BLOK Z TEKSTURAMI

4. Przekształcamy blok w odpowiedni byt (func_door, func_door_rotating).

(func_door)
DRZWI PRZESUWALNE

  • NAME - nazwa drzwi. W przypadku odwołania się do nazwy drzwi, nastąpi ich otwarcie.
  • SPEED - szybkość otwierania się drzwi..
  • MOVE SOUND - dźwięk emitowany podczas otwierania drzwi. Można go wybrać z listy lub podać ścieżkę do pliku postaci sounds/nazwa_dzwieku.
  • STOP SOUND - dźwięk emitowany w chwili, gdy drzwi się otworzą lub zamkną.
  • DELAY BEFORE CLOSE - czas po jakim drzwi same się zamkną. Wpisanie wartości -1 spowoduje wyłączenie opcji auto zamykania.
  • LIP - odległość pozostawiona po otwarciu drzwi.

    Przy wpisaniu wartości 0, może wystąpić błąd zanikania tekstur widoczny na rysunku 1 (taki sam błąd ma miejsce w przypadku przycisków).

    Rysunki obrazują użycie parametru LIP:


RYSUNEK 1


RYSUNEK 2

Wartość parametru LIP: 0
Wartość parametru LIP: 5
  • DAMAGE INFLICTED WHEN BLOCKED - nacisk drzwi na obiekty. Inaczej mówiąc, drzwi będą oddziaływać określoną siła na elementy uniemożliwiające ich zamknięcie. Może to doprowadzić do zniszczenia takich obiektów.
  • TARGET - obiekt docelowy wykonywany w momencie zamknięcia lub otwarcia drzwi.

   FLAGS

  • STARTS OPEN - włączenie opcji spowoduje, że drzwi będą domyślnie otwarte.
  • PASSABLE - po uaktywnieniu opcji, będziemy mogli przenikać przez drzwi.
  • TOGGLE - gdy opcja jest włączona, wtedy drzwi stają się dwu sekwencyjne. Po użyciu ich stan przejdzie na przeciwny (jeżeli były zamknięte to teraz będą otwarte) i tak na zmianę.
    W przeciwnym wypadku, jeżeli opcja jest wyłączona, drzwi otwierają i zamykają się po określonym czasie.
  • USE ONLY - włączenie daje możliwość otwierania drzwi tylko za pomocą klawiszy z klawiatury. W przeciwnym wypadku drzwi otwierane są po ich dotknięciu.

    Jeżeli w polu NAME nadamy nazwę, wtedy drzwi nie będą się otwierały przez dotknięcie.
  • MONSTERS CAN'T - włączenie opcji uniemożliwi przechodzenie "monsterów" (naukowcy itp.) przez drzwi.

   Za pomocą czarnego kółeczka  możemy wybrać kierunek otwierania się drzwi. Dodatkowo można stosować wartości DOWN oraz UP.

(func_door_rotating)
DRZWI OBROTOWE

   Proces tworzenia drzwi tego typu jest podobny jak kreowanie przycisków obrotowych. Tym podobieństwem jest istnienie dwóch obiektów (drzwi, zawiasu). Zobaczmy jak utworzyć drzwi obrotowe:

1. Tworzymy blok przedstawiający drzwi.
2. Wstawiamy zawias, który jest okryty teksturą ORIGN.


ZAWIAS Z DRZWIAMI

3. Zaznaczamy zawias i drzwi, aby przekształcić je w byt  func_door_rotating.

   W taki sposób utworzyliśmy drzwi obrotowe. Oto ustawienia drzwi tego typu:

  • DISTANCE - kąt rozwarcia drzwi.

   FLAGS

  • REVERSE DIR - odwrócenie kierunku obrotu drzwi na przeciwny. Jeżeli opcja jest włączona wtedy drzwi otwierają się w naszą stronę (tak jakbyśmy je ciągnęli). Natomiast jeżeli opcja jest wyłączona, drzwi otwierają w taki sposób jakbyśmy je pchnęli.
  • ONE-WAY - drzwi otwierające się tylko w jednym kierunku, który ustawiamy za pomocą opcji REVERSE DIR.
  • X - AXIS, Y - AXIS - wybór osi obrotu, którą jest linia przechodząca przez środek "zawiasu" i równoległa do zaznaczonej osi (X lub Y).

EXAMPLE:

Doors

(momentary_door)
DRZWI PRZESUWANE, CHWILOWE

   Są to drzwi, otwierane stopniowo podczas gdy odwołujemy się do nich (np. naciskając na przycisk). Gdy utworzymy drzwi tego typu musimy również stworzyć przycisk momentary_rot_button, który jest jedynym powiązaniem z tym rodzajem drzwi.

  Wszystkie ustawienia tego bytu, są identyczne jak w przypadku bytu  func_button.

EXAMPLE:

Momentary

 

(C) 2001 Jural. All Rights Reserved.