Making a controllable brush vehicle: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (Unicodifying, replaced: [[Image: → [[File: (33), See Also → See also)
m (multipage + updates)
Tag: Replaced
Line 1: Line 1:
{{Cleanup}}
{{multipage}}
 
{{Stub}}
 
First create your a brush-based model of your plane, keep it balanced so it doesn't tip over.
 
 
Select it and bind it to the '''func_physbox''' entity, assign it a name, ''' plane_01''' will do fine.
 
 
You will require a seat to perch in. You should use the ''' prop_vehicle_prisoner_pod''' (you could use a buggy or airboat but that would look odd) name the chair ''' plane_01_pod''' Also make sure the pod isn't clipping into the planes func_physboxs - if it is then make sure it the seat is not solid. (it's ok if it clips with a door or other non-phys objects, but not the func_physbox)
 
 
Next set the outputs to the ''' plane_01_pod''' like so.
{| {{OutputsTable}}
| [[File:Io11.png]] || OnOpen || plane_01_pod || ExitVehicle ||   || 0.00 || No
|-
| [[File:Io12.png]] || PlayerOff || plane_01_gameui || Deactivate ||   || 0.00 || No
|-
| [[File:Io12.png]] || PlayerOn || plane_01_gameui || Activate ||   || 0.00 || No
|-
| [[File:Io11.png]] || PlayerOn || plane_01_pod || Open ||   || 0.00 || No
|-
| [[File:Io11.png]] || PlayerOn || plane_01_pod || Unlock ||   || 0.00 || No
|}
 
 
Now make some ''' phys_constrants''' to hold the ''' plane_01_pod''' to the '''plane_01'''.
<blockquote>[[File:Plane_01_pod_constrants.jpg|250px]]</blockquote>
 
 
You also might want to make a trigger system to make it easier for the player to get in the plane and one that will teleport the player out (the top or either side of the plane) when exiting, to cancel out any problems that can occur - like getting stuck within the plane's solid parts.
 
 
Make a ''' game_ui''' entity. Name it ''' plane_01_game_ui''' Set the outputs for the ''' plane_01_game_ui''' to the following.
{| {{OutputsTable}}
| [[File:Io12.png]] || AttackAxis || plane_01_logic_fly || SetValueCompare || &nbsp; || 0.00 || No
|-
| [[File:Io12.png]] || PlayerOff || plane_01_fly2 || Deactivate || &nbsp; || 0.00 || No
|-
| [[File:Io11.png]] || PlayerOff || plane_01_pod || Unlock || &nbsp; || 0.00 || No
|-
| [[File:Io11.png]] || PlayerOff || plane_01_pod || Open || &nbsp; || 0.00 || No
|-
| [[File:Io11.png]] || PlayerOff || plane_01_pod || ExitVehicle || &nbsp; || 0.00 || No
|-
| [[File:Io12.png]] || PlayerOff || plane_01_fly1 || Deactivate || &nbsp; || 0.00 || No
|-
| [[File:Io12.png]] || XAxis || plane_01_logic_comparex || SetValueCompare || &nbsp; || 0.00 || No
|-
| [[File:Io12.png]] || YAxis || plane_01_logic_comparey || SetValueCompare || &nbsp; || 0.00 || No
|}
 
 
Now you are going to require three ''' logic_compare''' entities. One for each, pitch. yawn. roll. These will control your thrusters.
 
 
First make a ''' logic_compare''' near the front of the plane and name it '''plane_01_logic_comparey'''. Then set the outputs for
''' plane_01_logic_comparey''' to this
{| {{OutputsTable}}
| [[File:Io12.png]] || OnEqualTo || plane_01_down || Deactivate || &nbsp; || 0.00 || No
|-
| [[File:Io12.png]] || OnEqualTo || plane_01_up || Deactivate || &nbsp; || 0.00 || No
|-
| [[File:Io12.png]] || OnGreaterThan || plane_01_down || Activate || &nbsp; || 0.00 || No
|-
| [[File:Io12.png]] || OnGreaterThan || plane_01_up || Deactivate || &nbsp; || 0.00 || No
|-
| [[File:Io12.png]] || OnLessThan || plane_01_down || Deactivate || &nbsp; || 0.00 || No
|-
| [[File:Io12.png]] || OnLessThan || plane_01_up || Activate || &nbsp; || 0.00 || No
|}
 
 
Make another ''' logic_compare''' on one of the wings. Name it ''' plane_01_logic_comparex''' and set the outputs to the following
{| {{OutputsTable}}
| [[File:Io12.png]] || OnEqualTo || plane_01_roll_counter_clockwise || Deactivate || &nbsp; || 0.00 || No
|-
| [[File:Io12.png]] || OnEqualTo || plane_01_roll_clockwise || Deactivate || &nbsp; || 0.00 || No
|-
| [[File:Io12.png]] || OnGreaterThan || plane_01_roll_counter_clockwise || Deactivate || &nbsp; || 0.00 || No
|-
| [[File:Io12.png]] || OnGreaterThan || plane_01_roll_clockwise || Activate || &nbsp; || 0.00 || No
|-
| [[File:Io12.png]] || OnLessThan || plane_01_roll_counter_clockwise || Activate || &nbsp; || 0.00 || No
|-
| [[File:Io12.png]] || OnLessThan || plane_01_roll_clockwise || Deactivate || &nbsp; || 0.00 || No
|}
 
 
Make another ''' logic_compare''' near the engines. Name it ''' plane_01_logic_fly''' and set the outputs to the following
{| {{OutputsTable}}
| [[File:Io12.png]] || OnEqualTo || plane_01_fly2 || Deactivate || &nbsp; || 0.00 || No
|-
| [[File:Io12.png]] || OnEqualTo || plane_01_fly1 || Deactivate || &nbsp; || 0.00 || No
|-
| [[File:Io12.png]] || OnGreaterThan || plane_01_fly1 || Activate || &nbsp; || 0.00 || No
|-
| [[File:Io12.png]] || OnGreaterThan || plane_01_fly2 || Activate || &nbsp; || 0.00 || No
|-
| [[File:Io12.png]] || OnLessThan || plane_01_fly1 || Deactivate || &nbsp; || 0.00 || No
|-
| [[File:Io12.png]] || OnLessThan || plane_01_fly2 || Deactivate || &nbsp; || 0.00 || No
|}
 
 
Now you need to setup the ''' phys_thruster'''
 
 
Place a ''' phys_thruster''' on the left end on the wing and name it '''plane_01_roll_clockwise'''. Set the parent to
''' plane_01''' set the force to 800 and set the direction of the force UP. Go into the flags and check ignore mass.
 
 
Place a ''' phys_thruster''' on the right end on the other wing and name it '''plane_01_roll_counter_clockwise'''. Set the parent to
''' plane_01''' set the force to 800 and set the direction of the force UP. Go into the flags and check 'ignore mass'.
 
 
Place a ''' phys_thruster''' on the front of the plane and name it '''plane_01_up'''. Set the parent to
''' plane_01''' set the force to 800 and set the direction of the force UP. Go into the flags and check ignore mass.
 
 
Place a ''' phys_thruster''' on the front of the plane and name it '''plane_01_down'''. Set the parent to
''' plane_01''' set the force to 800 and set the direction of the force DOWN. Go into the flags and check ignore mass.
 
 
Place a ''' phys_thruster''' at the end of the left engine and name it '''plane_01_fly1'''. Set the parent to
''' plane_01''' set the force to 2000 and set the direction of the force to "14 0 0". Go into the flags and check ignore mass.
 
 
Place a ''' phys_thruster''' at the end of the right engine and name it '''plane_01_fly2'''. Set the parent to
''' plane_01''' set the force to 2000 and set the direction of the force to "14 0 0". Go into the flags and check ignore mass.
 
<br>[[File:Plane_01_finished_plane.jpg|250px]]
 
-Rickler
--[[User:Rickler|Rickler]] 17:28, 4 Jan 2005 (EST)
 
You should now have a basic working plane that will probably need some adjustments here and there.
 
== See also ==
* [[Vehicles (level design)]]
 
[[Category:Level Design]]
[[Category:Level Design]]

Revision as of 09:40, 31 January 2024