helper joints: advanced deformations on runtime characters jason parks character technical director...

115
Helper Joints: Helper Joints: Advanced Advanced Deformations on Deformations on RunTime Characters RunTime Characters Jason Parks Jason Parks Character Technical Director Character Technical Director Sony Computer Entertainment Sony Computer Entertainment America America

Upload: blake-cogar

Post on 19-Jan-2016

220 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

Helper Joints:Helper Joints:Advanced Advanced

Deformations on Deformations on RunTime CharactersRunTime Characters

Jason ParksJason Parks

Character Technical DirectorCharacter Technical Director

Sony Computer Entertainment Sony Computer Entertainment AmericaAmerica

Page 2: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

2

Contacts, Reference, Contacts, Reference, CreditsCredits• Email::

[email protected][email protected]

• Webpage (Helper Joints-GDC 2005):– http://www.jason-parks.com/HelperJoints

• PAN Arts AVIs by Warwick MellowPAN Arts AVIs by Warwick Mellow• Human Model by Sven Jenson via Human Model by Sven Jenson via

Miller/Thuriot’s MasterClass 2003 Miller/Thuriot’s MasterClass 2003 (Character Creation Toolkit)(Character Creation Toolkit)

• BodyBlend render by Zach GrayBodyBlend render by Zach Gray• Wrinkle R&D by Tyler Crook (SCEA)Wrinkle R&D by Tyler Crook (SCEA)

Page 3: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

3

Intended AudienceIntended Audience• ““Advanced – Requires experience Advanced – Requires experience

and familiarity with subject.”and familiarity with subject.”– Maya Technical Artists who ‘Bind Maya Technical Artists who ‘Bind

Characters’ for RunTime or Offline Characters’ for RunTime or Offline usageusage• Paint weights Paint weights (Artisan and Component (Artisan and Component

Editor)Editor)

• Apply deformersApply deformers• Use Set Driven KeysUse Set Driven Keys• Write ExpressionsWrite Expressions• Use Utility NodesUse Utility Nodes

Page 4: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

4

TopicsTopics• What are Helper Joints?What are Helper Joints?

– DefinitionDefinition• Why use Helper Joints?Why use Helper Joints?

– New uses for Extra JointsNew uses for Extra Joints– Smooth binding sucks & Where to use Helper JointsSmooth binding sucks & Where to use Helper Joints

• How to use Helper Joints?How to use Helper Joints?– Our Goals, Disclaimer, FusiformsOur Goals, Disclaimer, Fusiforms– Research: The Basic Building BlocksResearch: The Basic Building Blocks

• RunTime RigsRunTime Rigs– SetDrivenKeysSetDrivenKeys– ExpressionsExpressions– ConstraintsConstraints

• Non-RunTime RigsNon-RunTime Rigs– Baking OutBaking Out– Spline IKSpline IK– Jiggle DeformerJiggle Deformer

• Automating ProductionAutomating Production– ScriptingScripting– WorkflowWorkflow– Muscle SystemsMuscle Systems– Procedurally generated Helper JointsProcedurally generated Helper Joints

Page 5: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

5

Stop Talking, No more text, Stop Talking, No more text, show some Moving show some Moving Pictures!Pictures!

Page 6: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

6

Helper Joints DefinedHelper Joints Defined• ““Helper Joints” are secondary joints Helper Joints” are secondary joints

offset from the standard hierarchy offset from the standard hierarchy which will translate, rotate, or scale to which will translate, rotate, or scale to achieve a “hand sculpted” affect on an achieve a “hand sculpted” affect on an area of vertices.area of vertices.

• They can be within the primary They can be within the primary hierarchy (parented, grouped, rigged), hierarchy (parented, grouped, rigged), or outside of the primary hierarchy or outside of the primary hierarchy (point or parentConstrained)(point or parentConstrained)

• They can be controlled by They can be controlled by SetDrivenKeys, Expressions, Simple SetDrivenKeys, Expressions, Simple Rigs (constraint system), or Super Rigs (constraint system), or Super Advanced Rigs (really any simulation Advanced Rigs (really any simulation you can think of) that are baked-out.you can think of) that are baked-out.

Page 7: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

7

Why use any Extra Why use any Extra Joints?Joints?

• Traditional usage of Extra Joints Traditional usage of Extra Joints to animate Props and Accessoriesto animate Props and Accessories

• Extra “Helper Joints” to fix Extra “Helper Joints” to fix Smooth bindingSmooth binding

• Extra “Helper Joints” to create the Extra “Helper Joints” to create the next level in realismnext level in realism

Unlike characters rigged, bound, and Unlike characters rigged, bound, and rendered in Maya or any other high-end rendered in Maya or any other high-end 3D package, your characters at run-time 3D package, your characters at run-time need to follow a very specific rule set need to follow a very specific rule set depending on your Game Engine. depending on your Game Engine. Because all run-time engines already Because all run-time engines already support joints, it is a tool we can exploit support joints, it is a tool we can exploit and push to its limits.and push to its limits.

Page 8: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

8

Traditional Extra JointsTraditional Extra Joints

• Traditional usage of Extra Traditional usage of Extra Joints for Props and Joints for Props and Accessories:Accessories:– Props, RopeProps, Rope– Hair, PonytailsHair, Ponytails– Capes, Necklaces, ClothingCapes, Necklaces, Clothing– FatFat

Page 9: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

9

New Ideas for Extra New Ideas for Extra JointsJoints•Extra “Helper Joints” Extra “Helper Joints” to create the next to create the next level in realism:level in realism:– Skin slidingSkin sliding– WrinklesWrinkles– Fat/Muscle/Flesh JiggleFat/Muscle/Flesh Jiggle– Muscle bulgingMuscle bulging

Page 10: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

10

Fix Smooth bindingFix Smooth binding

•Extra “Helper Joints” to Extra “Helper Joints” to make skin transform make skin transform properly:properly:– Volume maintenanceVolume maintenance– Crease fixingCrease fixing– Complex AreasComplex Areas

