Tutoriál k Oxygen 2 Light #2

| Oxygen 2 Light tutoriál #2 |

Oxygen 2 Light - LODy a selekce

Pavka   8. února 2004

Autor tutoriálu: Pavka

LODy

LOD je zkratka anglického názvu Level Of Detail. Jde o definici fyzikálních vlastností modelu a toho jak bude model vypadat za určitých podmínek.
Nový LOD vytvoříte klepnutím pravým tlačítek do seznamu LODu a potom dáte New nebo Duplicate (zkopírování stávajícího LODu) a změníte ho tím, že na nově vytvořený LOD kliknete pravým tlač. myši, dáte properties a vyberete požadovaný LOD.

Jednotlivé LODy

1. Resolution
Jsou to LODy, které jsou pojmenovány číslem (0.000, 0.750...). V těchto LODech je daný model, který je vidět v určité vzdálenosti. Čím nižším číslem je LOD pojmenován, tím musí být model detailnější.
Příklad:
Máme veliký dům bez interiéru nastavíme první LOD na 1.000 takže bude pořád detailně dělaný, ale pokud máme dům s interiérem, tak nastavíme první LOD na 0.750 a uděláme v něm interiér detailní a druhý na 1.000, ale bez detailního interiéru. Takže to zbytečně nezatěžuje počítač. Nemá cenu dávat větší LOD než 12.000, protože se využije jen výjimečně.
Rada k tvorbě resolution LODu:
Resolution s nejnižším číslem musí být nejdetailnější a s nejvyšším nejméně detailní. Můžete ho dělat zkopírováním předchozího a následným zjednodušováním nebo začít nový model. Pokud se rozhodnete vymodelovat nový model doporučuji si v nastavení zapnout volby View background LOD a View background LOD in 3D preview, tím docílíte toho, že první resolution LOD bude vidět na pozadí a bude mít světle žlutou barvu. Pokud chcete vidět na pozadí jiný LOD, tak na něj klikněte pravým tlač. myši a označte volbu Show at background.

2. Fire Geometry
Tento LOD je ve hře neviditelný. Používá ho engine OFP pro kolize se střelami. Jinak řečeno pokud v Resolution uděláte něco co nedáte do Fire Geometry bude ten objekt průstřelný a naopak. Fire geometry slouží taky k tomu jak se model zdeformuje. Čím víc kopíruje tvar původního modelu tím je deformace jemnější a rozmanitější. Fire geometry by měl co nejpřesněji opisovat model s největším rozlišením, aby se kulky zastavovali přesně na modelu a ne někde ve vzduchu, ale zároveň vynechávejte velké detaily jako jsou např. různé výběžky, antény apod.
Model by neměl být v tomto LODu otexturovaný.

3. Geometry
Tento LOD je ve hře také neviditelný. Používá se ke kolizi modelu s jiným modelem. Kdyby například neměli tanky geometry LOD, tak by mohli sebou a čímkoliv jiným procházet. Taky se zde nastavuje těžiště (velmi důležité u vrtulníků) a váha modelu, ale o tomto napíšu u každého typu zvlášť, pokud je to důležité. Tento LOD by měl velmi jednoduše opisovat tvar (nejlépe asi posledního resolution) a být nejméně 0.5 m široký, protože jinak to občas OFP nepozná a model je průchozí. Také by měl být vždycky o něco málo větší než resolution, aby se nestalo, že se třeba voják trochu ponoří do zdi baráku. V tomto LODu vidíte také modrý křížek, to značí kde je těžiště. Váhu modelu nastavíte tak, že si označíte část modelu, kde má být stejná váha (nejlépe nejdřív nastavit všude stejnou a pak upravovat, aby se nestalo, že na nějaký vertex zapomenete), otevřete okno MASS (ALT+M) a do místa, kde můžete psát napíšete požadovanou váhu a dáte apply (váha se nastavuje v kilogramech, pokud chcete v gramech musíte použít desetinná místa :) ). Jakmile nastavíte váhu objeví se vám na každém vertexu čtverec a jeho velikost značí váhu. POZOR na tlačítko Do not change total max. Najdete ho v okně s mass. Pokud je zaškrtnuté a váhu celého objektu budete mít nastavenou třeba na 1000 kg, budete tam mít třeba 4 vertexy, tak každý vertex bude vážit 250 kg, ale pokud potom vyberete 1 vertex a je to zaškrtnutý, změníte jeho váhu třeba na 100 kg, tak se změní váha ostatních vertexů, aby celková váha byla 1000 kg. Pokud to nechcete, tak volbu odškrtněte.

