Wheelvalve: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Updated Format and Write-ups)
Line 1: Line 1:
== '''HOW TO MAKE A VALVEWHEEL TURN (OPEN AND CLOSE)''' ==
== '''HOW TO MAKE A WHEELVALVE TURN (OPEN AND CLOSE)''' ==
During the game, players encounter physics scenarios, where they will need to turn a pipe valve on and/or off to achieve an effect or desired progress in the game. This page will describe steps on how to build a functional valvewheel prop for a custom map, where:
[[Image:ValveWheel1.png]]
----
'''Introduction'''


*The Player can ''+USE'' the valve object and it will turn (to open).
During the game, players will encounter various scenarios, where they will need to turn a pipe (wheelvalve) on and/or off to achieve an effect or desired progress in the game. This page will describe steps on how to build a functional wheelvalve prop for a custom map, where:


*The Player can repeat the ''+USE'' action and the valve object will toggle back (to close).
*The Player can ''+USE'' the valve object and it will turn (to open position).
*The Player can repeat the ''+USE'' action and the valve object will toggle back (to closed position)...OR...
*With the '''Toggle (Disable Auto Return)''' Flag '''un-checked''', the valve object will automatically return to closed position.
== REQUIRED ENTITIES AND OBJECTS ==
1) '''MOMENTARY_ROT_BUTTON''' (This is a brush-model entity.)
*a) Create a new texture brush on your map.
*b) Use your editor's 'MOVE SELECTED TO:' feature to convert the brush from World to Entity.
*c) Set the entity's class as a ''momentary_rot_button''.
*d) Name the entity as "FM1"
*e) Select and apply the brush-texture: "Invisible" to the entity.
*f) For ''vertical position'' of the valve, set the following flags:
:*Not Solid Checked
:*Toggle Unchecked (optional)
:*X Axis Checked
:*Y Axis Checked
:*Use Activates Checked
*g) For ''Horizontal position'' of the valve, set the following flags:
:*Not Solid Checked
:*Toggle Unchecked (optional)
:*Use Activates Checked
----
2) '''PROP_DYNAMIC''' (This is a point entity (Wheelvalve prop).)
*a) Place a new prop_dynamic entity on your map.
*b) Choose and select its world model skin from one of the following, as:
:*[models\props_pipes\valvewheel001.mdl]
:*[models\props_pipes\valvewheel002.mdl]
:*[models\props_pipes\valvewheel002a.mdl]  --- ''Note: This model is larger.''
*c) Name the entity as "W1"
*d) Select its Parent as [Func_for_Valve]
----
3) '''PROP_STATIC''' (This is a point entity (Pipe-valve prop))
*a) Place a new prop_static entity on your map.
*b) Choose and select its world model skin from one of the following, as:
:*[models\props_pipes\valve001.mdl] --- ''Note: Best if used with the larger wheelvalve model.''
:*[models\props_pipes\valve002.mdl] 
*c) Naming this entity is not required
== SET INPUTS/OUTPUTS (I/O)==
1) Set the following output trigger(s) in the (FM1) brush's I/O.  


== GATHER REQUIRED OBJECTS ==
[[Image:I O WheelValve.png]]
Create and place the following entities in your map.
== GROUP AND PLACE THE OBJECTS ==
 
Follow these steps:
'''momentary_rot_button''' (''Create a texture brush and 'Move to Entity'.  Then select this entity type. '')
 
:SET FLAGS:
:*Not Solid    (''Checked'')
:*Toggle  (''Checked'')
:*Use Activates  (''Checked'')
 
'''prop_dynamic'''
 
:SET WORLD MODEL:
:*''valvewheel001.mdl''
 
== SET OBJECTS' PARENT/CHILD RELATIONSHIP ==
Bind the two new objects together, making the '''momentary_rot_button''' entity as the ''parent'' of the '''prop_dynamic''' entity.
 
1)  Set the '''Name''' property for each of the entities (Give each entity a unique, meaningful name).  For example:
    (momentary_rot_button)  Name =  MyValveRotator
    (prop_dynamic)          Name =  MyValve
2) Set the '''Parent''' property of the '''prop_dynamic''' entity to the name of the '''momentary_rot_button''' entity:
    (prop_dynamic)          Parent = MyValveRotator
 
