Phys pulleyconstraint: Difference between revisions
EltvaRercn (talk | contribs) m (outabasr)  | 
				No edit summary  | 
				||
| (11 intermediate revisions by 8 users not shown) | |||
| Line 1: | Line 1: | ||
{{CD|CPhysPulley|file1=1}}  | |||
{{  | {{this is a|point entity|name=phys_pulleyconstraint}} It is a constraint that is essentially two length constraints and two points. Imagine it as a virtual rope connected to two pulleyed objects, specified in the ''Entity 1'' (''attach1'') and ''Entity 2'' (''attach2'') keyvalues, each suspended from a pulley above them.  | ||
{{  | |||
Pulley point 1 - the pulley from which ''Entity 1'' is always suspended from - is the origin of this constraint entity.  | Pulley point 1 - the pulley from which ''Entity 1'' is always suspended from - is the origin of this constraint entity.  | ||
| Line 11: | Line 7: | ||
The constraint keeps the sum of the distances between the pulley points and their suspended objects constant.  | The constraint keeps the sum of the distances between the pulley points and their suspended objects constant.  | ||
{{official vmf example|sdk_phys_pulleyconstraint.vmd}}  | |||
== Keyvalues ==  | |||
{{KV Targetname}}  | |||
{{KV|Additional Length|intn=addlength|float|Add (or subtract) this amount to the rest length of the pulley rope.}}  | |||
{{KV|Pulley Gear Ratio|intn=gearratio|float|Add (or subtract) this amount to the rest length of the pulley rope.}}  | |||
{{KV|Pulley Position 2|intn=position2|vecline|The position of the pulley for Entity 2. The pulley for Entity 1 is the origin of this constraint entity. Entity 1 is always suspended from pulley point 1, and Entity 2 is always suspended from pulley point 2.}}  | |||
{{KV TwoObjectPhysics}}  | |||
== Flags ==  | |||
{{fl|1|No Collision until break}}  | |||
{{fl|2|Keep Rigid}}  | |||
{{Fl TwoObjectPhysics}}  | |||
==  | == Inputs ==  | ||
{{I TwoObjectPhysics}}  | |||
==  | == Outputs ==  | ||
{{O TwoObjectPhysics}}  | |||
==  | == See also ==  | ||
*  | * [http://twhl.info/vault.php?map=3920 A Counter-weighted Door].  | ||
:  | |||
[[Category:Constraints|C]]  | |||
:  | |||
Latest revision as of 05:38, 29 April 2025
| CPhysPulley | 
phys_pulleyconstraint  is a   point entity  available in all 
 Source games. It is a constraint that is essentially two length constraints and two points. Imagine it as a virtual rope connected to two pulleyed objects, specified in the Entity 1 (attach1) and Entity 2 (attach2) keyvalues, each suspended from a pulley above them.
Pulley point 1 - the pulley from which Entity 1 is always suspended from - is the origin of this constraint entity.
Pulley point 2 - the pulley from which Entity 2 is always suspended from - is the position of the "blue ball", set by altering the Pulley Position 2 (position2) keyvalue directly, or by using the Helper Tool.
The constraint keeps the sum of the distances between the pulley points and their suspended objects constant.
steamapps/common/sourcesdk_content/hl2/mapsrc/sdk_phys_pulleyconstraint.vmd for example use (comes with Source SDK installation [confirm])Keyvalues
- Name (targetname) <string>[ Edit ]
 - The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g. 
parentnameortarget).
Also displayed in Hammer's 2D views and Entity Report.See also: Generic Keyvalues, Inputs and Outputs available to all entities 
- Additional Length (addlength) <float>
 - Add (or subtract) this amount to the rest length of the pulley rope.
 
- Pulley Gear Ratio (gearratio) <float>
 - Add (or subtract) this amount to the rest length of the pulley rope.
 
- Pulley Position 2 (position2) <vector>
 - The position of the pulley for Entity 2. The pulley for Entity 1 is the origin of this constraint entity. Entity 1 is always suspended from pulley point 1, and Entity 2 is always suspended from pulley point 2.
 
TwoObjectPhysics:
- Entity 1 (attach1) <targetname>
 
- Entity 2 (attach2) <targetname>
 - The entities to constrain. Leave one or the other field blank to constrain to the world. 
Note:Only one entity will be constrained, even if several share the given targetname. 
- Constraint System Manager (constraintsystem) <targetname>
 - A phys_constraintsystem that this constraint should be a part of. This avoids the "jiggling" caused by constraints applied to the same set of entities fighting with each other.
 
- Force Limit to Break (forcelimit) <float>
 - Impact force required to break the constraint, in pounds. 0 means infinite. A way of calculating this is to set it to the weight of an object that would break the constraint if it were resting on its objects.
 
- Torque Limit to Break (torquelimit) <float>
 - Torque required to break the constraint, in pounds*inches. 0 means infinite. A way of calculating this is to multiply any reference mass by the resting distance (from the center of mass of the object) needed to break the constraint.
 
- Play Sound on Break (breaksound) <string>
 - A sound played when the constraint is broken.
 
- Follow teleport distance (teleportfollowdistance) <float>
 - If one constrained object teleports more than this many units away, the other will teleport with it.
 
Flags
- No Collision until break : [1]
 
- Keep Rigid : [2]
 
- No Collision until break : [1]
 
- Start inactive : [4]
 
- Change mass to keep stable attachment to world : [8]
 
- Do not connect entities until turned on : [16]
 
Inputs
- Break
 - Force the constraint to break.
 
- TurnOn
 - Enable the constraint; do this if the constrained objects don't exist when it spawns. Note that broken constraints cannot be turned back on as they have been deleted.
 
- TurnOff
 - Disable the constraint.
 
Outputs
- OnBreak
 - Fired when the constraint breaks.