unity3d怎么让模型动起来_Unity动画系统详解1:在Unity中如何制作动画?
摘要:在場景中加入動態(tài)的物體,可以讓整個場景更加生動、真實。Unity場景中的物體可以通過制作動畫,讓物體動起來。簡單的動畫如物體的移動、旋轉(zhuǎn)(比如旋轉(zhuǎn)的風(fēng)扇、閃爍不定的燈泡等),復(fù)雜的動畫如游戲中角色的動作、面部表情等。
洪流學(xué)堂,讓你快人幾步。你好,我是跟著大智學(xué)Unity的萌新,我叫小新,這幾周一起來復(fù)(yu)習(xí)(xi)動畫系統(tǒng)。
包含動畫的場景
小新:“智哥,我想在場景里加上一個旋轉(zhuǎn)的風(fēng)扇怎么做啊?現(xiàn)在做的模型都是靜態(tài)的。”
大智:“這就需要用到動畫系統(tǒng)了。在場景中加入動態(tài)的物體,會讓整個場景更加生動、真實。除了上周學(xué)過的粒子效果外,場景中的物體也可以通過制作動畫,讓物體動起來。簡單的動畫如物體的移動、旋轉(zhuǎn)(比如旋轉(zhuǎn)的風(fēng)扇、閃爍不定的燈泡等),復(fù)雜的動畫如游戲中角色的動作、面部表情等。”
動畫系統(tǒng)
Unity中的動畫主要是三種來源:
在Unity引擎中制作動畫
從外部工具(如3ds Max、Maya等)導(dǎo)入動畫
使用代碼制作的動畫
下面討論的主要是前兩種來源的動畫,使用代碼寫動畫我們后面再學(xué)習(xí)。
Unity中內(nèi)置了強(qiáng)大的動畫系統(tǒng),可以支持在Unity內(nèi)制作動畫,也支持從外部導(dǎo)入動畫。
動畫系統(tǒng)基于一種名為Animation Clip(動畫剪輯)的資源,這些資源以文件的形式存在工程中。這些文件內(nèi)的數(shù)據(jù)記錄了物體如何隨著時間移動、旋轉(zhuǎn)、縮放,物體上的屬性如何隨著時間變化。每一個Clip文件是一段動畫。
這些動畫可以在Unity中直接制作,也可以由美術(shù)同學(xué)在3D建模軟件中制作并導(dǎo)入到Unity中。
在Unity中制作動畫
在Unity中制作動畫需要用到Animation窗口,可以通過菜單欄Window > Animation打開Animation窗口。
通過這個窗口可以創(chuàng)建、編輯動畫,也可以查看導(dǎo)入的動畫。Animation窗口同一時間只能查看、編輯同一段Clip中的動畫。Animation適合單個物體(及其子物體)的動畫編輯。咱們最近剛學(xué)的Timeline系統(tǒng),適合同時對場景中多個物體制作復(fù)雜動畫,還能包含音頻,自定義的動畫內(nèi)容。
在Unity中制作動畫一般分為以下幾個步驟:
1、打開Animation窗口
2、選中要制作動畫的物體
3、創(chuàng)建新的動畫Clip
4、編輯、預(yù)覽、修改動畫
創(chuàng)建新的Animation Clip
選中要制作動畫的物體,這時候Animation窗口會有以下兩種狀態(tài):
狀態(tài)1:該物體上沒有動畫,可以點擊Animation窗口中間的Create按鈕創(chuàng)建動畫Clip。
物體上沒有動畫的情況
狀態(tài)2:該物體上已經(jīng)有動畫,會在窗口中顯示一段動畫的關(guān)鍵幀。可以通過左上角的菜單切換預(yù)覽動畫、創(chuàng)建新動畫。可以點擊Create New Clip...來創(chuàng)建新的動畫Clip,如下圖所示。
物體上有動畫的情況
點擊完創(chuàng)建新的動畫Clip后,會彈出一個文件對話框,可以設(shè)置保存動畫Clip的位置。(為了保持工程文件目錄的整潔,不要保存在工程根目錄,建議保存在Animations文件夾中)
保存完畢后,原先沒有動畫的物體上會自動附加一個Animator組件,這個組件是做什么的呢?
Animator組件
Animation Clip只是一段動畫數(shù)據(jù),你可以把它類比成視頻文件,而Animator組件是一個播放器,用來控制動畫的播放、多個動畫片段之間的切換等。
Animator窗口
Animator組件的第一個屬性是Controller,對應(yīng)到工程目錄中的文件是一個Animator Controller類型的文件,可以在這個文件中定義動畫Clip之間如何進(jìn)行切換。雙擊這個文件會打開Unity的Animator窗口,顯示該文件中的內(nèi)容。后面會細(xì)講Animator組件。
制作動畫
創(chuàng)建了動畫Clip后,就可以開始制作動畫了。
Animation窗口有兩種模式:錄制模式和預(yù)覽模式。
點擊圖中紅色按鈕進(jìn)入錄制模式,時間軸會顯示為紅色
點擊圖中Preview按鈕進(jìn)入預(yù)覽模式,時間軸會顯示為淺藍(lán)色。在時間軸上點擊也會自動進(jìn)入預(yù)覽模式
在錄制模式下,當(dāng)你對物體進(jìn)行改動時(例如移動、旋轉(zhuǎn)、縮放、修改屬性等),Unity會自動在當(dāng)前時間位置生成關(guān)鍵幀,記錄修改的屬性。
在預(yù)覽模式下,修改物體不會自動創(chuàng)建/修改關(guān)鍵幀,如果需要創(chuàng)建/修改關(guān)鍵幀,你需要手動點擊添加關(guān)鍵幀按鈕。
錄制關(guān)鍵幀
點擊錄制按鈕后,就進(jìn)入了錄制狀態(tài)。
可以通過在時間軸上拖動修改當(dāng)前所在的時間位置。
在時間軸上拖動修改當(dāng)前時間
也可以通過修改當(dāng)前幀數(shù)輸入框中的數(shù)字,修改時間軸的位置。默認(rèn)情況下,動畫的幀速率是60,即每秒播放60幀。如果設(shè)置當(dāng)前幀數(shù)為30,就是0.5秒的位置。
在錄制模式下,不管是在場景中移動、旋轉(zhuǎn)、縮放物體,還是在Inspector面板中修改物體組件的屬性(Unity動畫支持的屬性),Unity都會自動在動畫Clip的當(dāng)前時間上添加關(guān)鍵幀保存。
當(dāng)前被記錄的屬性,在Inspector上會以紅色背景顯示
編輯動畫
編輯完動畫后,可以再次點擊錄制按鈕退出錄制模式,避免后續(xù)對物體的操作被記錄到動畫中。
現(xiàn)在你會看到在Animation窗口中,左側(cè)多處很多個屬性,這些屬性就是所有被記錄的屬性列表。你也可以通過點擊下方的Add Property按鈕手動添加需要被動畫記錄的屬性。
手動創(chuàng)建關(guān)鍵幀
如果沒有在錄制模式下,對物體的修改不會自動記錄到動畫Clip中。如果需要記錄,需要手動添加關(guān)鍵幀進(jìn)行記錄。
如果在Inspector中修改了物體的屬性,物體的屬性會從淺藍(lán)色背景變?yōu)闇\紅色,代表該屬性已經(jīng)被修改。這時候你可以右鍵點擊對應(yīng)的屬性,在彈出菜單中點擊Add Key即可添加關(guān)鍵幀,將該屬性的數(shù)據(jù)保存到動畫Clip中。如果你在當(dāng)前幀修改了多個屬性,可以點擊菜單中的Key All Modified(將所有修改的屬性記錄關(guān)鍵幀)或Key All Animated(記錄屬性列表中所有屬性的數(shù)值,即使與上一幀相同數(shù)值的屬性也會被記錄)來一次性將所有修改的屬性保存。
屬性上的右鍵菜單
也可以點擊Animation窗口左側(cè)的Add Keyframe按鈕來記錄當(dāng)前屬性列表中選中屬性的關(guān)鍵幀,如果當(dāng)前沒有選中任何屬性,則會記錄所有屬性。如下圖所示。
小技巧
添加關(guān)鍵幀也有快捷鍵哦,記住快捷鍵能大幅提高制作動畫的效率。
K Key All Animated,將記錄當(dāng)前屬性列表中選中屬性的關(guān)鍵幀,如果當(dāng)前沒有選中任何屬性,則會記錄所有屬性。
Shift + K Key All Modified,將動畫屬性列表中所有已修改的屬性的數(shù)值記錄為關(guān)鍵幀。
使用曲線編輯動畫
默認(rèn)情況下,Animation窗口是DopeSheet模式,顯示的是關(guān)鍵幀的點。可以通過點擊下方的Curves切換為曲線模式,進(jìn)一步調(diào)節(jié)關(guān)鍵幀之間的數(shù)值是如何過渡的。
切換到Curves模式后,出現(xiàn)的曲線編輯框和我們之前在粒子系統(tǒng)模塊學(xué)到的用法是一樣的,在這就不重復(fù)了。
可以在左側(cè)屬性列表選中一條或多條曲線進(jìn)行編輯。
小技巧
別忘了F的妙用,F鍵可以讓曲線充滿整個窗口,這在不同屬性的曲線之間切換時非常有用。
編輯關(guān)鍵幀
編輯關(guān)鍵幀時,可以多選(在Curve編輯中同理):
按住Shift或Ctrl,再點擊關(guān)鍵幀可以選中多個關(guān)鍵幀
通過框選多選關(guān)鍵幀
按住Shift或Ctrl的同時框選,可以添加或移除框選住的關(guān)鍵幀
框選關(guān)鍵幀
批量移動關(guān)鍵幀
批量縮放關(guān)鍵幀
Ripple Edit 波紋編輯
你會發(fā)現(xiàn)直接拖拽多個關(guān)鍵幀時,后方的關(guān)鍵幀并不會跟隨這些關(guān)鍵幀移動。如果你想讓后方的關(guān)鍵幀也跟著移動,可以按住R鍵,同時拖拽這些關(guān)鍵幀。這種編輯方式叫做Ripple Edit(在音視頻編輯軟件中很常見)。縮放同理。
Ripple Edit
預(yù)覽動畫效果
點擊Animation窗口中的播放按鈕,就可以在Scene中預(yù)覽動畫。
在游戲運行時播放動畫
今天做出來的動畫,在點擊Play按鈕以后就會自動循環(huán)播放了。如果不想讓它循環(huán)播放,可以選中Animation Clip文件,取消Loop的勾選。
如果不想讓這段動畫自動播放,那就需要修改Animator Controller啦,接著往下學(xué)吧!
總結(jié)
大智:“敲黑板,今天講了如何使用Unity內(nèi)的Animation給物體做動畫,希望你能記住一下幾點:”
Animation Clip是Unity中保存動畫的資源文件,保存在工程中。
Animator是Animation Clip的播放器。
Animator Controller是一個“導(dǎo)演”,類似“播放列表”,用來指導(dǎo)Animator如何播放其中的Animation Clip
今日思考題
大智:“動手創(chuàng)建一個簡單的動畫試一試吧!”
小新:“好嘞~”
大智:“收獲別忘了分享出來!別忘了分享給你的朋友,也許能夠幫到他。”
擴(kuò)展閱讀
【擴(kuò)展學(xué)習(xí)】在洪流學(xué)堂公眾號回復(fù)動畫可以閱讀本系列所有文章,更有視頻教程等著你!
呼~ 今天小新絮絮叨叨的真是夠夠的了。沒講清楚的地方歡迎評論,咱們一起探索。
我是大智(微信:zhz11235),你的技術(shù)探路者,下次見!
別走!點贊,收藏哦!
好,你可以走了。
總結(jié)
以上是生活随笔為你收集整理的unity3d怎么让模型动起来_Unity动画系统详解1:在Unity中如何制作动画?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3DMax基础入门教程,命令面板的设置简
- 下一篇: 房地产中介管理系统【JAVA版本】