• Multiple joints affecting a single vertMultiple joints affecting a single vert

Page 11: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

11

Smooth Binding LimitedSmooth Binding Limited

• Vertex deforms by a Vertex deforms by a weighted combination of weighted combination of Linear Translations Linear Translations around a joint rotatingaround a joint rotating

Page 12: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

12

Smooth Binding Smooth Binding ShoulderShoulder

Page 13: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

13

Smooth Binding Problem Smooth Binding Problem AreasAreas• Elbow and Knee:Elbow and Knee:

– Interpenetration on the inside of the creaseInterpenetration on the inside of the crease– Loss of volume on the outside of the crease (i.e. Loss of volume on the outside of the crease (i.e.

– the elbow tip or knee cap do not become – the elbow tip or knee cap do not become ‘pointy’ when the elbow or knee bends)‘pointy’ when the elbow or knee bends)

• Wrist/Forearm:Wrist/Forearm:– Loss of volume when the forearm/wrist is twisted Loss of volume when the forearm/wrist is twisted

too much down the length of the arm. (i.e. - too much down the length of the arm. (i.e. - ‘Candy-wrapper’ affect)‘Candy-wrapper’ affect)

• Upper Thigh/Gluteus:Upper Thigh/Gluteus:– Interpenetration at the bottom of the butt cheek Interpenetration at the bottom of the butt cheek

when leg goes too far backwhen leg goes too far back

• Shoulders:Shoulders:– Interpenetration in armpitInterpenetration in armpit– Interpenetration at the neck/shoulder junction Interpenetration at the neck/shoulder junction

area (trapezius)area (trapezius)– Lack of representation of scapula movementsLack of representation of scapula movements

Page 14: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

14

Our Goals – The “Ideal”Our Goals – The “Ideal”

• What are we really trying to What are we really trying to get?get?

• Reference with MotionReference with Motion– BooksBooks

• ““Anatomy of Movement” by Blandine C. Anatomy of Movement” by Blandine C. GermainGermain

– InternetInternet• PAN Arts by Warwick MellowPAN Arts by Warwick Mellow

– SoftwareSoftware• Absolute Character Tools for 3DSMAXAbsolute Character Tools for 3DSMAX

Page 15: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

15

Our GoalsOur Goals

• PAN PAN ResearchResearch– PectoralsPectorals– ShoulderShoulder

ss

Page 16: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

16

Our GoalsOur Goals

•PAN PAN ResearchResearch– ClavicleClavicle– ForearmForearm

Page 17: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

17

Our GoalsOur Goals• Muscles – Independent ResearchMuscles – Independent Research

Page 18: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

18

Our GoalsOur Goals• Muscles - Absolute Character ToolsMuscles - Absolute Character Tools

Page 19: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

19

Disclaimer: RunTime Rig Disclaimer: RunTime Rig SupportSupport• Individual Developer code will Individual Developer code will

dictate what will be evaluated in dictate what will be evaluated in Real-Time and what type of Real-Time and what type of relation you can specify between relation you can specify between your primary skeleton’s animation your primary skeleton’s animation and your Helper Joints’ and your Helper Joints’ transformation.transformation.

• Hopefully you can get 1 or more Hopefully you can get 1 or more of these RunTime Rigging of these RunTime Rigging methods supported:methods supported:– SetDrivenKeysSetDrivenKeys– ExpressionsExpressions– ConstraintsConstraints

Page 20: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

20

Disclaimer: RunTime Rig Disclaimer: RunTime Rig SupportSupport• NO:NO:

– Source Code provided for Source Code provided for engine side.engine side.

• YES:YES:– Techniques for art-side Techniques for art-side

production of rigs (in Maya)production of rigs (in Maya)

• Applicable to all games on all Applicable to all games on all consolesconsoles

Page 21: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

21

How To Get ThereHow To Get There

• Muscles are the drivers in Muscles are the drivers in reality so lets create Helper reality so lets create Helper Joints that mimic the way Joints that mimic the way muscles work.muscles work.

• Simple FusiForm muscles are Simple FusiForm muscles are easy to mimic in Maya so lets easy to mimic in Maya so lets create those and bind them create those and bind them to our skinto our skin

Page 22: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

22

Research – FusiForm Research – FusiForm MuscleMuscle• ““FusiForm” muscle: Quick DefinitionFusiForm” muscle: Quick Definition

– ‘‘Tapering at each end; spindle-shaped.’Tapering at each end; spindle-shaped.’

Page 23: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

23

Research – The Building Research – The Building BlocksBlocks• Let’s pick the Biceps as our test Let’s pick the Biceps as our test

case to create a muscle and mimic case to create a muscle and mimic its action with a Helper Joint being its action with a Helper Joint being driven by SetDrivenKeys:driven by SetDrivenKeys:– RotatingRotating– ScalingScaling– TranslatingTranslating

• The research explores the The research explores the underlying mechanisms of the rigsunderlying mechanisms of the rigs

• The ‘failed’ attempts still illustrate The ‘failed’ attempts still illustrate how rigs can be put togetherhow rigs can be put together

Page 24: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

24

Research – The Building Research – The Building BlocksBlocksUNDERSTANDING HOW UNDERSTANDING HOW

THE RIGS WORKTHE RIGS WORK

IS MORE VALUABLEIS MORE VALUABLE

THEN MY SUGGESTED THEN MY SUGGESTED SOLUTIONSSOLUTIONS

Page 25: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

25

Research – Biceps Research – Biceps (NURBs)(NURBs)• Muscle as Muscle as

Influence Influence Object - NURBsObject - NURBs

Page 26: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

26

Research – Biceps Research – Biceps (Polys)(Polys)• Muscle as Muscle as

Influence Influence Object - Object - PolygonsPolygons

Page 27: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

27

Research – Biceps Research – Biceps (Short)(Short)• SetDrivenKey SetDrivenKey

w/ Single Driver w/ Single Driver AxisAxis– RotatingRotating

• ShortShort

Page 28: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

28

Research – Biceps Research – Biceps (Long)(Long)• SetDrivenKey SetDrivenKey

