說明
本系列文章是對<3D Apple Games by Tutorials>一書的學習記錄和體會
MagicaVoxel 是個很棒的3D內容建立工具,因為它是免費的! 你可以從這裡下載ephtracy.github.io
注意: 1. MagicaVoxel for Mac 啟動後可能是黑屏,啥都沒有,什麼都點不了?把軟體MagicaVoxel.app先拖出資料夾,再放回去應該就好了
- 如果出現"App can't be opened" ,開啟終端,嘗試以下命令:
chmod +x [directory]/MagicaVoxel-mac.app/Contents/MacOS/MagicaVoxel

介面從左到右分別為:
- Color Palette調色盤:可以點選選擇整個範圍內的顏色.還可以從正正方選擇自定義顏色.
- Brush筆刷:選擇筆刷模式.可選模式包括V (Voxel), F (Face), B (Box), L (Line), C (Center) and P (Pattern).還可以用當前筆刷選擇動作模式,Attach新增, Erase擦除, Paint上色 或 Move移動.
- View Options檢視設定:該區域在在筆刷下方.可以設定不同的顯示設定,如DG (Display Ground顯示地面), SW (Display Shadow顯示陰影), BG (Display Background顯示背景), Grid (Display Grid顯示網格), Edge (Display Edges顯示邊緣) and Frame (Display Frame顯示框架-大網格)
- Editor編輯器:體素創作區.可以用滑鼠控制導航顯示.右鍵旋轉,滾輪縮放,左鍵選擇.編輯區最上方可以命名.編輯區右上方還可以設定體素創作的尺寸.
- Edit Options編輯設定:右邊第二列.Zero清空模型, Fill用相同顏色填充, Full設為完整狀態. Rotate旋轉, Flip對稱翻轉Loop沿座標軸旋轉.
- File Options檔案設定:最右一列.你可以Load, Save, Save As, Duplicate甚至Delete體素模型和圖案.
- Export Options輸出設定:在檔案設定的正方.展示所有可用的輸出格式.
建立體素模型
建立一個新模型
先給自己建立一個空白的工作臺. 在右側的檔案設定裡選擇New來建立一個新模型.設定體素模型規格尺寸為9 9 9 ,然後點選編輯設定下面的Zero來清空整個模型:

在編輯區頂部命名這個模型為MrPig,並按回車.當提示儲存時選擇save:

建立基礎層
我們將從建立小豬身體的基礎層開始. 從左側的顏色皮膚中選擇合適的顏色. 按B來設定筆刷為Box Mode,然後按T來選擇Attach. 移動位置到(x: 1, y: 7, z: -1).左鍵單擊並按住,拖拽到(x: 7, y: 7, z: -1).到位後釋放,就得到了一個一體素高的基礎層:

拉伸基礎層
更改筆刷型別,按F來切換到Face Mode,同時確認Attach仍然是被選中的. 左鍵單擊基礎層的頂部平面並向上拉伸一個體素高.重複操作直到基礎層有6體素高:

建立頭部
現在建立頭部. 更改筆刷模式,按B回到Box Mode,同時確保Attach仍是被選中的. 從(x: 2, y: 6, z: 5)位置開始.單擊並拖動到(x: 6, y: 4, z: 5):

建立鼻子
從左側皮膚中選擇深粉紅色. 使用和上一步一樣的筆刷設定,從(x: 2, y: 1,z:3)到 (x:6,y:1,z:1)建立一個盒子:

雕刻鼻孔和眼睛
更改筆刷模式,按V切換到Voxel Mode,然後按R選擇Erase. 擦除鼻子上的兩個鼻孔,參考下面的圖片:


建立尾巴
選中和前面鼻子一致的深粉紅色. 將小豬沿y軸旋轉180度,讓後面顯示出來. 仍然是Voxel Mode,按T來選擇Attach模式,從(x: 4, y: 7, z: 2)開始建立一條螺旋狀的尾巴,如下圖:

