60
ی س ی و ن ه م ا رن ب های ش رو ن ش ی م ی ن ا رای ب ه ای ن ا ی ران ی ها ار ن ی ح ی ص ف ن ی س ح ر می ا ف ی ر ش ار ز ف ا ن ف ر ی2 ن1391

Animation Programming Techniques

Embed Size (px)

Citation preview

Page 1: Animation Programming Techniques

نویسی برنامه روشهایانیمیشن

برایای رایانه های بازی

فصیحی امیرحسینشریف افزار فن

1391تیر

Page 2: Animation Programming Techniques

اهداف

در • انیمیشن سازی پیاده فنی روشهای بر مروریها بازی

سازی • بهینه روشهایجدید • های روش بررسیعلمی • تحقیقاتی های حوزه بعضی با آشناییهای • بازی از برخی در انیمیشن های فناوری تحلیل

روزانیمیشن • افزارهای میان

Page 3: Animation Programming Techniques

انیمیشن سازی پیاده روشهای انواعبازی در

• Cel Animation• Billboards with animated textures• Rigid Hierarchical• Vertex Animation• Skinned Animation

Page 4: Animation Programming Techniques

Cel Animation

Page 5: Animation Programming Techniques

3D Animation

Doomبازی •oQuad دوربین سمت به هاییoAnimated Texture

Page 6: Animation Programming Techniques

3D Animation

Rigid Hierarchical Animation

Page 7: Animation Programming Techniques

Per Vertex Animation / Morph Target

Page 8: Animation Programming Techniques

Facial Morph Demo Video

Page 9: Animation Programming Techniques

Skinned Animation

Page 10: Animation Programming Techniques

Skinned Animation

• Software Skinning• Hardware Skinning (GPU shaders)

Page 11: Animation Programming Techniques

Automatic Rigging

http://www.mit.edu/~ibaran/autorig/

Page 12: Animation Programming Techniques

انیمیشن در زمان

• Pose Interpolation / Continuous Time• Time unit (seconds/frames)• Frame/Sample

ttt = 0.2 ttt = 0.8 ttt = 1.3

Keyframe 1 Keyframe 2 Keyframe 3

Page 13: Animation Programming Techniques

انیمیشن برای ای داده قالب

• Joint 1o Keyframe 1

Translation• x, y, z

Orientation• x, y, z, w

Scale• x, y, z

o Keyframe 2 Translation

• .....o ....

• Joint 2

o ....

Page 14: Animation Programming Techniques

فشرده روش عنوان به انیمیشنسازی

الزم هر: اطالعات از vertexموقعیت لحظه هر درزمان.

اطالعات: کمترین ذخیره هدف

Page 15: Animation Programming Techniques

Animation Retargeting

• Real-time motion retargetting to highly varied user created morphologies (Spore)• http://chrishecker.com/Real-time_motion_retargeting_to_highly_varied_user-created_morphologies

• Feature points based facial animation retargetting • http://dl.acm.org/citation.cfm?id=1450621

Page 16: Animation Programming Techniques

Havok Animation Retargeting Video

Page 17: Animation Programming Techniques

Metachannels

• Eventso Time = 0.5

footstep lefto Time = 1.5

footstep righto ...

• ...

Page 18: Animation Programming Techniques

Animation BlendingLERP Blending

• Temporal Interpolation

• Motion Continuity (Cross Fading)

• Directional Locomotiono Targeted Movemento Pivotal Movement

• Complex LERP Blendo Generalized one dimensionalo Simple Two dimensionalo Triangular Two dimensionalo Generalized Two dimensional

Page 19: Animation Programming Techniques

Blending

• Partial skeleton blending• Additive blending

o Stance variationo Locomotion noiseo Aim and look ato Overloading time axis

Page 20: Animation Programming Techniques

Partial Blending

Uncharted 2

Page 21: Animation Programming Techniques

Additive Blending

Page 22: Animation Programming Techniques

Blend Trees

Page 23: Animation Programming Techniques

Blend Tree

Page 24: Animation Programming Techniques

UDK Blend Tree Video

Page 25: Animation Programming Techniques

Post Processing

• Procedural Animation• Inverse Kinematics• Ragdolls

Page 27: Animation Programming Techniques

Leg IK

Page 28: Animation Programming Techniques

Animation Pipeline

• Clip decompression and pose extraction• Pose blending• Global pose generation• Post-processing• Recalculation of global poses• Matrix palette generation

Page 29: Animation Programming Techniques

انیمیشن سازی بهینه

کمتر • حافظه از استفادهبصورت • حافظه از cache friendlyاستفاده

Page 30: Animation Programming Techniques

فشرده – کمتر حافظه از استفادهسازی

• Channel Omission• Quantization