w/ Single Driver w/ Single Driver AxisAxis– Rotating Rotating

• LongLong

Page 29: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

29

Research – Biceps Research – Biceps (Scale)(Scale)• SetDrivenKey SetDrivenKey

w/ Single Driver w/ Single Driver AxisAxis– ScalingScaling

Page 30: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

30

Research – Biceps Research – Biceps (Translate)(Translate)• SetDrivenKey SetDrivenKey

w/ Single w/ Single Driver AxisDriver Axis– TranslateTranslate

Page 31: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

31

Research – Upper Arm Research – Upper Arm (Translate)(Translate)• Single Driver AxisSingle Driver Axis

– TranslateTranslate– Works pretty good for Single driving Works pretty good for Single driving

axis!axis!

Warning: Not anatomically correct!Warning: Not anatomically correct!

Page 32: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

32

Research – Biceps Research – Biceps (RollBone)(RollBone)• SetDrivenKey SetDrivenKey

w/ Single w/ Single Driver AxisDriver Axis– TranslateTranslate– Add RollAdd Roll– BREAKS!BREAKS!

Page 33: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

33

Research – Biceps Research – Biceps (RollBone)(RollBone)• SetDrivenKey w/ SetDrivenKey w/

Two Driver AxisTwo Driver Axis– TranslateTranslate– Add RollAdd Roll– w/ Extra Keys w/ Extra Keys

compensating compensating for rollfor roll

– Only fixes in Only fixes in when arm is when arm is straight outstraight out

– When arm is When arm is bent it still bent it still BREAKS!BREAKS!

Page 34: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

34

Research – Biceps Research – Biceps (RollBone)(RollBone)• Add parent joint w/ another set of Add parent joint w/ another set of

driven keys for rolldriven keys for roll– Rotation of Helper’s parent joint is Rotation of Helper’s parent joint is

percentage of primary hierarchies percentage of primary hierarchies rotationrotation

Page 35: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

35

Research – Shoulder (Multiple Research – Shoulder (Multiple Drivers)Drivers)• SetDrivenKey SetDrivenKey

w/ Single w/ Single Driver Axis Driver Axis from Two from Two bonesbones– TranslateTranslate– Combination is Combination is

difficultdifficult

Page 36: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

36

Research – Shoulders (Multiple Research – Shoulders (Multiple Drivers)Drivers)• SetDrivenKey SetDrivenKey

w/ Two Driver w/ Two Driver Axis from Two Axis from Two bonesbones– TranslateTranslate– 2 Driving bones 2 Driving bones

= BREAKS!= BREAKS!(kinda)(kinda)

– + 2 Driving axis + 2 Driving axis = BREAKS!BAD!= BREAKS!BAD!

Page 37: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

37

RunTime Rigs – RunTime Rigs – SetDrivenKeysSetDrivenKeys• SummationSummation

– SetDrivenKeys are fast, easy to SetDrivenKeys are fast, easy to use and work great for use and work great for “simple” Helper Joints“simple” Helper Joints• 1 drive1 driveRR joint and 1 drive joint and 1 driveRR axis axis

per driveper driveNN Helper Joint Helper Joint• Nest hierarchies of driveNest hierarchies of driveNN Helper Helper

Joints if you have more than 1 Joints if you have more than 1 drivedriveR R joint or axisjoint or axis

Page 38: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

38

RunTime Rigs – SDKs for RunTime Rigs – SDKs for Volume PreservationVolume Preservation

• Forearm Helper Joint w/ SDK’s for Forearm Helper Joint w/ SDK’s for Scale and rotationScale and rotation

Page 39: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

39

RunTime Rigs – SDKs for RunTime Rigs – SDKs for WrinklesWrinkles

• Scaling of Helper Joints (R&D by Scaling of Helper Joints (R&D by Tyler Crook @ SCEA)Tyler Crook @ SCEA)

Page 40: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

40

RunTime Rigs – SDKs for RunTime Rigs – SDKs for WrinklesWrinkles

• Joints are scaling on 2-axis Joints are scaling on 2-axis (bulging), no scaling on length-wise (bulging), no scaling on length-wise axisaxis

• No translation or rotationNo translation or rotation

Page 41: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

41

RunTime Rigs – SDKs for RunTime Rigs – SDKs for WrinklesWrinkles• Weighting is very tediousWeighting is very tedious

Page 42: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

42

RunTime Rigs – SDKs for RunTime Rigs – SDKs for WrinklesWrinkles

• For shirt it takes many more joints For shirt it takes many more joints because of 3 D.O.F. and larger because of 3 D.O.F. and larger surface.surface.– 6 joints to do it right6 joints to do it right

Page 43: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

43

RunTime Rigs – SDKs for RunTime Rigs – SDKs for WrinklesWrinkles

• Different joints scale for each Different joints scale for each direction in each D.O.F.direction in each D.O.F.

• Weighting is time consumingWeighting is time consuming

Page 44: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

44

RunTime Rigs – SDKs for RunTime Rigs – SDKs for WrinklesWrinkles• Incorporation:Incorporation:

– Could theoretically add a Could theoretically add a scaling joint as a child of scaling joint as a child of the helper jointsthe helper joints

– Then just weight individual Then just weight individual vertices to these scaling vertices to these scaling joints to cause ‘wrinkling’joints to cause ‘wrinkling’

– Or just make separate Or just make separate scaling wrinkle joints scaling wrinkle joints wherever neededwherever needed

Page 45: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

45

RunTime RigsRunTime Rigs

• Done with SDKsDone with SDKs• Start ExpressionsStart Expressions

Page 46: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

46

RunTime Rigs – Expressions RunTime Rigs – Expressions (Simple:Elbow)(Simple:Elbow)

• Simple Helper Joints which only need a Simple Helper Joints which only need a TranslationTranslation Expression Expression– Based on 1 axis from driving boneBased on 1 axis from driving bonedj_helper.ty = (base.ty + (maxOffset * (elbow.rz dj_helper.ty = (base.ty + (maxOffset * (elbow.rz

/maxAngle)))/maxAngle)))

