prop_static
prop_static
is a internal point entity available in all Source games.它用于廉价
地向世界添加模型
。它不能移动、播放动画或接受输入,并且在地图编译后不作为实体存在。典型地图中的绝大多数模型都是
prop_static
。
prop_static
将与其他对象发生碰撞,假设它有一个碰撞网格,并且与所有其他模型实体不同,它可以按顶点点亮并将阴影投射到光照贴图
上。





prop_static
)可以使用静态道具的 UV 来使用光照贴图。它们具有与逐顶点光照道具相同的限制,并且不能用于具有凹凸贴图的模型。
prop_static
数量限制为4096个。


一致性
为了加强行为的一致性,带有嵌入prop_data
的模型不能是prop_static
实体。使用 Hammer 模型浏览器的信息(Info)选项卡(译者注:浏览模型时右侧下方会显示模型的属性)检查模型是否支持。
键值
- Collisions
(solid)
<choices>
- 道具应该如何与其他对象碰撞。
- Screen Space Fade
(screenspacefade)
<boolean>
| 布尔值 - 如果启用,道具将根据它覆盖的屏幕像素数淡出。开始和结束淡入淡出距离表示启用时道具在淡入淡出开始和结束时覆盖的像素。
- Lighting Origin
(lightingorigin)
<target_source>
- 从中采样照明的
info_lighting
(而不是模型的原点)。禁用逐顶点光照。
- Disable Vertex lighting
(disablevertexlighting)
<boolean>
| 布尔值 - 道具将使用从其原点采样的照明值均匀照亮。如果实体没有被另一个对象遮挡,则启用此选项。
- Disable Self-Shadowing with vertex lighting
(disableselfshadowing)
<boolean>
| 布尔值 - 启用顶点光照后(译者注:即上方的选项),防止几何体产生自阴影——将阴影投射到自身上。
- Ignore surface normal for computing vertex lighting
(ignorenormals)
<boolean>
| 布尔值 - 启用顶点光照后,计算顶点光照时忽略法线面。
Tip:适用于薄薄的半透明物体,例如树叶道具上的叶子。
- Alpha
(renderamt)
<integer>
| 整数 (in all games since)
- 渐变的透明通道,其中 0 表示完全透明,255 表示完全不透明。
- Render Color (R G B)
(rendercolor)
<color255
(in all games since>
)
- 用这种颜色为模型着色。
- Generate (and use) lightmaps for this static prop
(generatelightmaps)
<boolean>
| 布尔值 (only in)
- 为这个道具生成一个光照贴图。需要在VRAD中启用
-StaticPropLighting
。若想了解更多信息,请访问 tf2maps.net。 Note:光照贴图也可以在所有游戏中使用调制着色器在静态道具上创造出一个假的,尽管同步光照可能很困难。
- Lightmap Resolution X
(lightmapresolutionx)
<integer>
| 整数 (only in)
- 生成的光照贴图在X或U)方向的分辨率。(仅在Generate Lightmaps为Yes时使用。)
- Lightmap Resolution Y
(lightmapresolutiony)
<integer>
| 整数 (only in)
- 生成的光照贴图在Y或V)方向的分辨率。(仅在Generate Lightmaps为Yes时使用。)
- Enable Bounced Lighting
(enablelightbounce)
<boolean>
| 布尔值 (仅存在于中)
- VRAD 是否应该从这个道具创建间接照明。
- Disable Prop Combine
(preventpropcombine)
<boolean>
| 布尔值 (仅存在于中)
- 防止此静态道具与VBSP中的任何其他静态道具结合使用。
- Uniform Scaling
(uniformscale)
<float>
| 浮点型 (仅存在于中)
- 沿 X Y Z 轴均匀缩放给定模型。
Bug:在Hammer中,撤消/重做任何更改(无论是轻微的单位移动还是缩放更改)都将导致道具在 3D 纹理视图中显示为“正常”大小(模型仅显示为正常大小,并且在重新加载时仍会显示给定的值的vmf)。
- Targetname
(targetname)
<target_source>
(仅存在于中)
ship_base_interaction
实体引用该实体的名称。
Studiomodel:
- Skin
(skin)
<integer>
| 整数 - 一些模型有多个skins
。该值从索引中选择,从 0 开始。
Tip:Hammer 的模型浏览器如果您使用它来查看不同的 skin,则会自动更新该值。
Shadow:
- Disable Shadows
(disableshadows)
<boolean>
| 布尔值 - 如果实体是
prop_static
,则阻止实体创建廉价的渲染到纹理阴影或光照贴图阴影。不影响阴影贴图。 - Disable ShadowDepth
(disableshadowdepth)
<boolean>
| 布尔值 (in all games since)
- 用于禁用此实体的阴影深度渲染(对于投影纹理)。
Reflection:
- Render in Fast Reflections
(drawinfastreflection)
<boolean>
| 布尔值 (in all games since)
- 如果启用,该实体将在快速水反射中渲染(即当水材质指定
$reflectonlymarkedentities
时)和世界中的 impostor pass。
BaseFadeProp:
- Start Fade Dist
(fademindist)
<float>
| 浮点型 - 道具开始淡出的距离。
- End Fade Dist
(fademaxdist)
<float>
| 浮点型 - 道具可见的最大淡入淡出距离。
- 如果 Start Fade Dist < 0,当结束淡入淡出时,道具将立即消失。
- 如果 End Fade Dist <0,则道具根本不会消失。 (这是默认值。)
- 如果道具在三维天空盒中,这些值将适当缩放。
- Fade Scale
(fadescale)
<float>
| 浮点型 - 如果你在worldspawn
中指定此键值,或者如果引擎在 DirectX 8(Ep1 中的 DX7)下运行,即使未指定上述淡入淡出距离,道具也会淡出。此键值可让你在发生这种情况时进行一些控制:小于 1 的数字会导致道具在更远的距离淡出,而大于 1 则会导致它在更近的距离淡出。使用 0 会完全强制关闭淡入淡出。另请参阅QC命令
$noforcedfade
。
DXLevelChoice:
- 最低DX水平
(mindxlevel)
<choices>
- 如果引擎在给定的DirectX Versions
范围之外运行,该实体将不存在。从
Left 4 Dead开始,被SystemLevelChoice取代。
Warning:如果使用这些,当用户切换他们的DirectX设置时,该对象可能会中断。
SystemLevelChoice:
- Minimum CPU Level (mincpulevel)
<choices>
(in all games since)
- CPU级别低于此级别的将不在游戏内呈现此对象,级别由视频设置内的效果细节决定。

cpu_level
命令;效果详细信息使用的命令。- Minimum GPU Level (mingpulevel)
<choices>
(in all games since)
- GPU级别低于此级别的将不在游戏内呈现此对象,级别由视频设置内的Shader细节决定。

gpu_level
命令; Shader Details 使用的命令。角度:
- Pitch Yaw Roll (Y Z X)
<angle>
- 这个实体在世界的方向。Pitch是围绕Y轴旋转,Yaw是围绕Z轴的旋转,Roll是围绕X轴的旋转。
常见错误
Error! prop_static using model "[model]", which must be used on a dynamic entity (i.e. prop_physics). Deleted.
该道具与prop_static
不兼容。你要使用prop_dynamic_override
来代替,或者prop_physics
,如果你想要它有物理效果。
如果它是你的自定义模型:
- 要么你的模型丢失
$staticprop
或者没有allowstatic 1
在prop_data
的QC文件中。
示例:
$KeyValues
{
prop_data
{
"base" "Metal.Medium"
"allowstatic" "1"
}
}
- 如果由于某种原因你的模型定位不正确,请检查模型的
$definebone
中声明的骨骼名称,它应该没有任何斜线,还要检查那里的位置,值应该为零。