Blender實用案例訓練 ep.8 從Blender導入FBX到Unity(過時警告)
前言
????因為使用Blender和Unity制作3D游戲,導FBX是一個必須的步驟。找了一個教程,使用的Blender版本是2.7,Unity版本2018.3,與最新版有些差異,可能不適合各位,但我認為這里面仍然有不小的參考價值。下面,我將解釋Blender中最重要的FBX導出設(shè)置以及FBX如何被導入到Unity文件中。

步驟
Step 0 綁骨設(shè)置(The Setup of the Rig)
Blender文件中唯一重要的是Ameture,我們有控制骨骼,變形骨骼,IK骨骼和FK骨骼等,但是在綁骨過程中我們需要將網(wǎng)格變?yōu)楣趋赖淖蛹墶?/p>
我們以方塊為例,我們按Ctrl+P選擇Armature deform With Automatic Weights來綁定方塊,方塊網(wǎng)格即自動綁定在骨骼層次下。

用這種方法我們可以很方便對角色進行綁定,對每個角色來說我們只有一個可多操作的Blender文件,所以在Dope Sheet中,我們可以看到一堆動畫,這些動畫可以一次全部導出,我們可以輕松快速地導出新動畫。

Step 1 導出FBX(Export FBX)
我們想單獨導出武器網(wǎng)格,這就是為什么我們選擇除去Staff Mesh的所有物件,我的觀點,最可靠的方式是通過更改為Object Mode并通過單擊然后取消選擇所有內(nèi)容,然后按住Shift并首先很選擇網(wǎng)格,最后是Armature,選擇所有內(nèi)容后,請轉(zhuǎn)到左下角的文件導出FBX,可以在主標簽上看到導出設(shè)置。(2.79與2.8版本的Blender雖然有很多不同,但主要設(shè)置還是基本相同的)


Main-TAB
因為我們已經(jīng)預(yù)先選擇了要導出的內(nèi)容,勾選Selected Objects。
如果指定單位比例,請導出檢查選中的對象,確保此處的小按鈕與切換按鈕一起切換。
Apply Scaling 應(yīng)用比例
Forward向前
Up上方向
然后按住Shift并選擇Mesh和Armature。

Geometry-TAB

如果你有其他修改器,請將其他設(shè)置保留為“幾何”選項卡。
細分曲面(Subsurf)附加到網(wǎng)格并希望將其導出,然后勾選Apply Modifiers。出于性能原因,
一些修改器允許為視圖和渲染模式定義不同的設(shè)置,取消勾選Use Modifiers Render Setting來使用一些設(shè)置或選中它以使用渲染設(shè)置。這里是渲染的結(jié)果。

從左到右,左側(cè)的模型未使用修改器,中間使用了修改器,右側(cè)使用修改器及渲染設(shè)置。

Armature-TAB

Only Deform Bones 勾選它時,導出的文件要小一點,在我們的Case中,它不會有太大的區(qū)別。但是還是推薦勾選這個選項。
Add Leaf Bones 將最后一個骨骼附加到每個骨骼的末端以指定最后一個骨骼長度。
當打算從導出的數(shù)據(jù)編輯Armature時,推薦勾選此選項
保持其它設(shè)置為默認。

Animation-TAB

如果你想導出動畫,你需要勾選Baked Animation。另外還推薦勾選Key All Bones,F(xiàn)orce Start/End Keying。不然,你可能會在Unity中得到奇怪的動畫。勾選Force Start/End Keying可以實質(zhì)是改善FBX的小型化和建造大小,但你也可在Unity使用Avatar遮罩達到相同或更好的效果,所以這不是值得讓動畫失真而冒的風險。我下面會解釋關(guān)于遮罩的問題。
如果你想導出所有模型的動作,勾選All Actions和不勾選NLA Strips,然后再Unity中你就可以得到完全動畫序列可用。

但是如果你只想導出選擇的動作,你可以跟著下面操作,打開Action Editor(Dope Sheet)和NLA Editor,確保沒有NLA Strips,你可以選擇它們并按刪除鍵進行刪除,然后選擇動畫來導出,