Page 47: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

47

RunTime Rigs - Expressions RunTime Rigs - Expressions (Complex:Biceps)(Complex:Biceps)

• Complex Helper Joints which need Complex Helper Joints which need TranslationTranslation & & RotationRotation Expression Expression– TranslationTranslation: Use another expression to translate : Use another expression to translate

dj_bicep joint (parented to Bicep_Helper) for dj_bicep joint (parented to Bicep_Helper) for bulge based on elbow rotation.bulge based on elbow rotation.

• Expression 2 – Describes bulge from rotation of Expression 2 – Describes bulge from rotation of elbow’s Z-axiselbow’s Z-axis

dj_bicep.ty = (base.ty + (maxOffset * (elbow.rz dj_bicep.ty = (base.ty + (maxOffset * (elbow.rz /maxAngle)))/maxAngle)))

base.ty = 5, maxOffset = 1.8, maxAngle = 110base.ty = 5, maxOffset = 1.8, maxAngle = 110– RotationRotation: Joint needs to be parented to both : Joint needs to be parented to both

shoulder and bicep-roll joints. Use Expression to shoulder and bicep-roll joints. Use Expression to take percentage.take percentage.

• Expression 1 – Describes rotation of parent joint Expression 1 – Describes rotation of parent joint around bicep-roll joint. (60% from shoulder, 40% around bicep-roll joint. (60% from shoulder, 40% from bicep-roll)from bicep-roll)

Bicep_Helper.rx = ((.4 * bicep.rx) + (.6 * Bicep_Helper.rx = ((.4 * bicep.rx) + (.6 * shoulder.rx))shoulder.rx))

Page 48: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

48

RunTime Rigs - Expressions RunTime Rigs - Expressions (Complex:Biceps)(Complex:Biceps)

RotationRotation: Bicep_Helper.rx = ((.4 * bicep.rx) + (.6 * shoulder.rx)): Bicep_Helper.rx = ((.4 * bicep.rx) + (.6 * shoulder.rx))TranslationTranslation: dj_bicep.ty = (base.ty + (maxOffset * (elbow.rz : dj_bicep.ty = (base.ty + (maxOffset * (elbow.rz

/maxAngle)))/maxAngle)))

base.ty = 5, maxOffset = 1.8, maxAngle = 110base.ty = 5, maxOffset = 1.8, maxAngle = 110

Page 49: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

49

RunTime Rigs – Expressions & RunTime Rigs – Expressions & Constraints (Complex:Biceps)Constraints (Complex:Biceps)• Complex Helper Joints which need Complex Helper Joints which need ScaleScale

& & RotationRotation Expressions but looking at Expressions but looking at DistanceDistance

• Requires Requires 66 extra parent helpers (can be joints extra parent helpers (can be joints or ‘nulls’)or ‘nulls’)

• Component 1 – Component 1 – ScaleScale (Bulge) (Bulge)– Handled by expression based on distance of Handled by expression based on distance of

‘shock-absorber’‘shock-absorber’bicepHelper.sz = (scaleFactor*(1/(boneLength))) : bicepHelper.sz = (scaleFactor*(1/(boneLength))) :

boneLength = sqrt ((foreArmOffset.tx – boneLength = sqrt ((foreArmOffset.tx – bicepOffset.tx)² + (foreArmOffset.ty – bicepOffset.tx)² + (foreArmOffset.ty – bicepOffset.ty)² + (foreArmOffset.tz – bicepOffset.ty)² + (foreArmOffset.tz – bicepOffset.tz)²)bicepOffset.tz)²)

• Component 2 – Component 2 – RotateRotate– Handled by expression base on % of angle of Handled by expression base on % of angle of

bicep_rollbicep_rollBicep_Helper.rx = ((.4 * bicep.rx) + (.6 * Bicep_Helper.rx = ((.4 * bicep.rx) + (.6 *

shoulder.rx))shoulder.rx))• Requires Requires 22 pointConstraintspointConstraints

Page 50: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

50

RunTime Rigs – Expressions & RunTime Rigs – Expressions & Constraints (Complex:Biceps)Constraints (Complex:Biceps)

• ScaleScale Expression Expression based on based on distancedistance

Page 51: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

51

RunTime Rigs - RunTime Rigs - ExpressionsExpressions• SummationSummation

– Very difficult to describe a Very difficult to describe a motion of a Complex Helper motion of a Complex Helper Joint based on 2 or more axis Joint based on 2 or more axis from driving joint. Even MORE from driving joint. Even MORE difficult when there are difficult when there are multiple bones acting as multiple bones acting as drivers.drivers.

Page 52: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

52

RunTime RigsRunTime Rigs

• Done with ExpressionsDone with Expressions• Start with ConstraintsStart with Constraints

Page 53: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

53

RunTime Rigs - RunTime Rigs - ConstraintsConstraints• pointConstraintpointConstraint

– Good for position onlyGood for position only

• orientConstraintorientConstraint– Good for orientation onlyGood for orientation only

• parentConstraintparentConstraint– Good for both position and orientationGood for both position and orientation

• aimConstraintaimConstraint– Robust and elegantRobust and elegant

• vertexConstraintvertexConstraint– Allows the use of musclesAllows the use of muscles

Page 54: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

54

RunTime Rigs - RunTime Rigs - ConstraintsConstraints

AIMAIMCONSTRAICONSTRAINTNT

ISIS

DA BOMB!DA BOMB!

Page 55: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

55

RunTime Rigs – Constraints RunTime Rigs – Constraints (Complex:Biceps)(Complex:Biceps)• aimConstrainaimConstrain

tt pointing at pointing at forearmforearm– Arc problemArc problem– Handles Handles

rotation of rotation of bicep roll on bicep roll on extension but extension but not flexionnot flexion

Page 56: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

56

RunTime Rigs – Constraints RunTime Rigs – Constraints (Complex:Biceps)(Complex:Biceps)

