• Unity3D動畫係(xì)統(Mecanim)

    2017/6/26      點擊:

    Mecanim概述:

    Mecanim是Unity提供個豐富而複(fù)雜的動畫係統,提供了:

    • 針對人形角的簡易的工作流和動畫(huà)創建能力
    • Retargeting(運動重定向)功能,即把動(dòng)畫從一個角模型應用到另一個角模型上的能力。
    • 針對Animations Clips(動畫片段)的簡易(yì)工作流,針對動畫片段及他們之(zhī)間的過(guò)度和交互預覽能力。
    • 一個用於管理動畫間複(fù)雜交互作用的可視化窗口。
    • 通過不同邏輯來控製不同身體部(bù)位的運(yùn)動(dòng)能力(lì)。

    Mecanim工作流:

    1.資源導入,這一階段由美術師或動畫師通過三維工具來完成。

    2.角的建立,主要分為以下兩種方式。

    • 人形角的建立,Mecanim通過擴展的圖形操作界麵和動畫(huà)重定向功能,為人物(wù)模型提供了一種殊的工作流,它包括Avatar的創建和對肌肉定義(Musicle Definitions)的調節。
    • 一般角的建立,一般為運動物(wù)體(tǐ)和四足動物而設定,動畫重定(dìng)向對此不適用。

    3.角的運動,包括設定動畫片段以及其相互間的交互作用,也包括建立狀態機和混合樹、調整動(dòng)畫參數以及(jí)通過代碼控製動畫等。

    獲取人形網格模型

    1.人形(xíng)網格(gé)模(mó)型,為了(le)充分利用Mecanim的人形動畫係統和動畫重定向(xiàng)功能,需要一個具有骨骼綁定(dìng)和蒙皮的人形網格模型。

    • 人形網格(gé)模(mó)型一般由一(yī)組多邊形或三角形網格組成,創建模型(xíng)的過(guò)程稱為建(jiàn)模(modelling);
    • 為了控製(zhì)角的運動,必須為其創建一個骨骼關節(jiē)層(joint hierarchy);
    • 人形網格模型(xíng)必須與關節層級關聯起來,通過指定關節的(de)動畫來控製定網格的(de)運動,這(zhè)個過程稱(chēng)為蒙皮(skinning);

    一句話來總結,創建好人物模型後(建模(mó)modelling),為其(qí)創建一個骨骼關節(joint hierarchy),*後異步將人物網格模型和關節關聯(lián)起來(蒙皮skinning)。[ modelling > joint hierarchy > skinning ]

    2.獲取模型,在Mecanim係統中,可(kě)以通過三種途徑來獲取(qǔ)人物網格模型:

    • 使用一個過程試的人物建模工具,Poser 、 Makehum或Mixamo等。其(qí)中(zhōng)有些三維軟件可以在建模的同時進行(háng)骨骼綁定和蒙皮操作。應該盡(jìn)可能的減少人形網格的麵片數量,從而更好的在unity中使用。
    • 在Unity Asset Store下載。
    • 通過三維建模軟件來創建(jiàn)新的人形模型,這類軟件包括3Dmax、Maya、Blender等。

    3.導(dǎo)出和驗證模型,unity引擎可以導入一係列的常用3D文件格式(shì),推(tuī)薦使用(yòng)FBX 2012,因為改格式允許:導(dǎo)出的網格中包含關節層級、法線、紋理(lǐ)以及動畫信息;也可以導入不包含網格的動畫信息。

    動畫分解:

    1.預分解動畫模型:*容易使用的動畫模(mó)型是含有預分解動畫片(piàn)段模型,這種動畫模型在導(dǎo)入項目後,可看到麵板(bǎn)中包含多個可(kě)用的動畫(huà)片段列表,還可對每個動畫片段的幀數(shù)範圍進行編輯調整。

    2.未(wèi)分解動(dòng)畫模型:提(tí)供單一連續動畫片段的模型(xíng),這種情況可自行設定每個動畫的片段所需要的幀。如該模型動(dòng)畫一共有100幀,1-10幀為待機(jī)喘(chuǎn)息狀態,11-30幀為行(háng)走,31-60幀為奔跑,61-80幀為(wéi)攻擊,81-100幀為死亡動畫(huà)。

    3.為模型添加動畫:用戶可以為任意模型的動(dòng)畫組建添加動畫片(piàn)段,該(gāi)模型甚至可(kě)以沒有肌肉定義(非Mecanim模型),進而在Animations屬(shǔ)性中指定一個默認的動畫片段和所有可用的動畫片段。在(zài)非Mecanim模型上添加動畫片段(duàn)也必須采用非Mecanim的方式進行(háng),即將Muscle Definition屬(shǔ)性設置為None。

    對具有肌肉定義的Mecnim模型處理過程如下:

    • 創建一個Animator Controller。
    • 打(dǎ)開Animator Controller窗口。
    • 將定的動畫片段拖到Animator Controller窗(chuāng)口。
    • 將模型資源拖入到Hierarchy視圖中。

    4.通過模型(xíng)文件來導入動(dòng)畫片段:該方法(fǎ)是(shì)遵循Unity指定的動畫文(wén)件命(mìng)名方案,用(yòng)戶可以創建(jiàn)立的模型文件並按照modelName@animaionName.fbx的(de)格式來命名。例如一個魔法師的模型(wizard.fbx),待機、行走、攻擊分別命名為 wizard@idle.fbx、wizard@walk.fbx 、wizard@attack.fbx。隻有在這種(zhǒng)情況下,動畫數據才會被使用(yòng)。

    使用人(rén)形角動畫

    Mecanim動畫係(xì)統*適合用於人形角的(de)動畫(huà)製作,因為人形模型(xíng)均(jun1)具(jù)有相同的基本結構,所(suǒ)以用戶可(kě)以實現將動畫(huà)效果從一個人形(xíng)骨架映射到另外一個(gè)人形骨(gǔ)架上去,從而實現動畫重定向的功(gōng)能。

    創(chuàng)建一個動畫的基本步驟就是創建一個從Mecanim係統的簡化(huà)人形骨架結構到用戶實際提供的骨架結構(gòu)的映射,這種映射關係稱(chēng)為(wéi)Avatar,下麵(miàn)就(jiù)介紹如何為一個模型創建一個Avatar。

    創建Avatar

    在導入一個模型(例如fbx)後,在該(gāi)模型麵板上選中Rig選項卡指定他它的骨骼模型(xíng),包括Humanoid、Generic和Legacy這(zhè)三種。

    1.人形動畫(Humanoid)

    對於(yú)人形(xíng)骨架,選中Animation Type下拉菜單,選擇Humanoid,單擊Apply按鈕,Mecanim係統就會嚐試將用(yòng)戶提供的(de)骨架結構與Mecanim係統內嵌的骨架結構進行匹配,匹配成功後在可以看到Configure...複選框被選中。在匹配成功的情況下(xià),會在模型資源中添加(jiā)一個(gè)Avatar子資源(yuán)。需要注意的是,這裏匹配成功僅(jǐn)僅是匹配了所有(yǒu)必要的關節骨骼,如果想達到更好的效果,還需要對Avatar進行(háng)手動調整。如果在Configure...旁邊顯示一個叉號,即不會生成相應的Avatar子資源,這種情況就需要手動配置(zhì)Avatar。

    2.非人形動畫 

    Unity為非(fēi)人形動畫提供了兩個選項,一般動畫類型(Generic)和舊版動畫類型(Legacy),一般動畫仍可由Mecanim係統導(dǎo)入,但(dàn)無法使用人形動畫(huà)專有的功(gōng)能。 

    配置Avatar:

    在上一步生成Avatar子資源後,即可配置Avatar。Avatat是Mecanim係統中很為(wéi)重要的模(mó)塊,因此為模型資源正確的設置Avatar也至關(guān)重要,不管Avatar自(zì)動創建過(guò)程(chéng)是否成功,用(yòng)戶都需要進入Configure...Avatar界麵中確認Avatar的有效性,即確認用戶提供的骨骼結(jié)構與Mecanim係統預定(dìng)義的骨骼結構是(shì)否正確的關聯起來,並且模型處於T形姿態。

    點(diǎn)擊Configure...後Scene視圖將被用於顯示當前模型的骨骼、肌肉、和動畫信息,同時會出(chū)現一個Avatar配置麵板(bǎn),可(kě)看到一個關鍵骨骼映射信息的視圖,該視圖還顯示了哪些骨(gǔ)骼是必須匹配的(實(shí)線圓圈),哪些是可選匹配(pèi)的(虛線圓圈)。為了(le)方(fāng)便Mecanim進行(háng)骨骼匹配,用戶提供的骨架中(zhōng)應半酣所有必須匹配的骨骼。此外為了提高匹配的成功率,應(yīng)盡量通過骨骼代表(biǎo)的部(bù)位來給骨骼命名。

    如果複發為模型找到合適的匹(pǐ)配,用戶也可以通過類似Mecanim內部使用的方法來進行手動配(pèi)置(zhì):

    1.在(zài)Avatar麵板中選擇Pose下拉項中的Sample Bind-pose(得到模(mó)型的原始姿態);

    2.在Avatar麵板(bǎn)中(zhōng)選(xuǎn)擇Mapping下拉項中的Automap(基於原始姿態創建一個骨骼映射);

    3.在Avatar麵板中選擇Pose下拉項中(zhōng)的Enforce T-pose(強製(zhì)模型(xíng)貼近T形姿態(tài),即Mecanim動畫的默認姿態)

    如果在第二個(gè)步驟中,自動映射的過程出現失敗或者局部失敗,用戶可通(tōng)過Scene視圖或者Hierarchy視圖中拖出骨骼並指定骨骼,如果Mecanim認(rèn)為骨骼匹配,將在(zài)Avatar麵板中以綠顯示,否則以紅顯示。

    如果沒有指定正確則會(huì)看到Sence視圖中會出現Character not inT-pose提示,可通過EnforceT-pose強製(zhì)將模型轉(zhuǎn)換為T型姿態或者旋轉至模型為(wéi)T型姿態。

    上述骨骼映射信息還可奧村一個人形模版(bǎn)文件(Humanoid Template File).ht ,這個文件可(kě)在所有使用這個映射關係的角之間複用。

    設置(zhì)Muscle參數:

    Mecanim使(shǐ)用肌肉(Muscle)來限製不同骨骼的運動範圍,一旦Avatar配置完成,Mecanim就能解析其骨骼結構,進而用戶就可(kě)以(yǐ)在Muscles選項卡中調節相關參(cān)數。在此可比較容易的調節角的運(yùn)動範圍,確保看起來真實自然。

    用戶可以在視圖上方使用預先定義的(de)變形(xíng)方法對幾(jǐ)根骨骼同時進行調整,也可在視圖下方對身體上單根骨骼進行調整。

    人形動畫的重定向:

    人形重定向是Mecanim係統中強(qiáng)大的功(gōng)能之一,這意味著開發者隻需(xū)要很簡單的操作即可將一組動畫應(yīng)用到其他人形角模型上,前提是(shì)必須正確的配(pèi)置Avatar。

    導入單個動畫(huà)文件:

    在從三維軟件(jiàn)導出模型前,遵循unity3d動畫文件命名方案,為單個動畫模型文件命名modelName@animationName.fbx,即 模型名稱@動畫名稱.fbx 。

    例如對於一個名為warlock(魔法師)的模(mó)型,分別指定(dìng) idle(待機),walk(行走),attack(攻擊),death(死亡) 等(děng)動畫(huà)。

    即命名規範:

    warlock@idle.fbx

    warlock@walk.fbx

    warlock@attack.fbx

    warlock@death.fbx

    另外還需導出一個 warlock.fbx 不帶動畫的模型(xíng)文件,在導出模型前勾選 no animation選項即可,warlock.fbx模型會(huì)遵循動畫文件命名規範來索引其他帶動畫的模型文(wén)件。

    日本中出视频|午夜免费福利在线|亚洲精品亚洲人成在线下载|国产高潮流白浆免费观看不卡|偷拍亚洲欧美|亚洲中文字幕久爱亚洲伊人|久久久久香蕉视频|国产欧美日韩一区|久久国产成人亚洲精品影院老金|久久久久中文字幕