Choreography creation/Setting up your scene

From Valve Developer Community
Jump to: navigation, search

Jumping straight in might help you learn isolated skills, but it is not productive in the longer term. To make your life easier, you are going to want to plan your moves before you commit the time and effort.

Organise your dialogue

The chances are your raw dialogue recordings (.WAVs) will need some alteration and management before they can be used in FacePoser. You will need an audio editing tool like Goldwave or Audacity to perform some of these operations.

Every .WAV should be a 4-bit Microsoft ADPCM, mono .WAV file at 44100Hz (44KHz)
You can also use 16-bit PCM, which provides slightly better quality but produces files around four times larger.
No .WAV should contain more than one sentence
This helps FacePoser create lip synch data, reduces in-game overhead slightly, and avoids close captions that fill too much of the screen. If you have an incredibly long sentence in your scene, consider splitting it up. If you have a series of extremely short sentences on the other hand, it may be worth grouping some of them together.
Every .WAV should have a Soundscript entry
Soundscript entries are audio definitions that provide a useful interface between Source and the raw file. You can read about the system's features in its article. A sample soundscript entry is provided below.
.WAVs for a scene ought to be stored in a single folder
Purely an organisational tip. Prevents confusion and overwriting, and makes keeping the files together easier.
.WAVs should not have silence before or after their content
There is no technical reason for this beside filesize optimisation. Gaps between dialogue should be managed at a choreographical or programmatic level.

Sample soundscript entry

<Scene>.<Actor>_<file_summary>
{
	channel		CHAN_VOICE
	soundlevel	SNDLVL_TALKING
	wave		"*<relative path>"
}

Avoid spaces in sound names. The asterisk before the wave's path is intentional.

Create a scene framework

Creating a Speak event with a soundscript entry.

A scene framework will let you spot high-level problems before they are buried under tens of events. It consists of creating Actors, Channels, and crucially laying down and tweaking the timing of speech events.

Create the VCD file that will store your scene with FacePoser's Choreography > New... menu option. Give it a memorable name, and place it in a suitable subfolder if necessary. You will be prompted for an Actor name: see the first step to add it. You will not need to follow the submenu instructions unless you are adding further Actors.

Warning.pngWarning:Never use the " character in Actor, Channel or Event names. Doing so will corrupt your scene, and you will have to open it with a text editor and alter the problematic segments manually.

You will notice the bottom third of the FacePoser window light up: this is the Timeline, on which all Events in your scene will be positioned and undergo basic manipulation.

Creating Actors and Speech Events

  1. Right click the Timeline somewhere and find the New submenu. Click Actor... to add your first Actor. It is important to note that the actor name you are prompted to enter is not simply cosmetic: it defines the entity targetname of the actor who should perform the scene in-game. You can use the direct entity name if you know it, but if you don't !target1 through to !target8 are semi-dynamic names that are defined per-map. You can also use !picker to have whatever actor the player is looking at play the scene, if you can trigger things at an appropriate time.
    • !caller, !activator and the other generic targetnames do not currently function as Actor names in Valve's games – but a mod could easily add that functionality.
  2. What is cosmetic is the next addition you must make: a Channel. Make one by now by opening the context menu over an Actor and clicking New > Channel. Name it ‘Speech', or something to that effect. Channels are purely for separating your scene into manageable chunks, and unless you count the ability to disable an entire channel by double-clicking on its name do not affect a scene's playback. Despite that fact, they are all but essential to keep your scene organised.
  3. Now right-click in your new channel and select the second option from the expanded context menu, WAV file.... Add a descriptive name, perhaps the key words from the line of speech you are adding, then follow one of these options:
    1. If added your .WAVs to the mod soundscript you will find them in the dialogue's list control. Find the precise entry you want either by manually scrolling and/or typing the first letter, or by using the third text box, Filter, to run a search.
    2. If you did not add a soundscript entry you must manually type the filename of the .WAV you want, relative to mod/sound/: so for a sound files sitting directly in the /sound folder you would enter only the filename.
    • Note that you won't be able to preview a sound (either by double-clicking in the list or using the Play Sound button) if you are entering a raw filename, and that the Open Source button will only work if you have en entry from a non-GCF (i.e. custom) soundscript selected.

When you click OK the Speech Event will be created, and will automatically take on the correct length in the timeline. There will be several pieces of information underneath the main event bar, but they probably won't be of much interest to you, so hide them by clicking on the grey arrow to the extreme left of the channel.

Tweaking speech timing

Tweaking the timing of the speech events is an important process that helps eliminate awkward pauses or unintended interruptions. You can drag an event bar left or right to change the sound's position, and the play button in the top left of the Timeline will help you judge how much more adjustment is needed. If you need to change timing in an early part of the scene, you can use the Select/Deselect > All events after event context menu item, or one of its variants, to move many events in one operation.

