最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Unity Animation -- Overview

2023-03-30 21:18 作者:vivo119  | 我要投稿

Unity中動(dòng)畫(huà)師要做什么?

? ? ? ? 動(dòng)畫(huà)師負(fù)責(zé)為交互體驗(yàn)應(yīng)用實(shí)現(xiàn)物體的動(dòng)畫(huà)效果,這些游戲物體有角色、過(guò)場(chǎng)動(dòng)畫(huà)、UI panel運(yùn)動(dòng)效果等等。

? ? ? ? 一般來(lái)說(shuō),非常復(fù)雜的物體或動(dòng)畫(huà)都是在DCC(Digital Content Creation)應(yīng)用軟件中制作的,比如Autodesk Maya、3DMax或Blender。這些DCC有非常完善穩(wěn)定的動(dòng)畫(huà)工具套件來(lái)幫助制作者簡(jiǎn)化模型及其動(dòng)畫(huà)的制作過(guò)程。這些工具包括了rigs(用于角色動(dòng)畫(huà)的基礎(chǔ)的類似骨骼的結(jié)構(gòu))創(chuàng)建、毛發(fā)運(yùn)動(dòng)、動(dòng)作制作等功能。

? ? ? ? 在Unity中,editor內(nèi)(in-editor)動(dòng)畫(huà)制作主要用于比較簡(jiǎn)單的物體,或者當(dāng)動(dòng)畫(huà)本身是和具體的場(chǎng)景所綁定的時(shí)候(例如一個(gè)關(guān)卡中在兩點(diǎn)之間移動(dòng)的平臺(tái))。在同一個(gè)工程中,內(nèi)部和外部創(chuàng)建的動(dòng)畫(huà)常常是結(jié)合到一起來(lái)使用的。

? ? ? ? 在具體項(xiàng)目中,Unity動(dòng)畫(huà)師需要熟悉在Editor中導(dǎo)入和配置動(dòng)畫(huà),需要懂得如何設(shè)置Animator Controller(這個(gè)組件決定了一個(gè)動(dòng)畫(huà)什么時(shí)候切換到另一個(gè)動(dòng)畫(huà))。因此Unity動(dòng)畫(huà)師要對(duì)Unity中所有和動(dòng)畫(huà)相關(guān)的組件有牢靠的基礎(chǔ)。另外,如果動(dòng)畫(huà)師有基礎(chǔ)的腳本知識(shí)則會(huì)起到相當(dāng)大的幫助。

創(chuàng)建一個(gè)動(dòng)畫(huà)片段(Animation Clip)

? ? ? ? 在Unity中,單個(gè)動(dòng)畫(huà)被存儲(chǔ)在叫做Animation Clip的資產(chǎn)中。Animation clips能夠是任意時(shí)長(zhǎng)的,一個(gè)單獨(dú)的GameObject能夠有多個(gè)關(guān)聯(lián)的動(dòng)畫(huà)片段。下面的例子中我們會(huì)為場(chǎng)景中的一個(gè)小球創(chuàng)建一個(gè)動(dòng)畫(huà)片段。

? ? ? ? 1. 打開(kāi)Animation Editor,按Ctrl+6或者在主菜單中選擇Window -> Animation -> Animation

? ? ? ? 2. 在Hierarchy窗口中,選擇小球?qū)?yīng)的GameObject,然后在Animation Editor中點(diǎn)擊Create為小球創(chuàng)建動(dòng)畫(huà)(記住GameObject和動(dòng)畫(huà)片段是有關(guān)聯(lián)的,因此要為小球添加動(dòng)畫(huà),先要選擇小球)


? ? ? ? ?如果小球已經(jīng)有關(guān)聯(lián)的動(dòng)畫(huà)片段了,那么Animation Editor中不會(huì)出現(xiàn)Create按鈕,而是在這個(gè)窗口中顯示第一個(gè)創(chuàng)建的動(dòng)畫(huà)。

? ? ? ? 點(diǎn)擊了Create之后,Unity會(huì)彈出窗口讓我們選擇動(dòng)畫(huà)保存的位置,一般我們會(huì)保存在工程的Aniamtions目錄(僅為例子,具體保存位置根據(jù)自己需求而定)

? ? ? ? 3. 將動(dòng)畫(huà)的名字命名為Ball_Pulse,然后點(diǎn)擊Save保存動(dòng)畫(huà)。

