Sunday, May 30, 2010

Stages and Previews

I'm sure I've extolled the virtues of stages in Dragon Age modding previously, as they are an incredible useful way to save a lot of work. Using these, it is possible to have the toolset automatically generate poses, gestures and camera cuts for your conversations.  Another excellent tool is being able to select an NPC line, then go to the edit menu and select "Convert Line to Cutscene", which enables you to make short cutscenes that blend in seamlessly with the dialogue as it is happening.

When using stages, it is useful to be able to preview the dialogue without going into the game.  So select the root node of your conversation and click on the cinematics tab, and select the specific stage blueprint you wish to use. You also need to type out its (unique) tag when you're using multiple copies of the same stage for different conversations within the same area. Finally, fill in the relevant positions for the various actors in your conversation. Note that your choices for both the cinematic and preview tab (which we'll be using next) will propagate to all children nodes, meaning you can set up the entire conversation by just editing the root node. However, you can change the stage (and preview) for specific nodes under the root node should you so desire.

Once this is done, you can then set up the preview tab so that you can configure a stage to view the conversation inside the toolset.  However, this part is a little bit buggy in that it doesn't deal with updates to the stage or its location within its parent area.  If you're using a generic stage and trying to position it such that you have particular items in the background, this can be a significant problem. The trick is that using "First Match" doesn't update the stage location for your preview, as it seems to remember the location the stage was in when you first selected it.  It also doesn't update the numerical value of the stage's location in the drop down menu.

As such, if you adjust your stage's location in the area, while still in the area editor with your stage selected, highlight its location parameter, hit Ctrl-C to copy it to the clipboard, and remember its angle value (to the first decimal point should be all the granularity you need).  Then go back into the preview tab of your conversation, Ctrl-V paste the location over the existing location, and then manually edit the angle.  You should also select the appearance of your various actors in the preview screen, particularly if your dialogue involves anyone not of "standard" human/elf height.

With all of that done, you can now right click on lines in your dialogue tree and hit "Preview Line".  You'll also want to select the safe-frame button (the square below the playback buttons) so you can see what it will actually look like in the game itself.  And no, I have no idea why that isn't set as the default option, as I can't see any time when you wouldn't want it to be on. Even in an ideal world where I have multiple 24" monitors on which I can float various windows, I'd still want to see the framing of the shot.

I should quickly cover the "auto-generation" I mentioned earlier.  Again, we want to go back to the root node. But this time you want to right-click on it. The three options you're interested in are: "Generate Poses for Children", "Generate Gestures for Children", and "Process Cameras for Children". Voila! Instant semi-cinematic dialogue.  Unfortunately, the system isn't perfect, and on some lines you'll have NPCs gesturing (sometimes wildly) when they aren't talking, and you might not like some of the camera shots... but it still saves a lot work you'd otherwise have to do manually.

One thing I'm still confused about with stages is the use of "functional shots" as described in the wiki. I have no idea how these are implemented, despite the information presented there. If anyone knows anything more about these, or has used them, I'd love to hear from you.


  1. I need to start automating the gestures, camera shots, etc. I think I held off because I wasn't sure if I was going to have VO in the game, but I guess if I don't like it, I can override it with a manual one, or just pull it out, right?

    Also, converting a line to a cutscene is something I "definitely" need to start using more!

    Good write up :)

  2. Changing poses/gestures is as easy as going into the animation tab and removing (or modifying) them, and you only really have to worry about the speaker. Poses appear to simply be "weightshift_x" animations, so generally there's nothing lost by keeping them in. The cameras you can easily change from the cinematics tab, but most of the time I find it does a pretty good job of picking the "right" shot.

    One thing to note is that if you DO change anything after auto-generating, it will automatically turn the "locked" flag on, meaning that if you use auto-generate again, it won't override your changes.

    I also need to use convert line to cutscene more! That said, I'm unfortunately still not writing a whole lot of dialogue at the moment...