2011年9月19日 星期一

Unity3D美術資產管理指南


Unity支援帶貼圖的3D模型, 從不同的軟體製作出來的皆可. 這裡我們(Unity3D)寫了一篇Unity遊戲開發美術指南, 幫助你更有效率地處理遊戲資產, 這些也會合併到官方文件裡面.

尺度與單位
  • 設定系統與場景單位, 讓3D軟體的單位跟Unity一致. 例如: 公尺
  • 尺度對照明與物理模擬都很重要, 例如 Max的預設單位是英吋, 而Maya是公分. Unity對於FBX和3D應用程式的檔案在import的時候會有不同的尺度設定, 請查看FBX import scale 設定選單.
  • 如果對場景尺寸設定有疑慮, 你可以放一個一公尺的方塊在場景, 看看在Unity環境能不能吻合.
  • 動畫影格的播放率每個3D軟體也都不同, 最好這方面也要統一. 例如: 每秒30格
檔案與物件
  • 物件名稱要命的有意義, 名稱要唯一. 這樣可以幫助你找到, 或是找到專案的特定物件.
  • 避免特殊字元: 例如*()?”£$n
  • 使用簡單但是有意義的名稱, 不管是物件或是檔名.
  • 盡可能地讓階層關係間單化
  • 對於3D軟體(例如3ds max)用在大型的專案, 建議把3ds max專案的檔案跟Unity專案的檔案放在不同的資料夾. 這樣可以避免不必要的更新與import不需要的檔案.
  • 有意義的命名規則讓你找東西比較方便
模型
  • 建模的時候 注意布線要有效率, 只在需要的地方布線.
  • 最佳化模型, 很多角色的模型需要花腦筋小心地最佳化, 甚至要整個重建, 如果是從雷射掃描的3D模型 Poser ZBrush這種模型的話. 其他如用Nurbs/Patch的模型也需要重建
  • 如果可以的話, 平均分布建築物, 地形的布線. 這樣可以幫助光照的產生, 避免詭異的錯誤產生.
  • 避免產生狹長的三角面
一步一步踏上高FPS的天堂吧
你建立模型的習慣對於大量重複的物件來說, 會有很大的影響. 以同一個物件來說, 如果一個是156個三角面, 另外一個沒有最佳化是726面. 以模型來說726面聽起來沒有很多, 可是如果在場景中有40個這種東西, 你就會看出差異了. 實用的法則是: 從簡單的開始做, 慢慢添加細節. 因為添加polygon會比拿掉polygon間單.

貼圖
如果你的貼圖一開始的時候就是用2的倍數, 這樣會比較有效率. Unity不需要在build time的時候才去重新縮放尺寸. 例如4096×4096 pixels, 或 512×512 或 256×1024這些都是2的倍數. 而2048×2048對於大部分的顯卡或是遊戲平台來說是最高的解析度了. 網站上有很多專家製作了很多很棒的貼圖 ,但是這些準則可以幫助你工作起來更有效率.

  • 把高解析度的檔案放在Unity專案的外面, 例如PSD 或Gimp file. 你可以從高解析度的圖降低解析度, 但反過來就不行囉.
  • 針對場景的需求, 定下貼圖需要的解析度, 觀察物件在場景中在哪個視角, 顯示的大小.
  • 把場景中所有的貼圖擺在Unity裡面同一個專案資料夾, 例如: \Assets\textures
  • 確保盡可能地利用貼圖的UV空間, 但是請注意, 不同的材質球會需要同一張貼圖的不同部位, 這會導致該貼圖被重複載入好幾次.
  • 如果不同元件需要用到不同shader的話, 建議你不要只用一張, 改用好幾張小張的貼圖.

  • 利用tiling texture的原理, 這樣你可以有更高的解析度表現.
  • 移除貼圖裡面明顯的突兀元素, 最好對比也要注意. 如果要添加細節的話, 你可以用貼花(decals)或是物件來打斷重複的感覺.

  • Unity會幫你針對輸出平台來做壓縮的動作, 除非你原始檔案就是JPG, 不然會建議你用不壓縮的圖檔格式.
  • 當你在現場拍素材時, 盡量能拉近畫面, 如果你拍12個重複的窗戶, 還不如拍近一點只拍一個窗戶 這樣解析度夠大.
有必要拍全部的窗戶嗎?


材質
整理場景的材質, 統一命名規則, 這樣在到了Unity才會更容易找到, 編輯材質.
你可以在Unity產生材質 用以下其中一種方法:

  • 在3D軟體裡面設定好的材質球並不會導入到Unity裡面. 但是Diffuse顏色Diffuse貼圖與命名通常會支援.
  • Shader 種類, specular, normal, 其他的貼圖或是substance material的設定目前都不支援 (但是即將3.5版會支援呦)
  • Unity可以支援兩種類型的檔案 3D應用程式的檔案(例如 .max) 與輸出的檔案 (例如FBX):
3D應用程式的檔案
Unity可以吃Max, Maya, Blender, Cinema4D, Modo, Lightwave & cheetah3D files, e.g. .MAX, .MB, .MA等等檔案

優點
  • 快速操作 (直接在Unity裡頭儲存與更新)
  • 一開始會比較簡單
缺點
  • 這表示專案裡面所有的電腦都必須要安裝相對應的3D應用程式(例如每台電腦都要裝3ds max 2012)
  • 檔案會很肥大, 因為會有不需要到資料在裡面
  • 缺乏檢查驗證, 要除錯會很麻煩
使用輸出的3D格式(例如FBX)
Unity可以讀取FBX, OBJ, 3DS, DAE & DXF等格式 通用的輸出指南請看這裡

優點
  • 只輸出你需要的資料
  • 在輸出的時候就會驗證資料
  • 檔案會比較小
  • 對模組化的工作流程有幫助(Encourages modular approach)
缺點
  • 這樣的流程會比較慢 用在遊戲原型或是快速修改上會很慢
  • 很容易就丟失檔案的版本 (工作檔或是遊戲輸出的檔案對不起來) 到底是輸出哪個版本啊

Characters & Animation
敬請期待這個單元

[相關新聞]



更多資訊請洽奇銳科技 (02)2557-3321

沒有留言: