prop_static
![]() |
---|
CStaticProp |
![]() |
prop_static
es un entidad de modelo interno
disponible en todos los juegos de Source.
Se usa para añadir de forma barata (en rendimiento) un modelo al mundo. No puede moverse, animar o aceptar entradas (con la excepción limitada de $treesway). De hecho, no existe como una entidad después de que el mapa ha sido compilado. La gran mayoría de los modelos en un mapa típico son entidades
prop_static
.
Un prop_static
colisionará con otros objetos siempre que tenga una malla de colisión y, a diferencia de todas las demás entidades de modelo, puede ser iluminado por vértice y proyectar sombras sobre los mapas de luz .

static_prop
. Limitaciones conocidas
Iluminación por vértice



La iluminación puede comportarse de manera diferente en un prop estático particular dependiendo de su configuración y de cómo se crearon/diseñaron su modelo y materiales.
Un prop con la iluminación por vértice desactivada será iluminado por vértice basándose en su origen ($illumposition, si uno está definido en el modelo, o Lighting origin (Origen de iluminación), si está definido en Hammer ) y parecerá similar a los props dinámicos . Este es el único comportamiento disponible en .
Con la iluminación por vértice activada (disponible desde mediante -StaticPropLighting), VRAD calculará y guardará (hará "bake") la información de iluminación y color para cada vértice del modelo, lo que típicamente resulta en un aspecto mejor y más realista en el juego.
Sin embargo, a veces puede llevar a tramos indeseables de sombra o brillos, especialmente en modelos de baja poligonización (low-poly) o props con proporciones alargadas, como los árboles. Cuanto mayor sea el número de polígonos, más precisa puede ser la iluminación por vértice. Puede volverse costosa (en rendimiento) en modelos de muy alta poligonización, por lo que crear Niveles de Detalle (LODs) es aconsejable.
En versiones del motor anteriores a CSGO de y
Strata Source, si algún material en el modelo del prop usa mapeo normal ($bumpmap, $normalmap o $phong), la iluminación por vértice será desactivada forzosamente. Esto sucede si alguna de las skins usa $bumpmap o $phong, incluso si no es la skin activa seleccionada.
Los derivados de CS:GO rama de motor y posteriores admiten la iluminación por vértice en materiales con mapeo normal y $phong, y no sufren de esta limitación.
Mapas de luz (Lightmaps) en props estáticos
En Source 2013 Multiplayer,
TF2 branch, y
Garry's Mod, VRAD puede aplicar mapas de luz sobre props estáticos, permitiendo una mejor mezcla (blending) entre la geometría de brocha y los modelos. Sin embargo, al igual que con la iluminación por vértice, esta característica no puede usarse junto con $bumpmap, $phong o $normalmap.
Al calcular un mapa de luz para un modelo, VRAD usará las mismas UVs y escalado que la $basetexture del primer material de la primera skin del modelo (teniendo en cuenta $basetexturetransform, si está presente).
Esto significa que:
- Los modelos creados con islas UV superpuestas obtendrán mapas de luz deficientes, ya que también estarán superpuestos;
- Si el modelo tiene múltiples skins y/o materiales , solo se usará el primero para establecer los mapas de luz, lo que podría empeorar la superposición;
- El mapa de luz será recortado por los bordes de las UVs (las UVs repetidas/teseladas no son compatibles);
- Los mapas de luz de baja resolución pueden desbordarse sobre los bordes de las UVs.
Para empeorar las cosas, el mapa de luz generado para props por el VRAD original (vanilla) viene como RGB888 (SDR de 24 bits) en un formato especial PPL , lo que puede hacer que el bandeo de color sea perceptible en modo HDR (especialmente si una fuente de luz está cerca del prop). Garry's Mod genera y usa mapas de luz RGBA16161616f separados para el modo HDR.
Finalmente, los modelos con Niveles de Detalle (LoDs) tendrán un mapa de luz generado para cada LoD, lo que puede aumentar considerablemente la cantidad de VRAM utilizada por un prop individual, haciendo que los modelos con nivel de detalle sean potencialmente más costosos (en rendimiento) que usar siempre el modelo de mayor calidad.
Consulta la página $lightmap para una lista completa de advertencias con props que usan mapas de luz.


Propper++ puede "hornear" (bake) la $basetexture de un modelo en un atlas no superpuesto y no repetido (non-tiling), mitigando algunos de estos problemas con una pérdida menor de calidad.
- Usa el comando QC $checkuv 0to1 overlap para evitar que un modelo compile si tiene UVs incompatibles.
Límites de compilación para props estáticos
VBSP limita el número máximo de entidades en un mapa, incluyendo entidades internas , y debido a que los prop_static
cuentan para ese límite, tener demasiados puede hacer que la compilación falle.
- En
puede haber hasta 8192 entidades (contando props estáticos);
- En
hasta 16384;
- En
hasta 20480;
- En
hasta 65536 (funciona con cualquier juego
).
Dado que, nuevamente, ese límite concierne a todas las entidades del mapa, la cantidad máxima realista de props estáticos será menor.

Consistencia forzada
Para asegurar la consistencia del comportamiento, los modelos con datos de físicas incrustados no pueden ser prop_static
, a menos que se use allowstatic. Usa la pestaña de información del Navegador de Modelos de Hammer para verificar la compatibilidad.

Modelos con bodygroups
Prop_static no admite submodelos $bodygroup seleccionables; si hay alguno, solo el primero será utilizado por el juego. A pesar de esto, ¡VRAD generará sombras de mapa de luz de todos los submodelos presentes en el MDL! (probado en )

