Choreography Implementation

From Valve Developer Community
Revision as of 18:20, 15 July 2005 by JacobNicholson (talk | contribs) (stubbed outline for Choreography Implementation page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Stub

This article or section is a stub. You can help by expanding it.

Introduction

this page is meant to illustrate practical techniques used to implement Choreography scenes into Source. The focus here is on vcd's and how to use them effectively. However, the relevant techniques often reach outside of faceposer, and into hammer, XSI, etc.

(the following is a suggested outline. it will change as it gets fleshed out)

Why use VCD's?

  • powerful. can choreograph a wide range of elements together very precisely: audio, FX, Actor direction (blocking), animation, scene / map logic
  • fast iteration. dont need to recompile the map to see vcd changes. use Scene_Flush. esp relevant in tweaking the timing of events.

How do vcd's play in Source

  • in a map via the LCS entity
  • through the Response System
    • lead/follow behaviour example (post aftermath?)

Scene approach and planning

  • What are the elements involved
  • what are the Actors involved
  • how is the player involved
  • how is the scene incorporated into the map logic
    • conditions for scene to start
    • conditions for pausing / resuming or interrupting the scene
    • benefit of driving as much as possible from the VCD's
      • the all important Fire Trigger event

Blocking out a scene

  • info_target entity
  • Using DebugText
  • adding new dialog entries
  • getting scene logic functional

Using !Target#

  • for Actor names
  • for event Targets

Pausing / Resuming a Scene

  • using a Global Pause event
  • using a Fire Trigger event to pause itself indefinitely
  • the behaviour of paused vcd's
    • events remain active (lookAt, faceTo, moveTo, etc)
    • pausing in the "loop" section of a Gesture event
  • setting up Nags

Controlling your Actors

  • NPC input, Start Scripting
  • NPC flag, Use Alternate Collisions
  • using non-conventional Actors
    • generic_actor entity
    • radio example
    • Lamarr

Player Participation in the Scene

  • using Triggers, Look Triggers, AI_Script_Conditions
    • eli's lab example
  • taking control of the player
    • point_viewcontroller
      • alyx intro example
    • Vehicles
      • breen scene example

Playing Animations in a Scene

  • Gesture events
    • postures, gestures, bodygestures
    • organizing in faceposer
    • authoring a new gesture/posture in XSI, building into your model.
    • playing gesture events over SS's or ActBusies
    • using IK rules in gestures
      • barney hands-on-hips posture
      • alyx's button push gesture
  • sequence events (use sparingly)
  • Flex animation
  • using Scripted Sequences in a scene
    • getting the Actor(s) in position
    • fire_trigger event to start SS
    • using a NULL sequence event to time other events (dialog, etc) to the animation
    • using Look At !Self to suppress AI head movement
    • using SS's OnFrameEvent outputs to trigger other scene events.

and more stuff