Unity3D動(dòng)畫系統(tǒng)
分為舊版動(dòng)畫系統(tǒng)和新版動(dòng)畫(Mecanim)系統(tǒng)即Animation 與 Animator
Mecanim概述:
Mecanim是Unity提供第一個(gè)豐富而復(fù)雜的動(dòng)畫系統(tǒng),提供了:
針對(duì)人形角色的簡(jiǎn)易的工作流和動(dòng)畫創(chuàng)建能力
Retargeting(運(yùn)動(dòng)重定向)功能歹鱼,即把動(dòng)畫從一個(gè)角色模型應(yīng)用到另一個(gè)角色模型上的能力泣栈。
針對(duì)Animations Clips(動(dòng)畫片段)的簡(jiǎn)易工作流,針對(duì)動(dòng)畫片段及他們之間的過(guò)度和交互預(yù)覽能力。
一個(gè)用于管理動(dòng)畫間復(fù)雜交互作用的可視化窗口南片。
通過(guò)不同邏輯來(lái)控制不同身體部位的運(yùn)動(dòng)能力掺涛。
1、Animation動(dòng)畫狀態(tài)機(jī)
Animation是U3D舊版的動(dòng)畫狀態(tài)機(jī)疼进,我們一般將模型中的動(dòng)畫放入其中薪缆,通過(guò)代碼開執(zhí)行動(dòng)畫。
// 拿到Animation組件
Animation Ani = GetComponent<Animation>();
// 執(zhí)行已經(jīng)放入其中的動(dòng)畫片段
Ani.CrossFade("Walk"); // 默認(rèn)就是正播
Ani["Walk"].speed = 1f;
Ani["Walk"].speed = -1f; // 如果是-1 那就是倒著播放
Ani.CrossFade("Walk");
2伞广、Animator動(dòng)畫狀態(tài)機(jī)
其實(shí)到這里拣帽,我們應(yīng)該想一個(gè)角色模型上面有什么?
2-1.U3D角色模型擁有什么屬性嚼锄?
導(dǎo)入進(jìn)Unity3D的模型屬性:
2-2.將制作好的角色模型導(dǎo)入U(xiǎn)nity3D中是什么樣减拭?
2-3.新的Mecanim動(dòng)畫系統(tǒng)多了什么東西呢?
我們可以看出多了一個(gè)普通,標(biāo)準(zhǔn)動(dòng)畫区丑,和一套類人體骨骼動(dòng)畫拧粪。
2-4.二者之間有什么區(qū)別呢?
Generic:
這是為任何東西像是人沧侥,有動(dòng)畫的柱子可霎,四足動(dòng)物之類設(shè)計(jì)的。重定向在這里是不支持的宴杀,但是你仍然可以得到后文中描述的Mecanim的好處癣朗。
Humanoid:
Mecanim對(duì)于類人角色有一個(gè)特別的工作流,使用擴(kuò)展后的GUI和重定向婴氮。配置包含創(chuàng)建和設(shè)定一個(gè)Avatar并且調(diào)整肌肉定義斯棒。
類人體骨骼動(dòng)畫就是由Unity3D軟件根據(jù)動(dòng)畫模型的骨骼系統(tǒng)創(chuàng)建一套自己的Avatar.
何一個(gè)擁有avatar的GameObject都將擁有一個(gè)Animator組件用來(lái)連接角色和他的行為。
Avatar:
是一個(gè)將一個(gè)角色的骨骼信息重定向到另一個(gè)角色上的接口主经。(下圖展示就是一個(gè)Avatar)
我們一般查看內(nèi)部的骨骼有沒有錯(cuò)誤,或者肌肉的伸展有沒有問(wèn)題.(如果在公司,那么有問(wèn)題也輪到開發(fā)人員去調(diào)整,模型師會(huì)幫助你完成)