1. 程式人生 > >使用Unity外掛Voxel Importe為MagicaVoxel模型新增動畫

使用Unity外掛Voxel Importe為MagicaVoxel模型新增動畫

使用利用Unity外掛Voxel Importe繫結骨骼和製作動畫

將vox和qb檔案匯入Unity專案中,自動轉換為Voxel物件,可以作為預製使用。
這些功能僅對Unity 2017.1及更新版本有效。

指令碼說明

Voxel Object

作用:生成GameObject。
它適用於基本的固定物件,並且它會生成一個優化的網格。

指令碼位置:
Component/Voxel Importer/Voxel Object

這裡寫圖片描述

使用方法:

  1. 建立一個空物體。
  2. 新增 “Voxel Importer / Voxel Object” 元件。
    這裡寫圖片描述
  3. 開啟一個 voxel file 檔案。
    這裡寫圖片描述
  4. 這樣就完成優化了網格的建立。

注意:

  • 此指令碼僅在編輯器中工作。
  • 網格是預構建的,因此在執行時不需要額外的資源。
  • 在構建的情況下,它並沒有保留所有的資訊。

Voxel Skinned Animation Object

作用:繫結體素骨骼,製作動畫的前一步。

應用到動畫物件。 它生成一個優化的網格。

指令碼位置:
Component/Voxel Importer/Voxel Skinned Animation Object

這裡寫圖片描述

使用方法

  1. 建立一個空物體。
  2. 新增 “Voxel Importer / Voxel Skinned Animation Object” 元件。
    這裡寫圖片描述
  3. 開啟一個 voxel 檔案。
    這裡寫圖片描述
  4. 去改變中心座標 “Import Offset” 的調整。
    這裡寫圖片描述
    這裡寫圖片描述
    使中心座標設定在體素模型的底部中間。
    這裡寫圖片描述
  5. 從模板中建立骨骼。
    這裡寫圖片描述
    (1) 有四種不同的骨骼選擇。
    (2) Maximum Humanoid (Mecanim).asset ,骨骼形狀如下
    這裡寫圖片描述
    (3) Maximum Humanoid (Mecanim) Unity5.6.o or later.asset,骨骼形狀如下
    這裡寫圖片描述
    (4) Mi nimum Humanoid (Mecanim).asset,骨骼形狀如下
    這裡寫圖片描述
    (5) SD Human.asset,骨骼形狀如下
    這裡寫圖片描述
  6. 選擇骨骼。
  7. 按下 “Edit Bone Position” 按鈕,這是用來編輯骨骼位置的。
  8. 把骨骼調整到合適的位置。
    這裡寫圖片描述
    步驟如下:
    (1) 將hips骨骼設定在人物相應的位置。
    這裡寫圖片描述
    (2) 設定Chest骨骼的位置。
    這裡寫圖片描述
    (3) 設定Head頭部骨骼
    這裡寫圖片描述
    (4) 設定LeftShoulder左肩旁骨骼,初始時預設勾選映象骨骼設定,右肩膀會自動映象設定。
    這裡寫圖片描述
    (5) 設定LeftUpperLeg 左腿的骨骼。
    這裡寫圖片描述
    (6) 到此骨骼位置設定好,按下Refresh按鈕重新整理。
    這裡寫圖片描述
  9. 如有必要,在 “Add Child Bone” 按鈕中加入一根子節點骨骼。
    以下的正確的骨骼位置示例:
    這裡寫圖片描述
    也可以增加子節點骨骼,這裡加入了尾巴和翅膀的骨骼。
    這裡寫圖片描述
  10. 調整好骨骼位置之後,選擇各骨骼,開始設定骨骼的權重。
  11. 按下 “Edit Bone Weight” 按鈕,開始設定骨骼的權重。
    提示:按空格鍵可以看到原體素的樣子。
    骨骼權重設定介面如下:
    這裡寫圖片描述
    可以看到左上角的視窗,是用來設定骨骼權重的:
    這裡寫圖片描述
    最上面的兩個是選擇方式:分別是Voxel體素和Vertex頂點兩種方式。
    Voxel體素選擇下有三種選擇方式,具體如下:
    Voxel:單個體素
    這裡寫圖片描述
    Fill:自動選擇填充相關部分。
    這裡寫圖片描述
    Rect:矩形選擇,選擇到的每個體素都是同一個權重值,配合Vertex使用。(常用)
    這裡寫圖片描述
    下方的按鈕分別是:替換、增加、減少、權重值、映象設定。
    這裡寫圖片描述
    Vertex頂點選擇下有兩選擇方式,具體如下:
    Brush:筆刷模式,直接設定某些頂點。
    這裡寫圖片描述
    Rect:矩形選擇,會有比較好的過度。(常用)
    這裡寫圖片描述
  12. 完成骨骼的權重設定之後,就完成了面板網格的建立,接下來就可以在Animation視窗中製作動畫了。