– aimConstraintaimConstraint flexion flexion problemproblem• Handles Handles

rotation of rotation of bicep roll on bicep roll on extension but extension but not flexionnot flexion

Page 57: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

57

RunTime Rigs – Constraints RunTime Rigs – Constraints (Complex:Biceps)(Complex:Biceps)

– aimConstraintaimConstraint flexion problem flexion problem handled on XZ plane w/ handled on XZ plane w/ expression for Bulgeexpression for Bulge

Bicep_Helper’sParent.scale = (baseScale + (maxOffset * Bicep_Helper’sParent.scale = (baseScale + (maxOffset * (elbow.rz /maxAngle)))(elbow.rz /maxAngle)))

i.e. - baseScale = 1, maxOffset = .3, maxAngle = 110i.e. - baseScale = 1, maxOffset = .3, maxAngle = 110

Page 58: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

58

RunTime Rigs – Constraints RunTime Rigs – Constraints (Complex:Biceps)(Complex:Biceps)

– aimConstraintaimConstraint still broken on Y still broken on Y plane during flexionplane during flexion

Page 59: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

59

RunTime Rigs – Constraints RunTime Rigs – Constraints (Complex:Pectoralis)(Complex:Pectoralis)

• Requires 2 extra parent helpers (can Requires 2 extra parent helpers (can be joints or ‘nulls’)be joints or ‘nulls’)

• Requires 1 Requires 1 aimConstraintaimConstraint

Page 60: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

60

RunTime Rigs – Constraints RunTime Rigs – Constraints (Complex:ArmPit)(Complex:ArmPit)

• Requires 2 extra parent helpers (can Requires 2 extra parent helpers (can be joints or ‘nulls’)be joints or ‘nulls’)

• Requires 1 Requires 1 aimConstraintaimConstraint

Page 61: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

61

RunTime Rigs – Constraints RunTime Rigs – Constraints (Complex:Pectoralis & (Complex:Pectoralis & Armpit)Armpit)• Requires 3 extra parent helpers Requires 3 extra parent helpers

(can be joints or ‘nulls’)(can be joints or ‘nulls’)• Requires 2 Requires 2 aimConstraintsaimConstraints

Page 62: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

62

RunTime Rigs – Constraints RunTime Rigs – Constraints (Simple:Neck)(Simple:Neck)

• Look at normal smooth bindLook at normal smooth bind

Page 63: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

63

RunTime Rigs – Constraints RunTime Rigs – Constraints (Simple:Neck)(Simple:Neck)

• NURBs muscle as Influence ObjectNURBs muscle as Influence Object

Page 64: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

64

RunTime Rigs – Constraints RunTime Rigs – Constraints (Simple:Neck)(Simple:Neck)

• Requires 1 helper joint and 1 Requires 1 helper joint and 1 target null for aimingtarget null for aiming

• Requires 1 Requires 1 aimConstraintaimConstraint

Page 65: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

65

RunTime Rigs – Constraints RunTime Rigs – Constraints (Simple:Neck)(Simple:Neck)• ComparisonComparison

Page 66: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

66

RunTime Rigs – Constraints RunTime Rigs – Constraints (Simple:Neck - Back)(Simple:Neck - Back)

• Requires 1 helper joint and 1 target Requires 1 helper joint and 1 target null for aimingnull for aiming

• Requires 1 Requires 1 aimConstraintaimConstraint

Page 67: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

67

RunTime Rigs – Constraints RunTime Rigs – Constraints (Simple:Neck - All)(Simple:Neck - All)• Requires 4 helper joints w/ 4 extra Requires 4 helper joints w/ 4 extra

target nullstarget nulls

• Requires 4 Requires 4 aimConstraintsaimConstraints

Page 68: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

68

RunTime Rigs – Constraints RunTime Rigs – Constraints (SuperComplex – Scapula)(SuperComplex – Scapula)

• Look at normal smooth bindLook at normal smooth bind

Page 69: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

69

RunTime Rigs – Constraints RunTime Rigs – Constraints (SuperComplex – Scapula)(SuperComplex – Scapula)• What is scapula really doing?What is scapula really doing?

Page 70: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

70

RunTime Rigs – Constraints RunTime Rigs – Constraints (SuperComplex – Scapula)(SuperComplex – Scapula)

• ComparisonComparisonWith Rig Normal Binding

Page 71: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

71

RunTime Rigs – Constraints RunTime Rigs – Constraints (SuperComplex – Scapula)(SuperComplex – Scapula)

• ShruggingShrugging

Page 72: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

72

RunTime Rigs – Constraints & RunTime Rigs – Constraints & (Exp./SDK) (SuperComplex – (Exp./SDK) (SuperComplex – Scapula)Scapula)– Requires 2 helper joints and 2 target Requires 2 helper joints and 2 target

nulls for aimingnulls for aiming– Requires 2 Requires 2 aimConstraintsaimConstraints & 1 & 1

pointConstraintpointConstraint– Requires expression w/ “if” statement:Requires expression w/ “if” statement:

If (lShoulder.rotateY >0)If (lShoulder.rotateY >0){{

l_scapulaConst.rotateX = ( $scaleFactor* l_scapulaConst.rotateX = ( $scaleFactor* (lShoulder.rotateY/$maxAngle));(lShoulder.rotateY/$maxAngle));

}}ElseElse{{

l_scapulaConst.rotateX = 0;l_scapulaConst.rotateX = 0;} }

Ex: $scaleFactor = 30 degrees and $maxAngle =90 degrees.Ex: $scaleFactor = 30 degrees and $maxAngle =90 degrees.

OR SetDrivenKeyOR SetDrivenKey

Page 73: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

73

RunTime Rigs – Constraints & RunTime Rigs – Constraints & (Exp./SDK) (SuperComplex – (Exp./SDK) (SuperComplex – Scapula)Scapula)• Explanation of (SDK or “If” Explanation of (SDK or “If”

statement in expression)statement in expression)

Page 74: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

74

