SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3stevemcauley
 
SPU Optimizations-part 1
SPU Optimizations-part 1SPU Optimizations-part 1
SPU Optimizations-part 1Naughty Dog
 
Practical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsPractical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsNaughty Dog
 
Naughty Dog Vertex
Naughty Dog VertexNaughty Dog Vertex
Naughty Dog VertexNaughty Dog
 
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 A1Ki Hyunwoo
 
Practical SPU Programming in God of War III
Practical SPU Programming in God of War IIIPractical SPU Programming in God of War III
Practical SPU Programming in God of War IIISlide_N
 
Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingElectronic Arts / DICE
 
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)Johan Andersson
 
Art Direction for Uncharted 2: Among Thieves
Art Direction for Uncharted 2: Among ThievesArt Direction for Uncharted 2: Among Thieves
Art Direction for Uncharted 2: Among ThievesNaughty Dog
 
Level Design Challenges & Solutions - Mirror's Edge
Level Design Challenges & Solutions - Mirror's EdgeLevel Design Challenges & Solutions - Mirror's Edge
Level Design Challenges & Solutions - Mirror's EdgeElectronic Arts / DICE
 
GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins
GDC 2014 - Deformable Snow Rendering in Batman: Arkham OriginsGDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins
GDC 2014 - Deformable Snow Rendering in Batman: Arkham OriginsColin Barré-Brisebois
 
A Scalable Real-Time Many-Shadowed-Light Rendering System
A Scalable Real-Time Many-Shadowed-Light Rendering SystemA Scalable Real-Time Many-Shadowed-Light Rendering System
A Scalable Real-Time Many-Shadowed-Light Rendering SystemBo Li
 
Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666Tiago Sousa
 
Killzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemKillzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemGuerrilla
 
Photogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontPhotogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontElectronic Arts / DICE
 
Taking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next GenerationTaking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next GenerationGuerrilla
 
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...Unity Technologies
 

What's hot (20)

Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3Calibrating Lighting and Materials in Far Cry 3
Calibrating Lighting and Materials in Far Cry 3
 
SPU Optimizations-part 1
SPU Optimizations-part 1SPU Optimizations-part 1
SPU Optimizations-part 1
 
Autodesk Mudbox
Autodesk MudboxAutodesk Mudbox
Autodesk Mudbox
 
Practical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT MethodsPractical Spherical Harmonics Based PRT Methods
Practical Spherical Harmonics Based PRT Methods
 
Naughty Dog Vertex
Naughty Dog VertexNaughty Dog Vertex
Naughty Dog Vertex
 
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
 
Practical SPU Programming in God of War III
Practical SPU Programming in God of War IIIPractical SPU Programming in God of War III
Practical SPU Programming in God of War III
 
Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based Rendering
 
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
Terrain Rendering in Frostbite using Procedural Shader Splatting (Siggraph 2007)
 
Art Direction for Uncharted 2: Among Thieves
Art Direction for Uncharted 2: Among ThievesArt Direction for Uncharted 2: Among Thieves
Art Direction for Uncharted 2: Among Thieves
 
Level Design Challenges & Solutions - Mirror's Edge
Level Design Challenges & Solutions - Mirror's EdgeLevel Design Challenges & Solutions - Mirror's Edge
Level Design Challenges & Solutions - Mirror's Edge
 
GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins
GDC 2014 - Deformable Snow Rendering in Batman: Arkham OriginsGDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins
GDC 2014 - Deformable Snow Rendering in Batman: Arkham Origins
 
A Scalable Real-Time Many-Shadowed-Light Rendering System
A Scalable Real-Time Many-Shadowed-Light Rendering SystemA Scalable Real-Time Many-Shadowed-Light Rendering System
A Scalable Real-Time Many-Shadowed-Light Rendering System
 
Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666Siggraph2016 - The Devil is in the Details: idTech 666
Siggraph2016 - The Devil is in the Details: idTech 666
 
Killzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo PostmortemKillzone Shadow Fall Demo Postmortem
Killzone Shadow Fall Demo Postmortem
 
Stochastic Screen-Space Reflections
Stochastic Screen-Space ReflectionsStochastic Screen-Space Reflections
Stochastic Screen-Space Reflections
 
Photogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars BattlefrontPhotogrammetry and Star Wars Battlefront
Photogrammetry and Star Wars Battlefront
 
Taking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next GenerationTaking Killzone Shadow Fall Image Quality Into The Next Generation
Taking Killzone Shadow Fall Image Quality Into The Next Generation
 
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...
Developing and optimizing a procedural game: The Elder Scrolls Blades- Unite ...
 
Lighting the City of Glass
Lighting the City of GlassLighting the City of Glass
Lighting the City of Glass
 

Similar to Creating A Character in Uncharted: Drake's Fortune

Ogdc 2013 spine anim20131
Ogdc 2013 spine anim20131Ogdc 2013 spine anim20131
Ogdc 2013 spine anim20131Son Aris
 
OGDC2013_ Spine Animation_ Mr Alviss Ha
OGDC2013_ Spine Animation_ Mr Alviss HaOGDC2013_ Spine Animation_ Mr Alviss Ha
OGDC2013_ Spine Animation_ Mr Alviss Haogdc
 
Animation Programming Techniques
Animation Programming TechniquesAnimation Programming Techniques
Animation Programming TechniquesAmir H. Fassihi
 
Ghajini - The Game Development
Ghajini - The Game DevelopmentGhajini - The Game Development
Ghajini - The Game DevelopmentImran K
 
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 ChapterPeyman Massoudi
 
Motion graphics worksheet interactive menus
Motion graphics worksheet  interactive menusMotion graphics worksheet  interactive menus
Motion graphics worksheet interactive menusirrealimagens
 
Advanced iMovie Techniques 2013
Advanced iMovie Techniques 2013Advanced iMovie Techniques 2013
Advanced iMovie Techniques 2013Jon Corippo
 
Cinematic quests
Cinematic questsCinematic quests
Cinematic questsMike Acton
 
Stop motion animation guide
Stop motion animation guideStop motion animation guide
Stop motion animation guidelukebiley
 
Stop motion animation guide
Stop motion animation guideStop motion animation guide
Stop motion animation guidelukebiley
 

Similar to 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
 

Recently uploaded

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 BusinessPixlogix Infotech
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
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...Neo4j
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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 WorkerThousandEyes
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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.pdfUK Journal
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
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 organizationRadu Cotescu
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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?Antenna Manufacturer Coco
 
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 2024The Digital Insurer
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Recently uploaded (20)

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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
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...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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?
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

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