SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Creating a Character
   in Uncharted:
  Drake’s Fortune

     Christian Gyrling
      Naughty Dog
Who Am I?
•  Programmer at
   Naughty Dog
•  Created the enemy
   characters in Uncharted
•  Co-authored the AI.
Talk Overview
•  “The Problem”
•  Character Animation Architecture
•  Additive animations and how we used
   them
•  Adding Variation
•  Q & A
THE
PROBLEM
Last Gen
BIGGER…
MORE!!!
Bottom Line…
•  Expecting 10 – 20x of last console
   generations animation count
•  More complex animation blend trees
•  1 programmer and 1 animator
   for every two characters
Things To Address
•  Game Play - Scope
  –  We can not make EVERYTHING better!
  –  What parts should we make better?
•  Asset Creation – Iteration Time
  –  How to create all these animations
•  Programming - Complexity
  –  Organizing Animations
  –  AI and Animation – More Complex AI Code?
GAME PLAY
   Scope
Meet the Enemy




Pirate   Mercenary
What Needs Variation?
ASSET
CREATION
  Iteration Time
Problems
•  Lots of animation files
  –  Slow to open referenced scenes in Maya
  –  Mismatching key-frames
•  Verify and polish
  –  Play the new animation in-game
  –  Tune blends
Solutions
•  Fewer files…
  –  Related animations in same Maya file
     •  Works with only 1 animator per character
  –  Key-frames are quickly copied/verified
     •  Fewer bugs
Solutions
•  See things in-game ‘fast’
  –  In-Game Character Animation Test Bed
     •  Maya to Controlling Npc – ~1 minute
  –  Fast Animation Asset Creation / Renaming
     •  Setup new animation – ~1 minute
  –  Reloading of Animation Scripts
     •  Rebuild and reload scripts – ~30 sec
AI &
ANIMATION
Needed AI Functionality
•  Basic
  –  Request Animation
  –  Wait For Animation
  –  Status - Playing any animations?
•  Special
  –  Play animations relative to objects
     in the world (action pack animations)
The Animation Interface


      Play Animation
 AI                    Animation
                        System
      Query Status




      Translator
Character
 Animation
Architecture
Character Animation
   Architecture
   AI        Test Bed
Animation Controllers
   Animation Layers
   Animation States
   Animation Assets
Animation Assets

   AI       Test Bed
Animation Controllers
  Animation Layers
  Animation States
  Animation Assets
Character Locator
•  Exist in all animations
•  Motion is extracted
   from this locator
•  Easy to blend
   between animations
•  Used in ‘action packs’
   –  Relative to objects
Action Packs
•  Two Locators
  –  Character Locator
  –  Reference Locator
•  World-relative
   animation play-back
•  Examples:
  –  Cover
  –  Vehicles
  –  Spawn Animations
                         Video!!
What Is An Additive
   Animation?

           _
        Tired Run


           Run


           =
  Additive Anim – ‘Tired’
What Is An Additive
        Animation?
              Video!!
  Walk         Run         Jog


   +            +           +
  Tired        Tired      Tired

   =            =           =
Tired Walk   Tired Run   Tired Jog
Animation States

   AI       Test Bed
Animation Controllers
  Animation Layers
  Animation States
  Animation Assets
Animation States
•  Centered around a character action
•  Contains transitions to all other possible
   states
•  Semi-Static animation blend tree
•  Defined in script (DC)
  –  “Adventures in Data Compilation”
  –  2:30 PM – Room 3020 - Dan Liebgold
Transitions
•  Action Based
  –  Run, Stop, Exit…
•  Contains
  –  Next State
  –  Blend Time
  –  Blend Curve (Linear, Ease In/Out…)
  –  Guards
     •  IF MoveAngle > 80° Then…
•  Transitions added without code changes
Transitions
                      IDLE




  IN
