Source Modification Centre - LOGO
Gość: ( Logowanie | Rejestracja )

 
MENU
 
ZASOBY
 
 
LEGENDA
 
REKLAMA


NASZ BUTTON
SMC
 
NA FORUM
 
 
TUTORIALE - MAPPING [ Dodaj ]
3D skybox (edycja 2012)
[ 2012-02-20 17:07:54  Dodał:  zwieracz   Wyświetleń: 18394   Komentarzy: 2  ]
W naszej bazie znajduje się już jeden tutek o skyboxie, ale uznałem, że jest już nieaktualny i potrzeba nowej wersji.

Tutorial przedstawia, w pewnym sensie, sytuację ekstremalną aby pokazać, że 3d skybox można idealnie dopasować do właściwej geometrii levelu, nawet gdy jest ona bardzo skomplikowana. W praktyce, łączenie skyboxa z właściwym levelem zawsze powinno odbywać się poza zasięgiem wzroku gracza (być odpowiednio zamaskowane).

Zademonstruję to tym prostym schematem:

Source Modification Centre


1. Przygotowanie poziomu.
Stare góralskie przysłowie mówi, że: "Skybox robi się na samym końcu tworzenia mapy, hej!"... ale warto jest zawczasu przewidzieć to i owo. Akurat na potrzeby tutka, zbuduję całą mapę z myślą o skyboxie.

Więc, powiedzmy, że tak wygląda podłoga (layout mapy):

Source Modification Centre

Teraz robimy taką dziwną rzecz, że obudowujemy nasz level dosyć grubymi klockami pokrytymi teksturą nodraw. Po co? Te klocki właśnie pozwolą nam później idealnie wpasować 3d skybox do mapy.

Source Modification Centre

Następnie kopiujemy brushe z nodrawem, podnosimy je do góry, pokrywamy teksturą skybox i rozciągamy do góry (wysoookoo, wedle uznania), to są po prostu ściany graniczne naszego levelu. Potem kopiujemy podłogę, znów nakładamy teksturę skybox i mamy sufit. Mamy przestrzeń mapy.

Source Modification CentreSource Modification Centre


2. Tworzymy skybox.
Teraz kolejny bardzo ważny krok. Wstawiamy byt sky_camera. Wstawiamy go dokładnie w centrum siatki w hammerze (środek bytu musi pokrywać się ze środkiem siatki). Nie w centrum mapy, tylko w centrum siatki, może być to poza naszą mapą (nawet kilometr). Środek siatki jest w miejscu gdzie stykają się 3 kolorowe odcinki (czerwony, zielony i niebieski).

Source Modification Centre

Dlatego też najlepiej robić mapy zaczynając na środku obszaru roboczego, będzie wygodniej.

Teraz zaznaczamy razem, wszystkie nasze bloki pokryte nodrawem oraz byt sky_camera (przytrzymując ctrl) i kopiujemy je (przesuwamy z shiftem) gdzieś obok naszego levelu.

Source Modification Centre

Następnie wchodzimy do narzędzia Transformation (ctrl+M) i skalujemy wszystko (razem ze sky_camera). Ponieważ w skyboxie wszystko jest domyślnie pomniejszone 16 razy, tyle razy musimy pomniejszyć nasze zaznaczone byty. W tym celu w okienku zaznaczamy "scale" i we wszystkich 3 polach wpisujemy .0625. Tak, tam jest kropka na początku. To po prostu dziesiętny zapis 1/16.

Source Modification Centre


Teraz możemy (a właściwie musimy) już usunąć pierwotny byt sky_camera (ten w samym centrum siatki).

Sam 3D skybox tak samo jak właściwy level musi być otoczony solid brushami (również pokrytymi teksturą "skybox"). Ich wielkość jest sprawą dowolną. Im większa tym efekt będzie bardziej naturalny, ale to też zależy od charakteru mapy. Jeśli mapa otoczona jest wysokimi budynkami, to skybox nie musi być duży, bo i tak to co będzie daleko, będzie zasłonięte.

Source Modification Centre

Ponieważ ja chcę mieć w 3D skyboxie displacementy, więc muszę trochę przygotować podłoże. Ponieważ granice mojego levelu nie tworzyły kwadratu, muszę odpowiednio dobudować brushe, aby displacementy się potem ładnie łączyły.

Source Modification Centre

Następnie rozciągam brushe aż do końca skyboxa. Robię to we wszystkich kierunkach.

Source Modification Centre

Potem nakładam teksturę, w tym przypadku trawy, skaluję ją w dół (żeby ładniej wyglądała z levelu), zaznaczam "treat as one" i wyrównuje np: do dołu i do lewej. W ten sposób mam jednolicie pokrytą powierzchnię.

Source Modification Centre

