<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.thedarkmod.com/index.php?action=history&amp;feed=atom&amp;title=Euler_Angle_Convention_Used_in_Doom3</id>
	<title>Euler Angle Convention Used in Doom3 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.thedarkmod.com/index.php?action=history&amp;feed=atom&amp;title=Euler_Angle_Convention_Used_in_Doom3"/>
	<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;action=history"/>
	<updated>2026-04-28T08:13:59Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;diff=20751&amp;oldid=prev</id>
		<title>Petike: adding missing category</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;diff=20751&amp;oldid=prev"/>
		<updated>2018-10-20T03:46:44Z</updated>

		<summary type="html">&lt;p&gt;adding missing category&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:46, 20 October 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l21&quot;&gt;Line 21:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 21:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When attaching objects to AI joints and trying to orient the attached object relative to the joint, oftentimes you don&amp;#039;t know how the joint is oriented relative to the world axes.  You can use &amp;#039;&amp;#039;&amp;#039;r_showskel 1&amp;#039;&amp;#039;&amp;#039; in the console to show the joints and display a line for each axis.  You still don&amp;#039;t know which axis is which.  To figure out how to orient something relative to the joint, first apply a yaw rotation by setting the attachment angles to &amp;quot;0 &amp;lt;test angle&amp;gt; 0&amp;quot;, and see how that differs from angles of &amp;quot;0 0 0&amp;quot;.  (It is easiest to see the difference by spawning the AI with the attachment angle set to &amp;quot;0 0 0&amp;quot;, changing the angle, then calling &amp;#039;&amp;#039;&amp;#039;reloaddecls&amp;#039;&amp;#039;&amp;#039; and spawning another AI).  Now you know which way yaw rotates.  Do the same for pitch, now you know which way pitch rotates, and by process of elimination you know roll.  Now you know what will happen when you input angles to orient something relative to the joint.  First it will rotate in the sense you identified as yaw, then in pitch, then finally in roll.   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When attaching objects to AI joints and trying to orient the attached object relative to the joint, oftentimes you don&amp;#039;t know how the joint is oriented relative to the world axes.  You can use &amp;#039;&amp;#039;&amp;#039;r_showskel 1&amp;#039;&amp;#039;&amp;#039; in the console to show the joints and display a line for each axis.  You still don&amp;#039;t know which axis is which.  To figure out how to orient something relative to the joint, first apply a yaw rotation by setting the attachment angles to &amp;quot;0 &amp;lt;test angle&amp;gt; 0&amp;quot;, and see how that differs from angles of &amp;quot;0 0 0&amp;quot;.  (It is easiest to see the difference by spawning the AI with the attachment angle set to &amp;quot;0 0 0&amp;quot;, changing the angle, then calling &amp;#039;&amp;#039;&amp;#039;reloaddecls&amp;#039;&amp;#039;&amp;#039; and spawning another AI).  Now you know which way yaw rotates.  Do the same for pitch, now you know which way pitch rotates, and by process of elimination you know roll.  Now you know what will happen when you input angles to orient something relative to the joint.  First it will rotate in the sense you identified as yaw, then in pitch, then finally in roll.   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{editing}} {{coding}} {{ai}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{editing}} {{coding}} {{ai}} &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Conventions]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Petike</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;diff=7466&amp;oldid=prev</id>
		<title>Ishtvan: /* Order of rotations */</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;diff=7466&amp;oldid=prev"/>
		<updated>2008-12-13T19:39:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Order of rotations&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:39, 13 December 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Order of rotations ==  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Order of rotations ==  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;It turns out that &lt;/del&gt;Doom3 uses the &quot;yaw, pitch, roll&quot; convention (also known as &quot;zyx,&quot; the full rotation matrix for this convention is given in [http://en.wikipedia.org/wiki/Euler_angles this article]).  Let&#039;s say you have entered a spawnarg as &quot;pitch yaw roll.&quot;  This is how Doom3 applies these values to orient an object: First, the yaw is applied about the world &#039;&#039;&#039;z&#039;&#039;&#039; axis, second, the pitch is applied about the yawed &#039;&#039;&#039;y&#039;&#039;&#039; axis, and third, the roll is applied about the yawed and pitched &#039;&#039;&#039;x&#039;&#039;&#039; axis.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;To determine the order of multiple rotations, &lt;/ins&gt;Doom3 uses the &quot;yaw, pitch, roll&quot; convention (also known as &quot;zyx,&quot; the full rotation matrix for this convention is given in [http://en.wikipedia.org/wiki/Euler_angles this article]).  Let&#039;s say you have entered a spawnarg as &quot;pitch yaw roll.&quot;  This is how Doom3 applies these values to orient an object: First, the yaw is applied about the world &#039;&#039;&#039;z&#039;&#039;&#039; axis, second, the pitch is applied about the yawed &#039;&#039;&#039;y&#039;&#039;&#039; axis, and third, the roll is applied about the yawed and pitched &#039;&#039;&#039;x&#039;&#039;&#039; axis.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Sign Conventions ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Sign Conventions ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ishtvan</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;diff=7120&amp;oldid=prev</id>
		<title>Ishtvan at 00:48, 22 September 2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;diff=7120&amp;oldid=prev"/>
		<updated>2008-09-22T00:48:37Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:48, 22 September 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l8&quot;&gt;Line 8:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 8:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Sign Conventions ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Sign Conventions ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In mathematics, a clockwise rotation is a positive angle, and a counterclockwise rotation is a negative angle.  Pitch, yaw and roll have their own conventions &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(positive pitch is rotating something from forward to the ceiling)&lt;/del&gt;.  The combination of the defined axes, the mathematical rotation sign convention, and the sign conventions of pitch, yaw and roll result in some sign changes when going from the pitch, yaw, roll angles to the actual angular rotation about the axis that is entered in to the rotation matrix.  The conventions are described below:  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In mathematics, a clockwise rotation is a positive angle, and a counterclockwise rotation is a negative angle.  Pitch, yaw and roll have their own conventions.  The combination of the defined axes, the mathematical rotation sign convention, and the sign conventions of pitch, yaw and roll result in some sign changes when going from the pitch, yaw, roll angles to the actual angular rotation about the axis that is entered in to the rotation matrix.  The conventions are described below:  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Pitch is positive when pitching from forward to up.  This is a counterclockwise rotation about the &amp;#039;&amp;#039;&amp;#039;y&amp;#039;&amp;#039;&amp;#039; (left) axis.  Therefore, positive pitch means negative rotation angle.  Yaw is positive when rotating from the forward to the right.  This is a counterclockwise rotation about the &amp;#039;&amp;#039;&amp;#039;z&amp;#039;&amp;#039;&amp;#039; (up) axis.  Therefore, positive yaw means negative rotation angle.  Roll is positive when rotating from up to right.  This is a clockwise rotation about the &amp;#039;&amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;#039; (forward) axis.  Therefore, positive roll means positive rotation angle.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Pitch is positive when pitching from forward to up.  This is a counterclockwise rotation about the &amp;#039;&amp;#039;&amp;#039;y&amp;#039;&amp;#039;&amp;#039; (left) axis.  Therefore, positive pitch means negative rotation angle.  Yaw is positive when rotating from the forward to the right.  This is a counterclockwise rotation about the &amp;#039;&amp;#039;&amp;#039;z&amp;#039;&amp;#039;&amp;#039; (up) axis.  Therefore, positive yaw means negative rotation angle.  Roll is positive when rotating from up to right.  This is a clockwise rotation about the &amp;#039;&amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;#039; (forward) axis.  Therefore, positive roll means positive rotation angle.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ishtvan</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;diff=7078&amp;oldid=prev</id>
		<title>Ishtvan: /* Attaching to AI Joints of Unknown Orientation */</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;diff=7078&amp;oldid=prev"/>
		<updated>2008-09-20T08:46:56Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Attaching to AI Joints of Unknown Orientation&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:46, 20 September 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l19&quot;&gt;Line 19:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Attaching to AI Joints of Unknown Orientation ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Attaching to AI Joints of Unknown Orientation ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When attaching &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;things &lt;/del&gt;to AI joints and trying to orient &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;them&lt;/del&gt;, oftentimes you don&#039;t know how the joint is oriented.  You can use &#039;&#039;&#039;r_showskel 1&#039;&#039;&#039; in the console to show the joints and display a line for each axis.  You still don&#039;t know which axis is which.  To figure out how to orient something relative to the joint, first apply a yaw rotation by setting the attachment angles to &quot;0 &amp;lt;test angle&amp;gt; 0&quot;, and see how that differs from angles of &quot;0 0 0&quot;.  (It is easiest to see the difference by spawning the AI with the attachment angle set to &quot;0 0 0&quot;, changing the angle, then calling &#039;&#039;&#039;reloaddecls&#039;&#039;&#039; and spawning another AI).  Now you know which way yaw rotates.  Do the same for pitch, now you know which way pitch rotates, and by process of elimination you know roll.  Now you know what will happen when you input angles to orient something relative to the joint.  First it will rotate in the sense you identified as yaw, then in pitch, then finally in roll.   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When attaching &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;objects &lt;/ins&gt;to AI joints and trying to orient &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;the attached object relative to the joint&lt;/ins&gt;, oftentimes you don&#039;t know how the joint is oriented &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;relative to the world axes&lt;/ins&gt;.  You can use &#039;&#039;&#039;r_showskel 1&#039;&#039;&#039; in the console to show the joints and display a line for each axis.  You still don&#039;t know which axis is which.  To figure out how to orient something relative to the joint, first apply a yaw rotation by setting the attachment angles to &quot;0 &amp;lt;test angle&amp;gt; 0&quot;, and see how that differs from angles of &quot;0 0 0&quot;.  (It is easiest to see the difference by spawning the AI with the attachment angle set to &quot;0 0 0&quot;, changing the angle, then calling &#039;&#039;&#039;reloaddecls&#039;&#039;&#039; and spawning another AI).  Now you know which way yaw rotates.  Do the same for pitch, now you know which way pitch rotates, and by process of elimination you know roll.  Now you know what will happen when you input angles to orient something relative to the joint.  First it will rotate in the sense you identified as yaw, then in pitch, then finally in roll.   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{editing}} {{coding}} {{ai}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{editing}} {{coding}} {{ai}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ishtvan</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;diff=7077&amp;oldid=prev</id>
		<title>Ishtvan: /* Attaching to AI Joints of Unknown Orientation */</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;diff=7077&amp;oldid=prev"/>
		<updated>2008-09-20T08:45:49Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Attaching to AI Joints of Unknown Orientation&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:45, 20 September 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l19&quot;&gt;Line 19:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Attaching to AI Joints of Unknown Orientation ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Attaching to AI Joints of Unknown Orientation ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When attaching things to AI joints and trying to orient them, oftentimes you don&#039;t know how the joint is oriented.  You can use &#039;&#039;&#039;r_showskel 1&#039;&#039;&#039; in the console to show the joints and display a line for each axis.  You still don&#039;t know which axis is which.  To figure out how to orient something relative to the joint, first apply a yaw rotation by setting the attachment angles to &quot;0 &amp;lt;test angle&amp;gt; 0&quot;, and see how that differs from angles of &quot;0 0 0&quot;.  (It is easiest to see the difference by spawning the AI with the attachment angle set to &quot;0 0 0&quot;, changing the angle, then calling &#039;&#039;&#039;reloaddecls&#039;&#039;&#039; and spawning another AI).  Now you know which way yaw rotates.  Do the same for pitch, now you know which way pitch rotates, and by process of elimination you know roll.  Now you know what will happen when you input angles to orient something relative to the joint.  &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;It &lt;/del&gt;will rotate &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;first &lt;/del&gt;in the sense you identified as yaw, then in pitch, then finally in roll.   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When attaching things to AI joints and trying to orient them, oftentimes you don&#039;t know how the joint is oriented.  You can use &#039;&#039;&#039;r_showskel 1&#039;&#039;&#039; in the console to show the joints and display a line for each axis.  You still don&#039;t know which axis is which.  To figure out how to orient something relative to the joint, first apply a yaw rotation by setting the attachment angles to &quot;0 &amp;lt;test angle&amp;gt; 0&quot;, and see how that differs from angles of &quot;0 0 0&quot;.  (It is easiest to see the difference by spawning the AI with the attachment angle set to &quot;0 0 0&quot;, changing the angle, then calling &#039;&#039;&#039;reloaddecls&#039;&#039;&#039; and spawning another AI).  Now you know which way yaw rotates.  Do the same for pitch, now you know which way pitch rotates, and by process of elimination you know roll.  Now you know what will happen when you input angles to orient something relative to the joint.  &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;First it &lt;/ins&gt;will rotate in the sense you identified as yaw, then in pitch, then finally in roll.   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{editing}} {{coding}} {{ai}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{editing}} {{coding}} {{ai}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ishtvan</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;diff=7076&amp;oldid=prev</id>
		<title>Ishtvan: /* Attaching to AI Joints of Unknown Orientation */</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;diff=7076&amp;oldid=prev"/>
		<updated>2008-09-20T08:45:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Attaching to AI Joints of Unknown Orientation&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:45, 20 September 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l19&quot;&gt;Line 19:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Attaching to AI Joints of Unknown Orientation ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Attaching to AI Joints of Unknown Orientation ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When attaching things to AI joints and trying to orient them, oftentimes you don&#039;t know how the joint is oriented.  You can use &#039;&#039;&#039;r_showskel 1&#039;&#039;&#039; in the console to show the joints and display a line for each axis.  You still don&#039;t know which axis is which.  To figure out how to orient something relative to the joint, first apply a yaw rotation by setting the attachment angles to &quot;0 &amp;lt;test angle&amp;gt; 0&quot;, and see how that differs from angles of &quot;0 0 0&quot;.  (It is easiest to see the difference by spawning the AI with the attachment angle set to &quot;0 0 0&quot;, changing the angle, then calling &#039;&#039;&#039;reloaddecls&#039;&#039;&#039; and spawning another AI).  Now you know which way yaw rotates.  Do the same for pitch, now you know which way pitch rotates, and by process of elimination you know roll.  Now you know what will happen when you input angles to orient something relative to the joint.  It will rotate in the sense you identified as yaw, then in pitch, then finally in roll.   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When attaching things to AI joints and trying to orient them, oftentimes you don&#039;t know how the joint is oriented.  You can use &#039;&#039;&#039;r_showskel 1&#039;&#039;&#039; in the console to show the joints and display a line for each axis.  You still don&#039;t know which axis is which.  To figure out how to orient something relative to the joint, first apply a yaw rotation by setting the attachment angles to &quot;0 &amp;lt;test angle&amp;gt; 0&quot;, and see how that differs from angles of &quot;0 0 0&quot;.  (It is easiest to see the difference by spawning the AI with the attachment angle set to &quot;0 0 0&quot;, changing the angle, then calling &#039;&#039;&#039;reloaddecls&#039;&#039;&#039; and spawning another AI).  Now you know which way yaw rotates.  Do the same for pitch, now you know which way pitch rotates, and by process of elimination you know roll.  Now you know what will happen when you input angles to orient something relative to the joint.  It will rotate &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;first &lt;/ins&gt;in the sense you identified as yaw, then in pitch, then finally in roll.   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{editing}} {{coding}} {{ai}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{editing}} {{coding}} {{ai}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ishtvan</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;diff=7075&amp;oldid=prev</id>
		<title>Ishtvan: /* Attaching to AI Joints of Unknown Orientation */</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;diff=7075&amp;oldid=prev"/>
		<updated>2008-09-20T08:45:01Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Attaching to AI Joints of Unknown Orientation&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:45, 20 September 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l19&quot;&gt;Line 19:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Attaching to AI Joints of Unknown Orientation ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Attaching to AI Joints of Unknown Orientation ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When attaching things to AI joints and trying to orient them, oftentimes you don&#039;t know how the joint is oriented.  You can use &#039;&#039;&#039;r_showskel 1&#039;&#039;&#039; in the console to show the joints and display a line for each axis.  You still don&#039;t know which axis is which.  To figure out how to orient something relative to the joint, first apply a yaw rotation by setting the attachment angles to &quot;0 &amp;lt;test angle&amp;gt; 0&quot;, and see how that differs from angles of &quot;0 0 0&quot;.  (It is easiest to see the difference by spawning &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a copy of &lt;/del&gt;the AI with the attachment angle &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;of &lt;/del&gt;&quot;0 0 0&quot;, changing the angle, then calling &#039;&#039;&#039;reloaddecls&#039;&#039;&#039; and spawning another AI).  Now you know which way yaw rotates.  Do the same for pitch, now you know which way pitch rotates, and by process of elimination you know roll.  Now you know what will happen when you input angles to orient something relative to the joint.  It will rotate in the sense you identified as yaw, then in pitch, then finally in roll.   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When attaching things to AI joints and trying to orient them, oftentimes you don&#039;t know how the joint is oriented.  You can use &#039;&#039;&#039;r_showskel 1&#039;&#039;&#039; in the console to show the joints and display a line for each axis.  You still don&#039;t know which axis is which.  To figure out how to orient something relative to the joint, first apply a yaw rotation by setting the attachment angles to &quot;0 &amp;lt;test angle&amp;gt; 0&quot;, and see how that differs from angles of &quot;0 0 0&quot;.  (It is easiest to see the difference by spawning the AI with the attachment angle &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;set to &lt;/ins&gt;&quot;0 0 0&quot;, changing the angle, then calling &#039;&#039;&#039;reloaddecls&#039;&#039;&#039; and spawning another AI).  Now you know which way yaw rotates.  Do the same for pitch, now you know which way pitch rotates, and by process of elimination you know roll.  Now you know what will happen when you input angles to orient something relative to the joint.  It will rotate in the sense you identified as yaw, then in pitch, then finally in roll.   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{editing}} {{coding}} {{ai}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{editing}} {{coding}} {{ai}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ishtvan</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;diff=7074&amp;oldid=prev</id>
		<title>Ishtvan: /* Attaching to AI Joints of Unknown Orientation */</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;diff=7074&amp;oldid=prev"/>
		<updated>2008-09-20T08:44:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Attaching to AI Joints of Unknown Orientation&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:44, 20 September 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l19&quot;&gt;Line 19:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Attaching to AI Joints of Unknown Orientation ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Attaching to AI Joints of Unknown Orientation ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When attaching things to AI joints and trying to orient them, oftentimes you don&#039;t know how the joint is oriented.  You can use &#039;&#039;&#039;r_showskel 1&#039;&#039;&#039; in the console to show the joints and display a line for each axis.  You still don&#039;t know which axis is which.  To figure out how to orient something relative to the joint, first apply a yaw rotation by setting the attachment angles to &quot;0 &amp;lt;test angle&amp;gt; 0&quot;, and see how that differs from angles of &quot;0 0 0&quot;.  Now you know &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;what &lt;/del&gt;yaw &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;does&lt;/del&gt;.  Do the same for pitch, now you know which way pitch rotates, and by process of elimination you know roll.  Now you know what will happen when you input angles to orient something relative to the joint.  It will rotate in the sense you identified as yaw, then in pitch, then finally in roll.   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When attaching things to AI joints and trying to orient them, oftentimes you don&#039;t know how the joint is oriented.  You can use &#039;&#039;&#039;r_showskel 1&#039;&#039;&#039; in the console to show the joints and display a line for each axis.  You still don&#039;t know which axis is which.  To figure out how to orient something relative to the joint, first apply a yaw rotation by setting the attachment angles to &quot;0 &amp;lt;test angle&amp;gt; 0&quot;, and see how that differs from angles of &quot;0 0 0&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.  (It is easiest to see the difference by spawning a copy of the AI with the attachment angle of &quot;0 0 0&quot;, changing the angle, then calling &#039;&#039;&#039;reloaddecls&#039;&#039;&#039; and spawning another AI)&lt;/ins&gt;.  Now you know &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;which way &lt;/ins&gt;yaw &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;rotates&lt;/ins&gt;.  Do the same for pitch, now you know which way pitch rotates, and by process of elimination you know roll.  Now you know what will happen when you input angles to orient something relative to the joint.  It will rotate in the sense you identified as yaw, then in pitch, then finally in roll.   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{editing}} {{coding}} {{ai}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{editing}} {{coding}} {{ai}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ishtvan</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;diff=7073&amp;oldid=prev</id>
		<title>Ishtvan: /* Attaching to AI Joints of Unknown Orientation */</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;diff=7073&amp;oldid=prev"/>
		<updated>2008-09-20T08:42:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Attaching to AI Joints of Unknown Orientation&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:42, 20 September 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l19&quot;&gt;Line 19:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Attaching to AI Joints of Unknown Orientation ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Attaching to AI Joints of Unknown Orientation ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When attaching things to AI joints and trying to orient them, oftentimes you don&#039;t know how the joint is oriented.  You can use &#039;&#039;&#039;r_showskel 1&#039;&#039;&#039; in the console to show the joints and display a line for each axis.  You still don&#039;t know which axis is which.  To figure out how to orient something, first apply a yaw rotation by setting the attachment angles to &quot;0 &amp;lt;test angle&amp;gt; 0&quot;, and see how that differs from angles of &quot;0 0 0&quot;.  Now you know what yaw does.  Do the same for pitch, now you know which way pitch rotates, and by process of elimination you know roll.  Now you know what will happen when you input angles to orient something relative to the joint.  It will rotate in the sense you identified as yaw, then in pitch, then finally in roll.   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When attaching things to AI joints and trying to orient them, oftentimes you don&#039;t know how the joint is oriented.  You can use &#039;&#039;&#039;r_showskel 1&#039;&#039;&#039; in the console to show the joints and display a line for each axis.  You still don&#039;t know which axis is which.  To figure out how to orient something &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;relative to the joint&lt;/ins&gt;, first apply a yaw rotation by setting the attachment angles to &quot;0 &amp;lt;test angle&amp;gt; 0&quot;, and see how that differs from angles of &quot;0 0 0&quot;.  Now you know what yaw does.  Do the same for pitch, now you know which way pitch rotates, and by process of elimination you know roll.  Now you know what will happen when you input angles to orient something relative to the joint.  It will rotate in the sense you identified as yaw, then in pitch, then finally in roll.   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{editing}} {{coding}} {{ai}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{editing}} {{coding}} {{ai}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ishtvan</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;diff=7072&amp;oldid=prev</id>
		<title>Ishtvan at 08:42, 20 September 2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Euler_Angle_Convention_Used_in_Doom3&amp;diff=7072&amp;oldid=prev"/>
		<updated>2008-09-20T08:42:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:42, 20 September 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l17&quot;&gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Example 2 ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Example 2 ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Again you start out with an airplane pointing straight ahead with wings level.  Now, you want the airplane nose pointing to your left and up 45 degrees, and you want the airplane to be upside-down.  Again, yaw is applied first, then pitch, then roll.  So we know yaw must be -90, pointing the airplane left.  Pitch is +45, tipping the nose up, and roll is 180, rotating the plane upside-down about its long axis.  We therefore enter an angles spawnarg (&amp;quot;pitch yaw roll&amp;quot;) of &amp;quot;45 -90 180&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Again you start out with an airplane pointing straight ahead with wings level.  Now, you want the airplane nose pointing to your left and up 45 degrees, and you want the airplane to be upside-down.  Again, yaw is applied first, then pitch, then roll.  So we know yaw must be -90, pointing the airplane left.  Pitch is +45, tipping the nose up, and roll is 180, rotating the plane upside-down about its long axis.  We therefore enter an angles spawnarg (&amp;quot;pitch yaw roll&amp;quot;) of &amp;quot;45 -90 180&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Attaching to AI Joints of Unknown Orientation ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;When attaching things to AI joints and trying to orient them, oftentimes you don&#039;t know how the joint is oriented.  You can use &#039;&#039;&#039;r_showskel 1&#039;&#039;&#039; in the console to show the joints and display a line for each axis.  You still don&#039;t know which axis is which.  To figure out how to orient something, first apply a yaw rotation by setting the attachment angles to &quot;0 &amp;lt;test angle&amp;gt; 0&quot;, and see how that differs from angles of &quot;0 0 0&quot;.  Now you know what yaw does.  Do the same for pitch, now you know which way pitch rotates, and by process of elimination you know roll.  Now you know what will happen when you input angles to orient something relative to the joint.  It will rotate in the sense you identified as yaw, then in pitch, then finally in roll.  &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{editing}} {{coding}} {{ai}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{editing}} {{coding}} {{ai}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ishtvan</name></author>
	</entry>
</feed>