COVER
Transitions
ENTERING     Go To Cover
 COVER                     IDLE

  Auto*       Video!!       Auto*



  IN                       EXITING
              EXIT
COVER                      COVER
Character Animation
   Architecture
   AI        Test Bed
Animation Controllers
   Animation Layers
   Animation States
   Animation Assets
Animation Layers
•  Independent Actions
  –  Moving
  –  Breathing
  –  Facial Animations
•  Has a selected animation state
•  Blends between states during transitions
•  Blended together to final pose
Animation Layers

                      Facial – 160 Frames


            Additive: Run Noise – 300 Frames


Run - 30 Frames Run - 30 Frames Run - 30 Frames Run - 30 Fr


                        Video!!
Animation Controllers

    AI       Test Bed
 Animation Controllers
   Animation Layers
   Animation States
   Animation Assets
Animation Controllers
•  Used To Control Character
  –  Locomotion Controller
  –  Weapon Controller
•  ‘Action’ Interface
•  Contract of making the character perform
   an action
•  Maintains Character Status
  –  Can new actions be requested?
Animation Info
•  Control Structure
•  Second way of interfacing with the
   animation system
•  Info from the game affecting the
   animation states
  –  Modifies the animation blend tree at runtime
  –  Ex: Blend aiming in / out
Animation Info
•  Movement Angle
  –  Movement relative to forward direction
•  Movement Angle Delta
  –  Frame to Frame delta to detect special turns
•  Aim and Look-At Angle
  –  Control look-at direction
•  Pose Selection Index
Character Control
   Architecture
   AI       Test Bed
Animation Controllers
                    Anim
   Animation Layers
                    Info
   Animation States
  Animation Assets
Requests Vs. Anim Info
•  State changes in the AI often lead to a
   new action request (anim state change)
  –  Enter cover
  –  React to bullet / explosion   Video!!
•  Smaller AI adjustments result in anim info
   changes.
  –  Movement direction
  –  Look-At and aim direction     Video!!
Anim State Change




Run     Enter Cover   In Cover
          [video]
Anim Info Change




Aim Right (-50°)   Aim Forward   Aim Left (50°)
                      [video]
ADDITIVE
ANIMATIONS
 And how we used them…
Look – At & Aim
•  Procedural IK on neck / spine joints
  –  Skinning around neck got weird when in low
     poses.
•  Partial Animations (neck/spine only)
  –  Made the character look stiff
•  Additive Animations
  –  Preserve base animation motion (texture)
Additive Approach
•  Natural ‘swaying’ on arms and head
•  Arms and head combined in Look-At
•  Give the animator power to control the
   look and feel                     Video!!
  –  Special look-at animation for each pose
•  Animators will ALWAYS make
   things look better
  –  If not… find better animators! 
Cost
•  Runtime
  –  Ice (similar to Edge) Animation Modules
  –  Animation blending on the SPUs is nearly free
  –  9 clips and 9 blends in normal battle – 10 us
     •  Double or triple when changing directions
•  Memory
  –  Animation compression (< 1Kb each)
•  Creation Time
  –  Only takes a couple of minutes if animated in same
     file as the base animation
Problems
•  Unwanted Results
  –  Hands and weapon not
     lining up
  –  Not aiming at target
•  Some Rules
  –  Keep hip rotation in base
     anim to a minimum
  –  Avoid rotations on arms and
     shoulders = REALLY BAD!!
ADDING
VARIATION
   Video!!
Shipped Variations
•    60+ Deaths
•    70+ Hit reactions
•    80+ Gun-out poses
•    40+ Ways of entering cover
•    and many more…
Adding Variation
Additive Poses
                 1-Frame Additive




                 A1               A2


                          B

                        Base
                      Animation
Resulting pose                         Resulting pose
Pose Anim Layout
      Frame 0     1   2   3   4   5

  Pose Anim   1   2
                      _
                      3   4   5   6


  Base Anim B     B   B   B   B   B

                      =
 Pose Variation