4. Hit - Points
Tento LOD říká OFP kam byla jednotka zasažena. Například u vojáka jsou to hlava, ruce, nohy... u auta skla, kola...

5. Landcontact
Tento LOD obsahuje místa, kde se model má dotýkat země. Používá se jen u pohyblivých objektů, takže se nepoužívá u domů, stromů, kamenů... Dávají se sem nejspodnější vertexy resolution LODu a neměli by tu být žádné face. Můžete ho dělat například tak, že zkopírujete nejspodnější vertexy z resolution a vložíte do landcontact a potom stisknete D pro odstranění face.

6. Memory
Tento LOD obsahuje jen vertexy. Každý vertex musí být obsažen v selekci (selekce jsou popsány níže) a ta musí být pojmenovaná předem daným názvem OFP. Definují se zde např. výškoměr, tachometr...

7. Paths
Pomocí tohoto LODu se pohybuje AI v modelech např. dům, les... Tvorba tohoto LODu a selekce jsou u každého modelu jiné, tak to popíšu u modelu, kde je potřeba zvlášť.

8. RoadWay
Tento LOD umožňuje jednotkám se pohybovat po modelu. Bez tohoto LODu byste nemohli vylézt např. do schodů v domu. Místo toho by si vesele skákal obraz.

9. View cargo/commander/gunner/pilot
V tomto LODu je vymodelovaný to co hráč vidí v pozici pasažéra/velitele/střelce/pilota, řidiče, když má zapnutý pohled z 1. osoby. Dává se tam jen to co hráč může z té pozice vidět. U vrtulníku chybí např. ocas, podvozek... u auta kola...

10. View cargo/commander/gunner/pilot - fire geometry
Naprosto zbytečný LOD. Měl by značit to odkud můžete střílet z aut atd., ale OFP to zatím neumožňuje.

11. View cargo/commander/gunner/pilot - geometry
Funguje jako View geometry (viz. níže), ale pro pasažéra/velitele/střelce/pilota, řidiče.

12. View geometry
Tento LOD je velmi důležitý pro vykreslování AI.

1. Pokud je za tímto modelem něco schovaného AI o tom neví
2. Pokud je za tímto modelem něco schovaného OFP to nevykresluje tudíž to šetří výkon počítače

U stromu může nastat problém, protože tam jsou listy dělané alpha kanálama (průhledností) a vypadalo by blbě, kdyby mezi listy nebylo vidět. Tomu se dá zabránit zadáním named property (ALT+P).

name = canOcclude
value = 0

Objekty v tomto LODu by neměli být otexturované.

SELEKCE

Selekce slouží k usnadnění vybírání objektů např. označím si pár vertexů a uložím si je do selekce. Později mi stačí kliknout na tu selekci a budu mít vybraný ty vertexy co jsem do ní uložil. Taky slouží k tomu, že říká jaká část modelu je jaká. Toto musí být přesně pojmenované podle toho jak je to v OFP předdefinováno. Kromě předdefinovaných názvů si můžete selekce pojmenovávat jak chcete a dávat do nich jakékoliv vertexy chcete. Vyhrazené názvy má každý typ jiný, tak je u každého typu napíšu.

Vytvoření nové selekce:
Označte si vertexy, které chcete aby tam byly a klikněte pravým tlač. myši do seznamu selekcí (window>named selection) a dáte new a následně ji pojmenujete jak chcete. Obsah selekcí můžete libovolně měnit. Stačí označit vertexy, které tam chcete mít teď, kliknout pravým tlač. myši na selekci ve které mají být a dát redefine. Taky ji můžete přejmenovat (rename) a vymazat (delete).

Proxy
Toto není obyčejná selekce, ale tzv. proxy objekt. Je to již vymodelovaný objekt, který můžete pomocí tohoto vložit aniž byste ho museli znovu vymodelovat. V oxygenu je vidět jen jako trojúhelník, ale v buldozeru a v OFP je vidět model.

Vytvoření proxy:
Create > Proxy a do zobrazeného okna vepíšete cestu k modelu. Model píšete bez koncovky *.p3d ! Pokud je model umístěn v souboru data3d.pbo stačí napsat název souboru. Je-li, ale součástí addonu, tak musíte napsat "název_pbo/název_souboru".

