SteamVR/Environments/Entity Guide

From Valve Developer Community
Jump to: navigation, search

Entities are objects that provide all the functions in a map. The Source 2 engine used in SteamVR Home handles entities in mostly the same way as the original Source engine, but with a few key differences. Most of the articles this this wiki document the original Source versions of the entities.

Point entities work the same way as in Source but with new features. The entities now contain full transforms and can be moved, rotated and scaled both with the tools in Hammer and at runtime. Note that it is up to to the individual entity classes on if they make use of the transforms.

Mesh entities replace the Source brush entities. Since Source 2 no longer use BSP brushes, entities that need to be associated with geometry are now tied to Hammer meshes instead.

Path entities are a type of entity recently added to the tools. They can be created with the currently hidden Path Tool (Shift + P). To do:  Path entities may not be fully functional in SteamVR Home. Document which path types work.


List of Entities

The SteamVR Tools still contain a large amount of legacy Source engine entities. While many of the entities still work, some of them have been deprecated or have reduced functionality.

Most logic and math entities still work. AI related entities do not work. Many special effects entities are non-functional, but their functionality can be replicated with particle systems.

Note: This list is incomplete.

SteamVR Home specific

Entities with functions specific to SteamVR Home.

Class Notes
prop_destinations_physics A prop_physics that can be resized and recolored with VR hands in-game.
prop_destinations_tool Physics prop with VScript bindings. Requires a script attached to work properly.
point_clientui_world_panel Places a user-made Panorama panel in the world.
point_clientui_steamvr_world_panel Places one of the three pre-made SteamVR Quick Panels.
vr_teleport_marker Destination marker for teleport locomotion.
vr_teleport_area Mesh entity for marking valid areas for teleport locomotion.


Lighting

Functional

Class Notes
light_spot Now supports both real-time and baked lighting. (Source 1 version)
light_omni Equivalent of the Source light entity, supporting both real-time and baked lighting.
light_environment The direct sunlight portion can now be real-time with Cascaded Shadow Maps or baked. (Source 1 version)
light_ortho Orthogonal light similar to the sunlight potion of light_environment.
env_cubemap No longer an internal entity, can now be toggled and moved. Cubemaps are now baked in Hammer along with lighting. (Source 1 version)
env_cubemap_box Parallax corrected cubemap reflection probe.
env_light_probe_volume Diffuse lighting probe. Unlike in Source these can not be generated automatically by the compiler.
env_combined_light_probe_volume Combines env_cubemap_box and env_light_probe_volume in one entity.
light_importance_volume Sets the high quality lighting area for the photon mapping lighting baker.


Non-functional

Class Notes
light_irradvolume Not available in the SteamVR Home renderer.

Props

Functional

Class Notes
prop_static Static world geometry prop. Can now optionally be further baked into world geometry for batched rendering.
prop_dynamic Prop that can be animated and controlled with entity I/O. Also supports cloth physics.
prop_dynamic_override Limited use as models are no longer marked as static or physics only. Health can still be set, but breakable props are not fully functional.
prop_physics Unlike prop_destinations_physics, this cannot be resized by the player.
prop_physics_multiplayer To do:  Unknown if physics modes have any effect. All entities now have a toggle for client-side only.
prop_physics_override Limited use as models are no longer marked as static or physics only. Health can still be set, but breakable props are not fully functional.


Sound

Functional

Class Notes
snd_event_point Equivalent to ambient_generic, point sound source that plays sound events.
snd_soundscape New name for env_soundscape. Entity for soundscapes.
snd_soundscape_proxy New name for env_soundscape_proxy.
snd_soundscape_triggerable New name for env_soundscape_triggerable.
point_soundevent Deprecated name for snd_event_point.
env_soundscape Still works but the name is deprecated in favor for the more consistently named snd_soundscape.
snd_event_param To do
snd_event_alignedbox To do
snd_opvar_set To do
snd_opvar_set_aabb To do
snd_opvar_set_obb To do
trigger_snd_sos_opvar Mesh entity To do
snd_opvar_set_point To do

Non-functional

Class Notes
ambient_generic Replaced with snd_event_point