Additive Anim A1 A2 A3 A4 A5 A6
                             frame 0 of
                           base animation
Additive Poses
                       Video!!




                 A1               A2


                          B

                        Base
                      Animation
Resulting pose                         Resulting pose
Careful…
•  Unwanted Results
  –  Severe swaying
  –  Feet through the ground
  –  Floating appearance
•  Some Rules
  –  No Y-translation on hip joints in
     base anim
  –  Little to no hip rotation
     •  Use rotated base anims
  –  High and Low poses work great
Using a Specific Pose
•  Select a pose
•  Update the Anim Info
   with the new index              Anim
•  Make a transition request       Info
   to state that utilize poses
                                 Pose Index: 8
•  The animation state will
   add the selected pose to
   the base animation
Implementation Details
•  All pose selection logic is encapsulated in
   the animation controllers
•  Randomness only in animation controllers
  –  Hard to control otherwise… hard to test
  –  No need to complicate the lower-level
     animation code
•  Poses can be grouped and used only by
   certain characters types.
Summary
•  Choose wisely where to spend your time
•  Hide animation complexity from the AI through the
   use of actions
•  Animation states are autonomous
  –  Can be tested / verified in isolation
  –  No surprises
•  Additive animation
  –  Cheap
  –  More power to the animators – Better Visual Quality
The Result
We are looking
 for talented
   people !
   www.naughtydog.com
Q&A
          Contact
Christian_Gyrling@naughtydog.com

Weitere ähnliche Inhalte

Was ist angesagt?

Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based Rendering
Electronic Arts / DICE
 
Lighting Shading by John Hable
Lighting Shading by John HableLighting Shading by John Hable
Lighting Shading by John Hable
Naughty Dog
 
Amazing Feats of Daring - Uncharted Post Mortem
Amazing Feats of Daring - Uncharted Post MortemAmazing Feats of Daring - Uncharted Post Mortem
Amazing Feats of Daring - Uncharted Post Mortem
Naughty Dog
 
State-Based Scripting in Uncharted 2: Among Thieves
State-Based Scripting in Uncharted 2: Among ThievesState-Based Scripting in Uncharted 2: Among Thieves
State-Based Scripting in Uncharted 2: Among Thieves
Naughty Dog
 

Was ist angesagt? (20)

Hable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr LightingHable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr Lighting
 
Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based Rendering
 
Lighting Shading by John Hable
Lighting Shading by John HableLighting Shading by John Hable
Lighting Shading by John Hable
 
Amazing Feats of Daring - Uncharted Post Mortem
Amazing Feats of Daring - Uncharted Post MortemAmazing Feats of Daring - Uncharted Post Mortem
Amazing Feats of Daring - Uncharted Post Mortem
 
Naughty Dog Vertex
Naughty Dog VertexNaughty Dog Vertex
Naughty Dog Vertex
 
Killzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemKillzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo Postmortem
 
Physically Based Lighting in Unreal Engine 4
Physically Based Lighting in Unreal Engine 4Physically Based Lighting in Unreal Engine 4
Physically Based Lighting in Unreal Engine 4
 
Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1
 
State-Based Scripting in Uncharted 2: Among Thieves
State-Based Scripting in Uncharted 2: Among ThievesState-Based Scripting in Uncharted 2: Among Thieves
State-Based Scripting in Uncharted 2: Among Thieves
 
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意
 
Photogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontPhotogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars Battlefront
 
Lighting the City of Glass
Lighting the City of GlassLighting the City of Glass
Lighting the City of Glass
 
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space Marine
 
Horizon Zero Dawn: A Game Design Post-Mortem
Horizon Zero Dawn: A Game Design Post-MortemHorizon Zero Dawn: A Game Design Post-Mortem
Horizon Zero Dawn: A Game Design Post-Mortem
 
