3D遊戲美術流程
不同於其他類型的AI應用,3D內容的AI生成應用所面向的行業更加垂直,會有一定的專業使用門檻,並且生成的產物與直接投入生產環境的內容往往還存在一定的距離。筆者這裏針對小型獨立遊戲/Demo的場景下,為提高3D遊戲美術工作效率和降低成本,分享下在引入了AI生成後的美術工作流程。
首先回顧下在行業中一個比較主流的美術工作流,大致如下:
雕刻高模
↓
拓撲低模、佈線
↓
展UV
↓
由高模烘焙出法線、AO等貼圖
↓
繪製顏色、金屬度、粗糙度等PBR貼圖
↓
製作骨骼、綁定、刷權重、測試蒙皮
↓
製作骨骼動畫
↓
導入遊戲引擎調試
傳統流程中每個環節依賴的DCC工具都是不一樣的,甚至同一步驟都能有多種工具可以選 例如建模階段的3D Max(硬表面物體)和Maya(角色/生物建模)等。考慮到學習成本和獨立開發的效率,筆者選擇了全流程製作都使用Blender。這也是許多獨立開發者的選擇,畢竟作為個人和小微團隊來説,採用行業最佳實踐的美術工作流並不現實。
AI工具選擇
筆者共測評了四款擁有對遊戲資產開發有一定支持的平台,分別是:
- 騰訊的混元3D:https://3d.hunyuan.tencent.com/
- Rodin的Hyper3D:https://hyper3d.ai/
- Tripo AI:https://www.tripo3d.ai/zh
- Meshy:https://www.meshy.ai
綜合體驗下來,混元3D和Tripo AI不管是在流程完整性還是生成內容的質量上,都是目前最佳的。二者均支持組件拆分這一大多數競品沒有的功能。另外,騰訊混元3D中的3D Studio是完全針對遊戲行業定製化的工作流,在前置流程上還可以銜接騰訊混元遊戲(自家的另一個平台:https://hunyuan.tencent.com/game),提供了多種角色/道具/場景的概念設計工具。
筆者在挺久之前就有關注到騰訊混元3D並且挺看好的,但它一直沒有進行商業化,目前每天只能獲取非常少的固定生成次數來在平台內使用;而且3D Studio是需要單獨去申請內測資格後才能使用的,生成的內容會有版權歸屬的問題。最終決定使用Tripo AI來輔助筆者3D美術工作。
AI工具實踐
首先需要準備好一張設計圖;這一步的手段是非常的豐富的,手繪、外包稿件、亦或是文生圖/圖生圖等AI生成方式。本文這裏的例子是使用的之前自己手繪+AI融圖出來的一張外星怪物設計圖。打開Tripo AI的3D工作台,右側面板中上傳圖片(為了提高生成的準確性,最好用多視圖生成):

同時設置生成模型的參數。高清紋理和PBR屬於雞肋特性,開啓與否都行,因為AI生成的紋理質量肯定是無法投入生產使用的。重要的參數是拓撲設置中的拓撲面和麪數控制;其中的智能低模是Tripo新出的特性,筆者還尚未試用過。

點擊生成,得到模型:

雖然開啓了PBR紋理但看不出什麼效果。
切換到白模,看下佈線效果:

有點稀碎......
展UV的效果在應用裏看不了,需要導入進Blender後再看。接着在下方設置導出,格式用.FBX,選個紋理分辨率,軸心重置到原點:

進入Blender中工作
新建Blender工程,將剛剛由Tripo AI導出的FBX文件導入進來。
在白模中首先檢查下模型完整性,是否有破面、面朝向異常等問題:

筆者導出的這個模型的尾巴處存在幾片法線異常的面(4.x版本後只會對異常法向的面標紅色)。
接着切換到UV編輯,看下UV展的效果:

依舊稀碎......這拆的甚至還不如Blender自帶的智能UV。考慮到後續的可維護性,建議還是調整下佈線重新拆UV。
調整完後到着色器界面中基於新UV重新烘焙出法線、顏色等貼圖。最好再把貼圖都輸出到本地作為外部圖像引用:

確保所有新貼圖都無誤後,下一步進入到紋理繪製。這裏就是需要自己手繪調整各項貼圖了:

在unity中使用標準的urp材質的話,金屬度和光滑度是共用一張貼圖的:

所以需要將着色材質中的金屬度和粗糙度貼圖進行通道合併。該步驟就是簡單的圖像操作,既可在PS這種軟件中操作也可以在Blender的合成器中操作。筆者建議圖像操作也都可以放在Blender中處理;不僅無需切換工作軟件,而且合成器這一基於節點編輯器構建的工作流在後期維護也方便得多,隨時修改材質貼圖後都能自動化完成轉換貼圖的工作:

至此模型的靜態部分完成。
還剩下骨骼製作、綁定和動畫的工作了,這幾塊就需要完全由自己動手了。智能綁骨和骨骼動畫目前還未找到可用的AI工具,尤其是非人形的生物模型。如果是人形的動畫,其實可以藉助Mixamo網站來完成動畫工作,這一免費動畫平台對於小項目而言也足夠了。
製作一個行走和死亡動畫
導入遊戲引擎
完成了Blender中的工作後將怪物模型以.fbx的格式導出;導出時帶上骨骼與動畫相關的信息。
在Unity編輯器中導入剛剛的.fbx和貼圖文件。在面板中檢查骨骼類型和動畫資源是否正常:

將材質暴露出來:

為材質賦予各個貼圖後,創建Animator和測試腳本:

最後在場景中查看運行效果。