Teraz zaznaczam górne powierzchnie i tworzę displacementy o największej dostępnej sile, czyli 4. Pamiętajmy, ze z poziomu mapy wszystko będzie 16 razy większe, więc liczy się detal.

Source Modification Centre

Następnie maluję geometrię, alphę (jeśli korzystam z tektury blend) oraz dodaję modele.

Source Modification Centre

Przed kompilacją pamiętajmy aby dodać chociaż te 2 podstawowe byty: light_environment i info_player_start. Wystarczy jeden byt light_environment, umieszczony na głównej mapie.

I to wszystko. jak widać, w grze, 3D skybox idealnie styka się z właściwym levelem. Jeśli odpowiednio przeskalujemy teksturę w skyboxie oraz użyjemy takiej samej na mapie, to możemy stworzyć prawie niezauważalne, ciągłe przejście.


Source Modification CentreSource Modification CentreSource Modification Centre


Aby dodać realizmu (albo odrealnić), można dodać mgłę. Wystarczy wpisać odpowiednie wartości w polach bytu sky_camera. Mgła ta działa tylko w skyboxie.

Source Modification Centre

Jedna uwaga dotycząca powyższych screenów. Jak widać we właściwym levelu również użyłem displacementów, żeby namalować ścieżkę. Jednak aby to zrobić, skopiowałem podłogę mapy (tą białą) i opuściłem w dół, a tą pierwotną zamieniłem na displacement. Równocześnie dolną kopię, która tworzy teraz granicę mapy, pokryłem teksturą nodraw. W przeciwnym razie, poprzez skybox widać by było dziwne błędy (przykład).

Uwagi:
1. Byt sky_camera (w skyboxie) nie może znajdować się w solid brushu. Będzie to powodowało błędy i mapa się nawet nie skompiluje.
2. Mgła nie jest widoczna na tle samego nieba, jest ucinana. Widać ją tylko na tle geometrii i bytów. Jednak jak sobie radzić z tym problemem, to już materiał na inny tutorial.
3. Te żółte cyfry w rogach okien Hammera, to Fraps, którego zapomniałem wyłączyć na czas robienia zdjęć.


DOŁĄCZONE PLIKI:
3DSKYBOX-BYZWIERACZ.ZIP ( 105 KB )


Autor: zwieracz
Komentarze ( 2 ) / Dodaj komentarz
 
KOMENTARZE  
[ 2012-02-20 17:37:18  Dodał:  Dabu  ]
 
Lol mapping.

A co do punktu drugiego w uwagach - wystarczy żeby tekstura skyboxa miała gradient tego samego koloru co kolor mgły. Jaki znów materiał na inny tutorial, o czym ty mówisz!!!????!?!?!?
 
[ 2012-02-20 18:01:09  Dodał:  zwieracz  ]
 
Najłatwiej chyba po prostu skopiować ustawienia z map Valve.
Ale jeśli chcę inny kolor mgły niż niebo to co wtedy?

Jednym z tricków na mgłę, jest np, wstawienie do 3d skyboxa brushy w jakimś kolorze (np, czarne dla nocy), szczelnie wypełniających przestrzeń. Dzięki temu, na nich widać mgłę. Jeśli się robi level o gęstej zabudowie, to można te brushe dać lekko przezroczyste dzięki temu patrząc w górę widać niebo, a w bok już tylko mgłę.

Jak się tworzy nową teksturę to chyba wystarczy dodać "$nofog", ale się w to nie zagłębiałem.
 
INFO
 
NAJNOWSZE
 
SHOUTBOX
krecik88: jeszcze konto dziala ;o
Unit-6: HUHUHA
ghost: Wszystkiego dobrego w 2018? :D
raven22: Wszystkiego dobrego :) Xon.pl to u mnie wisi cały czas. Jakby co - piszcie do mnie na dczerwonski[at]gmail.com - Jak ktoś by chciał przejąć smc to spoko :)
Unit-6: Wszystkiego dobrego w 2017
PaweX: Ale skoro strona jednak działa, to może jednak warto zmienić linki z sourcesdk.pl na smc.xon.pl? xon.pl - czy to jakiś darmowy hosting?
hissima: SPOCZYWAJ W POKOJU UKOCHANA SMC DZIEKUJE ZA WSPOLNE 10 LAT
pimpu: Dobra udalo mi się samemu naprawić :D
pimpu: Potrafi ktoś wytłumaczyć czemu prop_phys_override przenika mi przez ściany po zparentowaniu do niego keyframe_rope i phys_legth_constraint?
rolor2013: Ser
 
ANKIETA

[ Czas generowania strony: 0.058 secs. ]

Copyright (c) 2002-2005 by Mefi & .raven
Wszelkie prawa zastrzeżone
sourcesdk.pl




ec2-35-175-200-4.compute-1.amazonaws.com35.175.200.4