在NLA編輯器中,為選中的動畫按雙向下箭頭按鈕產(chǎn)生一個新的Strip,重復(fù)這個動作給所有你想要導出的動畫。 在導出設(shè)置中,在動畫選項卡中,不勾選All Actions并且勾選NLA Strips。這樣你可以只導出你需要的動畫子集。

Presets
如果你滿足于當前設(shè)置,你可以用點擊加號按鈕保存預(yù)設(shè),只需要保存一個名稱。


Step 2 將FBX導入到Unity(Import FBX into Unity)

推薦通過資源管理器導入或重新導入FBX文件,例如,如果你要更新現(xiàn)有的網(wǎng)格物體,右鍵單擊選擇Show in Explorer,然后用最近導入的FBX覆蓋舊的FBX,這樣你的模型就會更新,但是需要小心調(diào)整Unity中的導入設(shè)置。

Model-TAB

這里我們不會深入研究所有設(shè)置,但我提及的選項可能會更有用,在Model選項中,你可以修改設(shè)置影響網(wǎng)格及其法線,你可以在此處(Scale Factor)調(diào)整基本縮放比例,對象網(wǎng)格的小發(fā)生變化,而變換的比例不會改變。
如果Unity沒有正確顯示光照貼圖,你可能需要在Model選項卡中勾選Generate Lightmap UVs。

Rig-TAB

在綁定選項卡中,你可以在Generic和Humanoid之間進行選擇,使用Generic模式,你還可以指定Root骨骼來啟用Root Motion。

Animation-TAB

在動畫選項卡,你可以分別設(shè)置每個動畫的循環(huán)和Root Motion,你還可以添加執(zhí)行基于動畫的定時事件,你也可以使用曲線動畫其他自定義屬性,例如粒子系統(tǒng)的發(fā)射率。

Material-TAB

你可以從Blender中導入材質(zhì),提取它們(Extract Materials)以便你可以更改設(shè)置。如果要在項目步驟中使用現(xiàn)有材質(zhì),請重新映射。
?

Step3 使用遮罩進行優(yōu)化(Optimization with Masks)

使用我們的FBX確實很容易,但這有一個問題,所有種類的骨骼,變形骨骼,控制骨骼和可視化骨骼會混合在一起,使FBX文件爆炸式的急劇的增大,因為對于形變的網(wǎng)格它們是不需要的,但也同樣導出來了。幸運的是,在Unity里,你可以遮罩這些骨骼,這樣在建造它們(NLA) 就不會包括在里面。

要做到這點,我們在項目視窗中右鍵選擇Create,Avatar,當我們導入一個Generic Rig,展開Transform,選擇你導入的模型的Avatar,點擊Import skeleton(導入骨骼),取消列表中的所有勾選,勾選給網(wǎng)格變形的骨骼。

我的情況,它們是髖骨的所有子集骨骼。切換到模型的Animation選項卡,在Mask中,選擇Copy From Other Mask,再選擇我們剛創(chuàng)建的Mask為源,為每個動畫重復(fù)這樣的操作,然后點擊Apply應(yīng)用。

然后,我們再將應(yīng)用前后的兩個FBX文件進行大小的對比,可以看到使用遮罩效果兩者的差異相當大。


Step4 解決問題(TroubleShooting )

導入FBX文件在多數(shù)情況時都可以很好運作,但有些時候在新編輯動畫時,它們不會顯示在剪輯列表中,但有趣的是,它們在Source Take下拉菜單是無法選擇的。如果這種情況發(fā)生的話,在動畫剪輯中,可以手動按加號按鈕改變Source Take為新的動畫。
我們回到Blender,在刪除已經(jīng)完成動畫的骨骼時要非常小心。比如,我們增加一個新的骨骼作為演示過程,切換到Pose Mode,并且給骨骼的位置增加關(guān)鍵幀。

回到Edit Mode,再次刪除這個骨骼,接著你可以看到已經(jīng)K幀的位置信息在Dope Sheet中依然可見,但下劃線會帶一條紅線,如果你不刪除這些損壞的線,那就會出現(xiàn)動畫根本不能導出,然后無法使用在Unity。