1. 程式人生 > >Unity3D白皮書(一)模型匯入設定

Unity3D白皮書(一)模型匯入設定

在研究一個東西的時候,我們首先要問三個問題?

What?什麼是匯入設定?

我們可以在資原始檔的Inspector介面看到這個檔案的相關設定,匯入設定本質上是AssetImporter或其衍生類。

Why?為什麼我們要使用匯入設定?

我們匯入的資源大部分是由第三方軟體生成的,而這些資源需要指定一些引數或者附加一些資訊才能被U3D使用或者更好的使用。

How?匯入設定是如何產生效果的?

在資源匯入的同時,會生成與之對應的meta檔案,meta檔案除了儲存資源的GUID和meta檔案的建立時間外,還包含了一些其他的設定,其中就包含匯入設定的引數,當U3D使用這些資原始檔的時候,就會根據meta檔案中的設定來進行對應的處理。當然資原始檔的Inspector介面上的數值也是根據meta檔案反序列化(到對應的AssetImporter)得到的。

(注:本文中在一些名詞上添加了超連結,如果想了解更多,可以直接連結過去)

如下圖,是一個模型的匯入設定。

首先是Model頁籤:

Scale Factor:縮放因子,不同的建模程式生成的模型檔案,尺度單位不同,為了在U3D裡統一,就需要進行縮放。模型檔案的縮放因子:

.fbx, .max, .jas, .c4d = 0.01

.mb, .ma, .lxo, .dxf, .blend, .dae = 1 

.3ds = 0.1

Use File Scale:使用檔案的預設縮放值。

Mesh Compression:網格壓縮,會導致失真。官方的想法是,儘可能的壓縮網格,只要模型看起來不至於太奇怪。

Optimize Mesh:優化網格,如果開啟,網格的定點和三角形會按照U3D既定的一套規則重新排序用以提高GPU效能。

Import BlendShapes:匯入BlendShapes(用於表情動畫)。

Generate Colliders:生成碰撞體。

KeepQuads:保持四邊形,不轉換為三角形。我們在U3D中使用的網格,大部分是把所有的面都轉換成了三角形,但是某些特定的需求下,四邊形會得到更好的效果,例如Tessellation shaders(細分曲面著色器)。

Weld Vertices:焊接頂點,如果開啟,相同位置的頂點會被合併。

Swap UVs:交換uv,如果有光照貼圖的物件UV通道不正確,則使用本項。會交換主uv和光照貼圖uv(uv2)。

Generate Lightmap UV:為光照貼圖生成UV。如果開啟Generate Lightmap UV,會在該選項下面多出四個引數。

關於這些引數的含義,可以參考:

http://www.ceeger.com/Manual/LightmappingUV.html

Normals:法線:

  1. Import:從檔案匯入。
  2. Calculate:根據平滑角度(Smoothing Angle)計算。
  3. None:禁用。

Tangents:切線(以及次法線):

  1. Import:從檔案匯入,前提是法線也是匯入的。
  2. Calculate Tangent Space:計算切線空間
  3. Calculate Legacy:計算切線。
  4. Calculate Legacy – SpliteTangents:如果法線貼圖的光照被網格上的縫隙破壞,則選用此項。

Import Materials:是否匯入材質。如果否,則不生成新的材質,預設使用“Default-Diffuse”。

Material Naming:材質命名方式。

Material Search:材質搜尋方式。

然後是Rig頁籤:


Animation Type:動畫型別。
  1. None:無。
  2. Legacy:傳統的。(Animation)
  3. Generic:一般Mecanim動畫。
  4. Humanoid:人形Mecanim動畫。
Avatar Definition:面板定義。
  1. Createfrom thismodel:從模型建立。
  2. Copyfrom other avatar:複製其他面板設定。(配置Avatar
Root Node:根節點。(Generic) Optimize Game Object:優化遊戲物件,開啟此項,可以優化有動畫的角色的效能。

最後是Animations頁籤:


Import Animation:是否匯入動畫。 Bake Animations:用於反向動力學(IK)和擬態。只對Maya,3dsMax &Cinema4D檔案有效。 Resample Curves:重取樣動畫曲線。(詳細解釋可以參考AnimationClip中的對應設定) Anim. Compression:動畫壓縮。
  1. Off:不壓縮。
  2. KeyframeReduction:減少關鍵幀,移除相似的關鍵幀。
  3. KeyframeReduction and Compression:減少關鍵幀並壓縮Clip資料。(Legacy )
  4. Optimal:最優化,(GenericorHumanoid))。
Rotation Error:旋轉誤差(度數)。 Position Error:位置誤差。 Scale Error:縮放誤差。
(注:當對動畫進行優化的時候,會根據以上三種來對動畫進行刪減。)
Clips:動畫剪輯。 當Rig頁籤選擇的Animation Type選擇Legacy時,Animations頁籤稍微有些變化:
其中Wrap Mode代表動畫的迴圈模式,如果不是Default會覆蓋掉所有Clip的迴圈模式: Default:預設,根據Clip的模式。Once:只播放一次。Loop:迴圈。PingPong:結束之後,倒著播。Forever:結束之後,迴圈播放最後一幀