Dokumentacija ovog članka je za sve što koristi Source pogon. Kliknite ovdje za više informacija.

prop_static

From Valve Developer Community
< Hr
Revision as of 13:48, 24 April 2025 by N0one (talk | contribs) (Translating 1/3(?) to Croatian)
Jump to navigation Jump to search
English (en)Español (es)Hrvatski (hr)Русский (ru)中文 (zh)Translate (Translate)
'Ne smije se miješati s $staticprop i allowstatic (prop_data) QC naredbama.

prop_static je unutarnji(en) Točkasti entitet(en) dostupan u svim Source Source igrama. Koristi se za jeftino dodavanje modela svijetu. Ne može se pomicati, animirati ili prihvatiti input (uz ograničenu iznimku $treesway). Zapravo, ne postoji kao entitet nakon što je mapa sastavljena. Velika većina modela u tipičnoj karti su prop_static entiteti.

prop_static će se sudarati s drugim objektima pod uvjetom da ima mrežu sudara i, za razliku od svih drugih entiteta modela, može se osvijetliti po vrhu i bacati sjene na lightmap.

AltNames.pngAltNames: This entity is also tied to static_prop.

Poznata ograničenja

Vertex rasvjeta

Demonstracija statične rasvjete rekvizita sa i bez $bumpmap u Source 2013 Source 2013, na modelu džipa boje vanilije iz Day of Defeat: Source Day of Defeat: Source. Obratite pažnju na razlike u točnosti osvjetljenja na džipu koji je djelomično ispod mosta.

Rasvjeta se može ponašati različito na određenom statičkom rekvizitu, ovisno o njegovim postavkama i načinu na koji su njen model i materijali kreirani. Prop s onemogućenim osvjetljenjem po vrhovima bit će osvijetljen na temelju svog porijekla ($illumposition, ako je definirano u modelu, ili Porijeklo osvjetljenja, ako je definirano u Hammer) i izgledat će slično kao dinamički props. Ovo je jedino ponašanje dostupno u verzijama do Source 2006.

Uz omogućeno osvjetljenje po vrhovima (dostupno od Source 2007 putem -StaticPropLighting), VRAD će izračunati i ispeći informacije o osvjetljenju i boji za svaki vrh modela, što obično rezultira boljim, realističnijim izgledom u igri.

Međutim, ponekad to može dovesti do neželjenih dionica sjene ili svjetla, osobito na modelima s niskim poligonima ili rekvizitima izduženih proporcija, poput drveća. Što je veći broj poli, točnije može biti osvjetljenje po vrhovima. To može postati skupo na modelima s vrlo visokim poligonima, stoga je preporučljivo kreirati LOD.

U verzijama pogona prije CS:GO engine branchCSGO i Strata Source Strata Source, ako bilo koji materijal na modelu rekvizita koristi normalno mapiranje ($bumpmap, $normalmap ili $phong), osvjetljenje po vrhu bit će prisilno onemogućeno. To se događa ako neka od maski koristi $bumpmap ili $phong, čak i ako to nije odabrana aktivna maska.

CS:GO engine branch CS:GO engine branch i derivati ​​podržavaju rasvjetu po vrhovima na normalno mapiranim i $phong materijalima i ne podliježu ovom ograničenju.

Svjetlosne karte na statičkim rekvizitima

U Source 2013 Multiplayer Source 2013 Multiplayer, Team Fortress 2 branch TF2 branch i Garry's Mod Garry's Mod, VRAD može primijeniti lightmap na statične rekvizite, omogućujući bolje stapanje između brush geometrije i modela. Međutim, baš kao i kod osvjetljenja po vrhovima, ova se značajka ne može koristiti zajedno s $bumpmap, $phong ili $normalmap.

Prilikom pečenja karte svjetla za model, VRAD će koristiti isti UV i skaliranje kao $basetexture prvog materijala modela njegove prve kože (uzimajući u obzir $basetexturetransform, ako postoji).

To znači da:

  • Modeli stvoreni s UV otocima koji se preklapaju dobit će loše mape svjetla jer će se također preklapati;
  • Ako model ima više kože i/ili materijala, samo će se prvi koristiti za postavljanje mapa svjetla, što potencijalno pogoršava preklapanje;
  • Karta svjetla bit će obrezana UV rubovima (UV-ovi popločavanja nisu podržani);
  • Svjetlosne karte niske rezolucije mogu prelaziti preko rubova UV-a.

