1. 程式人生 > >使用Unity開發專案的一點經驗

使用Unity開發專案的一點經驗

原帖地址:http://www.gamengines.com/article-541--9.html感謝 bigbird的辛苦編寫和無私分享
我們主要使用3dsmax2010進行製作,輸出FBX的型別匯入unity3d中。
預設情況下,3dsmax8可以和U3D軟體直接融合,自動轉換為FBX物體。
注意事項如下:
1.
面數控制
在MAX軟體中製作單一Game Object物體的面數不能超過65000個三角形,即32500個多邊形Poly,如果超過這個數量的物體不會顯示出來,這就需要我們合理分佈多邊形和模型數量。
開啟MAX場景,選擇File/Properties/Summary Info可以開啟檔案屬性記錄。
其中Faces可以看到每個物體的實際數量,個體數量不能超過65000個Faces面。

2.
建模控制
Unity3D軟體支援Line渲染和編輯之後所產生的模型。大部分模型都依靠Polygon進行製作。在模型表面可以承認多出四邊形的面,但不渲染交錯的面。
預設情況下,U3D引擎是不承認雙面材質的,除非使用植物材質球Nature型別。
所以在製作窗戶、護欄等物體,如果想在兩面都能看到模型,那需要製作出厚度,或者複製兩個面翻轉其中一個的Normal法線。
3.
檔案的放置
模型可以繼承MAX的材質,但是檔案的設定要按照以下形式進行放
在專案的Assets資料夾內,新建立一個Object資料夾。
並在其中建立Materials和Texture資料夾(分別自動存放材質球和貼圖)。
模型物體並列儲存在Object資料夾內。

這個規律模式不要打亂,否則會破壞整個系統邏輯。
4.
材質數量控制
如果一個物體給與一個材質球,那麼Unity3D對於材質數量和貼圖數量沒有任何的限制。
如果一個物體給與多個材質球,我們需要用Multi/SubObject來實現,但是這種羅列的材質球的數量沒有嚴格的控制,但儘量保持在10以內,過多的數量會導致一些錯誤。
如果不使用Multi/SubObject材質球,也可以選擇一些面,然後給與一個材質球。這樣系統會自動將其轉換成Multi/SubObject材質。
綜合而言Unity3D軟體對於材質的相容還是很好的。
5.
物體的質感
Diffuse
Diffuse Bumped
Bumped Specular
這三種類型為常用型別,其中Bumped需要增加Normal法線貼圖來實現凹凸。

Decal
這種材質為貼花材質,即相當於Mask型別,可以再Decal(RGBA)貼與一個帶有Alpha通道的影象,形成和原影象相疊加的效果。
Diffuse Detail
這種材質可以創造出汙跡和劃痕的效果,即相當於Blend混合材質。
Reflective
其中各種型別可以創造出金屬反射效果,需要增加Cubmap貼圖。
Transparent
其中各種型別可以創造出透明的效果,需要增加具有Alpha的通道貼圖。
注意:如果要做玻璃貼圖,Alpha如果全是灰色或黑色(即要求全透明),那麼Alpha就會失效,如果要全透明,材質Alpha其中必須至少有1畫素為白色。
Nature
其中Soft Occlusion Leaves型別主要應用於片狀的樹葉材質。
6.
物體尺寸
預設情況下U3D系統單位1等於1米,等於軟體1單位。如果我們製作是按照實際大小比例製作,那麼匯入U3D引擎會自動變成原來的1%的大小。
因為預設情況下,U3D的FBXImporter中的Scale Factor的數值為0.01。
那個我們可以將Scale Factor的數值恢復為1,但是這樣會佔用模型資源,比較消耗物理快取。
我們也可以將這個物體從Hierarchy中選擇,並使用Scale放大100倍,這種設定可以有很多好處,並且還能通過用指令碼製作動畫。
7.
關於複製
場景中的燈光佈局,重複的模型物體都可以使用系統Prefab進行關聯複製,這樣可以改變一個引數的同時將所有關聯物體屬性改變。
8.
山脈控制
在建立山脈之後,選擇Terrain/Set Resolution可以設定山脈的大小和屬性。
需要注意的是,預設情況下Terrain Width和Terrain Height為1000米。如果設定這個數值太小,那麼繪製草的時候會產生偏移,因為草的尺寸必須減少到0.1的單位。
也就是說,山脈在處理0.1單位的時候會產生0.01的偏差,如果模型太小,這種偏差是顯而易見的,所以建議使用者不要讓模型過小。
9.
光暈控制
光暈又稱為Lens Flare即燈光光效。
可以選擇一個GameObject物體給與Component/Rendering/Lens Flare,並在Flare中增加一個Standard Assets/Light Flares/50mm Zoom專案。這樣在執行之後就會產生光暈。
但有時候如果光暈太遠太高卻看不到。
一種辦法是將光暈離近,另一種辦法是將所有攝影機Camera的Far clip plane的數值增加。
10.
攝影機控制
如果場景中有多架攝影機,那麼如何確定第一開啟時間所顯示的攝影機,就需要設定Camera屬性中的Depth數值,數值越大的攝影機越優先顯示。