Material modify control: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (Robot: fixing template case.)
No edit summary
Line 1: Line 1:
{{wrongtitle|title=material_modify_control}}
{{base point|material_modify_control}} It is used to modify arbitrary [[material]] properties in response to [[I/O]] events.
{{base_point}}[[Category:Material System]]


==Entity Description==
For the entity to work, its target material must have the <code>MaterialModify</code> or <code>MaterialModifyAnimated</code> [[Material Proxy|proxy]] installed, and must be applied to an entity.
An entity that can be used to directly control material vars. To use it, you need to make sure the [[Material|.vmt]] of the material you intend to work with has the "MaterialModify" [[Material Proxy]] in use. Then, set this entity's parent to a brush or model entity using the material you want to control.
 
{{confirm|If the material_modify_control entity is [[parent]]ed to another entity, it will only affect the material where it appears that entity. Otherwise, it will affect all instances.}}


==Keyvalues==
==Keyvalues==
*{{KV Targetname}}
 
*{{KV Parentname}}
; Material to modify <code><[[string]]></code>
*'''materialName''' <string>
: Path to the VMT file you want to modify.
:Material to modify
; Material variable to modify <code><string></code>
*'''materialVar''' <string>  
: Name of the [[:Category:List of Shader Parameters|shader parameter]] you want to modify.
:Variable of the material to modify
{{KV Parentname}}
{{KV Targetname}}


==Inputs==
==Inputs==
*{{I Targetname}}
 
*{{I Parentname}}
; <code>SetMaterialVar <[[string]]></code>
*'''SetMaterialVar''' <string>
: Sets the chosen material parameter to the specified value
:Fire to modify a material variable. The argument is the value to set the variable to.
;<code>SetMaterialVarToCurrentTime</code>
*'''SetMaterialVarToCurrentTime'''
: Sets the chosen variable to the current server time
:This sets the material variable to the current time on the server.
; <code>StartAnimSequence <Frame Start> <Frame End> <Frame Rate> <Loop></code>
* '''{{EP1 add|StartAnimSequence <string>}}'''
: Force an animated material with the <code>MaterialModifyAnimated</code> proxy to play a set of animation frames. "Loop" should be 1 or 0. {{tip|Setting "Frame End" to -1 uses the last frame of the texture.}}
: Force an animated material with the MaterialModifyAnimated proxy to play a set of animation frames.
; <code>StartFloatLerp <Start Value> <End Value> <Transition Time> <Loop></code>
: Format: <code><Frame Start> <Frame End> <Frame Rate> <Loop></code>
: Makes a material with the <code>MaterialModifyAnimated</code> proxy smoothly [[interpolate]] the chosen material variable between two floating point values. "Loop" should be 1 or 0.
: Setting "Frame End" to -1 uses the last frame of the texture. "Loop" should be 1 or 0.
{{I Parentname}}
* '''{{EP1 add|StartFloatLerp <string>}}'''
{{I Targetname}}
: Force a material with the MaterialModifyAnimated proxy to lerp a material var between two floating point values.
: Format: <code><Start Value> <End Value> <Transition Time> <Loop></code>
: "Loop" should be 1 or 0.


==Outputs==
==Outputs==
*{{O Targetname}}
{{O Targetname}}
 
[[Category:Material System]]

Revision as of 13:27, 27 July 2010

Template:Base point It is used to modify arbitrary material properties in response to I/O events.

For the entity to work, its target material must have the MaterialModify or MaterialModifyAnimated proxy installed, and must be applied to an entity.

Confirm:If the material_modify_control entity is parented to another entity, it will only affect the material where it appears that entity. Otherwise, it will affect all instances.

Keyvalues

Material to modify <string>
Path to the VMT file you want to modify.
Material variable to modify <string>
Name of the shader parameter you want to modify.
Parentname:
Parent (parentname) <targetname>
Specifies a movement parent. An entity will maintain its initial offset from its parent. An attachment point can be added to the end of the name, separated by a comma.
Name (targetname) <string>[ Edit ]
The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g. parentname or target).
Also displayed in Hammer's 2D views and Entity Report.
See also:  Generic Keyvalues, Inputs and Outputs available to all entities

Inputs

SetMaterialVar <string>
Sets the chosen material parameter to the specified value
SetMaterialVarToCurrentTime
Sets the chosen variable to the current server time
StartAnimSequence <Frame Start> <Frame End> <Frame Rate> <Loop>
Force an animated material with the MaterialModifyAnimated proxy to play a set of animation frames. "Loop" should be 1 or 0.
Tip.pngTip:Setting "Frame End" to -1 uses the last frame of the texture.
StartFloatLerp <Start Value> <End Value> <Transition Time> <Loop>
Makes a material with the MaterialModifyAnimated proxy smoothly interpolate the chosen material variable between two floating point values. "Loop" should be 1 or 0.
Parentname:
SetParent <stringRedirectInput/string>
Move with this entity. See Entity Hierarchy (parenting).
SetParentAttachment <stringRedirectInput/string>
Change this entity to attach to a specific attachment point on its parent. The entity will teleport so that the position of its root bone matches that of the attachment. Entities must be parented before being sent this input.
SetParentAttachmentMaintainOffset <stringRedirectInput/string>
As above, but without teleporting. The entity retains its position relative to the attachment at the time of the input being received.
ClearParent
Removes this entity from the the movement hierarchy, leaving it free to move independently.


Outputs