? ? ? ? ? ? 當(dāng)保存完小球的第一個(gè)動(dòng)畫(huà)片段后,Animation Editor窗口會(huì)發(fā)生變化。左側(cè)的窗口會(huì)出現(xiàn)一個(gè)Add Property按鈕,這個(gè)按鈕可以讓我們添加動(dòng)畫(huà)片段要更改的屬性(比如位置、大小、旋轉(zhuǎn)角度等)。在這個(gè)按鈕的上方,有一個(gè)下拉菜單,里面是選中的游戲物體所關(guān)聯(lián)的全部動(dòng)畫(huà)片段。如果游戲物體有多個(gè)關(guān)聯(lián)的動(dòng)畫(huà),則我們可以選擇其中某一個(gè)動(dòng)畫(huà)來(lái)進(jìn)行編輯。

? ? ? ? ?Animation Editor右側(cè)的窗口有一個(gè)時(shí)間軸,在這個(gè)時(shí)間軸上我們可以編譯在特定時(shí)間點(diǎn)上游戲物體的相關(guān)屬性。


?設(shè)置動(dòng)畫(huà)關(guān)鍵幀

? ? ? ? 動(dòng)畫(huà)本身包含在Animation Clip中,動(dòng)畫(huà)內(nèi)的具體的游戲物體的動(dòng)作(pose)信息被關(guān)鍵幀(keyframes)所定義。在傳統(tǒng)的手繪動(dòng)畫(huà)中,關(guān)鍵幀是主動(dòng)畫(huà)師所繪制的動(dòng)作,對(duì)動(dòng)畫(huà)序列的定義來(lái)說(shuō)非常重要(因此用key形容)。一旦主動(dòng)畫(huà)師完成了這些關(guān)鍵動(dòng)作,其他動(dòng)畫(huà)師會(huì)繪制關(guān)鍵幀之間的圖像幀來(lái)使動(dòng)畫(huà)變得完整。這些補(bǔ)充的幀被稱為中間幀(in-between frames,或稱過(guò)渡幀),也叫tweens。

? ? ? ? 在數(shù)字動(dòng)畫(huà)中,tweening基本上是由動(dòng)畫(huà)師所使用的工具來(lái)處理的,動(dòng)畫(huà)師只需要關(guān)注關(guān)鍵幀如何設(shè)置。數(shù)字關(guān)鍵幀記錄了一個(gè)特定時(shí)間點(diǎn)上該游戲物體動(dòng)畫(huà)相關(guān)的所有數(shù)據(jù)。我們接下來(lái)以小球的動(dòng)畫(huà)為例子來(lái)理解。

? ? ? ? 1. 首先確定我們選中了小球的游戲物體(Hierarchy窗口里)

? ? ? ? 2. 在Animation窗口中點(diǎn)擊Add Property,選擇彈出的下拉菜單里的Transform->Scale右邊的“+”號(hào),表示動(dòng)畫(huà)要修改transform組件的scale屬性


? ? ? ? 此時(shí)在時(shí)間軸這里會(huì)出現(xiàn)四個(gè)菱圖標(biāo),兩個(gè)為一組,這些圖標(biāo)代表了關(guān)鍵幀。


? ? ? ? 當(dāng)我們?yōu)閯?dòng)畫(huà)添加了一個(gè)新屬性的時(shí)候,Animation編輯器會(huì)記錄所選中的游戲物體的相關(guān)數(shù)據(jù)(本例中是小球當(dāng)前的縮放參數(shù)scale),并且會(huì)為其生成初始的關(guān)鍵幀。關(guān)鍵幀會(huì)在時(shí)間軸的開(kāi)始和結(jié)束位置上都生成一個(gè),這樣能讓生成的動(dòng)畫(huà)能夠循環(huán)(loop)播放。如果我們不想要?jiǎng)赢?huà)能循環(huán)播放,我們可以刪掉時(shí)間軸上結(jié)束位置的關(guān)鍵幀。案例中會(huì)保留循環(huán)播放功能。

? ? ? ? 現(xiàn)在我們?cè)O(shè)置好了初始的關(guān)鍵幀,但由于它們是相同的,因此我們看不到任何動(dòng)畫(huà)效果。為了有動(dòng)畫(huà)效果,我們需要在場(chǎng)景中修改小球的mesh,然后設(shè)置另一個(gè)關(guān)鍵幀來(lái)記錄這個(gè)變化。有很多種方法都能實(shí)現(xiàn)這個(gè)目的,最簡(jiǎn)單的方式是使用Animation編輯器的Record按鈕,它會(huì)自動(dòng)檢測(cè)我們對(duì)模型的任何修改并生成出記錄這些改動(dòng)的關(guān)鍵幀。

