Difference between revisions of "Choreography creation"

From Valve Developer Community
Jump to: navigation, search
(Created, let's hope I finish this one day...)
 
m (made part more understandable)
 
(62 intermediate revisions by 16 users not shown)
Line 1: Line 1:
This tutorial covers the creation of choreographed scenes (or simply '''scenes''') in Source engine games or mods.
+
{{otherlang2
 +
|ru=Choreography_creation:ru
 +
}}
  
==Definitions==
+
{{choreotut}}
  
[[Image:Alyx_choreographed.jpg|thumb|250px|Episode One introduced version two of Source's powerful facial animation system.]]
+
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.
 +
 
 +
{{bug|[[Faceposer]]'s UI icons are broken. To fix them, extract [http://steamreview.org/external/vdc/faceposer-icons.zip this file] to:
 +
 
 +
*<code>sourcesdk\bin\ep1\</code>
 +
*<code>sourcesdk\bin\source2007\</code>
 +
*<code>sourcesdk\bin\orangebox\</code>}}
 +
 
 +
__TOC__
 +
 
 +
== Definitions ==
 +
[[Image:Alyx_choreographed.jpg|thumb|250px|Episode One introduced version 2 of Source's powerful facial animation system.]]
 
   
 
   
 
;Choreography
 
;Choreography
:a set of instructions stored in a '''.[[VCD]]''' file that dictate scripted or semi-scripted behaviour for NPCs, including speech, lip syncing, facial expressions, and full body and blendable animations. By combining some or all of those components, we create a choreographed scene.
+
:A set of instructions stored in a '''.[[VCD]]''' "scene" that dictate scripted or semi-scripted behaviour for NPCs, which may include any of the items below as well as interactions with the [[world]] in general.
 +
{{note|VCD files must be compiled into {{ent|scenes.image}} before they can be used.}}
 +
;Actor
 +
:An NPC involved in a scene.
 
;Speech
 
;Speech
:Choreography should be used for all but the very simplest of NPC speech. A scene defines when the speech takes place, which is vital for synchronising expression and animation data with dialogue. Speech files should be 16-bit, 44kHz mono .WAV files.
+
: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 ("MSADPCM") mono .WAV files at 44kHz (44100Hz). You can also use uncompressed PCM if you don't mind large filesizes.
 
;Lip synch
 
;Lip synch
:Lip synch data is stored in the raw .WAV speech file rather than the choreography VCD for portability, reliability and localisation reasons, but is still created with FacePoser. While FacePoser can automatically extract lip synch data ('''Phonemes'''), better results can usually be attained through hand-tweaking.
+
:Lip synch data ('''Phonemes''') are stored in the raw .WAV speech file rather than the choreography VCD for portability, reliability and localization reasons, but 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
 
;Facial expressions
:Much effort has been put into the Source engine's facial animation technology, and the result has been a flexible, portable, slider-based system. Facial expressions ('''Flex Animations''') are created in FacePoser and stored either directly in a scene's .VCD, or reusably in an external .TXT file ('''[[Expression Creation|Expressions]]''').
+
:Much effort has been put into the Source engine's facial animation technology, and the result has been a flexible, portable, slider-based system. Facial expressions ('''[[Flex animation|Flex Animation]]s''') are created in Faceposer and stored either directly in a scene's .VCD, or in an external .TXT file as reusable '''[[Expression Creation|Expressions]]'''.
;Full body animations
+
;Skeletal animations
:FacePoser is used to control the animations of a scene's NPCs. Animations can be seamlessly blended, have their intensity altered, and even have their playback speed changed at any time ('Gestures'), or take complete and uncompromised control for their duration ('''Sequences''').
+
: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]].}}
;Blendable animations
+
;Blend animations / Blend gestures
:While implemented identically to full-body animations, blendable animations ('''Blend Gestures''') are small movements that can be layered above Gestures to add more depth to an animation without losing flexibility.
+
:Small skeletal movements that only make sense when blended with another animation. They are often used to add variety or character to bigger animations. {{tip|[[Dr. Breen]]'s laughing animation from the climax of Half-Life 2, <code>b_bg_laugh</code>, is a blend gesture. Viewed in [[HLMV]] it can be seen to be no more than the upper body jolting slightly.}}
:An example of a Blend Gesture is [[Dr. Breen]]'s laughing animation from the climax of Half-Life 2, <code>b_bg_laugh</code>. Viewed in [[HLMV]] it can be seen to be no more than the upper body jolting slightly.
 
  
==Before you start==
+
== Before you start ==
 +
[[Image:faceposer_multiactors.jpg|250px|right|thumb|Faceposer playing back a complex Half-Life 2 scene.]]
  
[[Image:faceposer_multiactors.jpg|250px|right|thumb|FacePoser playing back a complex Half-Life 2 scene.]]
+
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.
  
There are several limitations you should be aware of before you begin creating choreography:
+
== Tutorial structure ==
*'''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 his or her cues and delivery. If your written and/or recorded dialogue is bland, you will have a hard time creating choreography that isn't either ridiculous or bland itself. If you find spotting 'good' dialogue difficult, it's because you've never tried with anything bad…
+
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:
*'''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.
 
  
==Tutorial structure==
+
#[[Choreography creation|Introduction]]
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 page also includes a complete tutorial map for quick reference:
+
#*[[Choreography creation#Definitions|Definitions]]
*[[Choreography creation|Introduction]]
+
#*[[Choreography creation#Before_you_start|Before you start]]
**[[Choreography creation#Defentions|Defentions]]
+
#*Tutorial structure
**[[Choreography creation#Before_you_start|Before you start]]
+
#'''[[Choreography creation/Setting up your scene|Setting up your scene]]'''
**[[Choreography creation#Tutorial_structure|Tutorial structure]]
+
#*[[Choreography creation/Setting up your scene#Organise_your_dialogue|Organise your dialogue]]
*[[Choreography creation/Planning your scene|Planning your scene]]
+
#*[[Choreography creation/Setting up your scene#Create_a_scene_framework|Create a scene framework]]
**[[Choreography creation/Planning your scene#Organise_your_WAVs|Organise your WAVs]]
+
#*[[Choreography creation/Setting up your scene#Analyse_your_dialogue|Analyse your dialogue]]
**[[Choreography creation/Planning your scene#Create_a_scene_framework|Create a scene framework]]
+
#*[[Choreography creation/Setting up your scene#Choose_your_Actors|Choose your Actors]]
**[[Choreography creation/Planning your scene#Analyse_your_dialogue|Analyse your dialogue]]
+
#*[[Choreography creation/Setting up your scene#Place_Event_Tags|Place Event Tags]]
**[[Choreography creation/Planning your scene#Place_Event_Tags|Place Event Tags]]
+
#'''[[Choreography creation/Creating Events|Creating Events]]'''
*More to come...
+
#*[[Choreography creation/Creating Events#The_Timeline|The Timeline]]
 +
#*[[Choreography creation/Creating Events#Event_creation_and_manipulation|Event creation and manipulation]]
 +
#*[[Choreography creation/Creating Events#Ramp_manipulation|Ramp manipulation]]
 +
#*[[Choreography creation/Creating Events#Event_types|Event types]]
 +
#*'''[[Choreography creation/Creating Events/Body animation|Body animation]]'''
 +
#**[[Choreography creation/Creating Events/Body animation#Source.27s_animation_technology|Source's animation technology]]
 +
#**[[Choreography creation/Creating Events/Body animation#Types_of_animation|Types of animation]]
 +
#**[[Choreography creation/Creating Events/Body animation#Finding_an_animation|Finding an animation]]
 +
#**[[Choreography creation/Creating Events/Body animation#Timing_Tag_manipulation|Timing Tag manipulation]]
 +
#*'''[[Choreography creation/Creating Events/Facial expressions|Facial expressions]]'''
 +
#**[[Choreography creation/Creating Events/Facial expressions#Facial_animation_types|Facial animation types]]
 +
#**[[Choreography creation/Creating Events/Facial expressions#Creating_static_Expressions|Creating static Expressions]]
 +
#**[[Choreography creation/Creating Events/Facial expressions#Creating_Flex_Animations|Creating Flex Animations]]
 +
#**[[Choreography creation/Creating Events/Facial expressions#When_not_to_use_facial_animation|When not to use facial animation]]
 +
#*'''[[Choreography creation/Creating Events/Other Events|Other Events]]'''
 +
#**[[Choreography creation/Creating Events/Other Events#NULL_Gesture|NULL Gesture]]
 +
#**[[Choreography creation/Creating Events/Other Events#Look_at_Actor|Look at Actor]]
 +
#**[[Choreography creation/Creating Events/Other Events#Face_Actor|Face Actor]]
 +
#**[[Choreography creation/Creating Events/Other Events#Move_to_Actor|Move to Actor]]
 +
#**[[Choreography creation/Creating Events/Other Events#Fire_Trigger|Fire Trigger]]
 +
#**[[Choreography creation/Creating Events/Other Events#Generic(AI)|Generic(AI)]]
 +
#**[[Choreography creation/Creating Events/Other Events#Sub-scene|Sub-scene]]
 +
#**[[Choreography creation/Creating Events/Other Events#Permit_responses|Permit responses]]
 +
#**[[Choreography creation/Creating Events/Other Events#Section_Pause|Section Pause]]
 +
#**[[Choreography creation/Creating Events/Other Events#Loop|Loop]]
 +
#**[[Choreography creation/Creating Events/Other Events#Fire_Completion|Fire Completion]]
 +
#'''[[Choreography creation/Lip synching|Lip synching]]'''
 +
#'''[[Choreography creation/Implementation|Implementation]]'''
 +
#*[[Choreography creation/Implementation#Set-piece_scenes|Set-piece scenes]]
 +
#*[[Choreography creation/Implementation#Dynamic_scenes|Dynamic scenes]]
 +
#'''''[[Choreography creation/Community Showcase|Community Showcase]]'''''
  
 
[[Category:Tutorials]]
 
[[Category:Tutorials]]
[[Category:Choreography creation]]
+
[[Category:Choreography creation|!]]
 +
[[Category:Choreography]]

Latest revision as of 15:13, 6 November 2019

Русский

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.

Bug.png Bug: Faceposer's UI icons are broken. To fix them, extract this file to:
  • sourcesdk\bin\ep1\
  • sourcesdk\bin\source2007\
  • sourcesdk\bin\orangebox\

Definitions

Episode One introduced version 2 of Source's powerful facial animation system.
Choreography
A set of instructions stored in a .VCD "scene" that dictate scripted or semi-scripted behaviour for NPCs, which may include any of the items below as well as interactions with the world in general.
Note.png Note: VCD files must be compiled into 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 ("MSADPCM") mono .WAV files at 44kHz (44100Hz). You can also use uncompressed PCM if you don't mind large filesizes.
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 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 has been 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.png 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.
Tip.png Tip: Dr. Breen's laughing animation from the climax of Half-Life 2, b_bg_laugh, is a blend gesture. Viewed in HLMV it can be seen to be no more than the upper body jolting slightly.

Before you start

Faceposer playing back a complex Half-Life 2 scene.

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:

  1. Introduction
  2. Setting up your scene
  3. Creating Events
  4. Lip synching
  5. Implementation
  6. Community Showcase