You can alter the volume of soundscript entries from the speech event dialogue, if you need to. Note that this will alter the script entry itself - it isn't an override. The sound file itself won't be changed, however. Accepted values range from 0 to 1 (default equivalent to VOL_NORM).

If you need to play a specific part of the scene, right-click in the Scrubber area, above the actors and channels, to create start and end markers. Wipe them with a left-click when you are done.

Linking the scene to its map

If you know the precise map in which the scene will be played, you will find it useful to link the two through FacePoser. Like creating channels this only affects the FacePoser interface, and will not restrict or alter your scene in any way: it merely provides a list of entity targetname values in various useful locations. Maps are linked with the Associate .bsp (<mapname>) command, available at the end of the Timeline context menu. The currently associated map is displayed in the bottom right corner.

Note that you cannot currently disassociate a map without hand-editing your VCD in a text editor.

Analyse your dialogue

Alas, poor Alyx!

Before you go any further, listen carefully to the dialogue you will be choreographing. Try to extract what the character is thinking and feeling from the voice actor's delivery, and consider how your digital actor might reinforce that pattern of stresses and tones with his or her movements and expressions.

This area of choreographing is to all intents and purposes acting; the only difference is that it is not you who will be giving the final delivery. You will probably find it helpful to stand in front of a mirror and experiment with the various expression and gesture possibilities. When doing so, imagine that it is you delivering the lines, in the situation that your actor will be in. If you can make yourself believe momentarily that you have the same context, things will come naturally – if you can't then you will have a much harder time theorising a strong performance, but keep trying regardless.

Remember during all this that you are trying to give movement to the voice actor's dialogue. Look for the patterns of his or her speech, and try to not only follow but exceed them – use your entire body and a wide range of expressions if you can. Furthermore, you should take into account tone as well as meaning. If the voice actor loudly stresses a word widening your actor's eyes and leaning back can be a suitable response, but if the stress is quiet you would probably better reinforce it with the eyes narrowing, a slight hunching forward and a hand motion. It is also important to try to remember how other characters may react to someone else.

To learn these tricks is to learn to act, and vice versa; like mapping and architecture. If you are serious about choreography, drama courses of some sort will directly improve your work.

Choose your Actors

There are two main factors which need consideration when choosing (or possibly designing) actors for your scene.

  • Does the actor suit the voice? The most obvious example of this is male/female, but there are also many subtleties that won't immediately smack you in the face when you hit Play. If the voice actors gives a gentle, deep delivery for example, Dr. Breen would be a good choice for both his grandfatherly appearance and classical attire. A rough and deep delivery would be well-performed by Grigori however, and if the voice actor sounds young and vibrant Alyx or one of the fresher-faced Citizens would best play the part. There isn't much that can be said on this subject from this tutorial: you must make a value judgement of your own based on your particular source material.
  • Does the actor have an appropriate animation library? One of the few limitations in FacePoser is its inability to create new body animations. While facial expressions can be constructed from scratch, body animations must be constructed and precompiled into the actor's model with a dedicated 3D animation tool. For this reason, unless you either know an animator or can animate yourself, you must be very careful not to pigeonhole yourself with a restrictive animation set – and frustratingly, the animations of all stock characters are based on what Valve used, not what choreographers might need. This decision takes equal if not greater precedence than choosing an actor who has the correct appearance!

When you have decided on suitable Actors, load them into FacePoser with File > Load Model.... You can have any number of models open at once; they are displayed in a series of tabs the lower right corner of the window.

Handling multiple Actors

If you have multiple Actors and models, you can have FacePoser display everyone in the 3D View at once. There are two parts to this process:

  1. Associate each Actor with his or her intended model. Right-click anywhere in the Actor on the Timeline and choose the last option on the menu, Associate .mdl with <Actor>.
  2. Right-click on one of the model tabs and select Show All.

You can now either use the Control Panel's 'Model Spacing' slider (you may need to extend the dialogue to the right) or shift+left drag each model individually to arrange them in the viewport. Don't forget that you can resize the 3D View like any other dialogue.

Place Event Tags

Event Tags in the Timeline

Once you have your scene framework created and have a rough idea of the performance you want to produce, there is only one more piece of preparation before work can begin in earnest. Go through your scene adding Event Tags at every point of interest: when the voice actor reaches a stressed word, when you want a digital actor to change animation in a way that other actors should react to, and wherever else you will need to precisely synchronise Events in the Timeline.

The tags are global markers that appear whenever you are working on any timeline, including the main Timeline itself. Like Channels, they are cosmetic but invaluable. Note that you can currently only place Event Tags on Events; they cannot be placed in empty sections. They are created with the second item on an Event's context menu, the misnamed Timing Tag... (Timing Tags are used in Gestures). Right-click at the point where you want the Event Tag to be created, click the option and choose a short and memorable name. If you missed the precise point you wanted, you can drag the tag up and down the Event after it has been created; look for the relevant cursor image.

Tags can be deleted through the Delete context submenu. Here, they are called 'Relative Tags'.



Next: Creating Events