? ? ? ? 3. 點(diǎn)擊Animation編輯器里的Record按鈕,激活記錄模式(recording mode)。


?????????當(dāng)Record按鈕被按下后,按鈕本身和時(shí)間軸都會(huì)高亮顯示為紅色。只要Record按鈕處于激活狀態(tài),Unity就會(huì)自動(dòng)地檢測(cè)Inspector中發(fā)生變化的屬性并為其添加關(guān)鍵幀。

? ? ? ? 4. 在時(shí)間軸的數(shù)字部分,選擇25對(duì)應(yīng)的標(biāo)線


?? ? ? ? 最初在0標(biāo)線處的白線會(huì)跳到我們所點(diǎn)擊的地方,這條白線的位置表示了播放頭(Playehead),它指明了動(dòng)畫(huà)的哪個(gè)部分是活動(dòng)的,或者說(shuō)關(guān)鍵幀要被放置的位置在哪里。

? ? ? ? 5. 切換到縮放工具(R鍵或者在場(chǎng)景視圖中選擇縮放工具),增加小球的大小。此時(shí)在Playhead的地方會(huì)有一個(gè)關(guān)鍵幀被自動(dòng)地添加到了時(shí)間軸上。


?? ? ? ? 6. 在Animation窗口中,點(diǎn)擊Play按鈕(和Record按鈕挨著的一個(gè)三角符號(hào))來(lái)預(yù)覽動(dòng)畫(huà)效果。

? ? ? ? 可以看到,即便是只設(shè)置了三個(gè)關(guān)鍵幀,小球的大小變化動(dòng)畫(huà)是很平滑的。Unity會(huì)自動(dòng)處理關(guān)鍵幀之間的tweening。

? ? ? ? 我們也可以修改已有的關(guān)鍵幀,將Playhead放到我們想要修改的幀上并選擇關(guān)鍵幀。我們可以在左邊屬性窗口中對(duì)屬性進(jìn)行修改。我們也可以按Delete鍵刪除關(guān)鍵幀。


? ? ? ? 我們回到時(shí)間軸窗口,之前我們看到,關(guān)鍵幀處兩兩一組的菱形圖標(biāo),一個(gè)是深灰色,一個(gè)是淺灰色。深灰色的圖標(biāo)可以選中該點(diǎn)對(duì)應(yīng)的標(biāo)線上的所有關(guān)鍵幀。對(duì)于要在同一個(gè)時(shí)間點(diǎn)上進(jìn)行多個(gè)屬性修改的動(dòng)畫(huà)來(lái)說(shuō)非常有用,我們可以整體對(duì)它們進(jìn)行移動(dòng)。

? ? ? ? 7. 我們還可以改變關(guān)鍵幀在時(shí)間軸上的位置,選中25標(biāo)線處的關(guān)鍵幀(全選)然后拖動(dòng)到30標(biāo)線處看看。

? ? ? ? 8. 記得完成屬性設(shè)置后,再次點(diǎn)擊Record按鈕將recording模式關(guān)閉掉。

創(chuàng)建第二個(gè)動(dòng)畫(huà)片段

? ? ? ? 單個(gè)游戲物體理論上可以有無(wú)限多個(gè)動(dòng)畫(huà)片段。這個(gè)動(dòng)畫(huà)片段中我們實(shí)現(xiàn)小球彈跳效果。

? ? ? ? 1. 確保選中了小球?qū)?yīng)的游戲物體,在Animaiton編輯器中,在顯示當(dāng)前動(dòng)畫(huà)名Ball_Pulse的地方,點(diǎn)擊選擇Create New Clip


? ? ? ? 2.??根據(jù)提示保存動(dòng)畫(huà)片段,我們將其命名為Ball_Bounce

? ? ? ? 3. 由于當(dāng)前的動(dòng)畫(huà)更依賴于時(shí)間信息,我們將時(shí)間軸窗口的信息顯示設(shè)置為Secnods(下點(diǎn)下圖紅框處,然后選擇Seconds)


