This GDC talk by Marek from Naughty Dog explores the studio's innovative use of physics animation (specifically Havok ragdolls) beyond traditional death states in The Last of Us and Uncharted 4.
The presentation details the technical foundation using rigid bodies, constraints, motors, and damping, highlighting the challenges of parameter tuning and joint limits. The core innovation discussed is the simultaneous use of Havok's local-space "Powered Constraint Controller" (Motors) and world-space "Rigid Body Controller" (Keyframe Controller) to achieve a blend of realistic local follow-through and global stability, complemented by limiting parent acceleration to mitigate animation spikes.
The talk showcases numerous examples from Naughty Dog's games, demonstrating how physics animation was applied to enhance character reactions and interactivity in dynamic scenarios such as carrying an unconscious character, riding in vehicles, climbing on dynamic objects, hang climbing, staged vehicle crashes and deaths, being dragged behind a truck, and cinematic sequences with environmental physics. Implementation details like scripting ragdoll profiles and using animation events (Effs) for sequencing are also covered. While successful in adding fidelity and realism, challenges in tool development, artist adoption of scripting, and synchronization with other animation systems are acknowledged.
Uncharted 4 Physics Animation: Beyond Ragdolls
0:46 Introduction: Marek, a lead gameplay animator at Naughty Dog, introduces the talk on using physics simulation creatively in games like The Last of Us and Uncharted 4.
1:38 Defining Physics Animation: Refers to anything animated while physically simulated; the most common use is ragdoll simulation for character deaths.
1:56 Creative Ragdoll Usage: The goal was to experiment with physics animation beyond death, making its use seamless and enhancing character naturalness.
2:17 Motivation: Physics animation helped Naughty Dog move away from boxy environments, blend massive animation sets, simulate complex actions, achieve more believable character reactions to dynamic events, and match the fidelity of detailed character models.
4:00 Constraints: Explains hinge (single axis) and ragdoll constraints (most common), noting they require careful limit setup to avoid unnatural poses.
5:01 Max Friction Torque: Simulates joint friction to prevent bodies from flopping around freely.
5:20 Constraint Motors: Powered constraints that attempt to match an animation pose, featuring parameters like maximum motor force and motor damping.
5:41 Motor Speed Limit & Tow: Tools to limit how fast a motor recovers pose and adjust motor stiffness (tow).
6:09 Parameter Tuning Difficulty: Emphasizes the interconnectedness of parameters, recommending reading the manual, checking demos, and talking to programmers.
6:49 Basic Rules: Advices include not imitating real life too closely, reducing rigid body mass along bone chains, and checking for unwanted collisions.
7:14 Testing Ragdolls: Shows techniques like throwing the ragdoll with the mouse, testing for natural poses and sliding, checking friction issues, and a "sitting test". Live gameplay testing is crucial.
10:36 Rigid Body States: Describes the three states: Keyframed (100% anim, blue), Powered/Animated (driven by anim but reacts to physics, yellow), and Unpowered (yellow, not shown).
11:49 Animation Controllers: Compares Havok's Powered Constraint Controller (Motors - local space, good for death, realistic but hard to match pose) and Rigid Body Controller (Keyframe Controller - world space, good for live chars, easy to match pose, stable, IK-like).
13:49 Case Study: Carrying Ellie (The Last of Us): Faced the challenge of animating an unconscious character reacting to Joel's movement with limited animations. Initial tests were not shippable due to unnatural motion.
17:06 Revelation 1: Combining Controllers: Discovered a solution by simultaneously using both Motors (soft, for follow-through) and Keyframe Controller (as a stabilizer, preventing vibrations and holding pose when still).
18:14 Revelation 2: Limiting Parent Acceleration: To address ragdolls breaking during rapid directional changes (Ellie parented to Joel's spine), they decomposed the animation pose and limited the influence of the parent's acceleration spikes.
18:47 Result in TLOU: This combined approach led to the believable carrying animation seen in the final game.
19:13 Key Features of Driving Method: Core features are combining Motors and Keyframe Controllers (with adjustable weights per body part) and capping acceleration spikes via limiting parent acceleration.
20:16 Parameters Exposed to Script: Gains and limits for the controllers are exposed in their DC Scripting system, allowing animators to tweak physics behavior.
20:40 Ragdolls in DC Script: Due to the need for multiple ragdoll behaviors (e.g., underwater in TLOU), ragdoll definitions were moved from Maya assets to DC Script for easier duplication and modification.
21:37 Advantages of Scripting: Fast creation of new ragdoll profiles (seconds vs. minutes), works for multiple characters with the same skeleton, and allows testing ragdolls directly in the game debug menu without a programmer.
22:12 Disadvantages of Scripting: Maya scenes used for initial setup became obsolete, and some artists are hesitant to work with scripts.
22:33 Ragdoll Profiles: The final scripted system allows defining multiple "profiles" (sets of rigid bodies, collisions, and controller parameters).
23:49 Ragdoll Profile Advantages: Enables creating many distinct ragdoll behaviors quickly and testing them easily in game across different characters.
25:34 Case Study: Ragdoll in Vehicles (Uncharted 4): Applied physics to characters riding in vehicles to simulate realistic reactions to off-road driving and impacts, improving upon static animation or simple lean additives.
26:23 Vehicle Ragdoll Setup: Typically keyframed lower body, simulated spine/head/arms (hands keyframed to steering wheel), with limited collisions (spine/head only with seat/wheel).
27:27 Heat Maps: Introduced a visual tool to represent the strength and stiffness of Keyframe (World space) and Motor (Local space) controllers across the character skeleton for a given profile.
28:55 Arm Influence: Demonstrated how arm stiffness significantly impacts the feeling of fighting the steering wheel vs. mushy, linear motion.
29:32 Parent Acceleration Limit Demo (Vehicle): Shows how limiting parent acceleration prevents the ragdoll from breaking during strong impacts while allowing realistic effects like bouncing off the seat.
30:12 Ragdoll vs. Full Animation (Vehicle): Ragdoll is used for small bumps and weight shifts, while full body animations handle hard hits.
30:53 Case Study: Player Climbing (Uncharted 4): Aimed for an analog/organic feel on complex environments (slabs, overhangs, dynamic objects) requiring extensive animation blending. Physics helped smooth out hitches and add subtle realism.
32:27 Climbing Ragdoll Effect: Adds subtle overlap, springiness (especially in the butt), and a noticeable difference in feel on the analog stick compared to animation alone.
34:06 Climbing Ragdoll Setup: Challenging balance between softness (for momentum) and preventing hyperextension. Hands/feet/forearms keyframed; upper body strong Keyframe Controller; spine weak Keyframe; legs primarily Motors with minimal Keyframe influence.
35:12 Climbing Test (Dynamic Object): Shows Drake's body reacting naturally with springy motion to the truck's movement while climbing on it.
35:40 Disabling Climbing Collision: Found that disabling ragdoll collisions (unlike the vehicle example) was better than getting stuck on invisible geometry in sharp corners, accepting occasional clipping.
36:00 Case Study: Hang Climbing (Uncharted 4): Solved the problem of arbitrary landing angles into a hang position. Ragdoll simulation provided natural swinging motion.
36:21 Multiple Hang Profiles: Created a loose profile for hanging/landing swings and a stiffer one for active reaches, needing to switch between them.
37:03 Animation Event System (Effs): Utilized Effs to sequence ragdoll profiles within animations, allowing frame-precise enabling/disabling, fade control, and seamless blending between profiles (e.g., loose vs. stiff hang).
38:18 Profile Sequencing Benefits: Full control over when/which profile is active, seamless blending, and momentum carrying over, leading to very organic motion.
38:37 Ragdoll Revolution & Animator Responsibility: The success led to physics animation being used more widely, but required animators to manage the enabling/disabling of profiles.
39:20 Safeguarding Transitions: Implemented a rule where the ragdoll profile only runs if the currently playing animation contains a specific Eff event, preventing unwanted ragdoll behavior.
39:46 Hang Climbing Ragdoll Details: Weighted heavily towards Keyframe in arms (holding weight), tapering down, with Motors for legs to stabilize vibrations.
40:15 Stiffer Hang Profile: A modification simulating muscle work by holding more of the body in place with Keyframe and lifting legs more.
40:37 Hang Climbing Collision Enabled: Unlike regular climbing, hang climbing ragdoll collisions were enabled to prevent the body from sinking into geometry, allowing the chest to push dynamic objects.
41:24 Case Study: Chase Sequences (Uncharted 4): Inspired by staged crashes in films (like Mad Max), physics animation was used for characters and vehicles in crash sequences.
41:52 Vehicle Death Animation: Instead of freezing, characters blend into a pose held by ragdoll Motors and are physicalized to keep moving realistically after death.
42:13 Pose for Rolling: Discovered that a cylindrical death pose with arms close and legs straight is critical for smooth rolling motion after impact.
43:43 Animating Vehicles (Chase): Convoy vehicles follow splines, but upon driver death or damage, they disconnect and play a physics animation using the Keyframe Controller along the last moving vector.
44:20 Why Physics Anim for Vehicles: Allows animating vehicles until a significant impact occurs. A distance check between rigid bodies and the animation pose fades out the Keyframe Controller on major collisions, defaulting to full ragdoll.
45:05 Vehicle Physics Anim Advantages: Provides more controlled and better-performing crash simulations than purely random explosions and snaps the animated vehicle to the ground.
46:02 Case Study: Boat Chase (Uncharted 4): Used physics on Sam in the boat to simulate realistic reactions to the stormy, bumpy sea, as baked animation couldn't match the dynamic environment.
46:45 Boat Chase Ragdoll Setup: Hands/feet keyframed to the boat; simulated body (soft Keyframe, Motors holding pose); stiffer Keyframe for right arm and head for aiming/stability. Disabled ragdoll for large bumps (falls).
47:51 Case Study: Dragged Behind Truck (Uncharted 4): Used ragdoll as a simple post-processing tool to fix character legs clipping the ground on a bumpy road while being dragged.
48:17 Dragged Ragdoll Setup: Simple profile with everything but legs keyframed. Legs were set to match animation 100% with zero friction, providing subtle ground adjustments.
49:17 Case Study: In-Game Cinematic (River Jeep - Uncharted 4): Applied physics to characters reacting to a vehicle dynamically moved by a river and bouncing off rocks in an interactive cinematic, where reactions couldn't be pre-baked.
49:49 Cinematic Ragdolls: Used a mix of the standard vehicle ragdoll and a modified boat chase profile, created quickly (under 30 mins).
50:48 Used in Subsequent Scene: Also used ragdolls in the following cinematic where the Jeep is steerable on a rocky face, adding subtle reactive details.
51:38 Challenges & Synchronization: Acknowledges the difficulty of synchronizing multiple procedural systems (animation blending, IK, physics) working with potentially obsolete data, requiring predictive algorithms.
52:19 Learning during Talk Prep: Gained a deeper understanding of system details while preparing the GDC talk.
52:54 Q&A: Combat Physics: Confirmed physics ragdolls were only used for death reactions in Uncharted 4, not for smaller hit reactions during combat, but noted experimentation suggests it's possible.
53:42 Q&A: Havok vs. In-Game Previews: Used Havok tools in Maya only for initial limit/friction setup; relied heavily on in-game debugging tools for comprehensive ragdoll testing.