

<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.zeroy.com/index.php?action=history&amp;feed=atom&amp;title=Call_of_Duty_5%3A_Facial_Animation</id>
	<title>Call of Duty 5: Facial Animation - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.zeroy.com/index.php?action=history&amp;feed=atom&amp;title=Call_of_Duty_5%3A_Facial_Animation"/>
	<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Facial_Animation&amp;action=history"/>
	<updated>2026-04-30T23:11:01Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Facial_Animation&amp;diff=2592&amp;oldid=prev</id>
		<title>Zeroy: /* Speaking At A Specific Location */</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Facial_Animation&amp;diff=2592&amp;oldid=prev"/>
		<updated>2008-11-10T12:29:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Speaking At A Specific Location&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 12:29, 10 November 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-l71&quot;&gt;Line 71:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 71:&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;You can change where on the map an AI will play an animation by calling the animation function on the location rather than on the 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;You can change where on the map an AI will play an animation by calling the animation function on the location rather than on the AI.&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;{{Note|&lt;/del&gt;The AI will not run to the location then play it, they will teleport to the location to play the animation if they aren&#039;t already at the location.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/del&gt;&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;/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;[[Image:warning.png]] &lt;/ins&gt;The AI will not run to the location then play it, they will teleport to the location to play the animation if they aren&#039;t already at the location.&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;  anim_node = getStruct( &amp;quot;location_for_animation&amp;quot;, &amp;quot;targetname&amp;quot; ); // Get the script_struct (location for animation)&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;  anim_node = getStruct( &amp;quot;location_for_animation&amp;quot;, &amp;quot;targetname&amp;quot; ); // Get the script_struct (location for animation)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Zeroy</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Facial_Animation&amp;diff=2591&amp;oldid=prev</id>
		<title>Zeroy: /* Set Up */</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Facial_Animation&amp;diff=2591&amp;oldid=prev"/>
		<updated>2008-11-10T12:28:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Set Up&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 12:28, 10 November 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;div&gt;==Set Up==&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;==Set Up==&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;For basic instructions on how to set up your animation (AI and GSC script), visit the [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Animation_Overview&lt;/del&gt;|&#039;&#039;&#039;Animation Overview&#039;&#039;&#039;]] page.&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;For basic instructions on how to set up your animation (AI and GSC script), visit the [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Call of Duty 5: Animation Overview&lt;/ins&gt;|&#039;&#039;&#039;Animation Overview&#039;&#039;&#039;]] page.&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;In a nut shell, you will need to assign your AI an animName in script and have your sound alias animation set up.&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;In a nut shell, you will need to assign your AI an animName in script and have your sound alias animation set up.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Zeroy</name></author>
	</entry>
	<entry>
		<id>https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Facial_Animation&amp;diff=2590&amp;oldid=prev</id>
		<title>Zeroy: New page: There are no facial animations in the sense that every voice over has its own custom animation, that would be thousands of animations required, most of them going unnoticed by players. Tho...</title>
		<link rel="alternate" type="text/html" href="https://wiki.zeroy.com/index.php?title=Call_of_Duty_5:_Facial_Animation&amp;diff=2590&amp;oldid=prev"/>
		<updated>2008-11-10T12:28:25Z</updated>

		<summary type="html">&lt;p&gt;New page: There are no facial animations in the sense that every voice over has its own custom animation, that would be thousands of animations required, most of them going unnoticed by players. Tho...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;There are no facial animations in the sense that every voice over has its own custom animation, that would be thousands of animations required, most of them going unnoticed by players. Though that isn&amp;#039;t to say there aren&amp;#039;t facial animations, if an AI animation is right up in front of your screen speaking chances are they have a unique facial animation for the voice over. Otherwise, there is a dynamic facial lip syncing system in place that only requires you to pass through a sound.&lt;br /&gt;
&lt;br /&gt;
We will go over how to implement facial animations and what you can do with animation system in regards to dialog.&lt;br /&gt;
&lt;br /&gt;
==Set Up==&lt;br /&gt;
&lt;br /&gt;
For basic instructions on how to set up your animation (AI and GSC script), visit the [[Animation_Overview|&amp;#039;&amp;#039;&amp;#039;Animation Overview&amp;#039;&amp;#039;&amp;#039;]] page.&lt;br /&gt;
&lt;br /&gt;
In a nut shell, you will need to assign your AI an animName in script and have your sound alias animation set up.&lt;br /&gt;
&lt;br /&gt;
For the remainder of this page, we will assume:&lt;br /&gt;
#You&amp;#039;ve included &amp;#039;&amp;#039;&amp;#039;maps\_anim&amp;#039;&amp;#039;&amp;#039; at the top of your GSC&lt;br /&gt;
#Our AI is stored in a variable &amp;#039;&amp;#039;&amp;#039;level.sarge&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#Our AI has an &amp;#039;&amp;#039;animName&amp;#039;&amp;#039; of &amp;quot;&amp;#039;&amp;#039;&amp;#039;sarge&amp;#039;&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
#Our animation &amp;#039;&amp;#039;reference name&amp;#039;&amp;#039; is &amp;quot;&amp;#039;&amp;#039;&amp;#039;nearly_there&amp;#039;&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
#Our animation refers to a &amp;#039;&amp;#039;sound alias&amp;#039;&amp;#039; &amp;quot;&amp;#039;&amp;#039;&amp;#039;Oki3_IGD_238A_ROEB&amp;#039;&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==AI Speaking==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;anim_single_solo&amp;#039;&amp;#039;&amp;#039; is the script call we will be using for our animation. The naming convention of the function is specifically why we chose it:&lt;br /&gt;
&lt;br /&gt;
{| border = &amp;quot;1&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|anim&lt;br /&gt;
|Animation.&lt;br /&gt;
|-&lt;br /&gt;
|single&lt;br /&gt;
|Animation plays only once.&lt;br /&gt;
|-&lt;br /&gt;
|solo&lt;br /&gt;
|Animation played by one single AI.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The function parameters for &amp;#039;&amp;#039;&amp;#039;anim_single_solo&amp;#039;&amp;#039;&amp;#039; are (in respective order):&lt;br /&gt;
{| border = &amp;quot;1&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Mandatory&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;guy&amp;gt;&lt;br /&gt;
|Yes&lt;br /&gt;
|Guy that animates.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;anime&amp;gt;&lt;br /&gt;
|Yes&lt;br /&gt;
|Animation scene.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tag&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|A tag to animate relative to.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;entity&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|Overwrite the scene base.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tag_entity&amp;gt;&lt;br /&gt;
|No&lt;br /&gt;
|Overwrite the base for the tag.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the very minimum we will need to pass a guy and animation through to the function:&lt;br /&gt;
 level.sarge thread anim_single_solo( level.sarge, &amp;quot;nearly_there&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
That line will have your AI play a generic lip syncing animation while speaking where ever he is standing when that line is called.&lt;br /&gt;
&lt;br /&gt;
==Speaking At A Specific Location==&lt;br /&gt;
&lt;br /&gt;
You can change where on the map an AI will play an animation by calling the animation function on the location rather than on the AI.&lt;br /&gt;
{{Note|The AI will not run to the location then play it, they will teleport to the location to play the animation if they aren&amp;#039;t already at the location.}}&lt;br /&gt;
&lt;br /&gt;
 anim_node = getStruct( &amp;quot;location_for_animation&amp;quot;, &amp;quot;targetname&amp;quot; ); // Get the script_struct (location for animation)&lt;br /&gt;
 anim_node thread anim_single_solo( level.sarge, &amp;quot;nearly_there&amp;quot; ); // Call the anim function on the variable that has our script_struct&lt;br /&gt;
&lt;br /&gt;
==AI Conversing==&lt;br /&gt;
&lt;br /&gt;
There are a couple ways you can go about accomplishing this, we will cover a few methods.&lt;br /&gt;
&lt;br /&gt;
For our second AI we will assume:&lt;br /&gt;
#Our second AI is stored in a variable level.polansky&lt;br /&gt;
#Our second AI has an &amp;#039;&amp;#039;animName&amp;#039;&amp;#039; of &amp;quot;&amp;#039;&amp;#039;&amp;#039;polansky&amp;#039;&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
#Our second animation &amp;#039;&amp;#039;reference name&amp;#039;&amp;#039; is &amp;quot;&amp;#039;&amp;#039;&amp;#039;shadows&amp;#039;&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
#Our second animation refers to a &amp;#039;&amp;#039;sound alias&amp;#039;&amp;#039; &amp;quot;&amp;#039;&amp;#039;&amp;#039;Oki3_IGD_242A_POLO&amp;#039;&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Non-Threading===&lt;br /&gt;
&lt;br /&gt;
The simplest of the methods is to not thread our animation. Threading our functions stems to the called function but the parent function that made the call continues to keep progressing.&lt;br /&gt;
&lt;br /&gt;
{| border = &amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Threading&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|level.sarge thread anim_single_solo( level.sarge, &amp;quot;nearly_there&amp;quot; );&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Non-Threading&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|level.sarge anim_single_solo( level.sarge, &amp;quot;nearly_there&amp;quot; );&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
With that, we can now make two converse:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 #include maps\_anim;&lt;br /&gt;
 #include maps\_utility;&lt;br /&gt;
 #include common_scripts\utility;&lt;br /&gt;
&lt;br /&gt;
 main()&lt;br /&gt;
 {&lt;br /&gt;
   maps\_load::main();&lt;br /&gt;
&lt;br /&gt;
   level.sarge anim_single_solo( level.sarge, &amp;quot;nearly_there&amp;quot; ); // First dialog animation&lt;br /&gt;
   level.polansky anim_single_solo( level.polansky, &amp;quot;whispers&amp;quot; ); // Second dialog animation&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Wait For Notify===&lt;br /&gt;
&lt;br /&gt;
Another way of simulating AI conversing would be to wait for a notify from the animation.&lt;br /&gt;
&lt;br /&gt;
Every time we play an animation that isn&amp;#039;t looping, there is a notification sent out when it is done playing. The notification is &amp;quot;&amp;#039;&amp;#039;&amp;#039;single anim&amp;#039;&amp;#039;&amp;#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 #include maps\_anim;&lt;br /&gt;
 #include maps\_utility;&lt;br /&gt;
 #include common_scripts\utility;&lt;br /&gt;
&lt;br /&gt;
 main()&lt;br /&gt;
 {&lt;br /&gt;
   maps\_load::main();&lt;br /&gt;
&lt;br /&gt;
   level.sarge thread anim_single_solo( level.sarge, &amp;quot;nearly_there&amp;quot; ); // First dialog animation&lt;br /&gt;
   &lt;br /&gt;
   level.sarge waittillend( &amp;quot;single anim&amp;quot; ); // Waittill level.sarge finishes his animation&lt;br /&gt;
   &lt;br /&gt;
   level.polansky thread anim_single_solo( level.polansky, &amp;quot;whispers&amp;quot; ); // Second dialog animation&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Wait Time===&lt;br /&gt;
&lt;br /&gt;
Another way of simulating AI conversing would be to wait a defined amount of seconds between each animation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 #include maps\_anim;&lt;br /&gt;
 #include maps\_utility;&lt;br /&gt;
 #include common_scripts\utility;&lt;br /&gt;
&lt;br /&gt;
 main()&lt;br /&gt;
 {&lt;br /&gt;
   maps\_load::main();&lt;br /&gt;
&lt;br /&gt;
   level.sarge thread anim_single_solo( level.sarge, &amp;quot;nearly_there&amp;quot; ); // First dialog animation&lt;br /&gt;
   &lt;br /&gt;
   wait 3 ; // Wait 3 seconds&lt;br /&gt;
   &lt;br /&gt;
   level.polansky thread anim_single_solo( level.polansky, &amp;quot;whispers&amp;quot; ); // Second dialog animation&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sources: [http://wiki.treyarch.com/wiki/Facial_Animation Treyarch&amp;#039;s wiki]&lt;br /&gt;
[[Category:AI]]&lt;br /&gt;
[[Category:Call of Duty 5]]&lt;br /&gt;
[[Category:Modding]]&lt;br /&gt;
[[Category:Animations]]&lt;br /&gt;
[[Category:Scripting]]&lt;/div&gt;</summary>
		<author><name>Zeroy</name></author>
	</entry>
</feed>