RunTime Rigs – Constraints & RunTime Rigs – Constraints & (Exp./SDK) (SuperComplex – (Exp./SDK) (SuperComplex – Scapula)Scapula)• Pros: Full Range Looks GreatPros: Full Range Looks Great• Cons: Complex and Weighting is Cons: Complex and Weighting is

Hard!Hard!

Page 75: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

75

RunTime Rigs – RunTime Rigs – Expression/SDK (Complex – Expression/SDK (Complex – ArmPitBack)ArmPitBack)• Normal armpit creaseNormal armpit crease

Page 76: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

76

RunTime Rigs – RunTime Rigs – Expression/SDK (Complex – Expression/SDK (Complex – ArmPitBack)ArmPitBack)• New Helper Joint addedNew Helper Joint added

Page 77: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

77

RunTime Rigs – RunTime Rigs – Expression/SDK (Complex – Expression/SDK (Complex – ArmPitBack)ArmPitBack)• Translation of Helper Joint Translation of Helper Joint

tip driven by expression or tip driven by expression or SetDrivenKey from shoulder SetDrivenKey from shoulder rotation rotation

• Requires 1 extra parent Requires 1 extra parent Helper Joint w/ percentage Helper Joint w/ percentage rotation of shoulder driven rotation of shoulder driven by by RotateRotate expression or expression or SetDrivenKeySetDrivenKey

Page 78: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

78

RunTime Rigs – RunTime Rigs – Expression/SDK (Complex – Expression/SDK (Complex – ArmPitBack)ArmPitBack)• armPitParent Joint rotating 60% of armPitParent Joint rotating 60% of

shoulder jointshoulder joint

Page 79: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

79

RunTime Rigs – Exp./SDK RunTime Rigs – Exp./SDK (Complex – ArmPitBack)(Complex – ArmPitBack)• armPitTip joint translating down its armPitTip joint translating down its

local X & Y as a function of shoulder local X & Y as a function of shoulder rotationrotation

Page 80: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

80

RunTime Rigs – Exp./SDK RunTime Rigs – Exp./SDK (Complex – ArmPitBack)(Complex – ArmPitBack)• Requires 1 simple expression for parent Requires 1 simple expression for parent

Joint’s rotation:Joint’s rotation:HelperParent.rotateY = (offset angle + ((% arm rotate) * HelperParent.rotateY = (offset angle + ((% arm rotate) *

lShoulder.rotateY)))lShoulder.rotateY)))Ex - dj_armPitBackParent.rotateY = (-35 * (.6 * lShoulder.rotateY));Ex - dj_armPitBackParent.rotateY = (-35 * (.6 * lShoulder.rotateY));

• Requires 1 expression for translation of tip w/ Requires 1 expression for translation of tip w/ “if” statement:“if” statement:

If (lShoulder.rotateY <0){If (lShoulder.rotateY <0){HelperTip.translateX = (base.tX + HelperTip.translateX = (base.tX + ($scaleFactorX*(lShoulder.rY/$maxAngle)));($scaleFactorX*(lShoulder.rY/$maxAngle)));HelperTip.translateY = (base.tY + HelperTip.translateY = (base.tY + ($scaleFactorY*(lShoulder.rY/$maxAngle)));($scaleFactorY*(lShoulder.rY/$maxAngle)));

}Else{}Else{HelperTip.translateX = baseX;HelperTip.translateX = baseX;HelperTip.translateY = baseY;HelperTip.translateY = baseY;

}} Ex: $scaleFactorX = 2 units, $scaleFactorY = -4 units and $maxAngle Ex: $scaleFactorX = 2 units, $scaleFactorY = -4 units and $maxAngle

=65 degrees.=65 degrees.

Page 81: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

81

RunTime Rigs – Exp./SDK RunTime Rigs – Exp./SDK (Complex – ArmPitBack)(Complex – ArmPitBack)

• Weighting is powerful and tricky. Weighting is powerful and tricky. Some vertices now have 5 different Some vertices now have 5 different weights.weights.

Page 82: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

82

RunTime Rigs – Scaling RunTime Rigs – Scaling Entire RigEntire Rig• What if character needs to be What if character needs to be

scaled? (i.e.- player defined scaled? (i.e.- player defined proportions)proportions)

• A simple ‘Group’ node above the rig A simple ‘Group’ node above the rig mechanism in Maya’s hierarchy will mechanism in Maya’s hierarchy will scale easilyscale easily

• The Trick is figuring out how much The Trick is figuring out how much to scale. This is dependent on what to scale. This is dependent on what ‘space’ the helper joint deforms, ‘space’ the helper joint deforms, and how that space has been scaled.and how that space has been scaled.

Page 83: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

83

RunTime RigsRunTime Rigs

• Done with ConstraintsDone with Constraints• Start with MusclesStart with Muscles

Page 84: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

84

RunTime Rigs - MusclesRunTime Rigs - Muscles

• Muscles at RunTime Muscles at RunTime allows you to constrain allows you to constrain Helper Joints to the Helper Joints to the muscle surface and get muscle surface and get the effect of the musclethe effect of the muscle

• Requires some sort of Requires some sort of geometryConstraintgeometryConstraint

Page 85: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

85

RunTime Rigs – Constraints RunTime Rigs – Constraints & Bind & Blendshape & Bind & Blendshape (Muscles:Biceps)(Muscles:Biceps)• Deformer Object is low-count Deformer Object is low-count

poly muscle rigid (or smooth) poly muscle rigid (or smooth) bound to two joints to handle bound to two joints to handle twisting of biceptwisting of bicep

• Requires a blendShape on Requires a blendShape on deformer object to handle deformer object to handle bulge.bulge.– *Note: blendShape is not *Note: blendShape is not

required on main skinning required on main skinning surface.surface.

• Complex Helper Joint is Complex Helper Joint is ‘‘VertexConstrainedVertexConstrained’ to vertex ’ to vertex on Deformer Objecton Deformer Object

Page 86: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

86

RunTime Rigs – Constraints RunTime Rigs – Constraints & Bind & Blendshape & Bind & Blendshape (Muscles:Biceps)(Muscles:Biceps)