== SET OUTPUTS ==
Set an output statemet in the '''momentary_rot_button''' entity's OTIP settings  (i.e. '''Output, Target, Input, Parameter Override''' settings in the entity's '''Properties | Outputs''' tab-page). 
 
1) Use the following values:
  Output...    '''OnPressed'''
  Target...    '''MyValve'''
  Input...    '''SetAnimation'''
 
== GROUP THE OBJECTS ==
Drag the '''momentary_rot_button''' brush over the '''prop_dynamic''' entity, making sure that the prop is completely enclosed by the brush. 
 
Once the entities are properly aligned, it is recommended that they be locked together as group entity.  (Also recommend saving that grouped entity as a ''Prefab'' in the Steam directory.)


*Center the origin of the prop_static entity (pipe system).
*Place the prop_dynamic entity '''"W1"''' into the desired position on the pipe system.
*Set the desired Pitch Yaw Roll (Y Z X ) values for entity "W1". 
*Center the origin for "W1".
*Align "W1"'s origin with the prop_static's origin ''as close as possible''.
*Place the momentary_rot_button brush entity '''"FM1"''' over "W1", making sure that "FM1" completely encloses "W1".  Allow enough extention of "FM1" for the player to ''touch'' it.
*Center the origin for "FM1".
*Align "FM1"'s origin with "W1"'s origin ''as close as possible''. 
*Set the (Y) value for "FM1" equal to the (Y) value of "W1".  (''Note; If you move and/or re-orient these objects to a different position in the map, repeat this step.'')
*Group all the objects. (You can also save the finished group as a pre-fab)
== NOTES ==   
== NOTES ==   
The '''momentary_rot_button''' brush placement/position will effect the precision of prop's dynamics.  For example, if the brush is moved away from its associated prop, the rotation performance of the prop will behave like a right/left/up/down lever, offset from the intended axis of the prop.  A good practice is to make sure that the '''Origins''' for each entity are centered and aligned to each other. (You can experiment with the brush placement to illustrate this.) ''


Also see paragraph on '''Exploiting Origin''' in:
*[[User:ThePaperDog/WORKING WITH AXIS ORIENTATION ORIGIN | WORKING WITH AXIS, ORIENTATION AND ORIGIN]]


Updates pending:  ''(valve, valvewheel, pipe-valve, pipe-valvewheel, pipe)''


-- The PaperDog 21:22, 16 February 2009 (UTC)
--The PaperDog 05:57, 15 March 2009 (UTC)

Revision as of 22:57, 14 March 2009

HOW TO MAKE A WHEELVALVE TURN (OPEN AND CLOSE)

ValveWheel1.png


Introduction

During the game, players will encounter various scenarios, where they will need to turn a pipe (wheelvalve) on and/or off to achieve an effect or desired progress in the game. This page will describe steps on how to build a functional wheelvalve prop for a custom map, where:

  • The Player can +USE the valve object and it will turn (to open position).
  • The Player can repeat the +USE action and the valve object will toggle back (to closed position)...OR...
  • With the Toggle (Disable Auto Return) Flag un-checked, the valve object will automatically return to closed position.

REQUIRED ENTITIES AND OBJECTS

1) MOMENTARY_ROT_BUTTON (This is a brush-model entity.)

  • a) Create a new texture brush on your map.
  • b) Use your editor's 'MOVE SELECTED TO:' feature to convert the brush from World to Entity.
  • c) Set the entity's class as a momentary_rot_button.
  • d) Name the entity as "FM1"
  • e) Select and apply the brush-texture: "Invisible" to the entity.
  • f) For vertical position of the valve, set the following flags:
  • Not Solid Checked
  • Toggle Unchecked (optional)
  • X Axis Checked
  • Y Axis Checked
  • Use Activates Checked
  • g) For Horizontal position of the valve, set the following flags:
  • Not Solid Checked
  • Toggle Unchecked (optional)
  • Use Activates Checked

2) PROP_DYNAMIC (This is a point entity (Wheelvalve prop).)

  • a) Place a new prop_dynamic entity on your map.
  • b) Choose and select its world model skin from one of the following, as:
  • [models\props_pipes\valvewheel001.mdl]
  • [models\props_pipes\valvewheel002.mdl]
  • [models\props_pipes\valvewheel002a.mdl] --- Note: This model is larger.
  • c) Name the entity as "W1"
  • d) Select its Parent as [Func_for_Valve]

3) PROP_STATIC (This is a point entity (Pipe-valve prop))

  • a) Place a new prop_static entity on your map.
  • b) Choose and select its world model skin from one of the following, as:
  • [models\props_pipes\valve001.mdl] --- Note: Best if used with the larger wheelvalve model.
  • [models\props_pipes\valve002.mdl]
  • c) Naming this entity is not required

SET INPUTS/OUTPUTS (I/O)

1) Set the following output trigger(s) in the (FM1) brush's I/O.

I O WheelValve.png

GROUP AND PLACE THE OBJECTS

Follow these steps:

  • Center the origin of the prop_static entity (pipe system).
  • Place the prop_dynamic entity "W1" into the desired position on the pipe system.
  • Set the desired Pitch Yaw Roll (Y Z X ) values for entity "W1".
  • Center the origin for "W1".
  • Align "W1"'s origin with the prop_static's origin as close as possible.
  • Place the momentary_rot_button brush entity "FM1" over "W1", making sure that "FM1" completely encloses "W1". Allow enough extention of "FM1" for the player to touch it.
  • Center the origin for "FM1".
  • Align "FM1"'s origin with "W1"'s origin as close as possible.
  • Set the (Y) value for "FM1" equal to the (Y) value of "W1". (Note; If you move and/or re-orient these objects to a different position in the map, repeat this step.)
  • Group all the objects. (You can also save the finished group as a pre-fab)

NOTES

Also see paragraph on Exploiting Origin in:


--The PaperDog 05:57, 15 March 2009 (UTC)