o Scalar Quantization (Jonathan Blow:

http://number-none.com/product/Scalar%20Quantization/index.html)

• Sample Frequency and Key Omission• Curve Based Compression (B-Splines, Granny)

• Selective Loading and Streaming

Page 31: Animation Programming Techniques

Curve Based Compression (B-Splines)

30fps -> 90 frames -> 90 * 32bits = 27180 bitsCurve Fitting -> 7 data points -> 7 * 32bits = 224 bits

t = 3 sec

q

Page 32: Animation Programming Techniques

CPU Cache

Bitsquid Engine (Low Level Animation System)http://bitsquid.blogspot.com/2009/11/bitsquid-low-level-animation-system.htmlhttp://bitsquid.blogspot.com/2011/10/low-level-animation-part-2.html

Page 33: Animation Programming Techniques

Multithreaded Animation

• Intel Horsepower demo:http://software.intel.com/en-us/articles/horsepower-source-code-download/

Page 34: Animation Programming Techniques

Intel Horsepower Demo

Single Threaded Animation

Page 35: Animation Programming Techniques

Intel Horsepower Demo

Multithreaded Animation

Page 36: Animation Programming Techniques

Animation Layering

Face Layer - PartialHand Layer - PartialHair Layer - PartialBase Layer - Full BodyRun Randomness Layer - AdditiveWeapon Layer - PartialBreathing Layer - Additive

Animation and Player Control in Uncharted 1 & 2, Travis McIntosh, GDC 2010

Page 37: Animation Programming Techniques

Physics Based Animation

مدل • برای فیزیکی سازی شبیهشده • تعریف پیش از انیمیشن از استفادهانیمیشن • و سازی شبیه ترکیبسپس • و فیزیDکی اعضای روی بر انیمیشن اعمال

سازی شبیه

Page 38: Animation Programming Techniques

Dynamic, data-driven character control with adjustable balance, Dynamo

http://graphics.cs.williams.edu/papers/DynamoVGS06

Page 39: Animation Programming Techniques

Dynamo Video - Adaptation

Page 40: Animation Programming Techniques

Dynamo Video - Balance

Page 41: Animation Programming Techniques

Dynamo - Boxing

Page 42: Animation Programming Techniques

Dynamo - Failure

Page 43: Animation Programming Techniques

Dynamic Response for Motion Capture Animationhttp://graphics.cs.ucr.edu/projects/dynResp/mocsim2.html

Page 44: Animation Programming Techniques

Dynamic Response

Page 45: Animation Programming Techniques

Dynamic Motion Synthesis

• Natural Motion (Endorphin, Euphoria) http://naturalmotion.com

• Gameso Read Dead Redemptiono GTA IVo Star Wars: The Force Unleashed

Page 46: Animation Programming Techniques

Natural Motion - Euphoria

Page 47: Animation Programming Techniques

فناوری پایه

Page 48: Animation Programming Techniques

ژنتیکی های الگوریتم و عصبی شبکه

Page 49: Animation Programming Techniques

Dynamic Motion Synthesis – Read Dead Redemption

Page 50: Animation Programming Techniques

Dynamic Motion Synthesis – GTA IV

Page 51: Animation Programming Techniques

Dynamic Motion Synthesis – Star Wars, Force Unleashed

Page 52: Animation Programming Techniques

Parametric Motion Graphs

از • عمدتا حDرکتی، های داده MotionذخیرهCapture

ساخت • و ها داده Motion Graphآنالیزجستجوی • بازی real-timeانجام اجرای هنگام در

Page 53: Animation Programming Techniques

Motion Graphs Research

Motion Graphshttp://research.cs.wisc.edu/graphics/Papers/Gleicher/Mocap/mograph.pdf

Parametric Motion Graphshttp://pages.cs.wisc.edu/~heckr/Papers/PMGFullPaper.pdf

Page 54: Animation Programming Techniques

Parametric Motion Graphs Demo Video

Page 55: Animation Programming Techniques

مصنوعی هوش و انیمیشن

حرکت • انتخابoMotion Graphoفیزیکی

activepassive

روباتیک • و کنترل تحقیقات با راستا هم

Page 56: Animation Programming Techniques

Animation-Driven Locomotion

Animation Driven Locomotion for Smoother Navigation (GDC 2012)

Bobby AnguelovAI Programmer IO InteractiveGabriel Leblanc AI Programmer, EidosShawn Harris Senior Programmer, Big Huge Games

Page 57: Animation Programming Techniques

انیمیشن افزارهای میان

• Natural Motion, Morpheme• Autodesk, HumanIK• RAD Game Tools, Granny• Havok Animation/Behavior• Chemical Games, Alienmotion

Page 58: Animation Programming Techniques

Animation Middleware - Alienmotion

Page 59: Animation Programming Techniques

• Game Engine Architecture, Jason Gregory• Bisquid.se• Game Programming Gems Series• AI Game Programming Wisdom Series• gamasutra.com

منابع سایر

Page 60: Animation Programming Techniques

سوال؟

[email protected]@ahfassihi