• VertexConstrainVertexConstraineded

Page 87: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

87

RunTime Rigs – Constraints RunTime Rigs – Constraints & Bind & SDK & Bind & SDK (Muscles:Biceps)(Muscles:Biceps)• Poly Muscle (Simplest Form)Poly Muscle (Simplest Form)

– 1 triangle Rigid (or Smooth) Bound1 triangle Rigid (or Smooth) Bound• Handles rotation of bicepHandles rotation of bicep

– SDK (or simple expression [1 SDK (or simple expression [1 driving bone/axis, 1 driven driving bone/axis, 1 driven translating axis]) driving single translating axis]) driving single vertex for bulgevertex for bulge

– Complex Helper joint Complex Helper joint ‘‘VertexConstrainedVertexConstrained’ to single vert’ to single vert

– Finally skinning layerFinally skinning layer

Page 88: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

88

RunTime Rigs – Constraints RunTime Rigs – Constraints & Bind & SDK & Bind & SDK (Muscles:Biceps)(Muscles:Biceps)• 1 Poly (Simplest Form)1 Poly (Simplest Form)

– VertexConstraintVertexConstraint

Page 89: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

89

RunTime Rigs – Constraints RunTime Rigs – Constraints & Bind (Muscles:Pectoralis)& Bind (Muscles:Pectoralis)• Deformer Object is low-count poly Deformer Object is low-count poly

muscle rigid (or smooth) bound to muscle rigid (or smooth) bound to three joints to handle complex three joints to handle complex Pectorals motionPectorals motion

• Requires MuscleDriver parent Requires MuscleDriver parent joints to be offset from main joints to be offset from main skeletal jointsskeletal joints

• MuscleDriver child joints are MuscleDriver child joints are ‘‘pointConstrainedpointConstrained’ to parent joints ’ to parent joints to avoid rotation of parent jointsto avoid rotation of parent joints

• Complex Helper Joint is Complex Helper Joint is ‘‘VertexConstrainedVertexConstrained’ to vert on ’ to vert on Deformer ObjectDeformer Object

Page 90: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

90

RunTime Rigs – Constraints RunTime Rigs – Constraints & Bind (Muscles:Pectoralis)& Bind (Muscles:Pectoralis)

• PointConstraintsPointConstraints & & VertexConstraintsVertexConstraints

Page 91: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

91

RunTime Rigs to Non-RunTime Rigs to Non-RunTimeRunTime

Page 92: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

92

Non-RunTime RigsNon-RunTime Rigs

• Helper Joints Definition:Helper Joints Definition:– They can be controlled by They can be controlled by

SetDrivenKeys, Expressions, SetDrivenKeys, Expressions, Simple Rigs (constraint system), Simple Rigs (constraint system),

or or Super Advanced Rigs Super Advanced Rigs (really any simulation (really any simulation you can think of) that are you can think of) that are baked-out.baked-out.

Page 93: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

93

Non-RunTime Rigs - Baked Non-RunTime Rigs - Baked OutOut• BakeOut BakeOut

examplesexamples– BicepBicep– Complex Helper Complex Helper

Joints Joints constrained to constrained to nurbsMuscle nurbsMuscle influence influence object, baked object, baked out, 1 key per out, 1 key per frame, scene frame, scene cleaned.cleaned.

Page 94: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

94

Non-RunTime Rigs - Baked Non-RunTime Rigs - Baked OutOut• BakeOut BakeOut

examplesexamples– PectoralsPectorals– Complex Helper Complex Helper

Joints Joints constrained to constrained to nurbsMuscle nurbsMuscle influence influence object, baked object, baked out, 1 key per out, 1 key per frame, scene frame, scene cleaned.cleaned.

Page 95: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

95

Non-RunTime Rigs - Baked Non-RunTime Rigs - Baked OutOut• BakeOut BakeOut

examplesexamples– PectoralsPectorals– Lots!Lots!

Page 96: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

96

Non-RunTime Rigs - Non-RunTime Rigs - SplineIKSplineIK• Great Skin-sliding effectGreat Skin-sliding effect

Page 97: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

97

Non-RunTime Rigs - Non-RunTime Rigs - JiggleJiggle• Basic Jiggle is fairly easy to Basic Jiggle is fairly easy to

create in Maya, either with a:create in Maya, either with a:– Simple ExpressionSimple Expression– frameCache nodeframeCache node

• Could be turned into Could be turned into RunTime if your code RunTime if your code supported itsupported it

Page 98: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

98

Non-RunTime Rigs - Non-RunTime Rigs - JiggleJiggle• Create a 1 (or Create a 1 (or

more) frame lag more) frame lag in global space in global space for a jointfor a joint– BaseJoint = BaseJoint =

‘Goal’‘Goal’• Blue joint Blue joint

parented to spineparented to spine

– EndJoint = EndJoint = ‘Weighted’‘Weighted’• Yellow joint Yellow joint

lagging behind lagging behind Blue joint by 1 Blue joint by 1 frameframe

Page 99: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

99

Non-RunTime Rigs - Non-RunTime Rigs - JiggleJiggle• Expression:Expression:

int $frame = frame; // get the current int $frame = frame; // get the current frameframe

float $tx_0 = BellyJiggleBase.translateX;float $tx_0 = BellyJiggleBase.translateX;float $tx_1;float $tx_1;// reset the attributes on start frame// reset the attributes on start frameif ($frame == 1){ // start frameif ($frame == 1){ // start frame

$tx_1 = $tx_0;$tx_1 = $tx_0;BellyJiggleEnd.translateX = $tx_0;BellyJiggleEnd.translateX = $tx_0;

}}else{else{

BellyJiggleEnd.translateX = $tx_1;BellyJiggleEnd.translateX = $tx_1;$tx_1 = $tx_0;$tx_1 = $tx_0;

}}

Repeat for Y & Z axisRepeat for Y & Z axis

Page 100: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

100

Non-RunTime Rigs - Non-RunTime Rigs - JiggleJiggle• frameCache NodeframeCache Node

