Hình: 2D Spine.
Trang 1Bài 3: Animation
và i u khi n hành ng nhân v t
Gi ng viên:
Trang 4Animation
M t animation là m t hình nh ng mô t m t i t ng nào ó trong game
Ví d : có th là m t chi c xe ang ch y, hay m t nhân v t ang i
M t animation trong Unity có th bao g m nhi u hành
ng, m t hành ng nh v y g i là m t clip
Ví d : m t nhân v t có th có các hành ng i, ng,
nh y
Có hai k thu t t o animation (c 2D và 3D):
• K thu t key frame
• K thu t skeletal hay spine
Trang 5Animation
K thu t t o animation
K thu t key frame
i v i k thu t key frame, ng i ta s d ng m t sprite cho
m t key frame c a hành ng
Trang 6Animation
K thu t t o animation
K thu t key frame
t o ra chuy n ng, ta s v m t key frame t i th i i m
u và thay i tu n t các key frame sau, chúng ta s có
c m t animation
ây là ph ng pháp n gi n nh t t o chuy n ng,
nh ng l i t n kém v b nh , vì ta ph i t n nhi u sprite cho nhi u chuy n ng khác nhau
Trang 7Animation
K thu t t o animation
* K thu t skeletal hay spine hay b x ng
i v i k thu t này, ng i ta chia i t ng ra thành nhi u sprite, m i sprite là m t b ph n c a i t ng (gi ng nh 1 khúc x ng c a b x ng)
t o ra m t key frame m i, ta s thay i các sprite v v trí, l n, xoay c a các sprite thành ph n có liên quan n chuy n ng
Sau ó k t h p các key frame l i v i nhau nh k thu t key frame t o thành các animation
Trang 8Animation
K thu t t o animation
* K thu t skeletal hay spine hay b x ng
Chúng ta có th xem các sprite c u t o nên m t key frame
nh d i
Cách này có v t n th i gian h n, nh ng l i r t là hi u qu ,
c bi t là ti t ki m c nhi u b nh
Hình: 2D Spine
Trang 9Animation
T o animation b ng Unity
T o Animation theo k thu t Key Frame
Cách t o animation theo skeletal c ng t ng t
T bài tr c chúng ta ã t o c nh ng Sprite c b n nh sau:
Trang 10
Animation
T o animation b ng Unity
MainCharacter (Parent Object)
MainCharacter ( i t ng con nên t v trí 0,0,0)
B c 3: Thêm Sprite Render cho i t ng con Animations
v a t o R i ch n sprite hi n th m c nh cho Animation này
Trang 11c 1, 2,3
Trang 12Animation
T o animation b ng Unity
B c 4: Ch n i t ng MainCharacter c a s Hierarchy,
r i ch n Menu -> Window -> Animation
M t c a s Animation editor hi n ra nh sau:
Nút play xem tr c animation
Danh sách các clip hi n th i c a aniamtion
Thanh key frame
Trang 13Animation
T o animation b ng Unity
T o m t clip: Click vào danh sách clip r i ch n Create New Clip, ta t tên clip là Running, r i save l i th m c Animations c a Assets
Trang 14B c 4
Trang 15Animation
T o animation b ng Unity
B c 5: c a s Animation Editor, ch n Add Curve, ch n
Animations ( i t ng con c a i t ng MainCharacter)
ch n Sprite Render, ch n Sprite
Chú ý: i v i m t clip b t k , b c này b t bu c ph i có
Trang 17Animation
T o animation b ng Unity
Ti p theo ta ch n key frame th 2, c a s Inspector, component Sprite Render, ta ti n hành i sprite khác (player_1 thay vì player_0) Ch n nút c bao quanh b i ô tròn , r i ch n Sprite khác t c a s m i hi n ra
Trang 18Animation
T o animation b ng Unity
Bây gi , chúng ta ch c n click úp vào thanh Key Frame thêm các key frame và kéo th các key frame sao cho th i gian phù h p có c chuy n ng c n thi t
Trang 19c 5
Trang 20Animation
T o animation b ng Unity
Ngoài thay i sprite chúng ta có th thay i Transform (Translate, Scale, Rotation) cho sprite t i m i key frame, b ng cách thêm Curve Transform cho i t ng Animation nh hình:
Trang 21Animation
T o animation b ng Unity
Sau ó ta ch vi c ch n các key frame, r i t các giá tr
transform cho phù h p theo ba tr c x, y, z
T ng t ta s t o các clip Jump (nh y), Idle (tr ng thái ngh ) cho i t ng
Trang 22Animation
T o animation b ng Unity
Chú ý:
ch không thay i transform và sprite render c a i t ng cha là MainCharacter
thêm tr c ti p vào i t ng cha, sau này thêm thành ph n v t lý,
ho c áp d ng các phép transform vào s b sai, ho c m t tác d ng
t ng cha, lúc nhân v t nh y, hình nh c a nó nh y lên nh ng v trí c a nó tính v t lý (theo i t ng cha) v n n m d i ho c
th p h n hình nh > Không úng th c t
nh y mà thôi
Trang 23Transform
Trang 24i u khi n hành ng nhân v t (Animator)
i u khi n hi u ng(animation) trong unity chúng ta c n
s d ng Animator components
Animator components có m t s thu c tính nh sau(s
l ng thu c tính s tùy thu c vào i t ng là 3D hay 2D):
Trang 25i u khi n hành ng nhân v t (Animator)
Controller: ch a liên k t n animator controller asset
Animator controller là assets t o b i Unity ch a m t ho t nhi u tr ng thái( state machines) dùng ch nh animation nào ang c ch y khi sence ang ch y, nh ng tr ng thái (state machines) này có th n m trên nhi u layers và s d ng nhi u ki u bi n khác nhau i u khi n khi nào chúng d ch chuy n(transition) t tr ng thái này sang tr ng thái kia
Ví d : có th thay i thu c tính c a m t animator controller
t script:
animator.SetTrigger("destroy");
//Bi n ây là ki u trigger
t ng t b n có th thay i tr ng thái c a gameObject
Trang 26i u khi n hành ng nhân v t (Animator)
Avatar là m t asset Unity t o ra khi import m t gameObject 3D hình ng i Nó ch a nh ngh a dàn khung x ng c a nhân v t Khi thêm i t ng lo i này vào sence c a b n,
tr ng avatar s t ng c c p nh t v i m t asset t o ra cho nhân v t ó(n u không s là none
Apply Root Motion: là tr ng nh ngh a xem animation có
nh h ng n Transform c a gameObject hay không và
th ng c s d ng v i các nhân v t 3D hình ng i
Trang 27i u khi n hành ng nhân v t (Animator)
Animate Physics: Khi c check có ngh a là animations s
c th c thi trong th i gian v t lý (th ng thì thu c tính
này c dùng cho i t ng có rigidbody)
Trang 28i u khi n hành ng nhân v t (Animator)
i u khi n các hành ng nhân v t – Animator
ph n tr c chúng ta ã tìm hi u cách t o các clip hay các hành ng c a m t animation V i m t animation nh v y ta
s có m t Controller (MainCharacter.controller) i kèm theo
Ph n này ta s h ng d n cách chuy n qua l i gi a các hành
ng b ng máy tr ng thái
Trang 29i u khi n hành ng nhân v t (Animator)
i u khi n các hành ng nhân v t – Animator
Trang 30i u khi n hành ng nhân v t (Animator)
i u khi n các hành ng nhân v t – Animator
Danh sách các state, m i state t ng ng v i m t clip
Trang 31i u khi n hành ng nhân v t (Animator)
i u khi n các hành ng nhân v t – Animator
Click chu t ph i vào state Idle, ch n Set Default thi t l p state m c nh cho i t ng
Ch n Make Transition, sau ó a chu t n tr ng thái ích
V i m i transition v a t o, có ngh a r ng nhân v t t tr ng thái hi n t i có th chuy n i tr c ti p qua tr ng thái ích
K t qu thu c ta g i là máy tr ng thái hay s chuy n
i tr ng thái
Trang 32i u khi n hành ng nhân v t (Animator)
i u khi n các hành ng nhân v t – Animator
Khi i t ng c load lên, tr ng thái m c nh s c thi t l p
chuy n qua tr ng thái khác: ta t o thêm các tham s , và
d a vào giá tr các tham s này chuy n i các tr ng thái
Chú ý: ây cho n gi n, ta thi t l p 3 tr ng thái có th
chuy n qua l i tr c ti p v i nhau
3 tham s ki u bool
• isJump,
• isIdle,
• isRunning
Trang 33i u khi n hành ng nhân v t (Animator)
i u khi n các hành ng nhân v t – Animator
thêm các tham s cho Animator controller b n nh p vào icon +
Các tham s này có th là ki u float, ints, bool ho c trigger
Các thông s này th ng dùng trong vi c th c hi n các animation ho c chuy n i các animation
Ví d : gi s b n t o m t animation cho object di chuy n,
có th b n s s d ng tham s ki u float, và khi tham s float này l n, b n có th chuy n animation sang m t animation khác th hi n s di chuy n nhanh h n
Trang 34T o
Trang 35i u khi n hành ng nhân v t (Animator)
i u khi n các hành ng nhân v t – Animator
thi t l p i u ki n cho m t transition, ta click ch n transition ó (transition c ch n chuy n qua màu xanh),
c a s Inspector, m c thu c tính Conditions ( i u ki n) ta s thi t l p giá tr c a các tham s , xác nh lúc nào thì chuy n tr ng thái
ây, chúng ta ch n isRunning = true
Trang 36i u khi n hành ng nhân v t (Animator)
i u khi n các hành ng nhân v t – Animator
T ng t ta thi t l p isIdle, isJump cho các transition khác
Chú ý: Ph n Script ta s c p rõ, cách thi t l p giá tr các
tham s này
Trang 37i u khi n hành ng nhân v t (Animator)
i u khi n các hành ng nhân v t – Animator
Cu i cùng, c a s Hierarchy, ta ch n MainCharacter, c a
s Inspector, m c Animator, ta b ch n Apply Root Motion
n ây, chúng ta ã bi t cách xây d ng m t animation cho
Trang 38Thi t l p i u
ki n cho
Trang 40Chu n b bài sau
Trang 41THANK YOU!