Forum Stalker.pl • Zobacz temat - [TUTORIAL] Celowniki optyczne

[TUTORIAL] Celowniki optyczne

[TUTORIAL] Celowniki optyczne

Postprzez Cromm Cruac w 19 Paź 2011, 14:38

W tym krótkim poradniku wyjaśnię jak silnik obsługuje tekstury celowników i jak dodać nową teksturę celownika.

Jak to działa

Image

1. Tekstury celowników
Pliki dds w rozdzielczości 1024x1024.

2. plik configs\ui\textures_descr\ui_ingame.xml
Tu definujemy wycinki tekstur z plików dds. Np.
Kod: [ Pobierz ] [ Ukryj ]
   <file name="wpn\wpn_crosshair_l85">
    <texture id="wpn_crosshair_l85" x="0" y="0" width="1024" height="1024" />
   </file>
 

Większość ma tylko 1 wycinek obejmujący całą teksturę ale wpn_crosshair ma dwa dodatkowe: wpn_crosshair_add_l i wpn_crosshair_add_r. Te są dodatkami, które pojawiają się po prawej i lewej stronie trybie widescreen
Kod: [ Pobierz ] [ Ukryj ]
   <file name="wpn\wpn_crosshair">
    <texture id="wpn_crosshair" x="0" y="0" width="1024" height="1024" />
     <texture id="wpn_crosshair_add_l" x="0"    y="0" width="102" height="768" />
     <texture id="wpn_crosshair_add_r" x="0"    y="0" width="102" height="768" />
   </file>
 


3. pliki configs\ui\scopes.xml i configs\ui\scopes_16.xml
scopes.xml jest używany w trybie 4:3 (5:4), scopes_16.xml w widescreen (16:10, 16:9), Pierwszy zawiera tylko tekstury 'główne' zdefiniowane powyżej przeskalowane do 1024x768 który jest swoistą 'matrycą' wszystkich elementów UI. Ten rozmiar jest potem automatycznie skalowany do ustawionej rozdzielczości ekranu.
Kod: [ Pobierz ] [ Ukryj ]
  <wpn_crosshair x="0" y="0" width="1024" height="768">
    <auto_static x="0" y="0" width="1024" height="768" stretch="1">
      <texture>wpn_crosshair</texture>
    </auto_static>
  </wpn_crosshair>
 


Przy drugim zaczynają się schody. Tu również 'matrycą' jest 1024x768 ale jest ona skalowana do widescreen (czyli 1280x768) a potem do danej ustawionej rozdzielczości. Musimy więc przeskalować szerokość danej tekstury x0.8 i przesunąć ją na środek. Dodatkowo dodajemy po prawej i po lewej wycinki wpn_crosshair_add_l i wpn_crosshair_add_r (również przeskalowane)
Kod: [ Pobierz ] [ Ukryj ]
  <wpn_crosshair x="0" y="0" width="1024" height="768">
    <auto_static x="85" y="0" width="854" height="768" stretch="1">
      <texture>wpn_crosshair</texture>
    </auto_static>
    <auto_static x="0" y="0" width="86" height="768" stretch="1">
      <texture>wpn_crosshair_add_l</texture>
    </auto_static>
    <auto_static x="939" y="0" width="85" height="768" stretch="1">
      <texture>wpn_crosshair_add_r</texture>
    </auto_static>
  </wpn_crosshair>
 


Dodajemy nowy celownik
Dodamy teraz nowy celownik typu 'Gnomus'

Image

1. Tekstura
Jak je przygotować? Bierzemy teksturę w proporcjach 4:3 (1024x768, 1360x1024 ew. 1280x1024) i skalujemy ją z wyłączonym 'maintain aspect ratio' do 1024x1024. Zapisujemy w textures\wpn\my_crosshair.dds jako DXT5, 8bit alpha, bez MIP-map.

2. definicja wycinków
W pliku configs\ui\textures_descr\ui_ingame.xml Definiujemy wycinki tekstury wraz z dodatkowymi częściami po lewej i prawej. Musimy to zrobić bo jeśli użyjemy domyślnych będziemy mieli 2 czarne pasy w widescreen ponieważ domyślna tektura wpn_crosshair nie jest w tych częściach przezroczysta. Dodajemy:
Kod: [ Pobierz ] [ Ukryj ]
   <file name="wpn\my_crosshair">
    <texture id="my_crosshair" x="0" y="0" width="1024" height="1024" />
     <texture id="my_crosshair_l" x="0" y="0" width="102" height="102" />
     <texture id="my_crosshair_r" x="0" y="0" width="102" height="102" />
   </file>
 


3. \configs\ui\scopes.xml i \configs\ui\scopes_16.xml
Układamy wycinki na matrycy dla 'normalnej' rozdzielczości. Dodajemy do \configs\ui\scopes.xml:
Kod: [ Pobierz ] [ Ukryj ]
  <my_crosshair x="0" y="0" width="1024" height="768">
    <auto_static x="0" y="0" width="1024" height="768" stretch="1">
      <texture>my_crosshair</texture>
    </auto_static>
  </my_crosshair>
 


Układamy wycinki na matrycy dla widecreen. Dodajemy do \configs\ui\scopes_16.xml:
Kod: [ Pobierz ] [ Ukryj ]
  <my_crosshair x="0" y="0" width="1024" height="768">
    <auto_static x="85" y="0" width="854" height="768" stretch="1">
      <texture>my_crosshair</texture>
    </auto_static>
    <auto_static x="0" y="0" width="86" height="768" stretch="1">
      <texture>my_crosshair_l</texture>
    </auto_static>
    <auto_static x="939" y="0" width="85" height="768" stretch="1">
      <texture>my_crosshair_r</texture>
    </auto_static>
  </wpn_crosshair>
 


4. config broni
Nasz nowy celownik chcemy mieć tylko w karabinie Vintorez. Otwieramy configs\weapons\w_vintorez.ltx i zmieniamy linie
Kod: [ Pobierz ] [ Ukryj ]
scope_texture = my_crosshair


Odpalamy grę i cieszymy się nowym celownikiem w Vintorezie.

UWAGA. Opisany wyżej (w części Jak to działa) sposób interpretacji tekstur jest taki sam dla WSZYSTKICH elementów interfejsu użytkownika (UI) we WSZYSTKICH grach serii S.T.A.L.K.E.R i może być wykorzystany np. przy tworzeniu własnych HUDów.
Image

"Twoja opowieść mnie znudziła albowiem nie była o mnie" - Król Julian
Awatar użytkownika
Cromm Cruac
Modder

Posty: 2548
Dołączenie: 22 Sty 2010, 19:01
Ostatnio był: Wczoraj, 11:19
Miejscowość: Londyn / Bielsko-Biała
Kozaki: 1080

Reklamy Google

Re: [TUTORIAL] Celowniki optyczne

Postprzez utak3r w 21 Paź 2011, 01:34

Cromm Cruac napisał(a):i może być wykorzystany np. przy tworzeniu własnych HUDów.


Dodam tylko od siebie, że jest nawet programik wspomagający układania HUDu w formie graficznej. Nie bijcie mnie, ale nie pamiętam, jak się zwał... jak będziecie krzyczeć, to go odszukam, gdzieś go mam.
Sooner or later, you will meet the Undertaker...
Awatar użytkownika
utak3r
Modder

Posty: 2201
Dołączenie: 11 Lis 2009, 18:15
Ostatnio był: 29 Lis 2024, 23:16
Miejscowość: Szczecin
Frakcja: Powinność
Ulubiona broń: GP 37
Kozaki: 376


Powróć do Tutoriale

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 5 gości