Custom fabric shader for unreal engine 4
Custom fabric shader for unreal engine 4Custom fabric shader for unreal engine 4
Custom fabric shader for unreal engine 4
 
Stable SSAO in Battlefield 3 with Selective Temporal Filtering
Stable SSAO in Battlefield 3 with Selective Temporal FilteringStable SSAO in Battlefield 3 with Selective Temporal Filtering
Stable SSAO in Battlefield 3 with Selective Temporal Filtering
 
Choi JiHyun NDC2011
Choi JiHyun  NDC2011Choi JiHyun  NDC2011
Choi JiHyun NDC2011
 
Light prepass
Light prepassLight prepass
Light prepass
 
Progressive Lightmapper: An Introduction to Lightmapping in Unity
Progressive Lightmapper: An Introduction to Lightmapping in UnityProgressive Lightmapper: An Introduction to Lightmapping in Unity
Progressive Lightmapper: An Introduction to Lightmapping in Unity
 

Ähnlich wie Creating A Character in Uncharted: Drake's Fortune

Ogdc 2013 spine anim20131
Ogdc 2013 spine anim20131Ogdc 2013 spine anim20131
Ogdc 2013 spine anim20131
Son Aris
 
Motion graphics worksheet interactive menus
Motion graphics worksheet  interactive menusMotion graphics worksheet  interactive menus
Motion graphics worksheet interactive menus
irrealimagens
 

Ähnlich wie Creating A Character in Uncharted: Drake's Fortune (14)

Ogdc 2013 spine anim20131
Ogdc 2013 spine anim20131Ogdc 2013 spine anim20131
Ogdc 2013 spine anim20131
 
OGDC2013_ Spine Animation_ Mr Alviss Ha
OGDC2013_ Spine Animation_ Mr Alviss HaOGDC2013_ Spine Animation_ Mr Alviss Ha
OGDC2013_ Spine Animation_ Mr Alviss Ha
 
Animation Programming Techniques
Animation Programming TechniquesAnimation Programming Techniques
Animation Programming Techniques
 
Ghajini - The Game Development
Ghajini - The Game DevelopmentGhajini - The Game Development
Ghajini - The Game Development
 
Parametric Animation Blending - Siggraph Tehran Local Chapter
Parametric Animation Blending - Siggraph Tehran Local ChapterParametric Animation Blending - Siggraph Tehran Local Chapter
Parametric Animation Blending - Siggraph Tehran Local Chapter
 
Animation
AnimationAnimation
Animation
 
Motion graphics worksheet interactive menus
Motion graphics worksheet  interactive menusMotion graphics worksheet  interactive menus
Motion graphics worksheet interactive menus
 
God Of War : post mortem
God Of War : post mortemGod Of War : post mortem
God Of War : post mortem
 
K2P workshop 3-23-13
K2P workshop 3-23-13K2P workshop 3-23-13
K2P workshop 3-23-13
 
Storyboarding basics
Storyboarding basicsStoryboarding basics
Storyboarding basics
 
Advanced iMovie Techniques 2013
Advanced iMovie Techniques 2013Advanced iMovie Techniques 2013
Advanced iMovie Techniques 2013
 
Cinematic quests
Cinematic questsCinematic quests
Cinematic quests
 
Stop motion animation guide
Stop motion animation guideStop motion animation guide
Stop motion animation guide
 
Stop motion animation guide
Stop motion animation guideStop motion animation guide
Stop motion animation guide
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

