一個角色最終呈現在引擎裡,美術製作上的思考以及注意事項
本文首發於Unity官方平臺
啊哈~(^_^)突然發現好久好久沒有寫文章了… 對不起啦,前段時間有點忙.. 最近閒下來了一些,兔紙我呢,Emmm…想了想~~ 要不寫一篇關於角色製作的吧?最近我連續做了好幾個角色,整體個流程也慢慢的熟悉和沉澱下來了… 嗯嗯!決定了,那就說一下角色的製作~!嘻嘻(●'◡'●) 等一下哦,我可不是說世界觀角色設定藝術,角色的實現技術這些哦。這些有很多文章都說過的,這裡我就不說啦~
那我說什麼呢?我想了下, 我打算給小夥伴們理一篇《一個角色最終呈現到引擎中,美術製作上的思考以及注意事項》為什麼我要說這個呢?哎~說多了都是淚哇…我就是這麼摸索過來的,我寫的目的,嗯哼,那就是降低返工率~ 好啦,直接說正題。通常來說呢,一個角色模型的實現流程應該是以下的幾個步驟:
三檢視原畫 → 原型模型 → 高精度模型 → 拓撲低模 → UV拆分 → 烘焙貼圖 → 繪製貼圖 → 繫結蒙皮 → 骨骼動畫頂點動畫 →引擎中的shader → 引擎中的渲染 → 引擎中的實時物理 → 動畫套用以及動畫機 → 角色控制器或者AI實現→ 特效,語音,音效等等。
數了數,差不多吧,大概應該是這麼15個流程吧?過程可能繁瑣,但是對於一個遊戲中的角色,她最終展示的地方呢,就是在你的遊戲引擎裡面。所以呢,前期的一系列的繁瑣的操作,那都是為了最後一步,最終的產品實現效果。但是嘞,整個這個環節持續的時間會比較長,同時呢,又因為都是串聯的操作,所以呢,上面所說的每一個必經步驟都很重要,如果其中一個步驟錯了,或者某個步驟的品質下降了,那都會返工和直觀的影響到最終產品呈現的
好啦,這次呢,我主要說一下前期美術的部分,所以呢,根據剛才的那十來個步驟呢,感覺其實可以這樣在統一的劃分一下:
原畫 → 模型 → 動畫 → 渲染
這樣是不是精簡了許多,嘻嘻,好了正題開始~通過我自己的實踐,得出了一些心得,哈哈~可能只是針對我自己哈~
首先呢~ 在開始製作前,先制定一些約定,有一些常規的約定就不說啦,比如模型的頂點數,貼圖的尺寸,數量,骨骼的數量啊這些的,我想說的可能是這些:
這個遊戲的角色,我是希望能夠滿足人形骨骼的,因為這個關係到後續AI實現上,因為人形骨骼有個很大的好處,就是可以利用動捕裝置或者區間動畫庫,很快速的就能製作出一套品質很不錯的動畫用在控制器或者AI上。
在角色的一些材質效果製作上,也是需要提前想好的,因為實現這些效果,肯定是需要這個模型的UV,佈線,貼圖等一些前期工序一起配合的,如果等模型和動畫都做完了,再去思考一些效果的話,那肯定會造成返工的,為了避免這些事情發生呢,最好把這些效果都提前想清楚哦~
在角色的一些物理效果上,有些部件需要做物理解算的,都需要單獨的分開,這些都需要先思考清楚哦。
所以呢,有了這些約定後,接下來的步驟就需要根據這些約定開始實現啦,好了,開始第一個環節。
原畫
為了保證整個流程的暢通呢,原畫作為邁出的第一步,那是非常重要的,肯定不能瞎畫,我說的瞎畫呢,是指對於後續流程會產生一些影響的結構或者效果,比如呢,在畫的時候需要考慮到後續流程上的點:
- 模型方面:需要為接下來模型製作思考,比如我畫的哪些結構,建模實現起來非常的困難?拓撲低模的時候這個結構很難佈線?
- 動畫方面:同樣的,也需要為接下來動畫實現思考,哪些位置動畫在繫結起來會很麻煩?哪些結構會破壞人形骨骼結構?
- Shader方面:然後,需要為接下來的shader實現思考,我畫的這個材質效果,shader實現的代價大不大?效能如何?材質的分類?有木有特殊效果?一個pass能不能實現還是需要多個pass?
- 物理方面:需要思考哪些結構需要模擬運算?如何運動?
帶著這些問題再來畫的話,那後續的工作環節就會順利很多哦(●'◡'●)
小技巧:在畫人體的時候,可以藉助三維軟體的輔助繪畫哦,這樣能夠更加效率,同時保證結構,透視關係的正確性。
模型
接下來呢,在製作模型的工序上,同樣的,也是需要思考後續的流程,模型也不能亂建,UV啊佈線啊,材質分類這些都需要想好的~模型是最關鍵的一環,因為模型到渲染中間隔著一個動畫,渲染出現問題,那都會造成模型和動畫的返工。
- 貼圖方面:在製作模型的時候同樣的,也需要為接下繪製貼圖考慮,哪些結構能夠共用UV?貼圖的畫素能夠最大化的利用?哪些部件是需要帶Alpha?
- 動畫方面:需要考慮面部製作blendshape,模型需要如何的分UV?還有身體的哪些結構需要製作動畫,如何給佈線會讓模型的繫結更加的自然?
- Shader方面:需要為接下來的shader實現思考如何擺放UV來實現一些特殊效果?還有給模型材質劃分的時候,哪些材質需要單獨分開?
- 物理方面:同樣的,需要思考好合理的佈線,讓模擬的效果更加自然。
在製作模型的時候,如果能夠提前考慮到後面的一些工序的話,並把這些都鋪好,那肯定會最大程度的避免返工的~
小技巧:在ZB或者別的軟體中繪製高模的時候,像一些細小的Detail紋理是不需要在高模上體現的,因為把這些小結構直接烘焙成貼圖時,受解析度限制下,效果是很差的,這些效果最好是在shader中用Mask ID做劃分,靠Detail Map疊加就好了,不要出現在主貼圖中哈~
直接在shader裡疊Detail的話,這樣是最明智的選擇(^_^)
動畫
這個時候模型在繫結的時候,最好呢,是先直接將檔案一個一個的匯出成obj格式的檔案,再一個一個的匯入到動畫軟體中,這樣能最大程度的確保模型的純淨度,然後再檢查一遍模型,包括模型的法線朝向,檔案的層啊這些,還有材質球的分配,看看有沒有什麼問題,如果這些都沒有問題了,那再開始對模型繫結~
在繫結的時候,骨骼的位置非常關鍵哦~每個的位置都代表了每個關節在運動的時候是否自然,非常關鍵的哦~我又重複了一遍,舉個例子,如果在蒙皮權重已經OK的情況下,發現骨骼位置有問題,那將是一件非常麻煩的事情…
小技巧:像Hip骨骼的點位,就在屁股的中心,想要運動起來自然,骨骼點位必須精準哦,不然使用動捕或者套用別的動畫的時候,動畫會變形的哦…
到了這一步了,那就離成品更加近了,但是同樣的,也不能夠掉以輕心~ 同樣的,在製作的時候也需要帶著幾個問題:
模型方面:需要再次檢查一下,確保模型的法線方向都正常,軟硬邊都正常,模型的部件和材質都分類正確了,需要做blendshape的部件已經combine好了,材質和命名都已OK。
- 動畫方面:需要思考我接下來的這個骨骼搭建是否符合引擎裡的humanoid要求。
- Shader方面:再次確認一下想要做效果的結構是否已經拆好了?
- 物理方面:需要思考哪些部分的模擬是用骨骼,哪些部分是想用頂點。
OK,到這裡就完成了引擎前的所有工作,接下來就將整套模型貼圖,匯入到引擎中了,將所有的前期準備都組合起來~
小技巧:在刷蒙皮權重的時候,是可以在蒙皮軟體和引擎裡面來回測試效果的,當整個角色套上動畫後,是很容易就發現問題的,比如下面這圖,運動起來我就發現肩胛骨在達到一定角度後,頂點權重不夠平滑,形成了毛刺。
渲染
因為之前已經制定好了這些約定,接下來的話,實現就很輕鬆啦,shader這一塊的話,因為之前在製作模型的時候,已經將材質都按組分割好了,只需要為分割好的部件單獨設定材質或者製作材質就好啦, 動畫適配這塊呢,因為已經制定好了人形骨骼標準,可以直接適配Unity的humanoid,這樣的話就省去了很多動畫上的製作時間,同時嘞,也可以適配動作捕捉的,大大的減少了工作量,如果製作的blendshape也滿足ARKit命名的話,那也可以直接面部捕捉,直接輸出面部BS動畫。
小技巧:如果你是使用Advanced Skeleton進行繫結的話,匯入Unity大概率Scapula和Shoulder節點會識別錯位哦,這個在humanoid介面手動調整一下就好啦~
好了,我說完啦~
我總結一下哈,剛才說到的角色流程,原畫到模型再到動畫最終到渲染的實現最好是以結果為導向的製作方式,反推回來,思考一下達到這個結果,我需要在這個環節如何做,那就按照這個來製作~同時呢,最好是能夠了解整個製作的流程,這樣就能在這一環節的製作中,思考一下,下個步驟的工作內容,有哪些需要我這一環節注意的。
今天就到這裡啦~下次我來說一下,角色,場景,特效如何在不同的光照環境一起,協調的呈現在畫面中,記得評論,點贊,轉發,收藏哦~~
相關文章
- in App Purchases一個注意事項APP
- 質量度量落地的注意事項和思考
- 企業展廳製作實現數字化都有哪些注意事項
- cookie的使用方法以及注意事項Cookie
- 關停一個產品的注意事項
- React生命週期以及注意事項React
- 小遊戲引擎選型注意事項遊戲引擎
- WebView與JS的互動,以及注意事項WebViewJS
- Laravel 專案上線的一些注意事項Laravel
- PureComponent 使用注意事項以及原始碼解析原始碼
- Mysql索引以及使用索引注意事項MySql索引
- 使用HTTP的三個注意事項HTTP
- SAP 往一個角色裡增加事務程式碼
- 一款Galgame是如何誕生的?商業化Galgame的製作流程和注意事項GAM
- 使用regulator_get時的一個小注意事項
- Latex寫作常用操作和注意事項
- 做SAP freelancer 的幾個注意事項
- 網站定製開發需要注意的事項網站
- 開發及上線中的注意事項
- GO 中的 defer 有哪些注意事項?上Go
- PyQt5技術分享:製作一個美觀的Dock欄QT
- 關於FreeRTOS移植到STM32F103上的步驟以及注意事項
- MyBatis 的在使用上的注意事項及其辨析MyBatis
- php大檔案上傳注意事項PHP
- OA系統在選型時的注意事項
- 為遊戲設計湧現式玩法的五個注意事項遊戲設計
- RandomAccessFile注意事項randomMac
- @Lombok注意事項Lombok
- 換工作的注意事項
- Oracle使用*的注意事項Oracle
- iOS開發中整合FFmpeg以及相關注意事項iOS
- 【Net】StreamWriter.Write 的一點注意事項
- 關於 interface{} 會有啥注意事項?上
- 在專案中的更換 React Hooks 注意事項ReactHook
- 奇幻MMORPG標杆之作!《最終幻想14》角色.場景.宣傳美術分享 -D.ROCK
- 幾種簡潔建立執行緒的方式以及使用注意事項執行緒
- MySQL 8.0.20 MGR資料遷移過程以及注意事項MySql
- 城市規劃館在設計製作上需要注意什麼