<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://datoolset.net/mw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mdpaustin</id>
		<title>Dragon Age Toolset Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://datoolset.net/mw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mdpaustin"/>
		<link rel="alternate" type="text/html" href="https://datoolset.net/wiki/Special:Contributions/Mdpaustin"/>
		<updated>2026-04-21T23:45:16Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.6</generator>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Conversation_tutorial&amp;diff=12943</id>
		<title>Conversation tutorial</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Conversation_tutorial&amp;diff=12943"/>
				<updated>2010-05-11T19:12:53Z</updated>
		
		<summary type="html">&lt;p&gt;Mdpaustin: /* Creating and setting a conversation for a creature */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox conversation}}&lt;br /&gt;
&lt;br /&gt;
Dialog is perhaps the most important part of making an adventure into a story. In Dragon Age, dialog is a collection of lines that are arranged in an interactive tree-shaped structure. This tree structure can be simple or complex, and each line can have conditions and actions attached to it that interact with the state of the world at large.&lt;br /&gt;
&lt;br /&gt;
For this tutorial we will start simple and then progressively add new features and options to a [[conversation]] as we go. Later on there will be a separate tutorial for adding cinematic direction to conversations.&lt;br /&gt;
&lt;br /&gt;
== Creating and setting a conversation for a creature ==&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* The root node of a conversation tree holds global (conversation-wide) settings.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
In the [[creature tutorial]] we created a [[creature]] named &amp;quot;Quest Giver&amp;quot;, who is standing outside a hut that's filled with monsters. The goal is to have the quest giver ask you to go in and kill all the monsters for him.&lt;br /&gt;
&lt;br /&gt;
First, we need to create the conversation resource. Using the new resource command, select &amp;quot;conversation&amp;quot; and give it a resource name that will help keep track of its purpose. We're calling this conversation &amp;quot;conv_quest_giver&amp;quot;. The new conversation starts out empty, with only a &amp;quot;root&amp;quot; node. The root node of a conversation doesn't contain any dialog itself; it is merely a container that holds various global settings that apply to the conversation as a whole.&lt;br /&gt;
&lt;br /&gt;
With the root node highlighted, the global settings become accessible in the tabbed pane at the bottom of the conversation editing window:&lt;br /&gt;
&lt;br /&gt;
[[Image:Conversation root global settings.png]]&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* &amp;quot;OWNER&amp;quot; is the creature the conversation &amp;quot;belongs&amp;quot; to.&lt;br /&gt;
* &amp;quot;PLAYER&amp;quot; is the player's character&lt;br /&gt;
* A conversation is assigned to a creature in the ''creature's'' properties (the &amp;quot;Conversation&amp;quot; property)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
These settings have defaults that will be perfectly good for a conversation between a PC and a single NPC, as we will be doing here. The &amp;quot;OWNER&amp;quot; of the conversation will be the creature the conversation is attached to - in this case, Quest Giver. The &amp;quot;PLAYER&amp;quot; is, of course, the player's character.&lt;br /&gt;
&lt;br /&gt;
*Default NPC Speaker: This is the creature who, by default, responds to the player's dialog selections.&lt;br /&gt;
*Default NPC Listener: This is the creature who the NPC is directing those responses to. This is used to determine who the NPC should turn his head toward when speaking.&lt;br /&gt;
*Default PC Listener: This is the creature who the PC is talking to when he makes dialog selections, determining who the PC's avatar turns his head toward.&lt;br /&gt;
&lt;br /&gt;
These settings can be overridden on a line-by-line basis, something you'll usually only need to do when you're writing a conversation with more than two participants. We won't do that in this introductory tutorial. It's also possible to have an inanimate object (a placeable) as a participant in a conversation, which we also won't get into here.&lt;br /&gt;
&lt;br /&gt;
Also on this page are a number of checkboxes for locking cinematics. This is usually used to prevent the toolset from generating new automatic animations after you've fine-tuned things manually, we won't need to worry about that for now.&lt;br /&gt;
&lt;br /&gt;
Once the conversation resource is created, we'll need to tell the quest_giver creature that he's supposed to use it when the player tries to talk to him. Open the quest giver in the creature editor and change his &amp;quot;Conversation&amp;quot; property from the default (none) to &amp;quot;conv_quest_giver&amp;quot; by pressing the ellipsis ([[Image:ellipsis.png]]) button and selecting the conv_quest_giver dialog.&lt;br /&gt;
&lt;br /&gt;
== Adding some dialog ==&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* Red lines of dialog are spoken by NPCs one at a time&lt;br /&gt;
* Blue lines of dialog are selected from by the player and are presented as groups of options&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
To add a line to the root, you can right-click on it and select &amp;quot;Add Line&amp;quot;. It's also available as a button in the toolbar (button #23, below) and with the shortcut &amp;quot;control-A&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:Conversation toolbar.png]]&lt;br /&gt;
&lt;br /&gt;
The added node will be in red text, indicating it's non-interactive (spoken by the NPC) and tagged with &amp;lt;nowiki&amp;gt;[[[[OWNER]]]]&amp;lt;/nowiki&amp;gt; to indicate who's speaking it. When the player initiates conversation with the conversation's owner, this is the first line that will be said.&lt;br /&gt;
&lt;br /&gt;
To determine what it is that the conversation owner says, select the node and go down to the dialog tab to enter the text. For the time being we won't need to worry about the other options below the dialog's main text entry field.&lt;br /&gt;
&lt;br /&gt;
[[Image:Conversation dialog.png]]&lt;br /&gt;
&lt;br /&gt;
Once the creature has spoken its line, the player needs to be prompted to give some sort of response. The player could greet the Quest Giver, ask him a question, or choose to ignore him. To add these options, select the line you just added and &amp;quot;Insert line&amp;quot; three times. This will add three blue lines as children of the red one. In each of these lines' dialogue tabs, add the text of the response the player can give.&lt;br /&gt;
&lt;br /&gt;
[[Image:Conversation tutorial 1.png]]&lt;br /&gt;
&lt;br /&gt;
Here's how it looks in game once we've initiated this conversation:&lt;br /&gt;
&lt;br /&gt;
[[Image:Conversation tutorial quest giver speaks.png|600px]]&lt;br /&gt;
&lt;br /&gt;
The conversation can continue being built in this vein with one NPC response for each of the player's options and one or more player options branching out in turn. When the player runs off the end of the conversation it ends, sending him back to explore mode.&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* &amp;quot;Copy&amp;quot; and then &amp;quot;Paste as Link&amp;quot; allows conversation trees to loop or merge branches&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Thanks to this branching pattern it is possible for a conversation's volume to grow at an exponential rate, rapidly becoming very tedious to write. Worse, there could be many points within a conversation tree where the same lines might be spoken, leading to redundancy. This can be solved by &amp;quot;linking&amp;quot; lines to each other, allowing the conversation to jump from one branch to another or to loop back on itself to replay parts over again.&lt;br /&gt;
&lt;br /&gt;
In this example, we'll have the Quest Giver respond to the player's first option with &amp;quot;Excellent! I have a quest I need performed for me!&amp;quot;. At this point the player could respond with the same &amp;quot;Oh? What quests do you have in mind?&amp;quot; line that was an option initially, leading to the same response. Rather than duplicate the entire tree, select the existing &amp;quot;Oh? What quests do you have in mind?&amp;quot; line and copy it to the clipboard (control-C, or right click copy, or edit -&amp;gt; copy). Then select the new owner line and paste as link (control-shift-V, right click paste as link, or edit -&amp;gt; paste as link)&lt;br /&gt;
&lt;br /&gt;
[[Image:Conversation tutorial 2.png]]&lt;br /&gt;
&lt;br /&gt;
The linked line is shown in gray. To find out where a grey line links to, right-click on it and select &amp;quot;Jump to Target&amp;quot; (or just double click it). To find all the places the target line is linked to from, right-click on it and select &amp;quot;Find Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now both of these paths through the conversation will lead to the same line, wherein the Quest Giver tells the player that the hut behind him is full of monsters. We can add an option to the dialog after this where the player can accept the mission to slay them all, and now when he enters the hut to fight them there will be more of a story behind about how he came to that point.&lt;br /&gt;
&lt;br /&gt;
== Keeping track of quests via plots ==&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* Plots contain lists of flags for keeping track of quest status and other world events&lt;br /&gt;
* Each flag can also contain journal text for the player to read&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Now that we have a mechanism in place where we can assign a quest to the player we'll want some way to keep track of his progress. In Neverwinter Nights this was done using scripting directly, but in Dragon Age a new type of resource has been introduced that helps to simplify the process. These are &amp;quot;[[Plot]]s&amp;quot;. Go to the resource palette and create a new plot with the resource name &amp;quot;clear_the_hut&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A plot consists of a series of named flags that can be set to true or false. The intent is for these flags to represent significant accomplishments or developments in the plot, with the values being set in response to the player's actions. Each flag can also have an associated journal text, a block of text that is displayed in the  player's journal under the plot's title. Journal text is normally used to keep the player informed of his progress and remind him of important information he's discovered along the way.&lt;br /&gt;
&lt;br /&gt;
We'll need to give the plot a &amp;quot;Name&amp;quot; property, which will be seen by the player as the plot's title in the journal. This plot's name will be &amp;quot;Clear the Hut&amp;quot;. There are three significant landmarks in the course of this plot; the moment the player accepts the plot, the moment the player has succeeded in slaying all of the monsters in the hut, and the moment when the player reports back to the quest giver to receive his reward. We will therefore create three flags:&lt;br /&gt;
&lt;br /&gt;
*QUEST_ACCEPTED&lt;br /&gt;
*MONSTERS_SLAIN&lt;br /&gt;
*REWARD_RECEIVED&lt;br /&gt;
&lt;br /&gt;
Create flags by right-clicking on the plot editor and selecting &amp;quot;Insert -&amp;gt; Main Flag&amp;quot;, or by clicking on &amp;quot;Insert Main Flag&amp;quot; in the toolbar, or by selecting &amp;quot;Edit -&amp;gt; Insert -&amp;gt; Main Flag&amp;quot; from the menu bar.&lt;br /&gt;
&lt;br /&gt;
[[Image:Plot tutorial 1.png]]&lt;br /&gt;
&lt;br /&gt;
Each time a plot flag is set, that flag's journal text replaces the previous text that was in the journal for that plot.&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* The &amp;quot;Action&amp;quot; section of the &amp;quot;Plots and Scripting&amp;quot; tab of a conversation node allows plot flags to be set (made &amp;quot;true&amp;quot;) or unset (made &amp;quot;false&amp;quot;) when that line is finished&lt;br /&gt;
* The &amp;quot;Condition&amp;quot; section of the tab allows the line to be hidden or shown to the player based on the state of plot flags&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The easiest way to set a plot flag is in a conversation. When the player accepts the quest to slay the monsters in the hut, we'll want to set the &amp;quot;QUEST_ACCEPTED&amp;quot; flag of the clear_the_hut plot. Select the line where the player accepts the quest and then click on the &amp;quot;Plots and Scripting&amp;quot; tab. Under the &amp;quot;Action&amp;quot; section we'll want to select the clear_the_hut plot. It won't initially appear in the dropdown list since we haven't selected it before (the dropdown list contains recently-used resources), so click on the ellipsis button and select it from the list of all plot resources. Then, once the correct plot is accepted, select the &amp;quot;QUEST_ACCEPTED&amp;quot; flag. The default action is &amp;quot;set&amp;quot;, which will set the flag to true.&lt;br /&gt;
&lt;br /&gt;
Now when we reach this line in the conversation, the &amp;quot;QUEST_ACCEPTED&amp;quot; flag in the clear_the_hut plot will be set to true. This will also update the player's journal to show the journal text associated with that plot flag. You'll note that an &amp;quot;A&amp;quot; also appears in the icon for this conversation node, an indicator that this line of dialog has an action associated with it.&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* The first NPC (red) line that can be shown to a player will be; all subsequent NPC lines branching from the same node will be hidden&lt;br /&gt;
* Make sure the last child line of a node has no condition attached so that there will always be a default line to show the player&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Once the quest has been accepted, it makes no sense for the Quest Giver to offer it a second time. Indeed, if the player were to partially complete the quest and then accept it all over again, his progress through the quest would be disrupted and quite likely unexpected errors would slip into the game. Therefore, we are going to go back to the first line in this conversation and add a condition to it. Select the first line, go to the &amp;quot;Plots and Scripting&amp;quot; tab, and this time put the &amp;quot;clear_the_hut&amp;quot; plot in the ''condition'' section. Set the flag to &amp;quot;QUEST_ACCEPTED&amp;quot;, and set the condition to &amp;quot;is false&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:Conversation tutorial 4.png]]&lt;br /&gt;
&lt;br /&gt;
This means that this line of dialog will only appear if the quest has not yet been accepted. You'll note that a &amp;quot;C&amp;quot; appears in the node icon to indicate that this line of dialog has a condition attached. Since all of the other lines of dialog depend on this line appearing, including the offer of the quest and the line where the player accepts it, this means that the quest can only be accepted once; once it's been accepted the quest giver will not offer it again.&lt;br /&gt;
&lt;br /&gt;
However, this will now leave the quest giver with nothing at all to say. We'll want to give him a different line to say instead. Select the root node of the conversation tree, add a line, and you'll get a second &amp;quot;first&amp;quot; line for the quest giver to say. The game will always pick the first line that can be spoken, so the player will never see the line &amp;quot;Have you slain the monsters yet?&amp;quot; until after he has accepted the quest and the line &amp;quot;Ahoy! I am the Quest Giver!&amp;quot; becomes hidden.&lt;br /&gt;
&lt;br /&gt;
[[Image:Conversation tutorial 5.png]]&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* Player responses can also be made conditional, being hidden from the player if the condition fails.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Conditions can also be placed on player lines. In this case, we want the player to only be able to tell the quest giver that he's completed the quest once the monsters are actually dead. We'll be showing how the MONSTERS_SLAIN flag will be set up later, using scripting, but the details of how it is set are not important right now; we can set the conversation up to account for it and implement it later.&lt;br /&gt;
&lt;br /&gt;
Set the condition for the line &amp;quot;Yes, I have&amp;quot; to require the MONSTERS_SLAIN flag to be true. The subsequent response from the quest giver can then set the REWARD_RECEIVED flag to true.&lt;br /&gt;
&lt;br /&gt;
To prevent the player from accepting his reward multiple times, add a condition to the line &amp;quot;Have you slain the monsters yet?&amp;quot; to require REWARD_RECEIVED to be false. Finally, add a third line off of root for the quest giver to say once the quest has been confirmed completed and there's nothing more for him to do.&lt;br /&gt;
&lt;br /&gt;
[[Image:Conversation tutorial 6.png]]&lt;br /&gt;
&lt;br /&gt;
And there you have it, a simple interactive conversation that will affect and be affected by the world around it.&lt;br /&gt;
&lt;br /&gt;
== Simple stages ==&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* Stages define where characters stand and how the camera is positioned during a conversation&lt;br /&gt;
* A conversation without a stage will use a basic default camera positioning&lt;br /&gt;
* You need to define a stage for a conversation before you can give the actors animations&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
If you run through the conversation as it currently exists you'll find that all of the mechanics are there, but that the performance of our virtual actor leaves a lot to be desired - he simply stands there silent and motionless, staring at the player. The camera angle is also somewhat bland. This can be remedied by adding a [[stage]] to perform the conversation in.&lt;br /&gt;
&lt;br /&gt;
A stage is a set of locations where the participants in a conversation will be positioned, and locations where various cameras will be placed. Create a new stage resource and name it something informative, such as hut_exterior_quest_giver. You'll be presented with an empty, featureless stage. The stage editor window defaults to having four different views of the stage; if you want to change this you can find the setting for this under the &amp;quot;Tools-&amp;gt;Options&amp;quot; menu.&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* &amp;quot;place&amp;quot; objects are spots where the conversation's participants will stand&lt;br /&gt;
* The identity of the creatures occupying places is set in the conversation editor&lt;br /&gt;
* Each place should have a default camera selected. This camera is used by default when the creature occupying that place is talking.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Stages can be complex but in this case we'll keep it simple. Right-click somewhere near the center of the stage and insert a &amp;quot;place&amp;quot; object, and then again to insert a second &amp;quot;place&amp;quot; object. You'll create two blank-looking yellow figurines. These figurines will represent the two creatures who will be involved in the conversation, the player and the quest giver. You'll want to turn one of them to face the other and put them relatively close together.&lt;br /&gt;
&lt;br /&gt;
You'll then want to insert a camera for the conversation to use. Right-click, select insert, and select camera. Position the camera so that it has a view over the shoulder of one of the two figures and is looking at the other figure, a standard over-the-shoulder shot. You can adjust the camera more easily by setting one of the four views to be the camera's view; right-click on the frame, go down to the &amp;quot;camera&amp;quot; option, and select which of the cameras the frame should provide the view of. You can also select the &amp;quot;Safe Frame&amp;quot; option, which puts a border on the view showing only what will be visible in-game.&lt;br /&gt;
&lt;br /&gt;
[[Image:Stage tutorial 1.png]]&lt;br /&gt;
&lt;br /&gt;
For each place you'll want to define a default camera; this is the camera that will be used to view the creature standing in this place when that creature is talking in the game. Select the place and in the object inspector select &amp;quot;camera1&amp;quot; for the default camera.&lt;br /&gt;
&lt;br /&gt;
If you wish, you can put in additional cameras. In the conversation editor you will have options to select which cameras are active, and even to cut from one camera to another in the middle of a line. We won't do that yet, however; we currently want this to be as simple a stage as possible. A future tutorial will cover stages in more depth.&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* Once a stage resource is created, it must then be placed in the area editor&lt;br /&gt;
* Place the stage so that the conversation's participants won't have to be moved far&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Once the stage has been created, we'll need to place it in the area where the conversation is to take place. Open the hut exterior area in the area editor and go to the location where you've placed the Quest Giver. Find the stage in the resource palette, place it in the area, and you'll see the blank figures and the camera appear. There will also be a red flag similar to a [[waypoint]]; this marks the center of the stage and is useful for distinguishing them when there are many stages overlapping each other in an area. Position the stage so that the place where the quest giver will be standing is approximately where he is right now; it doesn't have to be exact, but if he changes location dramatically when the conversation starts it might be a bit jarring.&lt;br /&gt;
&lt;br /&gt;
[[Image:Stage tutorial 2.png]]&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* Assign the stage to the conversation in the conversation editor&lt;br /&gt;
* Then assign which conversation participants use which places defined by the stage&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Now that the stage has been placed, we can set the conversation to use it. Go back to the conversation editor, select the root node, and then select the &amp;quot;Cinematics&amp;quot; tab. There will be an option there to set a stage. Since we've never selected this stage before it won't be in the dropdown list, use the ellipsis button to select the stage from the available stage resources.&lt;br /&gt;
&lt;br /&gt;
Once the stage has been selected the two places that are part of the stage will be listed below. You'll want to assign them to the two participants in this conversation, OWNER and PLAYER.&lt;br /&gt;
&lt;br /&gt;
[[Image:Conversation tutorial 7.png]]&lt;br /&gt;
&lt;br /&gt;
== Gestures ==&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* Once a stage is set you can automatically generate gestures&lt;br /&gt;
* To generate gestures for all nodes in a conversation, select the root node and generate gestures for children&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Select the root node of the conversation and then click on the &amp;quot;Generate Gestures for Children&amp;quot; button (#35 on the toolbar, or in the right-click menu for the node, or in the edit menu)&lt;br /&gt;
&lt;br /&gt;
[[Image:Conversation toolbar.png]]&lt;br /&gt;
&lt;br /&gt;
This will run through all of the nodes beneath root and automatically generate some random gestures appropriate for a man standing and talking to someone. These gestures can be customized and fine-tuned, but this will be the subject of a separate tutorial.&lt;br /&gt;
&lt;br /&gt;
Now at last our actors are a little less wooden; they move around a bit, and the camera is in an interesting place. But their faces are still completely blank. This too can be easily remedied.&lt;br /&gt;
&lt;br /&gt;
== Voice-over and FaceFX ==&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* You need to have voice-over recorded to generate a facial performance with FaceFX.&lt;br /&gt;
* You can generate a basic placeholder voice-over automatically.&lt;br /&gt;
* See [[Voice-Over]] for information on how to record your own voice over.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Every line of dialog in Dragon Age can have [[voice-over]] recorded for it, which as one might imagine can be a daunting task. As a temporary measure during game development you can instead generate a temporary placeholder voice-over using a basic speech synthesis program. Under &amp;quot;Tools&amp;quot; select &amp;quot;Generate VO&amp;quot; and synthesized voice-over will be added to every line.&lt;br /&gt;
&lt;br /&gt;
[[Image:Conversation generate VO.png]]&lt;br /&gt;
&lt;br /&gt;
The synthesized voice over is very primitive, but it allows you to test the conversation and fine-tune other details without having to record voice as you go - you can leave voice recording until later, once you've finalized all the dialog. It also allows us to generate a facial performance using [[FaceFX]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Conversation generate FaceFX.png]]&lt;br /&gt;
&lt;br /&gt;
The most obvious component of facial performance is lip-synching. FaceFX generates lip-synching from the actual audio of the line, not just from the text of the dialog, so voice over needs to be generated before FaceFX can be run. FaceFX also adds emotional cues to the character's expression using an extension called RoboBrad. You can select the emotion to be added from the &amp;quot;Emotion&amp;quot; field in the cinematics tab for each line of dialog.&lt;br /&gt;
&lt;br /&gt;
[[Image:Conversation cinematics.png]]&lt;br /&gt;
&lt;br /&gt;
Once you've generated a facial performance, you can fine-tune it by selecting &amp;quot;Edit FaceFX&amp;quot; from the tools menu. This will open FaceFX with the selected line of dialogue loaded. We won't be doing this in this tutorial, but if you want to try it out and see what options FaceFX provides see the [[FaceFX]] page for more detail.&lt;br /&gt;
&lt;br /&gt;
[[Image:Conversation edit FaceFX.png]]&lt;br /&gt;
&lt;br /&gt;
To record your own [[voice-over]], you'll need some method for recording your voice (Windows comes with a basic sound-recording program but other more sophisticated programs are available free for download as well) as a wav file. The wav file must be recorded in or converted to PCM 24 khz 16 bit mono format, otherwise the process will fail and an unhelpful error message will be displayed.&lt;br /&gt;
&lt;br /&gt;
Real vo needs to be stored in ~installpath~\Dragon Age\addins\[moduleuid]\module\override\toolsetexport\[lineid]_m.wav - you can dump wav files anywhere under the toolsetexport directory and they will be picked up but for organizational purposes you should probably organize it into subfolders grouped by conversation.&lt;br /&gt;
&lt;br /&gt;
The wav file's filename must be of the form &amp;quot;[lineid]_m.wav&amp;quot; with [lineid] replaced by the ID number for the conversation line's string table entry. For example, if a conversation's line ID number is 344169, you'd save the voice over for this line as &amp;quot;344169_m.wav&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
When you select &amp;quot;generate vo&amp;quot; from the toolset, the toolset will first check the above directory for properly named files. Any wav files that are not present will have robo vo created, and any that do exist will be used as-is.&lt;br /&gt;
&lt;br /&gt;
A quick way to verify that voice over generation worked after processing: go to ~installpath~\Dragon Age\addins\[moduleuid]\core\override\toolsetexport\[conversationname].fsb and play it with windows media player. You will hear all of the vo lines for that conversation packaged together with whatever combination of real and robo vo all slapped together in one file.&lt;br /&gt;
&lt;br /&gt;
[[Category:Conversations]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Mdpaustin</name></author>	</entry>

	<entry>
		<id>https://datoolset.net/mw/index.php?title=Creature_tutorial&amp;diff=12942</id>
		<title>Creature tutorial</title>
		<link rel="alternate" type="text/html" href="https://datoolset.net/mw/index.php?title=Creature_tutorial&amp;diff=12942"/>
				<updated>2010-05-11T19:02:18Z</updated>
		
		<summary type="html">&lt;p&gt;Mdpaustin: /* Creating a monstrous creature's template */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Now the player can navigate around between the various areas you've set up, but he's got nothing he can actually do there. Other tutorials will cover how to add interactive quests, conversations, and other such things, but for now to make things just a little more interesting, we can add a couple of monsters for the player to slay. We'll put them in the hut_interior area so the player won't be instantly thrust into combat.&lt;br /&gt;
&lt;br /&gt;
== Creating a monstrous creature's template ==&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* The &amp;quot;Group&amp;quot; property determines who is hostile to whom&lt;br /&gt;
* &amp;quot;Resource Name&amp;quot; and &amp;quot;Tag&amp;quot; are only seen by developers &lt;br /&gt;
* &amp;quot;Name&amp;quot; may be seen by players &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
First, create a new creature template. (File-&amp;gt;New-&amp;gt;Creature) You can leave most of its properties at their defaults for starters. To make it fight the player when it sees him, set the &amp;quot;Group&amp;quot; property to &amp;quot;_Hostile&amp;quot;. Give it a name in the &amp;quot;Name&amp;quot; property (&amp;quot;Hut Monster&amp;quot; in this example) and change the &amp;quot;Appearance&amp;quot; property to something appropriate (a normal Hurlock in this case). You might also want to add a head and eyes. Set them to whatever you find suitable (in this case &amp;quot;Hurlock&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
[[Image:Tutorial hut monster.png]]&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* Put weapons in inventory and set them as &amp;quot;equipped&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
To make our monsters a bit more of a challenge for the player to fight, we'll add a sword to the creature's inventory and set it as &amp;quot;equipped&amp;quot;. This will put the sword on the creature's back, where it will draw it from when it enters combat. To prevent the player from being laden down with hundreds of looted swords over the course of the game we'll leave the &amp;quot;Droppable&amp;quot; and &amp;quot;Stealable&amp;quot; flags unset - when the creature dies the sword will be unrecoverable.&lt;br /&gt;
&lt;br /&gt;
[[Image:Tutorial inventory.png]]&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* &amp;quot;Package&amp;quot; determines what sorts of abilities the creature will have&lt;br /&gt;
* &amp;quot;Package AI&amp;quot; determines how it will behave&lt;br /&gt;
* &amp;quot;Rank&amp;quot; determines how strong the creature will be and how much loot it drops&lt;br /&gt;
* &amp;quot;Treasure category&amp;quot; determines what type of loot it drops&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Finally, we'll want to set the creature's stats so that it will be the correct level of toughness to challenge the player when he meets him. The game has two basic parameters that need to be set for this; package (determines what general sorts of abilities the creature has) and rank (determines how good the creature is at what it does, and how tough it is).&lt;br /&gt;
&lt;br /&gt;
We set the general package type to &amp;quot;Darkspawn&amp;quot; (this tells the game what general type of creature it is), the package to &amp;quot;Darkspawn weapon + shield (Hurlock)&amp;quot; since that's the closest match to a Hurlock weilding a one-handed sword that's available, and the package AI to &amp;quot;AIP_DS_WPN_SHLD_Hurlock&amp;quot; (since this is the only AI available for the selected package the choice is obvious. For some creatures there may be other AIs available, for example making the creature behave in a more &amp;quot;cowardly&amp;quot; fashion).&lt;br /&gt;
&lt;br /&gt;
The rank of the creature tells the game's autoscaling system how good the creature should be at using its abilities and how tough it is. Since we want these creatures to be an interesting fight but not a serious challenge for our demo, we'll set the hut monster to &amp;quot;Critter&amp;quot;. Rank also determines the quality of the treasure that is automatically generated for the player to loot from the monster's corpse; tougher monsters have higher-quality loot. To determine what ''kind'' of loot is generated, set the treasure category property. Different types of monsters will generally carry different types of loot, for example the Darkspawn are more likely to have vials of poison in their possession.&lt;br /&gt;
&lt;br /&gt;
Creatures in Dragon Age have a level range that scales to the player's current level.  For example, if a darkspawn had a level range of 3-8, then it would spawn around level 4 if the player encountering it was level 4.  The level range defines the creatures minimum and maximum levels for these encounters. The default level range is 0-0, and must be changed to a positive number if the creature is hostile to the player at any point.&lt;br /&gt;
&lt;br /&gt;
Note that the level of creatures spawned in a given area is further limited to the range specified in [[areadata.xls]]. Unless the area variable AREA_ID is set manually in the toolset to a valid line id in that table, creatures spawn at level 1.&lt;br /&gt;
&lt;br /&gt;
== Placing creatures ==&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* See [[3D control]] for camera and movement controls &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Now that we have the basic template for the horrible hut monsters defined, we can place some in the hut's interior. The creature we've designed in the creature editor is a template from which many identical copies can be spawned and placed within the area, much like the placeable doors we've inserted previously. Open the area in the area editor, select the hut monster from the palette, and click on the area in the places you want to put copies of the creature.&lt;br /&gt;
&lt;br /&gt;
[[Image:Tutorial hut interior.png]]&lt;br /&gt;
&lt;br /&gt;
We've put three monsters in the hut. If we play the game now the monsters will attack the player as soon as they perceive him, which the small size of the hut will make almost instantaneous. Once slain the player will be able to loot their corpses for a small amount of treasure.&lt;br /&gt;
&lt;br /&gt;
If you want to customize the individual monsters you've placed, you can right-click on the creature (either in the area map or on the area's object list to the left of the area display) and select &amp;quot;properties&amp;quot; from the menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:Tutorial individal creature properties.png]]&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* Some creature properties can be customized on a per-creature basis, others are fixed with whatever value you set in the creature template it's based on.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
This will open the object inspector with a subset of the creature's properties that can be customized on a per-creature basis. Not all of the properties of the creature can be modified; some of them are defined by the template and can only be modified there. The properties that can be modified on a per-creature basis are:&lt;br /&gt;
&lt;br /&gt;
*Active (useful for placing monsters that only &amp;quot;appear&amp;quot; later on when a script changes their active status)&lt;br /&gt;
*Interaction Radius (if not zero, overrides the default distance the PC needs to be to interact with this object)&lt;br /&gt;
*Platform (used when developing a game that can be ported to multiple different platforms with different capabilities)&lt;br /&gt;
*Rank (how tough the monster is, described above)&lt;br /&gt;
*Tag (a label the creature can be referred to by with scripting)&lt;br /&gt;
*Team (an identifier for grouping several monsters together, useful for keeping track of quests and for coordinated behavior)&lt;br /&gt;
*Trackable&lt;br /&gt;
*Treasure Category (type of treasure dropped, described above)&lt;br /&gt;
*Variables&lt;br /&gt;
*WeaponsDrawn&lt;br /&gt;
*Orientation (Don't bother manually setting orientation and position unless you need high-precision control, the area editor's positioning controls are generally easier)&lt;br /&gt;
*Position&lt;br /&gt;
&lt;br /&gt;
So, for example, we could pick a particular one of these hut monsters and make him tougher than his fellows, or give him a different team ID (we'll see one way team IDs can be used later in the tutorial when we set up a quest for the player to slay all three of the monsters we've put in the hut).&lt;br /&gt;
&lt;br /&gt;
== Creating an NPC quest giver ==&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* Some humanoid creatures don't have clothing built in and need it to be added to their inventory and equipped for it to appear.&lt;br /&gt;
* Some humanoid creatures can have their appearance customized by selecting head [[morph]]s.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The module is now vaguely playable, but not really all that interesting - it's hard to tell a story with nothing but area transitions and meaningless combat. The easiest way to add some depth to the adventure is to include some people that can be talked with. Conversations are complex and will be dealt with in a separate section of the tutorial, but we can lay the foundation here by creating and placing a neutral human to talk to. By putting him in the &amp;quot;_Neutral&amp;quot; group he won't attack the player and won't get involved in the player's fights. If he were in the _Friendly group he'd attack any _Hostile-grouped creatures he perceived, but for now we'll be putting him in an area with no other creatures so that won't make a difference.&lt;br /&gt;
&lt;br /&gt;
The default new creature is human, but is unclothed and unequipped. It also has a very bland default appearance. To dress the creature we'll need to create some clothing as done in the [[Item tutorial]], add it to the creature's inventory, and equip it (if you cannot see your newly-created items in the inventory dialog, try checking them in first).&lt;br /&gt;
&lt;br /&gt;
[[Image:Tutorial quest giver inventory.png]]&lt;br /&gt;
&lt;br /&gt;
Next we're going to want to replace that bland default head with a different appearance. Dragon Age allows head appearance to be customized through the use of head morphs, a process with sufficient sophistication and scope that there's a separate editing tool dedicated to it. We won't cover that in this tutorial, however, and instead simply use one of the prefabricated head morphs that comes with the game.&lt;br /&gt;
&lt;br /&gt;
Under the &amp;quot;Appearance&amp;quot; section of the object explorer is the &amp;quot;Head Morph&amp;quot; property. When you click on the ellipsis ([[Image:ellipsis.png]]) button you'll be presented with a file picker to choose a head morph from. Once you've selected a head morph most of the other options under Appearance will be disabled, since the head morph customizes all of those parameters in a much more fine-grained manner.&lt;br /&gt;
&lt;br /&gt;
Since this NPC is not intended to ever enter or even respond to combat, the package and scaling is not particularly important. It can be left with the defaults.&lt;br /&gt;
&lt;br /&gt;
{{sidebox|&lt;br /&gt;
* There are several different ways to make a creature &amp;quot;permanent,&amp;quot; if needed&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Special&amp;quot; section is relevant in this case, on the other hand. Since this NPC is going to be the source of our quest, it wouldn't do to allow even the possibility that he might get himself killed early. If you set the &amp;quot;Plot&amp;quot; flag to true the creature will be immune to damage by any hostile effect. The &amp;quot;Immortal&amp;quot; flag allows the creature to be damaged, but it will never lose its last hit point - useful if you want a creature to get involved in a fight in a realistic manner but guarantee that it will survive the encounter. &amp;quot;No Permanent Death&amp;quot; tells the game engine not to dispose of the creature's body after it's killed and is used primarily for the player's companions.&lt;br /&gt;
&lt;br /&gt;
Here is the NPC in his final form, ready to be placed in the hut_exterior area to tell the player about the monsters inside:&lt;br /&gt;
&lt;br /&gt;
[[Image:Tutorial quest giver.png]]&lt;br /&gt;
&lt;br /&gt;
== [[Ambient behaviour]] ==&lt;br /&gt;
&lt;br /&gt;
If you spawn an NPC using the above technique, he/she will stand still with some idle animations. If you want the NPC to perform some ambient animations like crossing arms, or sitting at a table (these are looped, so no one-shot animations can be assigned here), then you need to do 2 things. Go into the Variables, and look for 2 locals. First you need to set is AMBIENT_SYSTEM_STATE. The default value is 0, which corresponds to disabled, so no custom ambient animations other than the idle animations will be played. Set this to 1, which enables custom ambient animations. The second local variable is called AMBIENT_ANIM_PATTERN. This needs to be an integer that corresponds to an animation ID (first column) in ambient_ai.xls. Just open the spreadsheet, look up the animation you want your NPC to have (they have very descriptive labels), and put its ID into AMBIENT_ANIM_PATTERN. Note: the toolset has no way to show you ambient animations, you will only see these in-game.&lt;br /&gt;
&lt;br /&gt;
Note: if you set the variables in the creature editor, all instances of the creature will have the custom animations assigned to them by default. You may want to do this in the area editor for this reason where you may assign custom ambient animations to each individual creature instance in that area. &lt;br /&gt;
&lt;br /&gt;
Next is the [[Conversation tutorial]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Creatures]]&lt;/div&gt;</summary>
		<author><name>Mdpaustin</name></author>	</entry>

	</feed>