Creating A Character in Uncharted: Drake's Fortune

  • 1. Creating a Character in Uncharted: Drake’s Fortune Christian Gyrling Naughty Dog
  • 2. Who Am I? •  Programmer at Naughty Dog •  Created the enemy characters in Uncharted •  Co-authored the AI.
  • 3. Talk Overview •  “The Problem” •  Character Animation Architecture •  Additive animations and how we used them •  Adding Variation •  Q & A
  • 6.
  • 9. Bottom Line… •  Expecting 10 – 20x of last console generations animation count •  More complex animation blend trees •  1 programmer and 1 animator for every two characters
  • 10. Things To Address •  Game Play - Scope –  We can not make EVERYTHING better! –  What parts should we make better? •  Asset Creation – Iteration Time –  How to create all these animations •  Programming - Complexity –  Organizing Animations –  AI and Animation – More Complex AI Code?
  • 11. GAME PLAY Scope
  • 15. Problems •  Lots of animation files –  Slow to open referenced scenes in Maya –  Mismatching key-frames •  Verify and polish –  Play the new animation in-game –  Tune blends
  • 16. Solutions •  Fewer files… –  Related animations in same Maya file •  Works with only 1 animator per character –  Key-frames are quickly copied/verified •  Fewer bugs
  • 17. Solutions •  See things in-game ‘fast’ –  In-Game Character Animation Test Bed •  Maya to Controlling Npc – ~1 minute –  Fast Animation Asset Creation / Renaming •  Setup new animation – ~1 minute –  Reloading of Animation Scripts •  Rebuild and reload scripts – ~30 sec
  • 19. Needed AI Functionality •  Basic –  Request Animation –  Wait For Animation –  Status - Playing any animations? •  Special –  Play animations relative to objects in the world (action pack animations)
  • 20. The Animation Interface Play Animation AI Animation System Query Status Translator
  • 22. Character Animation Architecture AI Test Bed Animation Controllers Animation Layers Animation States Animation Assets
  • 23. Animation Assets AI Test Bed Animation Controllers Animation Layers Animation States Animation Assets
  • 24. Character Locator •  Exist in all animations •  Motion is extracted from this locator •  Easy to blend between animations •  Used in ‘action packs’ –  Relative to objects
  • 25. Action Packs •  Two Locators –  Character Locator –  Reference Locator •  World-relative animation play-back •  Examples: –  Cover –  Vehicles –  Spawn Animations Video!!
  • 26. What Is An Additive Animation? _ Tired Run Run = Additive Anim – ‘Tired’
  • 27. What Is An Additive Animation? Video!! Walk Run Jog + + + Tired Tired Tired = = = Tired Walk Tired Run Tired Jog
  • 28. Animation States AI Test Bed Animation Controllers Animation Layers Animation States Animation Assets
  • 29. Animation States •  Centered around a character action •  Contains transitions to all other possible states •  Semi-Static animation blend tree •  Defined in script (DC) –  “Adventures in Data Compilation” –  2:30 PM – Room 3020 - Dan Liebgold
  • 30. Transitions •  Action Based –  Run, Stop, Exit… •  Contains –  Next State –  Blend Time –  Blend Curve (Linear, Ease In/Out…) –  Guards •  IF MoveAngle > 80° Then… •  Transitions added without code changes
  • 31. Transitions IDLE IN COVER
  • 32. Transitions ENTERING Go To Cover COVER IDLE Auto* Video!! Auto* IN EXITING EXIT COVER COVER
  • 33. Character Animation Architecture AI Test Bed Animation Controllers Animation Layers Animation States Animation Assets
  • 34. Animation Layers •  Independent Actions –  Moving –  Breathing –  Facial Animations •  Has a selected animation state •  Blends between states during transitions •  Blended together to final pose
  • 35. Animation Layers Facial – 160 Frames Additive: Run Noise – 300 Frames Run - 30 Frames Run - 30 Frames Run - 30 Frames Run - 30 Fr Video!!
  • 36. Animation Controllers AI Test Bed Animation Controllers Animation Layers Animation States Animation Assets
  • 37. Animation Controllers •  Used To Control Character –  Locomotion Controller –  Weapon Controller •  ‘Action’ Interface •  Contract of making the character perform an action •  Maintains Character Status –  Can new actions be requested?
  • 38. Animation Info •  Control Structure •  Second way of interfacing with the animation system •  Info from the game affecting the animation states –  Modifies the animation blend tree at runtime –  Ex: Blend aiming in / out
  • 39. Animation Info •  Movement Angle –  Movement relative to forward direction •  Movement Angle Delta –  Frame to Frame delta to detect special turns •  Aim and Look-At Angle –  Control look-at direction •  Pose Selection Index
  • 40. Character Control Architecture AI Test Bed Animation Controllers Anim Animation Layers Info Animation States Animation Assets
  • 41. Requests Vs. Anim Info •  State changes in the AI often lead to a new action request (anim state change) –  Enter cover –  React to bullet / explosion Video!! •  Smaller AI adjustments result in anim info changes. –  Movement direction –  Look-At and aim direction Video!!
  • 42. Anim State Change Run Enter Cover In Cover [video]
  • 43. Anim Info Change Aim Right (-50°) Aim Forward Aim Left (50°) [video]
  • 44. ADDITIVE ANIMATIONS And how we used them…
  • 45. Look – At & Aim •  Procedural IK on neck / spine joints –  Skinning around neck got weird when in low poses. •  Partial Animations (neck/spine only) –  Made the character look stiff •  Additive Animations –  Preserve base animation motion (texture)
  • 46. Additive Approach •  Natural ‘swaying’ on arms and head •  Arms and head combined in Look-At •  Give the animator power to control the look and feel Video!! –  Special look-at animation for each pose •  Animators will ALWAYS make things look better –  If not… find better animators! 
  • 47. Cost •  Runtime –  Ice (similar to Edge) Animation Modules –  Animation blending on the SPUs is nearly free –  9 clips and 9 blends in normal battle – 10 us •  Double or triple when changing directions •  Memory –  Animation compression (< 1Kb each) •  Creation Time –  Only takes a couple of minutes if animated in same file as the base animation
  • 48. Problems •  Unwanted Results –  Hands and weapon not lining up –  Not aiming at target •  Some Rules –  Keep hip rotation in base anim to a minimum –  Avoid rotations on arms and shoulders = REALLY BAD!!
  • 49. ADDING VARIATION Video!!
  • 50. Shipped Variations •  60+ Deaths •  70+ Hit reactions •  80+ Gun-out poses •  40+ Ways of entering cover •  and many more…
  • 52. Additive Poses 1-Frame Additive A1 A2 B Base Animation Resulting pose Resulting pose
  • 53. Pose Anim Layout Frame 0 1 2 3 4 5 Pose Anim 1 2 _ 3 4 5 6 Base Anim B B B B B B = Pose Variation Additive Anim A1 A2 A3 A4 A5 A6 frame 0 of base animation
  • 54. Additive Poses Video!! A1 A2 B Base Animation Resulting pose Resulting pose
  • 55. Careful… •  Unwanted Results –  Severe swaying –  Feet through the ground –  Floating appearance •  Some Rules –  No Y-translation on hip joints in base anim –  Little to no hip rotation •  Use rotated base anims –  High and Low poses work great
  • 56. Using a Specific Pose •  Select a pose •  Update the Anim Info with the new index Anim •  Make a transition request Info to state that utilize poses Pose Index: 8 •  The animation state will add the selected pose to the base animation
  • 57. Implementation Details •  All pose selection logic is encapsulated in the animation controllers •  Randomness only in animation controllers –  Hard to control otherwise… hard to test –  No need to complicate the lower-level animation code •  Poses can be grouped and used only by certain characters types.
  • 58. Summary •  Choose wisely where to spend your time •  Hide animation complexity from the AI through the use of actions •  Animation states are autonomous –  Can be tested / verified in isolation –  No surprises •  Additive animation –  Cheap –  More power to the animators – Better Visual Quality
  • 60. We are looking for talented people ! www.naughtydog.com
  • 61. Q&A Contact Christian_Gyrling@naughtydog.com