Counter-weighted door

Half-Life 2 HL2
Counter-weighted door by BJ
Posted 18 years ago2006-05-20 11:25:54 UTC • Examples • Half-Life 2
Loading...
Screenshot Thumbnail
Name
Counter-weighted door
By
BJ BJ
Type
Map
Engine
Source
Game
Half-Life 2
Category
Examples
Included
BSP, RMF/VMF
Created
18 years ago2006-05-20 11:25:54 UTC
Updated
18 years ago2006-05-20 11:27:46 UTC
Views
19557
Downloads
2277
Comments
4
Download

Run the bsp and "Use" the valvehandle to lower the counter-weight and raise the door. Release the valvewheel and the door lowers as the counterweight rises.

The valvehandle model (prop_dynamic_override) is the child of an invisible momentary_rot_button (mrb) which sequences the operation. The mrb starts and stops the counterweight (func_movelinear) and triggers the pulleys (an invisible func_rotating brush parented to a prop_dynamic_override pulley model) to rotate in the correct direction.

The func_movelinear outputs stop the pulley rotations when the counter-weight reaches the end of its travel in either direction.

A phys_pulleyconstraint keeps the movement of the counterweight and the door (func_physbox) in sync.

Move_rope and keyframe_rope entities simulate the cables. The keyframe_rope entities childed to the counterweight and the door have their Auto Resize flags checked, allowing them to "stretch" as their parents move.

Note that the func_physbox door is loosely constrained by the world brushes on either side.

Point Entities: phys_pulleyconstraint, prop_dynamic_override, move_rope, keyframe_rope
Brush Entities: momentary_rot_button, func_physbox (door), func_movelinear (counterweight), func_rotating (parented to the pulley models)

4 Comments

Commented 18 years ago2006-05-20 15:51:10 UTC Comment #11959
Wow! Very good work man!
Commented 18 years ago2006-05-20 18:02:53 UTC Comment #11963
Thanks, Rednik. I see you now have the Source SDK. Congrats!
Commented 16 years ago2008-03-27 14:22:25 UTC Comment #16512
Good Tutorial but I still had to figure it out for myself. I created a simple crane to lift a cage. I didn't use your map--I created one from scratch. The position of the second pulley on the phys_pulleyconstraint is kinda important. Also worth noting is that the two entities assigned on the phys_pulleyconstraint need to be in the correct order or it won't work correctly. I think I have it figured out now. Nice Tutorial!
Commented 15 years ago2009-04-14 10:02:22 UTC Comment #17440
This is great but I also had to figure out something - stupidly simple but important! The last rope keyframe and move pair should have their type set to 'rigid' - otherwise the rope sways around it's mounting on the door... doesn't look too good. Apart from that great tutorial, thanks!

You must log in to post a comment. You can login or register a new account.