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

[TUTORIAL] Celowniki optyczne

[TUTORIAL] Celowniki optyczne

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

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

Za ten post Cromm Cruac otrzymał następujące punkty reputacji:
Positive ulvhedin, Junx, Werewolver, MatStaw.
Awatar użytkownika
Cromm Cruac
Modder

Posty: 2541
Dołączenie: 22 Sty 2010, 19:01
Ostatnio był: 26 Lip 2023, 10:13
Miejscowość: Londyn / Bielsko-Biała
Kozaki: 1077

Reklamy Google

Re: [TUTORIAL] Celowniki optyczne

Postprzez MatStaw w 19 Paź 2011, 17:38

A mi się udało uzyskać puste obszary po bokach w taki sposób:

Plik "wpn_crosshair_l85.dds" w rozdzielczości 1024x1024.

W pliku "ui_ingame.xml"

Kod: Zaznacz wszystko
   <file name="wpn\wpn_crosshair_l85">
    <texture id="wpn_crosshair_l85" x="0" y="0" width="1024" height="1024" />
   </file>


W pliku "scopes.xml"

Kod: Zaznacz wszystko
<wpn_crosshair_l85 x="0" y="0" width="1024" height="768">
    <auto_static x="0" y="0" width="1024" height="768" stretch="1">
      <texture>wpn_crosshair_l85</texture>
    </auto_static>
  </wpn_crosshair_l85>


W pliku "scopes_16.xml"

Kod: Zaznacz wszystko
<wpn_crosshair_l85 x="0" y="0" width="1024" height="768">
    <auto_static x="85" y="0" width="854" height="768" stretch="1">
      <texture>wpn_crosshair_l85</texture>
    </auto_static>
  </wpn_crosshair_l85>


Image
Pentium Core2 Quad Q9450 2,66GHz ASUS GeForce GTX 570 DirectCU II Highlander 600W Asus P5Q-E Kingston DDR2 4GB HyperX 1066MHz Windows Professional 7 64bit

Za ten post MatStaw otrzymał następujące punkty reputacji:
Positive scigacz1975.

MatStaw
Wygnany z Zony

Posty: 35
Dołączenie: 14 Paź 2011, 20:35
Ostatnio był: 25 Paź 2011, 00:08
Frakcja: Naukowcy
Ulubiona broń: SGI 5k
Kozaki: 3

Re: [TUTORIAL] Celowniki optyczne

Postprzez Cromm Cruac w 19 Paź 2011, 18:34

Też można. Po prostu nie umieszczamy dodatkowych elementów na matrycy. Ja jednak chciałem pokazać pełny sposób.
Image

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

Posty: 2541
Dołączenie: 22 Sty 2010, 19:01
Ostatnio był: 26 Lip 2023, 10:13
Miejscowość: Londyn / Bielsko-Biała
Kozaki: 1077


Powróć do Tutoriale

Kto jest na forum

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