使用Unity外掛Voxel Importe為MagicaVoxel模型新增動畫
使用利用Unity外掛Voxel Importe繫結骨骼和製作動畫
將vox和qb檔案匯入Unity專案中,自動轉換為Voxel物件,可以作為預製使用。
這些功能僅對Unity 2017.1及更新版本有效。
指令碼說明
Voxel Object
作用:生成GameObject。
它適用於基本的固定物件,並且它會生成一個優化的網格。
指令碼位置:
Component/Voxel Importer/Voxel Object
使用方法:
- 建立一個空物體。
- 新增 “Voxel Importer / Voxel Object” 元件。
- 開啟一個 voxel file 檔案。
- 這樣就完成優化了網格的建立。
注意:
- 此指令碼僅在編輯器中工作。
- 網格是預構建的,因此在執行時不需要額外的資源。
- 在構建的情況下,它並沒有保留所有的資訊。
Voxel Skinned Animation Object
作用:繫結體素骨骼,製作動畫的前一步。
應用到動畫物件。 它生成一個優化的網格。
指令碼位置:
Component/Voxel Importer/Voxel Skinned Animation Object
使用方法
- 建立一個空物體。
- 新增 “Voxel Importer / Voxel Skinned Animation Object” 元件。
- 開啟一個 voxel 檔案。
- 去改變中心座標 “Import Offset” 的調整。
使中心座標設定在體素模型的底部中間。
- 從模板中建立骨骼。
(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,骨骼形狀如下
- 選擇骨骼。
- 按下 “Edit Bone Position” 按鈕,這是用來編輯骨骼位置的。
- 把骨骼調整到合適的位置。
步驟如下:
(1) 將hips骨骼設定在人物相應的位置。
(2) 設定Chest骨骼的位置。
(3) 設定Head頭部骨骼
(4) 設定LeftShoulder左肩旁骨骼,初始時預設勾選映象骨骼設定,右肩膀會自動映象設定。
(5) 設定LeftUpperLeg 左腿的骨骼。
(6) 到此骨骼位置設定好,按下Refresh按鈕重新整理。
- 如有必要,在 “Add Child Bone” 按鈕中加入一根子節點骨骼。
以下的正確的骨骼位置示例:
也可以增加子節點骨骼,這裡加入了尾巴和翅膀的骨骼。
- 調整好骨骼位置之後,選擇各骨骼,開始設定骨骼的權重。
- 按下 “Edit Bone Weight” 按鈕,開始設定骨骼的權重。
提示:按空格鍵可以看到原體素的樣子。
骨骼權重設定介面如下:
可以看到左上角的視窗,是用來設定骨骼權重的:
最上面的兩個是選擇方式:分別是Voxel體素和Vertex頂點兩種方式。
在Voxel體素選擇下有三種選擇方式,具體如下:
Voxel:單個體素
Fill:自動選擇填充相關部分。
Rect:矩形選擇,選擇到的每個體素都是同一個權重值,配合Vertex使用。(常用)
下方的按鈕分別是:替換、增加、減少、權重值、映象設定。
在Vertex頂點選擇下有兩選擇方式,具體如下:
Brush:筆刷模式,直接設定某些頂點。
Rect:矩形選擇,會有比較好的過度。(常用)
- 完成骨骼的權重設定之後,就完成了面板網格的建立,接下來就可以在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都有獨立的材質球。