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

歡迎光臨散文網 會員登陸 & 注冊

Unity Animation -- 導入動畫

2023-04-06 21:22 作者:vivo119  | 我要投稿

? ? ? ? 盡管Unity中的動畫工具已經比較強大了,但對于非常復雜的或很長的動畫,通常是由外部DCC創(chuàng)建。特別是對于角色動畫來說,需要在動畫過程中進行復雜的控制。因此我們通常需要將外部制作的動畫導入到Unity中。

動畫能被共享嗎

? ? ? ? 對于復雜的動畫,制作過程會非常耗時。動畫師常常要決定在一個項目中如何最佳地分配時間和精力。對于背景中的角色或不需要單獨制作的動畫,可以選擇使用預先構建好的動畫。并非所有角色類型都能輕易地使用為另一個rig所構建的動畫(關于rig,可以先簡單理解為骨骼)。但在Unity中,只要是遵循基礎的humanoid形狀(一個頭,兩條胳膊,兩條腿兒)的角色,都能使用人形動畫系統(tǒng)(Humanoid Animation System)。在這個系統(tǒng)中,Unity會根據rig里的關節(jié)信息,將現(xiàn)有的動畫從一個人形角色轉換到另一個角色上。這就是說即便外觀看起來非常不同的角色也能共享同樣的動畫集。

? ? ? ? 對于其他類型的動畫,其實也能夠實現(xiàn)復用(前提是動畫信息文件里的關鍵信息能對上)。關于動畫復用的較為詳細的描述,可以參考B站一位大佬的視頻:

https://www.bilibili.com/video/BV18Q4y1671n/?spm_id_from=333.788&;vd_source=474bff49614e62744eb84e9f8340d91a

配置動畫類型

? ? ? ? 我們想要導入Unity的動畫,可能有多個動畫文件表示不同的動畫,也可能只在一個動畫文件里包含了多有動作的動畫。對于一個動畫文件包含多個動作動畫的情況,導入Unity后,我們可以在import setttings里進行分割。

? ? ? ? 接下來我們以人形動畫為例來看看,動畫類型的配置過程。

? ? ? ? 1. 在Animations目錄中,選擇我們要導入的動畫,案例中是一個Dance_x3的動畫(Unity官方Creative Core -> Animation部分有相關資源包,如果要使用請自行去下載)。

? ? ? ? 2. 在Inspector中,選擇Rig標簽頁,這個標簽頁包含了rig相關的導入選項。

? ? ? ? ? ? ? ? 默認情況下,即便是和Humanoid Animation System兼容的rigs,其動畫類型(Animation Type)也是Generic。這種動畫類型會避免動畫共享其他rigs的信息。

? ? ? ? 3. 我們將Animation Type選擇為Humanoid,然后點擊Apply。

? ? ? ? ? ? ? ? ?這樣動畫就被配置為了Humanoid類型了。

配置第一個動畫片段

? ? ? ? 接下來我們來看看動畫導入設置中的Animation標簽頁。

? ? ? ? 1. 在動畫的Inspector中,選擇Animation標簽頁。

? ? ? ? ?2. 在Inspector的底部,點擊Play按鈕預覽動畫。

? ? ? ? ? ? ? ? 我們可以看到,這個導入的動畫里,有三種不同的跳舞的動作序列。我們要將這三個動作分別做成三個動畫片段。在Animation標簽頁的上半部分,有一個Clips,這個Clips就是我們定義獨立動畫片段的地方了。

? ? ? ? 3. 在Clips部分,點擊“+”按鈕兩次,復制一下當前的動畫片段。

? ? ? ? ?4. 在Clips下選擇名為Dance_X3的第一個片段,將其重命名為Dance_01。

? ? ? ? ? ? ? ? 這個Dance_01作為第一個舞蹈動畫序列,我們后面會對它的起始和結束幀進行調整。

? ? ? ? 5.? 我們在動畫預覽窗口中,我們通過拖動鼠標來確定一下第一個跳舞動畫的開始幀和結束幀。

? ? ? ? ? ? ? 在我們重命名動畫片段處正下方,有一條時間軸,以及一個Start和End,分別表示此動畫片段是從原始完整動畫片段中起始幀和結束幀的幀序號。由于這是第一個跳舞片段,因此起始幀保持為1,結束幀我們需要根據實際情況填寫。

? ? ? ? 6. 在End中,填入150。

? ? ? ? 7. 預覽動畫,確保動畫循環(huán)播放時看起來無縫銜接,如果有需要就調整End的值。

? ? ? ? ? ? ? ? 注意:在預覽窗口中,動畫是循環(huán)播放的,但實際上這個動畫當前被設置為了只播放一次。

