Choreography creation
This tutorial covers the creation of choreographed scenes (or simply scenes) in Source engine games or mods. It intends to carve a path through the choreographing process, and when it is complete, it will enable you to create a scene from scratch.
Note, however, that it is not a one-stop solution. Not all techniques or interface features are covered, although you can be sure that anything omitted is optional.
- Fix:Extract this file to
sourcesdk\bin\game\
, wheregame
is the name/abbreviation of the game you're working on, e.g.,source2007
orep1
.
Definitions
- Choreography
- A set of instructions stored in a VCD "scene" that dictate scripted or semi-scripted behavior for NPCs, which may include any of the items below as well as interactions with the world in general.
scenes.image
before they can be used.- Actor
- An NPC involved in a scene.
- Speech
- Choreography should be used for all but the very simplest of NPC speech. A scene defines when the Speech Event takes place, which is vital for synchronizing expression and animation data with dialogue.
- Files should be 4-bit Microsoft ADPCM ("MS ADPCM") monaural WAV files at 44 kHz (44100 Hz). Uncompressed 16-bit PCM can also be used, but this will quadruple file size with negligible quality improvements.
- Lip synch
- Lip synch data (Phonemes) are stored in the raw WAV speech file rather than the choreography VCD for portability, reliability, and localization reasons, but they are still created with Faceposer. While Faceposer can automatically extract lip synch data, better results can usually be attained by hand-tweaking its output.
- Facial expressions
- Much effort has been put into the Source engine's facial animation technology, and the result is a flexible, portable, slider-based system. Facial expressions (Flex Animations) are created in Faceposer and stored either directly in a scene's
.vcd
, or in an external.txt
file as reusable Expressions. - Skeletal animations
- Faceposer can be used to play and tweak the skeletal animation of its actors. They either can be blended together and manipulated (Gestures), or take absolute control (Sequences). Note:Faceposer cannot create skeletal animation—that requires a 3D modelling package. See Category:Modeling.
- Blend animations / Blend gestures
- Small skeletal movements that only make sense when blended with another animation. They are often used to add variety or character to bigger animations.
Before You Start
There are several limitations you should be aware of before you begin creating choreography:
- You are a slave to your voice actor's talents. Unless you are mixing it up a little and having recorded dialogue follow choreographed animations, or making a scene without speech, you will always be following your voice actors' cues and delivery. If the written and/or recorded dialogue is bland, you will have a hard time creating choreography that isn't either ridiculous or bland itself.
- You are limited to your digital actors' animations. While Faceposer can manipulate Gestures with aplomb, it cannot create new ones. Valve's stock actors in particular suffer from limited animation sets: their libraries have been designed around what Valve used, not what third-party choreographers might need. Prominent actors like Alyx will probably have what you are looking for, but minor or generic characters will present problems without custom animation work. Until and unless Valve provide a wider set of stock animations, serious choreographers should learn animation skills or join a mod team.
- You will need a big enough screen. Faceposer's interface elements are quite large, and a lot of the time you will want to have several on display at once to be able to see what you are doing. 1024x768 is the absolute minimum window size for choreographing.
Tutorial Structure
This tutorial will cover all aspects of choreography creation, from the drafting of basic structure to its implementation in a gameplay environment. There is a menu in the top right of each page for navigation, but this introduction also includes a complete tutorial map for quick reference: