This GDC presentation by Michal (mhak) from Naughty Dog discusses the studio's approach to integrating physics simulation, beyond standard ragdolls, into live character animation in games like The Last of Us and Uncharted 4. The talk explains the fundamental concepts of the Havok physics engine used (rigid bodies, joints, constraints, motors) and the challenges in setting up realistic physics behaviors for characters. A core innovation presented is the simultaneous use of Havok's Powered Constraint (Motors) and Rigid Body (Keyframe) controllers, allowing for a blend of local and world-space control to achieve stable yet dynamic character motion that responds to external forces and environmental interactions. Further technical developments include limiting the influence of parent object acceleration to prevent character breaking and moving ragdoll setup into scriptable "profiles" for increased flexibility and rapid iteration. The presenter showcases several examples from Uncharted 4, demonstrating how this technique was applied to diverse scenarios including characters in vehicles, dynamic climbing, hang climbing with blending profiles, physically-driven death and vehicle destruction, boat chases, and subtle post-processing adjustments like preventing leg clipping while being dragged. The talk emphasizes the importance of tooling, scripting, and collaborative development in making these advanced physics animations feasible and shippable.
Advanced Physics Animation for Believable Character Motion in Naughty Dog Games
0:46 Speaker & Background: Michal (mhak), an animator at Naughty Dog, introduces himself and his background working on games like Mafia and Silent Hill before joining Naughty Dog for The Last of Us and Uncharted 4.
1:38 Definition: Physics animation is defined as any animation driven by physical simulation, with ragdoll being the most common example.
2:18 Why Physics Animation?: Naughty Dog wanted characters to react more believably to complex environments (not just boxes/vertical walls) and dynamic events, matching the high visual fidelity of their characters and allowing more dynamic player interaction.
3:21 Havok Basics: The talk explains foundational Havok physics concepts like rigid bodies, joints (hinge, ragdoll), constraints, limits, friction torque, constrained motors, damping, and tau (stiffness) as parameters for setting up ragdolls.
6:09 Ragdoll Setup Tips: Setting up ragdolls is complex; advice includes reading the manual, checking engine demos, talking to programmers, not trying to perfectly imitate reality, reducing mass of rigid bodies iteratively, checking for unwanted collisions, being patient, and crucially, verifying that desired parameters are not hardcoded in the game engine.
10:42 Rigid Body States: Rigid bodies can be Key-framed (animation-driven), Powered/Animated (animation + physics), or Unpowered (pure physics/ragdoll).
11:49 Animation Controllers: Havok offers two main controllers: Powered Constraint (Motors - local space, good for dying characters, realistic but can overshoot/vibrate) and Rigid Body (Keyframe - world space, good for live characters, prevents falling, stable).
17:05 Revelation 1: Combining Controllers: A key innovation was using Motors and Keyframe controllers simultaneously, balancing soft local-space follow-through (Motors) with stable world-space pose matching (Keyframe).
18:09 Revelation 2: Limiting Parent Acceleration: To prevent characters "breaking" during rapid movements or impacts from parent objects (like a carrying character or a vehicle), the influence of the parent's acceleration on the ragdoll is limited.
19:13 Key Features: The core method involves using Motors and Keyframe controllers simultaneously with blend weights adjustable per rigid body, and capping parent acceleration spikes.
20:43 Scripting Ragdoll Definitions: To manage different ragdoll behaviors needed for various scenarios (like underwater vs. on land in The Last of Us), ragdoll definitions were moved from Maya asset files into scriptable "profiles" using a Lisp/Scheme-based language.
23:46 Ragdoll Profiles: Scriptable profiles allow defining different rigid body sets, collision layers, and assigning distinct Keyframe controllers/weights to each set, enabling rapid iteration and creation of diverse ragdoll behaviors.
25:34 Characters in Vehicles (Uncharted 4): Physics animation was used to make characters react believably to vehicle motion on bumpy terrain. Setup involved keyframing the lower body while simulating spine, head, and arms, with limited collisions. Heat maps visualize controller strength/stiffness distribution. Ragdoll used for small bumps/weight shifts, full animation for hard hits.
30:55 Player Climbing (Uncharted 4): Physics simulation added a subtle, organic feel to player climbing on non-vertical surfaces and dynamic objects, smoothing animation transitions and adding natural overlap (e.g., on Drake's butt). Certain body parts (hands, feet, forearms) were keyframed for stability/contact, while others were simulated with specific controller distributions.
36:00 Hang Climbing (Uncharted 4): To handle arbitrary landing angles and subsequent active movement while hanging, two different ragdoll profiles (a looser one for landing/swinging and a stiffer one for active reaches) were sequenced and blended seamlessly using an animation event system (effs). A rule ensured profiles only ran during specific animations.
41:24 Chase Sequence & Deaths (Uncharted 4): Physics was used for character deaths in vehicles (short anim blending to a motor-held pose) and vehicle destruction (disconnecting from spline, animating along vector with KC, fading out KC on major collision). This offered better control and safety than purely random explosions.
46:02 Boat Chase (Uncharted 4): Physics on the character in the boat simulated instability caused by the bumpy sea, replacing baked-in animation which didn't sync well. Keyframed hands/feet pinned him to the boat, while the simulated body reacted to motion.
47:51 Rope Drag (Post-Processing): A simple ragdoll profile was used on Drake's legs while being dragged behind a truck to subtly prevent ground clipping, demonstrating physics as a post-processing tool.
49:17 In-Game Cinematic (River Jeep): Physics animation was applied to characters in a Jeep dragged by a river, reacting to external forces beyond animator control. This involved switching between different ragdoll profiles depending on the scenario (vehicle, water, rocky face).
51:39 Success Factors & Challenges: Stable frame rate and predictive algorithms were crucial for synchronizing procedural systems (animation blending, IK, physics step) and handling obsolete data. Despite challenges, the system was shippable.
52:54 Q&A: Confirmed physics ragdolls were primarily used for death reactions in combat in Uncharted 4, not dynamic hit reactions yet. Also discussed using in-game tools for ragdoll testing more than Havok's Maya previewer.