Page 101: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

101

Non-RunTime Rigs - Non-RunTime Rigs - JiggleJiggleframeCacheframeCache ExpressionExpression

Page 102: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

102

Non-RunTime Rigs - Non-RunTime Rigs - JiggleJiggle• Incorporation:Incorporation:

– Could theoretically add a jiggle Could theoretically add a jiggle joint as a child of the helper joint as a child of the helper jointsjoints

– Then just weight individual Then just weight individual vertices to these jiggle joints to vertices to these jiggle joints to cause ‘jiggling’cause ‘jiggling’

– Or just make separate jiggle Or just make separate jiggle joints and their ‘base’ joint joints and their ‘base’ joint wherever neededwherever needed

– Where are they needed?Where are they needed?

Page 103: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

103

Non-RunTime Rigs to Non-RunTime Rigs to AutomationAutomation

Page 104: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

104

AutomatingAutomating Production Production

•ScriptsScripts•WorkflowWorkflow•Offline Muscle SystemsOffline Muscle Systems•Procedurally generated Procedurally generated

Helper JointsHelper Joints

Page 105: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

105

AutomatingAutomating Production Production• Scripts: Tools you’ll needScripts: Tools you’ll need

– Script to auto-build entire Helper Script to auto-build entire Helper Joint System on your characterJoint System on your character• Selectable body partsSelectable body parts

– Scripts to automate editing of Rigs, Scripts to automate editing of Rigs, SetDrivenKeys, & Expressions for SetDrivenKeys, & Expressions for the artiststhe artists

– Scripts to do lots of mirroring:Scripts to do lots of mirroring:• Helper Joint RigsHelper Joint Rigs• WeightingWeighting• Set Driven KeysSet Driven Keys

– Export and Import Set Driven KeysExport and Import Set Driven Keys• Hint: look at the animCurves and add Hint: look at the animCurves and add

custom attrs for connections to them custom attrs for connections to them upon exportupon export

• DemoDemo

Page 106: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

106

Automating ProductionAutomating Production

• WorkflowWorkflow– Duplicate your primary skeleton Duplicate your primary skeleton

and skinand skin– Apply your muscle system to this Apply your muscle system to this

duplicate characterduplicate character– Constrain duplicate skeleton to Constrain duplicate skeleton to

primary skeletonprimary skeleton– Hide duplicated skeleton, Hide duplicated skeleton,

muscles, & rigs. Template muscles, & rigs. Template duplicated skin.duplicated skin.

Page 107: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

107

Automating ProductionAutomating Production• WorkflowWorkflow

Page 108: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

108

The Ultimate ReferenceThe Ultimate Reference

• Muscle Muscle SystemsSystems

Page 109: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

109

The Ultimate ReferenceThe Ultimate Reference• Muscle Muscle

SystemsSystems

Page 110: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

110

The Ultimate ReferenceThe Ultimate Reference

• Muscle SystemsMuscle Systems– Auto imports muscle systemAuto imports muscle system

•Scaling to your skeletonScaling to your skeleton

– AutoFits muscles to AutoFits muscles to duplicated skinduplicated skin

– AutoSkins muscles to duped AutoSkins muscles to duped skinskin

Page 111: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

111

The Ultimate ReferenceThe Ultimate Reference• Once you have the “Ultimate Once you have the “Ultimate

Reference”, you now have Reference”, you now have the data to let a programmer the data to let a programmer put you out of a job. All (s)he put you out of a job. All (s)he needs to figure out is:needs to figure out is:– How many joints?How many joints?– Where to place them?Where to place them?– How do they need to How do they need to

transform?transform?– What does their weighting What does their weighting

need to be?need to be?

Page 112: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

112

Mohr/Gleicher MethodMohr/Gleicher Method• Siggraph 2003 : “Building Efficient, Siggraph 2003 : “Building Efficient,

Accurate Character Skins from Accurate Character Skins from Example”Example”– White Paper on auto-computing White Paper on auto-computing

placement, animation, and weighting of placement, animation, and weighting of Helper Joints. Helper Joints.

Page 113: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

113

ConclusionConclusion• We’ve covered just a few examples of how to use We’ve covered just a few examples of how to use

SetDrivenKeys, Constraints, and Expressions.SetDrivenKeys, Constraints, and Expressions.• My solutions are just first shot attempts. With My solutions are just first shot attempts. With

refinement, you can come up with much better refinement, you can come up with much better solutions.solutions.

• With these simple tools you can use them in many With these simple tools you can use them in many combinations to achieve nearly any effect you need.combinations to achieve nearly any effect you need.

• Of course everything is RunTime code dependent. As Of course everything is RunTime code dependent. As Character T.D.s we need to fight for:Character T.D.s we need to fight for:– SetDrivenKeysSetDrivenKeys– ConstraintsConstraints

• Point, orient, Point, orient, !!AIM!!!!AIM!!, parent, geometry, parent, geometry– ExpressionsExpressions– Spline IKSpline IK– frameCache (jiggle)frameCache (jiggle)

• Helper Joints are just a temporary solution until we can Helper Joints are just a temporary solution until we can get more advanced deformers at RunTime to simulate get more advanced deformers at RunTime to simulate MusclesMuscles– Per-vertexDeformer (influence objects)Per-vertexDeformer (influence objects)– WrapDeformer (lattices)WrapDeformer (lattices)– fusiForm deformerfusiForm deformer

. . . Talk more about this next year?. . . Talk more about this next year?

Page 114: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

114

ThanksThanks

•… … for your time.for your time.•Please fill out surveys Please fill out surveys

so I can make a better so I can make a better one next year.one next year.

•Peace outPeace out

Page 115: Helper Joints: Advanced Deformations on RunTime Characters Jason Parks Character Technical Director Sony Computer Entertainment America

115

Contacts, Reference, Contacts, Reference, CreditsCredits

• Email::– [email protected][email protected]

om

• Webpage (Helper Joints-GDC 2005):– http://www.jason-parks.com/

HelperJoints