WisePYR: Pitch Yaw Roll
This tutorial was originally created by wisemx. It was originally posted on SDKnuts.net.
Every object in the game has an origin. A set of angles are also used to determine the objects orientation in the world. These angles are X, Y and Z also known as Roll, Pitch and Yaw.
- Roll
- Is most often a term used to describe rotation but as you know it has a wide use and is a term in Aeronautics to describe an aircraft rotating on its X axis.
- Pitch
- Is a term derived from the force of pitching an object, such as the way you would pitch hay. It has been used for a very long time to describe the way a ship at sea rocks Fore and Aft along the Y axis. Most often it is used for the same effect on aircraft.
- Yaw
- Is a deviation or turning from side to side. Used in yachting and aeronautics it is an angle that can be used to calculate a coarse deviation along the Z axis.
Take a look at the Pitch, Yaw and Roll keyvalue for a light_environment
entity. Each of the 0’s can change from 0 to 360 degrees, in most cases 180 or less. Since the first angle is for the Pitch we can point the light_environment
straight down by changing those numbers to 90 0 0
. Straight up would be -90 0 0
. Most of the questions I get about Pitch Yaw and Roll have to do with the movement of doors and buttons. To help illustrate how these angles work in your map I’ve created a sample project with 10 func_door
entities.
These are the angles for each door and the direction in which they move.
1) -90 0 0, Up
1a) -90 0 0, Up
2) 90 0 0, Down
2a) 90 0 0, Down
3) 0 180 0, Left
3a) 0 180 0, Left
4) 0 0 0, Right
4a) 0 0 0, Right
5) 0 90 90, Left
6) 0 -90 -90, Right
The 10 doors in the sample project are all set to open and close every 3 seconds. If you run the project and watch the doors you will see that doors 1 and 1a move exactly alike as do 2 and 2a, however doors 3 and 3a plus doors 4 and 4a do not move exactly alike even though they are exact copies of each other. This is because I rotated each of the backside doors, 1a, 2a, 3a and 4a. Since doors 1 and 2 are moving up and down rotating them did not affect the copies 1a and 2a. However since the copies of 3 and 4 have changed we need to adjust the Pitch Yaw and Roll to make them move properly. The doors 5 and 6 are copies of 3 and 4 but with the correct movement. As you can see to make door 5 move properly we had to change 0 180 0 to 0 90 90.