以下使各部位正確的骨骼權重示例:

Spine脊椎開始的設定:由於還需要設定其他骨骼的權重,此處只為暫時設定而已。
這裡寫圖片描述
左上臂
這裡寫圖片描述
左下臂
這裡寫圖片描述
頭部
這裡寫圖片描述
新增的子節點翅膀
這裡寫圖片描述
左上腿
這裡寫圖片描述
左下腿
這裡寫圖片描述
新增子節點尾巴
這裡寫圖片描述
Hips髖部
這裡寫圖片描述
最終的Spine
這裡寫圖片描述

最終骨骼繫結的效果

開啟Avatar檢視
這裡寫圖片描述
新增Animator
這裡寫圖片描述
設定動畫,可以看到動畫效果
這裡寫圖片描述

Voxel Chunks Object

作用:將多個組合的體素物體組合在一起。

  • 分割體素以建立一個網格。
  • 它用於超過65000頂點的情況。
  • 此外,你還可以在四元矩陣中分裂。

位置:Component/Voxel Importer/Voxel Chunks Object
這裡寫圖片描述

使用方法:
1. 建立一個空物體。
2. 新增 “Voxel Importer / Voxel Chunks Object” 元件。
這裡寫圖片描述
3. 開啟一個voxel檔案。
這裡寫圖片描述
4. 則完成了優化網格的建立。
這裡寫圖片描述

該指令碼可以設定碎塊效果

  • Voxel Chunks Object匯入體素檔案,在物體下得到很多chunk,預設情況下Import下的Setting下的Split Mode勾選MagicVoxel World Editor,即按著MagicVoxel World的圖層來獲得chunk的,一個圖層對應這一個chunk。
    這裡寫圖片描述
  • 若設定為chunk size,則會按照下面設定的chunk size來生成chunk,不會按照MagicVoxel World的圖層來區分。
    這裡寫圖片描述
  • 若選中了Import下的Setting下的Create contact faces ,則會將每個chunk存在的缺口補上
    這裡寫圖片描述
    這裡寫圖片描述
  • 在為每個chunk新增Rigidbody和Collider,Mesh Collider點上Conves,可以達到碎塊效果
    這裡寫圖片描述
    這裡寫圖片描述
  • 若不選中了Import下的Setting下的Create contact faces ,則每個chunk存在的缺口,這樣不能做破碎效果。
    這裡寫圖片描述
  • 若Import下的Setting下的Split Mode勾選MagicVoxel World Editor,再新增Rigidbody和Collider,破碎效果將會按照MagicaVoxel的圖層設定來破碎。’
    這裡寫圖片描述

Voxel Frame Animation Object

作用:建立體素組合的幀動畫。

位置:
Component/Voxel Importer/Voxel Frame Animation Object

這裡寫圖片描述

使用方法:
1. 建立一個空物體。
2. 新增 “Voxel Importer / Voxel Frame Animation Object” 元件。
3. 開啟一個體素檔案。
這裡寫圖片描述
4. 開啟體素檔案之後,在Animation中自動加入了一幀。
這裡寫圖片描述
5. 點選Animation的Open載入第二各幀動畫。
這裡寫圖片描述
6. 可以在Frame List Window中檢視加入的幀。
這裡寫圖片描述
8. 也可以在Frame List Window中選擇新增。
9. 這裡寫圖片描述
9. 體素幀動畫完成。

1.1.3外掛新加入

單個體素物件的修改

將vox問檔案儲存在Unity中,MagicaVoxel對vox左的修改可以實時地現實在Unity中。
若在Advanced的Setting中不取消Legacy Vox Import,則在MagicaVoxel的位置的修改可以直接修改到Unity中。
若選中了Legacy Vox Import,則不會修改到Unity中。
這裡寫圖片描述

Voxel Chunks Object的修改

點選Refresh,只會修改選中的物件
這裡寫圖片描述
點選Refresh all chunks,可以對所有的chunks物件做修改。

點選Create contact faces of chunk,可以修補每個chunk的缺口
這裡寫圖片描述
這裡寫圖片描述

在Advanced中的object下的Material的Material Mode中設為Combine,則所有物件使用同一材質
這裡寫圖片描述
這裡寫圖片描述
若將Material Mode中設為In’dividual,則每個chunk都有獨立的材質球。
這裡寫圖片描述
這裡寫圖片描述