U proxy modelu, které jste si vytvořily sami a dali do OFP jako addon musíte udělat:
Po umístění modelu tam kam chceme smazat název_pbo souboru. Například mám model, který chci vložit jako proxy pojmenovaný proxymodel.p3d v addonu mujaddon.pbo. Jako cestu napíšu mujaddon/proxymodel a dám ok. Vloží se mi tam trojúhelní a v seznamu selekcí bude proxy:mujaddon/proxymodel.01. Z tohoto názvu musíme smazat mujaddon/, takže to bude proxy:proxymodel.01. Potom musíme cestu zadat do config.cpp do třídy "cfgNonAIVehicles". V této třídě se uvádí ještě další věci, ale to až v tutoriálu, který se bude věnovat configu.

To by bylo vše o takovýchto proxy. Ještě je další druh proxy, který představuje pozici a pohyby AI když nastoupí do auta, vrtulníku apod.
Tady je jejich seznam:

Do verze 1.46 (bez addonu):

M60Commander - Commander
M60Driver - Driver
M60Gunner - Gunner
M60CommanderOut - Commander
M60DriverOut - Driver
M60GunnerOut - Gunner
M1A1Commander - Commander
M1A1Driver - Driver
M1A1Gunner - Gunner
M1A1CommanderOut - Commander
M1A1DriverOut - Driver
M1A1GunnerOut - Gunner
M113Commander - Commander
M113Driver - Driver
M113Gunner - Gunner
M113CommanderOut - Commander
M113DriverOut - Driver
M113GunnerOut - Gunner
BMPCommander - Commander
BMPDriver - Driver
BMPGunner - Gunner
BMPCommanderOut - Commander
BMPDriverOut - Driver
BMPGunnerOut - Gunner
T72Commander - Commander
T72Driver - Driver
T72Gunner - Gunner
T72CommanderOut - Commander
T72DriverOut - Driver
T72GunnerOut - Gunner
T80Commander - Commander
T80Driver - Driver
T80Gunner - Gunner
T80CommanderOut - Commander
T80DriverOut - Driver
T80GunnerOut - Gunner
ZSUCommander - Commander
ZSUDriver - Driver
ZSUGunner - Gunner
ZSUCommanderOut - Commander
ZSUDriverOut - Driver
ZSUGunnerOut - Gunner
T55Commander - Commander
T55Driver - Driver
T55Gunner - Gunner
T55CommanderOut - Commander
T55DriverOut - Driver
T55GunnerOut - Gunner
Medic - Cargo
Nemocnej - Cargo
UH60Pilot - Driver
UH60CoPilot - Gunner
UH60Gunner - Gunner
Mi17Pilot - Driver
Mi17CoPilot - Gunner
Mi24Pilot - Driver
Mi24Gunner - Gunner
AH1Pilot - Driver
AH1Gunner - Gunner
AH1GunnerStat - Gunner
A10Pilot - Driver
CesnaPilot - Driver
CesnaCoPilot - Cargo
CesnaCargo - Cargo
TraktorDriver - Driver
JeepDriver - Driver
JeepGunner - Gunner
JeepCoDriver - Cargo
JeepCoDriverBack - Cargo
5tDriver - Driver
5tCoDriver - Cargo
UazDriver - Driver
UazCoDriver - Cargo
UralDriver - Driver
UralCoDriver - Cargo
SkodaDriver - Driver
SkodaCoDriver - Cargo
SkodaCoDriverBack - Cargo
V3SDriver - Driver
V3SCoDriver - Cargo
PBRDriver - Driver
PBRGunner - Gunner
HRLDriver - Driver
HRLGunner - Gunner
SCUDDriver - Driver
SCUDCoDriver - Cargo
Parasutista - Driver
M2Gunner - Gunner
PKGunner - Gunner

Verze 1.46 se všemy oficiálními addony:

ah64pilot - Driver
ah64gunner - Gunner
Ch47Gunner - Gunner
vulcangunner - Gunner
TrabiDriver - Driver
M2A2Driver - Driver
M2A2Gunner - Gunner
M2A2GunnerOutStat - Gunner
M2A2Commander - Commander
M2A2CommanderOutStat - Commander

Verze 1.75

JAWADriver - Driver
JAWACoDriver - Driver
BusDriver - Driver