Modelos con grupos de skins
Aunque prop_static admite $texturegroup skins (grupos de texturas) seleccionables, VRAD no carga correctamente la skin apropiada. Dado que a VRAD solo le importa el canal alfa de las texturas, esto solo es un problema para los materiales que proyectarían sombras de textura . Las sombras de textura se proyectarán basándose en la primera skin, aunque las texturas alfa de las otras skins se carguen en memoria. (probado en )
Keyvalues
- Collisions (solid) <integer choices>
- Cómo debe interactuar el prop con otros objetos.
- 0 - No sólido
- 2 - Usar caja delimitadora (bounding box)
- 6 - Usar VPhysics (predeterminado)
Nota:Usar colisión VPhysics en modelos sin una malla de colisión hará que el motor emita una advertencia al cargar el mapa y restablecerá la colisión a no sólida. Si ves tal advertencia, restablece la colisión de todos los props que usan el modelo indicado a una de las otras dos opciones.
Asimismo, usar un valor inválido (como 1) también emitirá una advertencia y desactivará la colisión.
- Disable per-vertex lighting (Desactivar iluminación por vértice) (disablevertexlighting) <boolean > (en todos juegos desde
)
- El prop será iluminado por vértice de forma más similar a los props dinámicos: en tiempo real, basándose en su origen o $illumposition . Esto puede reducir significativamente los tiempos de compilación de VRAD si el prop no se beneficia de una iluminación compleja, no está iluminado y/o está usando un $lightmap explícitamente definido.
Importante:¡Habilitar esto anula generatelightmaps!
- Disable Self-Shadowing with vertex lighting (Desactivar auto-sombreado con iluminación por vértice) (disableselfshadowing) <boolean > (en todos juegos desde
)
- Cuando la iluminación por vértice está activada, evita que la geometría se auto-sombree (proyecte sombras sobre sí misma).
- Ignore surface normal for computing vertex lighting (Ignorar normal de superficie para calcular iluminación por vértice) (ignorenormals) <boolean > (en todos juegos desde
)
- Cuando la iluminación por vértice está activada, ignora la normal de la superficie de las caras al calcular la iluminación por vértice, lo que resulta en un sombreado más uniforme.
Consejo:Útil para objetos delgados y translúcidos como las hojas en props de follaje.
- Alpha (renderamt) <integer > (en todos juegos desde
)
- Alfa del desvanecimiento, donde 0 es totalmente transparente y 255 es totalmente opaco.
- Render Color (R G B) (Color de renderizado) (rendercolor) <color255 > (en todos juegos desde
)
- Tiñe el modelo con este color.
Nota:Para juegos anteriores a L4D como Source 2013, puedes usar esta herramienta como alternativa.
- Generate (and use) lightmaps for this static prop (Generar (y usar) mapas de luz para este prop estático) (generatelightmaps) <boolean > (en todos juegos desde
) (también en
)
- Genera un mapa de luz para este prop, además de la iluminación por vértice de respaldo. Requiere que
-StaticPropLighting
esté habilitado en VRAD. Para más información, visita tf2maps.net. Nota:El mapeo de luz también se puede simular en props estáticos usando $detailblendmode 8 o el shader Modulate en todos los juegos, aunque sincronizar la iluminación puede ser difícil.
Aviso:Varias advertencias y limitaciones; ver explicación anterior.
Nota:(no en
) Aunque este Keyvalue existe en el FGD de Black Mesa, no se utiliza; Xengine no admite props con mapas de luz .
- Lightmap Resolution X (Resolución X del Mapa de Luz) (lightmapresolutionx) <integer > (en todos juegos desde
) (también en
)
- Lightmap Resolution Y (Resolución Y del Mapa de Luz) (lightmapresolutiony) <integer > (en todos juegos desde
) (también en
)
- La resolución del mapa de luz generado en la dirección X (o U) e Y (o V). (Solo se usa si Generar Mapas de Luz está habilitado.)
Importante:Establecer una resolución alta ralentizará significativamente los tiempos de compilación de VRAD y puede verse fuera de lugar en comparación con los mapas de luz de mucha menor resolución de las brochas y mallas de desplazamiento (displacements).
- Enable Bounced Lighting (Habilitar Iluminación Rebotada) (enablelightbounce) <boolean > (en todos juegos desde
) (también en
)
- Si VRAD debe crear iluminación indirecta a partir de este prop.
- Disable Prop Combine (Desactivar Combinación de Props) (preventpropcombine) <boolean > (en todos juegos desde
)
- Evita que este prop estático se combine con cualquier otro prop estático en VBSP.
- Uniform Scaling (Escalado Uniforme) (uniformscale) <float > (en todos juegos desde
)
- Un multiplicador para el tamaño del modelo del prop estático.
Error:En Hammer, deshacer/rehacer cualquier cambio (ya sean leves movimientos de unidades o cambios de escala) resultará en que el prop aparezca de tamaño "normal" en el Visor Texturizado 3D (el modelo solo parece de tamaño normal y el valor dado todavía se muestra al recargar el VMF). [todo tested in ?]
- Name (Nombre) (targetname) <string > (only in
)
- El nombre con el que las entidades ship_base_interaction
se refieren a esta entidad
Cómo?: ¿cómo?. También útil independientemente del juego para poder reconocer entidades prop_static específicas en el Informe de Entidades . El nombre no estará en el BSP compilado.
Modelo de Estudio (Studiomodel):
- World Model (Modelo del Mundo) (model) <model path >
- El modelo como debe aparecer esta entidad. Límite de 128 caracteres.
- Skin (skin) <integer >
- Algunos modelos tienen múltiples skins (grupos de texturas) . Este valor selecciona del índice, comenzando con 0.
Consejo:El navegador de modelos de Hammer actualiza automáticamente este valor si lo usas para ver diferentes skins.
Error:Los props estáticos con múltiples skins siempre calcularán las sombras de textura basándose en el canal(es) alfa de la(s) textura(s) de la skin predeterminada, aunque las texturas alfa de las skins alternativas sean cargadas por VRAD. [todo tested in ?]
- Lighting Origin (Origen de Iluminación) (LightingOrigin) <targetname >
- Selecciona una entidad (preferiblemente info_lighting) desde la cual muestrear la iluminación en lugar del $illumposition de la entidad, si la iluminación por vértice está desactivada en este prop. También se usa, independientemente de cómo se ilumine el modelo, para dictar desde dónde tomar el env_cubemap más cercano.
Shadow:
- Disable Shadows (disableshadows) <boolean >
- Evita que el prop proyecte sombras sobre mapas de luz y otros props estáticos. No afecta el mapeo de sombras (shadow mapping).
- Disable Shadow Depth (disableshadowdepth) <boolean > (en todos juegos desde
)
- Used to disable rendering into shadow depth (for projected textures) for this entity.
- Disable flashlight (disableflashlight) <boolean > (en todos juegos desde
)
- Used to disable projected texture lighting and shadows on this entity.
- Render in Fast Reflections (drawinfastreflection) <boolean > (en todos juegos desde
)
- 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 >
- Distance at which the entity starts to fade.
- End Fade Dist (fademaxdist) <float >
- 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 >
- If you specify so in worldspawn, or if the engine is running below DirectX 8 (DX7 in
), 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 (Desvanecimiento en espacio de pantalla) (screenspacefade) <boolean > (eliminado desde
)
- El método por el cual se debe determinar la distancia de desvanecimiento. Si está desactivado, la distancia de desvanecimiento es la distancia desde la vista del jugador hasta el objeto, en pulgadas. Si está activado, la distancia de desvanecimiento es el tamaño del objeto en pantalla, en píxeles.
- Minimum / Maximum DX Level (mindxlevel / maxdxlevel) <integer choices> (eliminado desde
)
- The entity will not exist if the engine is running outside the given range of DirectX Versions.
Choices Aviso:If these are used, the object may break when the user switches their DirectX settings.[missing string]
- 0 - Default (no bounding)
- 60 - DirectX 6 (!FGD for mindxlevel)
- 70 - DirectX 7
- 80 - DirectX 8 (GeForce4 Ti & FX 5000 series)
- 81 - DirectX 8.1 (GeForce FX 5800, 5900 & Radeon 8500/9100 and 9000/9200)
- 90 - DirectX 9 Shader Model 2
- 92 - OpenGL equivalent to DirectX 9 Shader Model 2 (using ToGL;
only) !FGD
- 95 - DirectX 9 Shader Model 3 (en todos juegos desde
)
- 98 - DirectX 9 Shader Model 3 on Xbox 360 (
only) !FGD
Consejo:Establece maxdxlevel a un número más bajo distinto de cero como 1 o 50 (junto con disablevertexlighting establecido en 1) para crear un prop que pueda proyectar sombras, pero que no se renderice en el juego. Esto es más barato (en rendimiento) que usar brochas blocklight , ya que no cuenta para los límites de brochas y caras de brocha .
- Minimum / Maximum Effect Details Level (mincpulevel / maxcpulevel) <integer choices> (en todos juegos desde
)
- Don't render for players with Effect Details levels that exceed the minimum or maximum.
Choices - 0: Default ("Low" for
mincpulevel
, "High" formaxcpulevel
) - 1: Low
- 2: Medium
- 3: High
- 0: Default ("Low" for
- Minimum / Maximum Shader Details Level (mingpulevel / maxgpulevel) <integer choices> (en todos juegos desde
)
- Don't render for players with Shader Details levels that exceed the minimum or maximum.
Choices - 0: Default ("Low" for
mingpulevel
, "Very High" formaxgpulevel
) - 1: Low
- 2: Medium
- 3: High
- 4: Very High
Véase también: cpu_level / gpu_level convars- 0: Default ("Low" for
Consejo:Establece mingpulevel o mincpulevel a un número muy grande como 20 (junto con disablevertexlighting establecido en 1) para crear un prop que pueda proyectar sombras, pero que no se renderice en el juego. Esto es más barato (en rendimiento) que usar brochas blocklight , ya que no cuenta para los límites de brochas y caras de brocha .
- Pitch Yaw Roll (Y Z X) (angles) <QAngle >
- This entity's orientation in the world. Pitch is rotation around the Y axis, yaw is the rotation around the Z axis, roll is the rotation around the X axis.
Errores Comunes
VBSP elimina el modelo
El prop no es actualmente compatible para ser usado como prop_static
. Ten en cuenta que esto no significa necesariamente que el modelo no pueda usarse con prop_static.
Si el modelo no tiene la bandera "static" en el visor de modelos (es decir, no fue compilado con $staticprop):
- Necesitas usar prop_dynamic en su lugar, o prop_physics_override si quieres que tenga físicas.
Si el modelo es tu modelo personalizado:
- O tu archivo QC del modelo carece de $staticprop o no hay un
allowstatic 1
en el prop_data. Ejemplo:
$KeyValues { prop_data { "base" "Metal.Medium" "allowstatic" "1" } }
Si no es tu modelo personalizado, pero tiene la bandera "static" en el visor de modelos (fue compilado con $staticprop):
- Si es
, añade
-allowdynamicpropsasstatic
a las opciones de compilación de VBSP . - Si es
, usa el VBSP de
Slammin' Source Map Tools (
o
), VBSP prop_static fix (solo
),
Mapbase (solo
), o
Garry's Mod (solo
).
- De lo contrario, usa
Source Model Skin Editor para añadir "allowstatic" "1" al prop_data del MDL , luego revierte al MDL original después de que el mapa esté compilado.
Modelo descentrado
Si por alguna razón tu modelo está ubicado incorrectamente, revisa el nombre del hueso declarado en $definebone
de un modelo; no debería tener barras (//). Revisa también la posición allí, los valores deberían estar en cero.