sky_camera
Class hierarchy |
---|
CSkyCamera |
SkyCamera.cpp
|
sky_camera
is a point entity available in all Source games. It is used to mark the position of the map's origin inside the 3D Skybox. As your position changes relative to the maps origin it will be scaled and applied relative to the sky_camera
.
When the map is compiled, the areas containing sky_camera
(s) are skipped during vis calculations. This can be overridden by -forceskyvis
on VBSP.
By default, only one sky_camera
may be active at a time and it cannot move.
Tip:
- In games with VScript, you can control 3D skyboxes and their properties (including fog) per-player using netprops. This includes making them move. Example script can be found here
- In games without VScript, this workaround can be used instead for multiple or moving skyboxes.
- Duplicate your main env_fog_controller and then turn that into a
sky_camera
so that the fog settings will be carried over.
Note:fog values on
sky_camera
cannot be changed through inputs (unlike env_fog_controller
) and the max density keyvalue is missing from the FGD by default.Code:There is some leftover code for multiple
sky_camera
entities which can be restored in mods. Half-Life 2: Downfall has restored this feature and the work involved is open-source. Downfall's repository can be found here. Mapbase uses the aforementioned Downfall code and also adds native support for moving (and rotating) skyboxes. Mapbase's repository can be found here.Warning:If the unmodified version of this entity gets removed in the game, then the game will crash.
Todo: Test the modified code for the same issue.
Important:This is a preserved entity in .
- On a new round entities with this classname will intentionally not reset. You can use
logic_auto
to emulate resetting it. - Killing it removes it forever, as it is not respawned on a new round.
- It cannot be spawned with a
point_template
. - Parenting this with non preserved entities may have undesirable effects.
Keyvalues
- Name
(targetname)
<string> !FGD - The targetname that other entities refer to this entity by.
- 3D Skybox scale
(scale)
<integer> - This number determines how large objects in your skybox will seem relative to the map.
For example, at a skybox scale of 16, an object 1 unit high in the skybox will seem to be 16 units high to player. - Fog Enable
(fogenable)
<boolean> - Enable Fog in the Skybox by Default
- Fog Blend
(fogblend)
<boolean> - This will enable blending between two fog colors, based on the direction the player is looking. If the player's viewpoint is equal to the fogdir vector, the fog will be drawn with the secondary color; if facing in the complete opposite direction, the fog will be drawn with the primary color.
This can be used to approximate the aesthetic effect of diffuse light filtering through the fog, but since the fog effect color is changed for the entire rendered scene, it is best to keep the two colors relatively close to make the blending less obvious.
For example, sunlight with a yaw of 45 degrees and a pitch of -45 degrees could be enhanced using a fogdir of '-1 -1 1', a fogcolor of '120 110 100' and a fogcolor2 of '80 70 60'. - Use Angles for Fog Dir
(use_angles)
<boolean> - Primary Fog Color
(fogcolor)
<color255> - The Primary Color of the Fog in the Skybox
- Secondary Fog Color
(fogcolor2)
<color255> - The Secondary Color of the Fog in the Skybox that will be blended to
- Primary Fog Dir
(fogdir)
<string> - A vector (given by three space-separated numbers X Y Z) which points from the secondary fog color fogcolor2 towards the primary fog color fogcolor.
- Fog Start
(fogstart)
<string> - How far from the point-of-view the fog should start. Generally, this should be the same setting as your env_fog_controller.
- Fog End
(fogend)
<string> - How far from the point-of-view the view should be completely fogged. Generally, this should be the same setting as your env_fog_controller.
- Fog Max Density
(fogmaxdensity)
<float> !FGD - Fog Max Density [0..1].
- Clip 3D sky near plane to world far plane
(clip_3D_skybox_near_to_world_far)
<boolean> (only in ) - 3D sky near plane offset
(clip_3D_skybox_near_to_world_far_offset)
<float> (only in ) - Offset for the near clip plane for the 3D sky in world units. This is only used if the above field is true. Negative values to pull closer, etc.
Inputs
ActivateSkybox
(in all games since ) !FGD- Activates targeted sky_camera and disables rest. Warning:Should your skyboxes have models or brushwork capable of throwing shadows, all shadows of all props from all skyboxes will compile shadows onto your map. Even when the skybox is switched, the shadows on your map will remain.
See also
- 3D Skybox
- Skybox Basics - an overview article on skybox creation.