Da stvar bude gora, svjetlosna karta koju za rekvizite generira vanilla VRAD dolazi kao RGB888 (24-bitni SDR) u posebnom PPL formatu, koji može učiniti primjetnim trake u boji u HDR načinu rada (posebno ako je izvor svjetla blizu rekvizita). Garry's Mod Garry's Mod generira i koristi zasebne RGBA16161616f karte svjetla za HDR način.

Naposljetku, modeli s LoDovima će svjetlosnu kartu generiranu za svaki LoD, što može uvelike povećati količinu VRAM-a koju koristi pojedinačni rekvizit, čineći modele s razinom detalja potencijalno skupljim od uvijek korištenja modela najviše kvalitete.

Pogledajte stranicu $lightmap za potpuni popis upozorenja s rekvizitima za mapiranje svjetla.

PlacementTip.pngRaditi okolo:Modificirani VRAD može generirati HDR svjetlosne karte za statičke rekvizite, nauštrb dodatne upotrebe VRAM-a; pogledajte PPL za više informacija.
Tip.pngSavjet:
  • Propper++ Propper++ može ispeći $basetexture modela u atlas bez popločavanja koji se ne preklapa, ublažavajući neke od ovih problema uz manji gubitak kvalitete.
  • Upotrijebite QC naredbu $checkuv 0to1 overlap kako biste spriječili kompajliranje modela ako ima nekompatibilne UV-ove.

Kompilirajte ograničenja za statičke rekvizite

VBSP ograničava maksimalan broj entiteta na karti, uključujući interne entitete, a budući da se prop_static računa prema tom ograničenju, ako ih ima previše, kompajliranje može biti neuspješno.

  • U Source 2007Source 2013Left 4 Dead engine branch može biti do 8192 entiteta (računajući statičke rekvizite);
  • U Alien Swarm engine branchPortal 2 engine branch do 16384;
  • U CS:GO engine branch do 20480;
  • U Mapbase do 65536 (radi s bilo kojom igrom Source 2013 Singleplayer).

Budući da se, opet, to ograničenje odnosi na sve entitete karte, realna maksimalna količina statičkih rekvizita bit će manja.

Tip.pngSavjet:Ovo je meko ograničenje, a modificirani VBSP ga može promijeniti (MAX_MAP_ENTITIES u public/bspfile.h). BSP datoteka teoretski može sadržavati više od 4 milijarde statičkih rekvizita.

Prisilna dosljednost

Kako bi se osigurala dosljednost ponašanja, modeli s ugrađenim podacima fizike ne mogu biti prop_static, osim ako se ne koristi allowstatic. Upotrijebite informacijsku karticu Hammer Model Browsera da provjerite postoji li podrška.

PlacementTip.pngRaditi okolo:Ovo nije ograničenje motora; provjeru obavlja kompilator. Modificirani VBSP to može izbjeći. Pogledajte ispod.

Modeli s grupama tijela

Prop_static does not support selectable $bodygroup submodels; if there's any, only the first one will be used by the game. Despite this, VRAD will generate lightmap shadows from all submodels present in the MDL! (tested in Day of Defeat: Source)

