Func monitor: Difference between revisions
Jump to navigation
Jump to search
Bug:Cameras may fail to network properly in multiplayer. See below for a code fix. Fixed in
Team Fortress 2. [todo tested in ?]
Note:Unless you set up multiple render textures in your mod's binaries, only one point_camera can be rendered at any one time. The first camera in the map will appear on all monitors. Multiple cameras at once are technically possible, as long as you ensure that only one func_monitor is in the PVS at any given time, although this will not work in splitscreen (but will work in online multiplayer).
Code:To enable monitors in your non-HL2 mod, you must:
m (Technical limitations) |
m (→Inputs: Substituted IO templates) |
||
(67 intermediate revisions by 32 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{Ent not in fgd}} | ||
{{CD|CFuncMonitor|base=CFuncBrush|file1=Func_Monitor.cpp}} | |||
{{this is a|brush entity|name=func_monitor|except=Left 4 Dead series|engine=Source|engine1=Source 2}} It displays a real-time scene captured from a [[point_camera]] somewhere else in the world. | |||
In {{src|4}} for the entity to work, the surface(s) on which the camera view will be displayed must have a material with <code>[[$basetexture]] _rt_Camera</code>. Stock materials that work are <code>dev\dev_combinemonitor*</code> and <code>dev\dev_tvmonitor*</code>. | |||
[[File:City17 trainstation.jpg|250px|thumbnail|right|A broadcast from Dr. Breen.]] | |||
{{bug|Cameras may fail to network properly in multiplayer. See below for a code fix. Fixed in {{tf2|2.bold}}.}} | |||
{{note|Unless you set up multiple render textures in your mod's binaries, ''only one'' point_camera can be rendered at any one time. The first camera in the map will appear on all monitors. Multiple cameras at once are technically possible, as long as you ensure that only one func_monitor is in the [[PVS]] at any given time, although this will not work in splitscreen (but will work in online multiplayer).}} | |||
{{codenote|To enable monitors in your non-HL2 mod, you must: | |||
* Include the entity's client .cpp file (found in <code>\client\hl2\</code>). | |||
* Include the entity's server .cpp and .h files (found in <code>\server\hl2\</code>). | |||
* <code>#define USE_MONITORS</code> at the top of <code>\client\viewrender.cpp</code> and <code>\client\view.cpp</code>. | |||
* Fix a multiplayer bug in <code>CPointCamera::CPointCamera()</code> by setting <code>m_bActive</code> to true.}} | |||
==Keyvalues== | |||
{{KV Targetname}} | |||
{{KV|Camera name|intn=target|targetname|The camera to render.}} | |||
==Inputs== | |||
{{I|SetCamera|Sets the camera to use for this monitor. Takes the name of a {{ent|point_camera}} entity in the map.|param=targetname}} | |||
{{I|Toggle|Enables the entity if it is disabled, and disables if it is enabled.}} | |||
{{I|Enable|Make the entity visible and solid.}} | |||
{{I|Disable|Make the entity invisible and non-solid.}} | |||
== FGD Code == | |||
{{CodeBlock|<nowiki>@SolidClass base(func_brush) = func_monitor : | |||
"A monitor that renders the view from a given point_camera entity." | |||
[ | |||
target(target_destination) : "Camera name" | |||
// Inputs | |||
input Toggle(void) : "Toggle - If on, turn off, if off, turn on." | |||
input Enable(void) : "Enable." | |||
input Disable(void) : "Disable." | |||
input SetCamera(string) : "Sets the camera to use for this monitor. Takes the name of a point_camera entity in the map." | |||
] | |||
</nowiki>}} | |||
==See also== | |||
* {{ent|info_camera_link}} - For rendering point_cameras on [[model]]s. | |||
* {{ent|point_camera}} | |||
* {{ent|env_speaker}} | |||
[[Category:Camera]] | |||
* | |||
Latest revision as of 10:56, 21 April 2025
![]() |
---|
CFuncMonitor |
![]() |
func_monitor
is a brush entity available in all Source and
Source 2 games except
Left 4 Dead series. It displays a real-time scene captured from a point_camera somewhere else in the world.
In Source for the entity to work, the surface(s) on which the camera view will be displayed must have a material with
$basetexture _rt_Camera
. Stock materials that work are dev\dev_combinemonitor*
and dev\dev_tvmonitor*
.




- Include the entity's client .cpp file (found in
\client\hl2\
). - Include the entity's server .cpp and .h files (found in
\server\hl2\
). #define USE_MONITORS
at the top of\client\viewrender.cpp
and\client\view.cpp
.- Fix a multiplayer bug in
CPointCamera::CPointCamera()
by settingm_bActive
to true.
Keyvalues
- Name (targetname) <string>[ Edit ]
- The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g.
parentname
ortarget
).
Also displayed in Hammer's 2D views and Entity Report.See also: Generic Keyvalues, Inputs and Outputs available to all entities
- Camera name (target) <targetname>
- The camera to render.
Inputs
- SetCamera <targetname >
- Sets the camera to use for this monitor. Takes the name of a point_camera entity in the map.
- Toggle
- Enables the entity if it is disabled, and disables if it is enabled.
- Enable
- Make the entity visible and solid.
- Disable
- Make the entity invisible and non-solid.
FGD Code
See also
- info_camera_link - For rendering point_cameras on models.
- point_camera
- env_speaker