Making Trico Move
The following slides are from genDESIGN’s CEDEC 2017 presentation about The Last Guardian, with English translations added on (and in the speaker notes).
The original talk was held on August 31, 2017. Original slides are publicly available at
https://www.slideshare.net/gendesign/ss-82621799
Making Trico Move
Procedural animation techniques used in “The Last Guardian”
“The Last Guardian”, “Shadow of the Colossus”, and “ICO” © Sony Interactive Entertainment Inc.
Masanobu Tanaka
Masanobu Tanaka
In change of animation for Wander, Colossi
Animation director, lead game designer
A studio started by Fumito Ueda, with core members gathered from the lead development staff of “ICO” and “Shadow of the Colossus”
“The Last Guardian” project’s division of roles
Overall creative direction
Production, adjustments, mass production, implementation
Chapter 1 Project introduction, background
Chapter 2 AI
Chapter 3 Procedural animation
Chapter 4 Fur
Chapter 5 Q&A
Table of contents:
Chapter 1: Project introduction, background
Table of contents:
Chapter 1: Project introduction, background
What is “The Last Guardian”?
“The Last Guardian”
Released on December 6, 2016 by SIE
Action adventure game about a young boy and a giant beast
Game’s essential point:
Want to present Trico as an “animal”!
Trico’s features:
Animal, walks on all fours, large size, fur
Trico’s features
Animal:
-Doesn’t talk
-Express emotions using only animation
-Not anthropomorphic
Trico’s features
Walking on all fours:
-Long side profile
-Standing on a slope (inclined plane) is difficult
Trico’s features
Large size:
-Deception and tricks are not effective
-Need to show details
Trico’s features
Fur:
-Give a sense of thickness
-Show the area’s wind
-Express emotions
Challenges of realizing Trico
Want Trico to walk smoothly, without his feet stumbling
Want to let him stand on slopes
Want him to behave naturally when observing things
Want him to be able to move in cramped spaces
Want him to catch and eat thrown barrels
-Want Trico to walk smoothly, without his feet stumbling
-Want to let him stand on slopes
-Want him to act naturally when observing things
-Want him to be able to navigate areas with low ceilings
-Want him to be able to catch and eat thrown barrels
Challenges of realizing Trico
-Want Trico to walk smoothly, without his feet stumbling
-Want to let him stand on slopes
-Want him to act naturally when observing things
-Want him to be able to navigate areas with low ceilings
-Want him to be able to catch and eat thrown barrels
The goal is to implement these things using procedural animation
Challenges of realizing Trico
AI -> animation -> procedural animation ->
-> physics -> fur -> rendering
What gets processed within a single frame:
Today we’ll be talking about these 3 points (AI, procedural animation, fur)
What gets processed within a single frame:
Outline of each topic
-Deciding Trico’s intentions
-Smooth movements
-Low number of assets
-Animations are natural, respond to the environment
Procedural animation
AI
Fur
-Presentation of Trico’s feathers
Table of contents:
-Make things easy to adjust
-Make the reasoning process used to decide Trico’s intentions simple
AI planning ideas:
Goal of AI
Make the player feel that Trico has a mind
chain
boy
barrel
Goal of AI
Make the player feel that Trico has a mind
Assessing Trico’s current situation and deciding his actions
Play with the chain
Eat the barrel
Nuzzle against the boy
AI basic structure:
Decide the target of Trico’s attention -> Move towards the target -> Decide on an action
Decide the target of Trico’s attention
AI basic structure:
Deciding the target of Trico’s attention
Set an “interest level value” for every object/character
barrel
boy
chain
chain
boy
barrel
Interest levels:
-After performing an action, the interest is “digested”
-Interest level rises over time
-Distance is a factor
Changes in interest level
After performing an action, the interest is “digested”
Changes in interest level
The boy has the highest interest level, so he is the subject of Trico’s attention
Changes in interest level
The interest is “digested”
Changes in interest level
Trico’s attention shifts to an object behind him
Changes in interest level
AI basic structure:
Move towards the target of attention
Move towards the target of attention
-Use a navmesh
-Check if it’s a place that a large body can fit in
AI basic structure:
Decide on an action
Action Selection
*Example actions when Trico gets near a barrel:
Eat it Scratch at it with his front legs Make a sound
After moving to the desired location, pick the most suitable action out of multiple candidates
Space Check
Check if the selected action makes contact with the surrounding terrain
If there’s no problem, pick that action.
Eat it Scratch at it with his front legs Make a sound
In this way, Trico’s AI carries out his decided intentions
AI summary
-Decide the object of attention
-Move toward the target object
-Decide on an action
Chapter 3: Procedural animation
Table of contents:
Chapter 3: Procedural animation
*Usually shortened to “PA”
Procedural animation (PA) is:
Animation created automatically using numerical formulas, scripts, data entered beforehand, etc.
(Definition taken from CGWORLD Entry.jp terminology dictionary )
Practical examples of procedural animation (PA)
Implementation in “ICO”:
-Matching feet with steps of different heights
-Holding hands, etc
This technique has been used for a long time, but in recent years it has become more sophisticated and has drawn more attention.
Procedural animation in “Shadow of the Colossus”
Agro, four-legged colossi, snakelike colossi, etc.
Why is PA necessary?
For example, if you wanted to handle uneven terrain without the use of PA…
You’d get floating feet
You’d have an enormous amount of animation assets
As a best practice, we want to be able to handle any kind of situation
Goals of PA
-Enhance the feeling that the characters really exist
-Present things using a low number of animation assets
-Rise to the challenge of new techniques
The PA of “The Last Guardian”, compared to “Shadow of the Colossus”
-Needs a higher level of quality
-Handle cramped spaces
-Improved level of detail
-Animal traits
Planning ideas for PA in “The Last Guardian”
-Use few animation assets
-Processing leveraged by animation
-Animators keep performance in mind
(or, a programmer well-versed in animation)
Basic structure of PA
-PA as modules
-Processing order goes from main parts -> details
1 frame processing example
body -> legs -> head -> fingers
PA used in “The Last Guardian”
3 typical examples of PA processed content will be introduced
1: Walking and posture control 2: Observation motions 3: Catching and eating barrels
1: Walking and posture control
-Handling curvature of the spine
1: Walking: processing spinal bending
-The body bends to match an AI Bezier [curve]
Animation asset
After processing the spinal bending
Pathfinding when turning sharp corners
To prevent Trico’s body from becoming extremely contorted, the angle at which his body can bend is limited.
Taking spinal curvature into account, an alternate path is created.
1: Walking and posture control
-Moving legs
-Posture correction
The instant Trico lifts a foot, its destination is determined.
Things like height and angle are also taken into account here.
arrival point
Deciding an arrival point
Conditions when Trico can’t place his foot (1/3)
There’s a barrel, the boy, or some other object
Conditions when Trico can’t place his foot (2/3)
The incline is too steep
Conditions when Trico can’t place his foot (3/3)
It’s too close to a wall
During the motion phase, the foot’s landing point is checked again
-The walking motion is a loop made up of 4 motions
-The red circle shows the timing of the landing point checks
Leg 1
Leg 2
Leg 3
Leg 4
Trajectory adjustments made before landing
Blending the two lines of motion
Shortest path to the desired point
Natural walking path
Trajectory adjustments made before landing
Blending the two lines of motion
Shortest path to the desired point
Natural walking path
Anchoring the legs
So that Trico’s feet do not slip, they’re fixed [to the ground] using a pin
Blending a leg’s motion lines
When a leg is lifted, that leg’s position, which shifted while the foot was fixed, is used for interpolation
Fixed foot’s starting point
Interpolation during the time it takes to return the leg to its normal position
Posture control
The foot’s displacement from its original position is used to adjust Trico’s posture
Animation asset
After posture correction
After implementing [foot] trajectory corrections
1: Walking and posture control
-Ceiling correction
1: Posture control: ceiling detection
Detection using sensors above Trico’s head
Trico’s head and body are lowered during processing
After PA
2: Observation motions
-Observation experiments
-Animal-like presentation
-Avoiding walls
Observation motions
Implementation used early in development:
Forward Kinematics (FK)
�
Trico’s neck [joints] rotate in order, starting from the base.
A system where only the head’s position and rotation are decided, then the neck movements are determined afterwards.
“Lion Dance Method”
Prototyping in Unity
Unity was not used for the creation of “The Last Guardian” itself
The position of the neck’s axis of rotation
A trick used to make Trico look even more like a living animal was to put the axis of rotation towards the front of the head as much as possible.
-> Improved detail, higher level of expression
The position of the neck’s axis of rotation
A trick used to make Trico look even more like a living animal was to put the axis of rotation towards the front of the head as much as possible.
-> Improved detail, higher level of expression
After implementing the “Lion Dance Method”
Wall detection and avoidance
The result of posture control and observation motions
3: Catching and eating barrels
Catching and eating barrels
Using the physics engine to make Trico catch barrels thrown into the air
Catching and eating barrels
In practice: holding the barrel between the upper and lower jaws using collision
Challenges of catching and eating barrels
-Physics simulation
-Lining up the precise timing for getting the barrel in Trico’s mouth
-How to keep it in the back of his throat after he grabs it
Catching and eating procedure
After Trico starts the catch motion, it takes n seconds until the instant he has the barrel in his mouth.
Catching and eating procedure
Position where the barrel will be after n seconds
Area where it’s possible to catch the barrel
Motion hasn’t started yet
Catching and eating procedure
After Trico starts the catch motion, it takes n seconds until the instant he has the barrel in his mouth.
Motion starts!
Catching and eating procedure
After Trico starts the catch motion, it takes n seconds until the instant he has the barrel in his mouth.
Position where the barrel will be after n seconds
Area where it’s possible to catch the barrel
Correcting predictions for the moment of the catch
Catching and eating procedure
Area where it’s possible to catch the barrel
Catching and eating procedure
Correcting predictions for the moment of the catch
Area where it’s possible to catch the barrel
And so, the catching and eating procedure is complete
PA summary
-Consider how to process things from an animator’s perspective
-Processing doesn’t break the animations
-Procedural animations need to be convincing (look good)
-Express things using a low number of animation assets
Chapter 4: Fur
Table of contents:
Chapter 4: Fur
Trico’s whole body is covered in feathers
Shell method (multilayer polygons), “Shadow of the Colossus”
Fin method (tanzaku**), “The Last Guardian”
Types of fur
Fur can generally be classified using the 2 techniques below
Goals of fur
Express Trico’s emotions feel the wind in the current space add to the detail on screen
Among these, we’ll talk about the second one, “feel the wind”
Feather planning
-Think about how feathers rub against each other
-Change parameters according to how strong the wind is
Feather planning
Unity was not used for the creation of “The Last Guardian” itself
Wind planning
The wind spreads out and comes together in waves, and shakes the places where the waves make contact.
Unity was not used for the creation of “The Last Guardian” itself
And so, our fur that moves with the wind is complete
AI
-Design it to be simple, controllable
Procedural Animation
-Consider how to process things from an animator’s perspective
-Processing doesn’t break the animations
-Procedural animations need to be convincing (look good)
-Express things using a low number of animation assets
Fur
-Think about how feathers overlap
-Design with the wind in mind
Summary
Demo project
Thanks
Sony Interactive Entertainment
Japan Studio Trico Team
Recruiting development staff!
genDESIGN, creators of “The Last Guardian”, are accepting applications from developers who’d like to help create prototypes for their next project!