技術玩久了便知道, 一個成功的案子的完成 技術的本身其實佔了很小的部份. 這篇文章把作者過去做專案的經驗整理起來 (雖然實際上我也沒做過多少次的專案) 期望將來在做案子的時候能夠以最有效率的方式完成.
有趣的專案才是值得做的專案
如果是個人工作室的個人興趣專案 那想個自己喜歡 自己感興趣的專案 又能練習某某流程或技術 這種專案最好 能達到最大的學習效果. 所以選擇有趣的最重要!
專案的第一步----收集相關資源
一旦專案題目決定後 就要開始收集相關的圖片 教學 或是模型 聲音檔. 如果可以的話最好平常就收及有用的參考圖. 建模的參考圖與貼圖的參考圖是不同的, 建模需要透視圖與正視圖 上視 側視 下視圖; 而貼圖的參考圖必須要是乾淨 沒有shadow 沒有透視誤差的圖. 如果建模能夠拿到實體的話 那對建模會有非常大的幫助 比方說要做鋼彈機器人, 花點錢去買的鋼彈模型 比起單單看圖片建模 會快速許多.
用3D建模前請先用鉛筆草繪
收集完參考圖後 用鉛筆先把各個角度草繪一遍是非常重要的 這個步驟往往被忽略! 先用鉛筆畫過的目的是讓物體的3d構造預先在腦海中建構起來 要達到在腦中就可以想像3D的樣子是什麼 (好抽象阿!) 參考一下Pixar的工作流程你就會知道這個步驟的重要性了.
規劃佈線也很重要
除了3D造型要怎樣長以外 布線對於臉部 或是動畫物體也很重要. 有畫過布線的話 就可以很快規劃出模型到底要怎樣建模了
快速成型(prototyping)是為了發現問題
接著就要真的開始3D軟體的使用了. 這時候我們還是不要來真的, 而是以最快速的方法把整個專案跑一遍 在這個測試裡面 我們可以發現哪些必須先建模 哪些地方動畫會發生問題 哪個plugin與另一個plugin有相容性的問題 都要在這個測試中快速的被發現出來. 測試還不能只測靜態的 很多問題是要製作動畫的時候才會出現 很多問題也是要算出大張一點的圖才會被看出來. 個別測試參數也不夠 要把各個外掛整合在一起操它 才能操出它是否有某些奇怪的bug. 測試靜態GI還不夠 還要測試動畫的GI效果 才能知道確切每個frame可能消耗的時間與閃爍的問題是否能解決.
技術也有LOD
大家都知道模型有LOD, 其實技術也可以依照專案資源 期限 經費而有不同程度的LOD!例如做雲就可以用plane(低解析度的作法)或Afterburn(寫實的作法); 當時間有限時就必須要用平面來做雲 這也是沒辦法的作法 不一定用plan貼出來的雲就不是業主想要的喔 而且少用外掛(例如Afterburn)可以縮短很多專案debug的時間. 總之能縮放自如可用的資源/技術來使用 是專案的生存之道.
ㄧ開始就要想好備份的問題
專案一開始的時候就要做好長遠的規劃 因為一旦專案正式開始 問題就會被累積 圖檔會越來越多 路徑會越來越複雜
正式建模
建模要明確不含糊, 除了比例要正確外 還要把特點誇大才可能真正的達到"像"的境界! 針對動畫的模型還得注意布線的問題 如果是團隊合作 還要考慮不要把模型搞成不可回覆的操作 (比方說把某某修改器塌陷掉) 造成其他合作夥伴要修改模型的困擾. 隨時要有重做模型的準備
拆UV與材質
如果你UV有拆好 其實可以做很多事情. 可以bake texture, 可以到雕塑軟體如ZBrush中雕刻產生normal map, 可以貼maps. 如果沒有拆好那就用程序性貼圖來做材質 不能做很多realtime game engine跑的東西...
專案的檔案管理
專案說明的範本.txt檔 裡面紀錄:
- 專案名稱:
- 專案描述:
- 軟體版本:
- 外掛使用:
- 技術問題:
- 檢討缺點:
軟體版本與外掛使用的資訊很重要, 如果專案放了一陣子不用 電腦經過重灌後很多軟體的不在手邊 這時候有個專案說明資料就很重要.
專案還有一點很重要就是尺度問題. 如果多個場景要合併時 尺度不吻合的問題就會浮現. 固定尺度有個好處就是參數可以重複使用(這對於物理模擬或是GI設定很有幫助) 固定尺度可以避免載入skined的角色骨架發生無法匹配的問題.
固定資料夾結構
使用3ds max的set project folder可以產生所有需要的資料夾, 場景的資源檔案都放在sceneassets資料夾中, 當中又細分成animations, images, photometric, renderassets, sounds等子資料夾. 圖檔或是HDRI如果要使用就要通通複製到專案資料夾當中, 不要指定到其他路徑當中以免日後日進亂掉. 而且如果你場景資源分散在各個硬碟的資料夾, 當中資料夾又以中文命名 再載入場景時可能會讀取很慢.
Project的名稱可以如此命名: 日期+專案英文名, 例如20090305_realflow-test
naming convection命名原則
要有固定的名稱用法, 例如高解析度與低解析度物體的名稱 貼圖解析度的縮寫. 基本上是不太可能強迫一定要寫成怎樣 不過原則上就是要清楚明白可辨識內容. 要讓交接你工作的人可以看的懂. UNC Universal naming convention這是一個理想 相信遊戲公司在管理資源的時候一定會確實執行 但就個人工作室就算了吧 實行上有困難.
場景單要分成一個或兩個
原則上是合併成一個 以圖層管理. 合併的優點是不會有尺度不合的問題 缺點是有時候場景會變的很重.
3ds max的專案管理工具
- Save incresement: 可以用流水號的方式儲存場景
- set project folder: 用統一的資料夾儲存每個專案 方便管理
- asset tracking: 可以查看專案遺失的圖檔或是設定相對/絕對路徑
- archives: 這是最常用的場景打包方式 但是會把整個資料夾結構都包起來 (很混亂)
- clean material: 清理場景中材質
- instance duplacate map: 重複的貼圖就用instances表示吧
- resource collector: 收集所有相關的資源(貼圖) 然後複製到指定的資料夾 而且還能更新材質球的貼圖路徑喔
- xref scene object: 當場景很大的時候 可以分成背景與主題兩方面處理 分別載入
- layer: 取代過去常用的group方式 是管理場景必備工具
- Scene state: 每個場景可以有不同狀態 比方說一個建築物有白天的打燈 也有晚上的打燈 可以用狀態快速切換它
- Name selection sets: 可以取代group的功能 讓你快速選取常常要選的物體
- stamp: 很多渲染軟體都有的功能 可以幫你在影像上加上算圖時間的戳記 方便以後估專案所需算圖時間用
沒有案子是不需要修改的
所以要有phase的觀念 不同階段用不同速度 標準 做法來進行專案執行. 要有會被修改的心理準備 所以模型千萬不能做死. 能夠隨時重建整個專案 會比好好寶貝已經做好的專案要重要多了. 有時候整個打掉會比慢慢修改還容易
好的溝通可以省時
溝通的重點在於 要在你實際完成作品前就要趕快與業者溝通 避免他在看到成品時說哪邊不喜歡 還要再改就會很浪費時間. 業主不明白這時候要修改場景的那些東西已經很麻煩 像大樓蓋好了才要改地基;已經rig好了才要改model 最好就是業主能夠知道3d的製作流程 中 在每次都修該階段裡面 他們要觀察的重點是什麼 比方說建模階段 就不要太要求材質不好 一定要事先溝通好在每次會面前 業主知道在這個階段業主會看到怎樣的東西(雖然不是完成品) 要讓業主知道這階段的東西與最終完成品會有哪些差異. 有些修改是很容易的 比方說改變車子的顏色 但是一個角色已經rigging好了才說角色的風格不對那就要改很麻煩.
我比較喜歡你之前那個版本
業主可能會要看之前的版本 甚至他們可能會要求使用舊的版本 所以知道你每次給業主看的是第幾個版本是很重要的. 不只是scene會有不同版本 貼圖也會有不同版本 把這些版本正確命名並分開 是很重要的.
溝通用字精確
有時候業主抱怨角色的燈光不對 其實你要修改的不見的就是燈光 有時候問題的本身可能是模型 材質 都有可能. 溝通的用字要精確, 建議以大量圖片或文字溝通. 抽象的形容詞最麻煩 要學會翻譯業主的"不專業語言". 平時準備大量參考圖也是不錯的作法; 用圖片會比較容易溝通 業主如果說我要做像這樣的影片 或是圖片 比起抽象的文字更了解業主內心深處. 業主不一定會使用專業的語言 甚至業主使用的自與專業術語的意思完全相反!
統一管理往來email
Email往來的資料要整理在一起. 方便查看(查證), 溝通的文字檔與影片圖片也擺在一起 方便備份.
要學會保護自己
- 絕對不要主動告訴業主說還有哪些地方可以修改 那是自找麻煩 不要給業主好幾個版本給他選 除非業主要求
- 因為修該燈光與材質或是顏色會比修改模型容易 你可以善意的誘導業主要求你修改燈光或材質 這樣會讓你省去修該模型的麻煩
- 如果業主有一個想法你認為不太可能達成(時間或是技術不允許) 絕對不要跟業主說 這樣不行 這不可能做出來 反而是要告訴業主這樣做會多消耗多少時間 增加業主的預算 誘導業主放棄進行這項想法
備份
去除所有重複的物體與材質球 貼圖. 去除製作過程中多餘的東西 不需要的東西 不需要的外掛殘渣. 把selection set做好. 把layer拆好. 專案要能任意移動 而路徑不會斷掉(採用相對路徑 不要用絕對路徑). 場景中可能有些東西你很喜歡 可以個別獨立存起來 建立自己的模型資料庫.
結案做一個整體的檢討 面對下一次的挑戰 不要再犯相同錯誤.