PlacementTip.pngRaditi okolo:Either compile a separate model for each desired variation (doesn't use up an edict, better lighting), or use prop_dynamic (easier, less file duplication).

Models with skin groups

While prop_static does support selectable $texturegroup skins, VRAD does not properly load the appropriate skin. Since VRAD only cares about the alpha channel of the textures, this is only an issue for materials that would cast texture shadows. Texture shadows will be cast based upon the first skin, even though the alpha textures for the other skins are loaded into memory. (tested in Day of Defeat: Source)

Keyvalues

Collisions (solid) <cjelobrojni(en) izbori>
How the prop should interact with other objects.
  • 0 - Not solid
  • 2 - Use bounding box
  • 6 - Use VPhysics (default)
    Note.pngBilješka:Using VPhysics collision on models without a collision mesh will cause the engine to throw a warning upon loading the map. If you see such a warning, reset the collision of all props using the noted model to one of the other two choices.
Disable per-vertex lighting (disablevertexlighting) <Booleov(en)>
Prop will be vertex lit more similarly to dynamic props: in real-time, based on its origin or $illumposition. This can significantly reduce VRAD compile times if the prop does not benefit from complex lighting, is unlit, and/or is using an explicitly defined $lightmap.
Icon-Important.pngVažno:Enabling this overrides generatelightmaps!
Disable Self-Shadowing with vertex lighting (disableselfshadowing) <Booleov(en)>
When vertex lighting is enabled, prevent the geometry from self-shadowing (casting shadows onto itself).
Ignore surface normal for computing vertex lighting (ignorenormals) <Booleov(en)>
When vertex lighting is enabled, ignore the surface normal of faces when calculating the vertex lighting, resulting in more uniform shading.
Tip.pngSavjet:Useful for thin, translucent objects such as leaves on foliage props.
Alpha (renderamt) <cijeli broj(en)> (u svim igrama od(en) Left 4 Dead)
Alpha of the fade, where 0 is fully transparent and 255 is fully opaque.
Render Color (R G B) (rendercolor) <boja255(en)> (u svim igrama od(en) Left 4 Dead)
Tint the model with this color.
Note.pngBilješka:For games before L4D like Source 2013, you can use this tool as a alternate
Generate (and use) lightmaps for this static prop (generatelightmaps) <Booleov(en)> (u svim igrama od(en) Source 2013 Multiplayer) (također u Garry's Mod)
Generate a lightmap for this prop, in addition to fallback per-vertex lighting. Requires -StaticPropLighting to be enabled in VRAD. For more information, visit tf2maps.net.
Note.pngBilješka:Lightmapping can be also faked on static props using $detailblendmode 8 or the Modulate shader in all games, although syncing the lighting can be difficult.
Warning.pngUpozorenje:Several caveats and limitations; see note and warnings above.
Note.pngBilješka:(ne u Black Mesa) While this KV does exist in Black Mesa's FGD, it is unused; Xengine does not support lightmapped props.
Lightmap Resolution X (lightmapresolutionx) <cijeli broj(en)> (u svim igrama od(en) Source 2013 Multiplayer) (također u Garry's Mod)
Lightmap Resolution Y (lightmapresolutiony) <cijeli broj(en)> (u svim igrama od(en) Source 2013 Multiplayer) (također u Garry's Mod)
The resolution of the generated lightmap in the X (or U) and Y (or V) direction. (Only used if Generate Lightmaps is enabled.)
Icon-Important.pngVažno:Setting a high resolution will significantly slow down VRAD compile times and may look out of place compared to the much lower resolution brush and displacement lightmaps.
Enable Bounced Lighting (enablelightbounce) <Booleov(en)> (u svim igrama od(en) CS:GO engine branch) (također u Garry's Mod)
Whether VRAD should create indirect lighting from this prop.
Disable Prop Combine (preventpropcombine) <Booleov(en)> (u svim igrama od(en) CS:GO engine branch)
Prevent this static prop from combining with any other static props in VBSP.
Uniform Scaling (uniformscale) <float(en)> (u svim igrama od(en) CS:GO engine branch)
A multiplier for the size of the static prop model.
Icon-Bug.pngGreška:In Hammer, undoing/redoing any changes (whether they are slight unit movements or scale changes) will result in the prop appearing "normal" sized in the 3D Textured Viewport (the model only appears normal sized and the value given is still shown upon reload of the VMF).  [to-do: testirano u ?]
Napraviti: add scaling kvs from p2ce
Name (targetname) <niz(en)> (samo u The Ship: Murder Party)
The name that ship_base_interactionThe Ship: Murder Party entities refer to this entity by[Kako?]. Also useful regardless of game for being able to recognize specific prop_static entities in Entity Report. The name will not be in the compiled BSP.

Studiomodel:

World Model (model) <put modela(en)>
model(en) u kojem bi se ovaj entitet trebao pojaviti. Ograničenje od 128 znakova.
Skin (skin) <cijeli broj(en)>
Neki modeli imaju više skinova(en). Ova vrijednost odabire iz indeksa, počevši od 0.
Tip.pngSavjet:Hammerov preglednik modela automatski ažurira ovu vrijednost ako ga koristite za pregled različitih maski.
Icon-Bug.pngGreška:Statični rekviziti s višestrukim kožama(en) uvijek će izračunati sjene teksture(en) na temelju alfa kanala(a) iz zadane teksture(a) maske, čak iako alfa teksture alternativnih maski učitava VRAD.  [to-do: testirano u ?]
Lighting Origin (LightingOrigin) <targetname(en)>
Odaberite entitet (po mogućnosti info_lighting) iz kojeg ćete uzorkovati osvjetljenje umjesto origin(en) entiteta, ako je osvjetljenje po vrhovima onemogućeno na ovom podupiraču.

Sjena:

Disable Shadows (disableshadows) <Booleov(en)>
Sprječava stvaranje jeftinih sjena renderiranja u teksturu ili sjena karte svjetla ako je entitet prop_static. Ne utječe na mapiranje sjene.
Disable Shadow Depth (disableshadowdepth) <Booleov(en)> (u svim igrama od(en) Counter-Strike: Global Offensive)
Koristi se za onemogućavanje renderiranja u dubinu sjene (za projicirane teksture) za ovaj entitet.
Disable flashlight (disableflashlight) <Booleov(en)> (u svim igrama od(en) Portal 2)
Koristi se za onemogućavanje projiciranog osvjetljenja teksture i sjena na ovom entitetu.
Render in Fast Reflections (drawinfastreflection) <Booleov(en)> (u svim igrama od(en) Portal 2)
If enabled, this entity will render in fast water reflections (i.e. when a water material specifies $reflectonlymarkedentities) and in the world impostor pass.

BaseFadeProp:

Start Fade Dist (fademindist) <float(en)>
Distance at which the entity starts to fade.
End Fade Dist (fademaxdist) <float(en)>
Max fade distance at which the entity is visible.
  • If start fade is <0, the entity will disappear instantly when end fade is hit.
  • If end fade is <0, the entity won't disappear at all. (This is the default behavior.)
The values will scale appropriately if the entity is in a 3D Skybox.
Fade Scale (fadescale) <float(en)>
If you specify so in worldspawn, or if the engine is running below DirectX 8 (DX7 in Source 2006), props will fade out even if the fade distances above aren't specified. This value gives you some control over when this happens: numbers smaller than 1 cause the prop to fade out at further distances, while those greater than 1 cause it to fade out at closer distances. Using 0 turns off the forced fade altogether. See also the QC command $noforcedfade.
Screen space fade (screenspacefade) <Booleov(en)> (uklonjen od Portal 2)
The method by which the fading distance should be determined. If disabled, the fade distances is the distance from the player's view to the object, in inches. If enabled, the fade distance is the size of the object onscreen, in pixels.
Minimum / Maximum DX Level (mindxlevel / maxdxlevel) <cjelobrojni(en) izbori> (uklonjen od Left 4 Dead)
The entity will not exist if the engine is running outside the given range of DirectX Versions.
Choices
Warning.pngUpozorenje:If these are used, the object may break when the user switches their DirectX settings.[missing string]
Tip.pngSavjet:Set maxdxlevel to lower number such as 1 or 50 (along with disablevertexlighting set to 1) to create a prop that can cast shadows, but isn't rendered in-game. This is cheaper than using blocklight brushes, as it does not count towards brush and brushside limits.
Minimum / Maximum Effect Details Level (mincpulevel / maxcpulevel) <cjelobrojni(en) izbori> (u svim igrama od(en) Left 4 Dead)
Don't render for players with Effect Details levels that exceed the minimum or maximum.
Choices
  • 0: Default ("Low" for mincpulevel, "High" for maxcpulevel)
  • 1: Low
  • 2: Medium
  • 3: High
Minimum / Maximum Shader Details Level (mingpulevel / maxgpulevel) <cjelobrojni(en) izbori> (u svim igrama od(en) Left 4 Dead)
Don't render for players with Shader Details levels that exceed the minimum or maximum.
Choices
  • 0: Default ("Low" for mingpulevel, "Very High" for maxgpulevel)
  • 1: Low
  • 2: Medium
  • 3: High
  • 4: Very High
Vidi također:  cpu_level / gpu_level convars

Tip.pngSavjet:Set mingpulevel or mincpulevel to a very large number such as 20 (along with disablevertexlighting set to 1) to create a prop that can cast shadows, but isn't rendered in-game. This is cheaper than using blocklight brushes, as it does not count towards brush and brushside limits.
Pitch Yaw Roll (Y Z X) (angles) <QAngle(en)>
Orijentacija ovog entiteta u svijetu. Pitch je rotacija oko Y osi, yaw je rotacija oko Z osi, roll je rotacija oko X osi.

Common Mistakes

VBSP deletes model

Error! prop_static using model "[model]", which must be used on a dynamic entity (i.e. prop_physics). Deleted.

The prop is not currently compatible to be used as prop_static. Note that this does not necessarily mean the model cannot be used with prop_static.

If the model does not have "static" flag in the model viewer (as in, was not compiled with $staticprop):

If the model is your custom model:

$KeyValues
{
	prop_data 
	{
		"base" "Metal.Medium"
		"allowstatic" "1"
	}
}

If it is not your custom model, but has the "static" flag in the model viewer (was compiled with $staticprop:

Napraviti: Provide an option that works with Team Fortress 2 branch.

Model is off-center

If for some reason your model located incorrectly, check declared bone name in $definebone of a model; it should be without any slashes. Also check position there, values should be zeroed.

See also