新增耳朵
選中和前面一致的深粉紅色. 按1來開啟x軸對稱.你會注意到映象X按鈕處於開啟狀態.現在你在一邊所做的所有的操作會自動映象到另一邊. 開始一個體素一個體素建立耳朵,會看到另一隻耳朵也在同時建立.參考下面的圖片:


新增腿
目前,小豬是處於邊界的底部,所以你需要將他向上移動來騰出空間給他的腿. 你可以進入Move Mode並向上拖拽模型,或按住Command鍵並向上拖拽也可以. 向上旋轉小豬,露出他的腹部. 用同樣顏色和筆刷設定,並確保沿x軸映象模式仍然是開啟狀態. 開始建立他的後腿,然後是前腿.參考下面的圖片:


最後著色
只剩下著色了. 按G進入Paint Mode. 從左側顏色皮膚中選擇白色,在眼睛位置單擊著色.完成後,再選擇黑色給瞳孔著色:


匯出體素模型
模型已建立完成,但SceneKit並不支援MagicaVoxel的原生格式 .vox.幸運的是還可以將模型輸出為常見的 .obj格式. .obj格式是Wavefront Technologies開發的開放標準幾何體定義,並被很多3D創作工具支援. 從MagicaVoxel中輸出體素模型易如反掌.
以.obj格式輸出體素模型
小豬還需要一個敵人-小狼.

在resources資料夾下,你會找到MrWolf.vox檔案.複製到Applications/MagicaVoxel/vox,然後在MagicaVoxel中開啟.
載入完成後,可以以特定格式輸出了. 要輸出為 .obj格式,只需單擊Export區域的obj就可以了.

輸入檔名,選擇輸出路徑,其餘保持預設,點選 save.


- MrWolf.mtl: 這是一個材料庫檔案,包含了顏色定義,紋理和反射貼圖.
- MrWolf.obj:這是Wavefront的 .obj檔案,包含體素模型的幾何體資訊.
- MrWolf.png:這是你體素模型的漫反射紋理貼圖,它包含了你在模型中用到的所有顏色.
匯入體素模型
現在已經輸出了模型,可以匯入到Xcode中了,然後轉換為合適的SceneKit場景檔案.
匯入.obj到Xcode

將.obj轉換為.scn
選中MrPig.scnassets資料夾下的MrWolf.obj檔案.模型是全黑色的,不要緊,我們馬上修復它. 在選單設定裡找到Editor,然後選擇Convert to SceneKit file format (.scn):

這裡提示,你可以選擇建立一個原始 .obj檔案的複本,或者用轉換後的 .scn 版本替換原來的檔案.選擇Convert繼續:

MrWolf.obj檔案已經轉換為合適的 MrWolf.scn檔案了.
選中場景中的小狼節點,開啟材料檢查器.更改Lighting model光照模型為Lambert並更改Diffuse確保它使用了MrWolf.png 作為紋理:

配置體素模型
在節點檢查器中,更改Identity為MrWolf.並更改縮放為(x: 0.08, y: 0.08, z: 0.08).這樣的縮放讓他和小豬有了相同的尺寸:



你可以在projects/final/ Mr.Pig/ 下面找到完成版.
挑戰
再來點小挑戰吧! 將小狼新增到遊戲中,並讓他繞著樹林追尾巴.準備好了麼?別擔心,這裡有些小提示可以幫你. 選中MrWolf.scn並做點改變:
- 給MrWolf建立一個父節點並命名為RunningWolf.
- 將MrWolf沿x軸偏移4個單位.然後新增一個Rotate Action到父節點,旋轉-90度並無限迴圈. 當你點選play按鈕時,小狼將會跑一個大圈.
- 最後,新增一個MrWolf.scn的引用到GameScene.scn.將他放置在(x: 0, y: 0, z: -17)位置上.
執行遊戲,就能看到小狼繞著樹林追尾巴了.