? ? ? ? 8. 啟用Loop Time,讓動畫能夠循環(huán)播放。

?? ? ? ? ? ? ? ? 我們會觀察到在預覽窗口中,角色腳下的地面看起來像是在移動。這是因為這個動畫序列關聯(lián)了root motion。如果打開root motion,則角色在動畫過程中看起來就像是在地面上滑動著。當前案例中,我們將其簡單地關閉掉就好了。關于root motion本身,B站一位大佬(前面提到的那位)有非常詳細地說明,請到B站去看看大佬關于root motion講解的視頻。

? ? ? ? 9. 在Root Transform Rotiaon, Root Transform Position(Y)和Root Transform Position(XZ)中,啟用Bake inot Pose。

? ? ? ? ?現(xiàn)在預覽動畫時,地面看起來不會再發(fā)生變化了。

配置剩下的兩個動畫片段

? ? ? ? 1. 選擇Clips列表里的第二個動畫片段(當前名字為Take001),將其重命名為Dance_02。

? ? ? ? 2. 設置開始幀為151,結束幀為260。

? ? ? ? 3. 啟用Loop Time。

? ? ? ? 4.?在Root Transform Rotiaon, Root Transform Position(Y)和Root Transform Position(XZ)中,啟用Bake inot Pose。

? ? ? ? 5. 選擇Clips列表中的最后一個片段,將其重命名為Dance_03。

? ? ? ? 6. 將其開始幀設為261,結束幀設為350。

? ? ? ? 7. 啟用Loop Time。

? ? ? ? 8.?在Root Transform Rotiaon, Root Transform Position(Y)和Root Transform Position(XZ)中,啟用Bake inot Pose。

? ? ? ? 做完這些操作后,在Inspector中滾動鼠標找到最下方的Apply,點擊它保存所有修改。

?添加新增的動畫片段到動畫控制器中

? ? ? ? 我們可以將新增的動畫片段加入到現(xiàn)有的Animator Controller中。案例中所使用的Animation Controller名字為Shared_Controller。

? ? ? ? 1. 在Animations目錄下找到Shared_Controller,雙擊在Animator中打開這個文件。

? ? ? ? 2. 我們將Animator放置到場景視圖下方,這樣方便同時觀察場景和Animator。

? ? ? ? 3. 定位到Dance_X3所在位置,將其點開,查看所有新增的動畫片段。

? ? ? ? ?4. 將這三個新增動畫片段拖動到Animator編輯器窗口中

? ? ? ? ? ? ? ? 為場景中的要跳舞的每個角色,都掛上一個DanceParty的腳本,這個腳本功能很簡單,在按不同按鍵時(Q,W,E),會對應去觸發(fā)Dance_01,Dance_02和Dance_03三個Trigger類型的參數。腳本內容如下:

? ? ? ? 5. 在Animator中的Parameters頁面中,點擊“+”,添加三個Trigger參數,名字和腳本里的Trigger參數名一樣。

? ? ? ? ? ? ? ? ?當用戶按下Q,W或E時,角色應該停止他們正在做的動作并開始跳舞。由于這對于任何時間點來說都必須要發(fā)生的事情,因此我們使用Any State節(jié)點。Any State節(jié)點可以打斷狀態(tài)機里的任何轉換(transition)過程,并且調用和它關聯(lián)的動畫。

? ? ? ? 8. 在Animatior中,右鍵點擊Any State節(jié)點,選擇Make Transition,將它和Dance_01節(jié)點相連。

? ? ? ? 9. 選擇這個新建的轉換(transition),在其Inspector中點擊“+”,在conditions那里,選擇Dance_01參數。

? ? ? ? 10. 右鍵點擊Dance_01節(jié)點,選擇Make Transition,并且將它和Exit節(jié)點相連。

? ? ? ? 11. 用相同的方法設置Dance_02和Dance_03。

? ? ? ? 12. 點擊Play,按Q,W,E鍵看看效果。


Unity Animation -- 導入動畫的評論 (共 條)

分享到微博請遵守國家法律
许昌县| 青岛市| 和田县| 南康市| 大渡口区| 九龙坡区| 金山区| 托克托县| 大安市| 陈巴尔虎旗| 盐津县| 惠东县| 临清市| 平陆县| 嘉黎县| 鱼台县| 建德市| 运城市| 临邑县| 平塘县| 鹰潭市| 蕉岭县| 宁城县| 大足县| 民勤县| 双牌县| 崇礼县| 平顶山市| 山阴县| 武汉市| 格尔木市| 临沭县| 肇庆市| 三江| 洛宁县| 尼玛县| 洮南市| 洞头县| 延吉市| 翁源县| 日喀则市|