Mesh Functions

These are all mesh entities.

Functional

Class Notes
func_button Usable button that can work either as a visible object or as in invisble volume tied to a prop.
func_movelinear Mesh that moves between two points. Can be used for elevators and doors.
func_platrot Simple elevator that can move and rotate.
func_rotating Rotating mesh.
func_tracktrain Mesh that moves along a path.


Partial

Class Notes
func_physical_button Physics enabled mesh button that can be pushed in by the player. Only works when pushed with an equipped tool, since the players hands do not have collision.
func_breakable Mesh entity that can take damage and break. No gib models available. Has many non-functional legacy functions.
func_brush Mesh entity that can be moved and parented, and the solidity toggled. Has several non-functional legacy functions.
func_door Linear door with binary open/closed states. Can be operated by I/O or player use. Has several non-functional legacy functions.
func_door_rotating Rotating door with binary open/closed states. Can be operated by I/O or player use. Has several non-functional legacy functions.
func_illusionary Legacy non-solid mesh. Use the mesh properties to disable collision rather than this.
func_physbox Physics enabled rigidbody that can be picked up by the player. Many features are broken. Meshes can be converted to props from Hammer, making this obsolete.
func_rot_button Rotating button with binary open/closed states. Missing many features the other buttons have.
func_shatterglass Breakable glass/concrete surface. Missing hardcoded materials.
func_tanktrain Mesh that moves along a path. To do: Shooting likely not available, use func_tracktrain instead.
func_wall Legacy entity. Use func_brush rather than this.
func_wall_toggle Legacy entity. Use func_brush rather than this.

Non-functional

Class Notes
func_areaportal Not applicable for the Source 2 renderer.
func_areaportalwindow Not applicable for the Source 2 renderer.
func_lod Non-functional, use the mesh properties instead.
func_nav_markup Nav meshes are not enabled in SteamVR Home.
func_occluder Non-functional, use the mesh properties instead.
func_reflective_glass Legacy entity relying on Source 1 shaders.
func_traincontrols Broken.
func_viscluster Not used by the visibility solver.


Environmental effects

Functional

Class Notes
env_cubemap_fog MIP fog using a cubemap texture. The cubemap texture is sampled for the fog color, blending between the different MIP Maps depending on distance. This can be used to generate intricate fog effects.
env_gradient_fog Texture controlled fog effect documented in Fog Tutorial.
env_sky 2D skyboxes are controlled by this entity instead of being defined in the map properties. Can be toggled and rotated in-game.
info_particle_system Particle systems still work.
info_particle_target Target entity for particle control points.
skybox_reference Allows another map to be used as a 3D skybox. Requires that the used map has the Map Type in Map Properties set to Skybox, and a sky_camera entity to mark the location of the main map origin.

Partial

Class Notes
sky_camera Culling and shadows do not work properly when used in the main map. Works properly when used in map referenced by skybox_reference. Static level geometry can be extended beyond the grid now, making this entity less of a necessity.
env_fog_controller Only affects the 2D skybox.

Non-functional

Class Notes
fog_volume No observed effect.
env_volumetric_fog_volume Non-functional in SteamVR Home.
env_volumetric_fog_controller Non-functional in SteamVR Home.

Misc

Functional

Class Notes
point_workplane Stores the current workplane in Hammer. The workplane can be recalled by using the workplane picker tool on the entity.
info_player_start Aligns with the center of the playspace instead of the players actual position.
visibility_hint Used to set the grid size for the visibility solver.


Partial

Class Notes
info_world_layer Can be used to toggle sets of level geometry and entities at runtime. Not fully functional in SteamVR Home.
npc_crow Only flies with the FlyPath input with a path_track parameter.
npc_seagull Only flies with the FlyPath input with a path_track parameter.
npc_pigeon Only flies with the FlyPath input with a path_track parameter.

Non-functional

Class Notes
infodecal No equivalent available.
info_overlay Overlays are set directly in Hammer instead of using entities: Overlay Tutorial
info_projecteddecal No equivalent available.
post_processing_volume Post processing is not available in SteamVR Home.