Cromm Cruac 19 paź 2011, 14:39
ModderModder
Posty: 2550
Rejestracja: 22 sty 2010, 19:01
Ostatnio: 29 maja 2026, 00:49
Lokalizacja: Londyn / Bielsko-Biała
Kozaki:
1080
Na górę
Post autor: Cromm Cruac 
W tym krótkim poradniku wyjaśnię jak silnik obsługuje tekstury celowników i jak dodać nową teksturę celownika.

Jak to działa

Obrazek

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.
[SYNTAX=xml]
<file name="wpn\wpn_crosshair_l85">
<texture id="wpn_crosshair_l85" x="0" y="0" width="1024" height="1024" />
</file>
[/SYNTAX]
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
[SYNTAX=xml]
<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>
[/SYNTAX]

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.
[SYNTAX=xml]
<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>
[/SYNTAX]

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)
[SYNTAX=xml]
<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>
[/SYNTAX]

Dodajemy nowy celownik
Dodamy teraz nowy celownik typu 'Gnomus'

Obrazek

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:
[SYNTAX=xml]
<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>
[/SYNTAX]

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:
[SYNTAX=xml]
<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>
[/SYNTAX]

Układamy wycinki na matrycy dla widecreen. Dodajemy do \configs\ui\scopes_16.xml:
[SYNTAX=xml]
<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>
[/SYNTAX]

4. config broni
Nasz nowy celownik chcemy mieć tylko w karabinie Vintorez. Otwieramy configs\weapons\w_vintorez.ltx i zmieniamy linie [SYNTAX="ini"]scope_texture = my_crosshair[/SYNTAX]

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.
Obrazek

"Twoja opowieść mnie znudziła albowiem nie była o mnie" - Król Julian
Czyste Niebo
Legenda
Posty: 1384
Rejestracja: 02 kwie 2010, 11:20
Ostatnio: 10 cze 2025, 07:01
Lokalizacja: Stetinum
Ulubiona broń: TOZ34
Kozaki:
194
Na górę
Post autor: jalkavaki  Ostatnio zmieniony 24 gru 2011, 18:13 przez KoweK, łącznie zmieniany 1 raz.
Wgrałem Gnomous Scopes i teraz przy zbliżaniu lornetką takie coś jest:
Obrazek

Druga sprawa to gdzie wyłącza się namierzanie celów przez lornetkę?
Uwagi moderatora:
Zadaj pytanie w temacie dla Gnomus Scopes.
Wojna jest zła. Ale gorsze są sukinsyny które nie mają nic za co byliby gotowi walczyć i umierać.
"Może nas wiedzie szalbierz chciwy paru groszy
Lecz lepsze to niż śmierć na wapniejących szańcach" - J. Kaczmarski, Stalker.
Łowca
Posty: 505
Rejestracja: 16 paź 2011, 00:09
Ostatnio: 13 paź 2019, 11:44
Kozaki:
130
Na górę
Post autor: nelson82 
Namierzanie celów wyłączasz w pliku konfiguracyjnym lornetki w_binoc.ltx lokalizacja config/weapons.
Odszukaj w nim linijki vision_present = true i wartość true zamień na false.
łatwiej już nie będzie
Czyste Niebo
Legenda
Posty: 1384
Rejestracja: 02 kwie 2010, 11:20
Ostatnio: 10 cze 2025, 07:01
Lokalizacja: Stetinum
Ulubiona broń: TOZ34
Kozaki:
194
Na górę
Post autor: jalkavaki 
Faktycznie wtedy nie namierza, ale także wyłącza się całe te czarne obramowanie.
Wojna jest zła. Ale gorsze są sukinsyny które nie mają nic za co byliby gotowi walczyć i umierać.
"Może nas wiedzie szalbierz chciwy paru groszy
Lecz lepsze to niż śmierć na wapniejących szańcach" - J. Kaczmarski, Stalker.
ModderModder
Posty: 789
Rejestracja: 26 mar 2010, 12:45
Ostatnio: 21 maja 2026, 13:11
Lokalizacja: okolice stolicy
Kozaki:
263
Na górę
Post autor: r_populik 
Ja nie zmieniam vision_present tylko w vis_frame_speed ustawiam wartość 0. Wtedy jak to określiłeś czarne obramowanie zostaje.
Postawili kozaka za ten post (1):
Odpowiedz

Podobne tematy