|
|
| |
| ZASOBY |
| |
| |
|
|
|
| |
|
| NASZ BUTTON |
|
|
| |
|
|
| |
|
| |
|
TUTORIALE - MAPPING
|
[ Dodaj ]
|
|
3D skybox (edycja 2012)
| [ 2012-02-20 17:07:54 Dodał:
zwieracz Wyświetleń: 493 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:
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):
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.
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.

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).
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.
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.
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.
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.
Następnie rozciągam brushe aż do końca skyboxa. Robię to we wszystkich kierunkach.
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ę.
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.
Następnie maluję geometrię, alphę (jeśli korzystam z tektury blend) oraz dodaję modele.
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.
 
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.
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 )
|
|
|
| |
| 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!!!????!?!?!? |
| |
|
|
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. |
|
|
|
|
|
| |
|
|
| |
| SHOUTBOX |
|
MoonBlaze: ciasto is a lie |
|
zwieracz: Przyłącz się do mnie, mam ciasto |
|
Jodla: <kontemplujac stwierdza iz obecna rzeczywistosc jest do bani> |
|
MoonBlaze: sm_ban @Dabu 1 |
|
Dabu: Ta strona umarła, zapraszam lepiej na heacrab.pl :D [/koniec reklamy] |
|
Jodla: open beta nowego gmoda a tu 0 info na stronie ...może czas to zmienic zwłaszcza iż screeny z GM13 wygladaja apetycznie |
|
Dabu: web 3.0 |
|
Elektryk: Link |
|
Tracha: Ruski gracz! |
|
zwieracz: Za moich czasów, to się bawilismy przy takiej gierce, gdzie zając łapaj kury za jaja. A moze to był wilk. |
|
| |
|
|
|