? ? ? ? 默認(rèn)情況下,Unity的動(dòng)畫(huà)幀率(FPS)是60,意思是對(duì)這個(gè)動(dòng)畫(huà)而言,每秒在屏幕上會(huì)繪制60次。60FPS可以產(chǎn)生非常平滑的動(dòng)畫(huà)效果,但是在實(shí)際項(xiàng)目中,也會(huì)經(jīng)常遇到24FPS的動(dòng)畫(huà)。對(duì)于大部分電影來(lái)說(shuō)都是24FPS。幀率的選擇雖然可以根據(jù)喜好而定,但需要確保我們?cè)谧约旱捻?xiàng)目中要對(duì)所有的動(dòng)畫(huà)都使用一致的幀率。如果我們要導(dǎo)入來(lái)自DCC或者Unity Asset Store的動(dòng)畫(huà),這一點(diǎn)尤其重要,因?yàn)檫@些動(dòng)畫(huà)常常是24FPS的。

? ? ? ? 4. 在第三步的菜單中,選擇Set Sample Rate,然后將其設(shè)定為24

? ? ? ? 注意:當(dāng)Sample Rate小于60FPS的時(shí)候,對(duì)動(dòng)畫(huà)的時(shí)間軸窗口里顯示數(shù)字的方式的理解非常重要。冒號(hào)前面的數(shù)字是動(dòng)畫(huà)的秒數(shù),冒號(hào)后面的數(shù)字是當(dāng)前幀。比如1:22,表示這是動(dòng)畫(huà)的第1秒內(nèi)的第22幀。

創(chuàng)建小球彈跳動(dòng)畫(huà)

? ? ? ? 1. 在場(chǎng)景中,選擇小球,將其拖動(dòng)到距離地面的一個(gè)高度上(例如距離地面3米處)

? ? ? ? 2. 在Animation編輯器中點(diǎn)擊Record按鈕

? ? ? ? 3. 在Animation編輯器中選擇Add Property按鈕,然后選擇Transform里的Position屬性右邊的“+”,添加Position屬性

? ? ? ? ?做完這個(gè)步驟后,和以前一樣,我們可以看到在動(dòng)畫(huà)時(shí)間軸窗口里,動(dòng)畫(huà)的開(kāi)始和結(jié)束位置有兩個(gè)關(guān)鍵幀。對(duì)于我們要做的彈跳動(dòng)畫(huà)來(lái)說(shuō),動(dòng)畫(huà)只有1秒的時(shí)間太短了,我們將它調(diào)長(zhǎng)點(diǎn)。

? ? ? ? 4. 在時(shí)間軸窗口里向下滾動(dòng)鼠標(biāo)滾輪,或者拖動(dòng)底部的滾動(dòng)條,直到我們看到1:10

? ? ? ? 5. 選擇右上角的關(guān)鍵幀,將其拖動(dòng)到這個(gè)1:10標(biāo)線處。這樣動(dòng)畫(huà)就會(huì)需要更長(zhǎng)的時(shí)間來(lái)完成。

? ? ? ? 6. 在時(shí)間軸窗口中,將鼠標(biāo)移動(dòng)到開(kāi)始幀和結(jié)束幀的中間位置并點(diǎn)擊(處于中心的關(guān)鍵幀位置)。然后在場(chǎng)景視圖中移動(dòng)小球到和地面剛剛接觸(注意只需要移動(dòng)Y軸)


?? ? ? ? 7. 在Animation編輯器中點(diǎn)擊Play圖標(biāo)進(jìn)行預(yù)覽

? ? ? ? 目前基本的小球彈跳的動(dòng)畫(huà)已經(jīng)完成了,但現(xiàn)在這個(gè)動(dòng)畫(huà)看起來(lái)還是不太自然,在后面我們繼續(xù)改進(jìn)這個(gè)動(dòng)畫(huà)。


Unity Animation -- Overview的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
吉水县| 乌拉特前旗| 滁州市| 沿河| 正定县| 加查县| 东辽县| 报价| 剑阁县| 葫芦岛市| 左贡县| 漠河县| 阿坝| 北海市| 新巴尔虎左旗| 商城县| 贵港市| 鹤峰县| 沁阳市| 富顺县| 汶川县| 磐石市| 金塔县| 马公市| 广河县| 华宁县| 衡东县| 德化县| 延长县| 潜江市| 肥乡县| 图木舒克市| 商南县| 阳信县| 漳浦县| 岳普湖县| 都江堰市| 宿迁市| 比如县| 天长市| 大安市|