Unity官方美術資產快速迭代功能詳解整理

Lights(燈光),Cameras(攝像機)和Visibility(可見性)導入
改進法線計算,增加Weighted Normal計算方法
增加Stingray PBS材質支持
預製體Prefab中嵌入式材質處理
自定義動畫屬性導入
Presets
Constraints
FBX Exporter工作流

ProBuilder相關介紹

Substance in unity












燈光攝像機和可見性導入



 

基礎知識


1

Unity支持的DCC工具和格式

 Unity支持的DCC工具和格式見下表。

軟件名稱

      原生格式

Maya

.ma .mb

3ds Max

.max

 Blender

.blend

Modo

.lxob

Sketchup

.skp

Cinema4D

.c4d

Lightwave

.lxo

Cheetah3D

.jas

 

2

Unity支持的交換格式

Unity支持的交換格式:FBX(默認支持,嵌入多種信息比如攝像機光照的導入,材質貼圖導入,動畫導入等),3ds,dae,obj,dxf。

 

最佳實踐

1

單位大小和動畫幀率設置

Maya通常是釐米cm,3ds Max通常是英尺inch,Unity則是米m。建議使用現實世界物體的尺寸,因爲這會影響光照計算,物理效果模擬等與現實世界相關的功能。

 

在Maya中,點擊菜單Windows > Settings/Preferences > Preferences窗口下的Settings中查看單位設置。


 

在Maya中,點擊菜單File > Game Exporter,也可以找到單位unit的設置項目。


 

需要特別注意的是動畫的幀率設置。Maya默認是24幀每秒,而Unity的幀率按照平臺的不同而不同。例如:PC或者Mac上是能跑多少幀就跑多少幀,而移動平臺因爲考慮到電池因素一般默認30幀/秒。

 

如果設置了QualitySettings.vSyncCount,比如默認是60幀/秒,但是vSyncCount設置成了2,那麼遊戲的最終幀率則是30幀/秒。

 

2

模型網格拓撲結構

  • 如果模型來自Mudbox或者Zbrush這樣的雕刻軟件或者是來自照片建模,要設置正確的面片數,儘可能的優化模型網格。

  • 但是要避免過度優化,特別是要避免超級長的三角形面。

  • 儘量通過法線貼圖和紋理來表現細節,而不是通過大量的面片來表現。

  • 正確的建模流程是從高模到低模,中間有不同層級的LOD。

 

3

 紋理

  • 製作原型的時候可以使用PSD格式來加快迭代,但是不要放在工程中,以免增加工程文件大小。

  • 項目工程中可以使用PNG格式的紋理,因爲PNG格式是無損格式,而且文件不會很大。

  • 無需在導入工程之前就縮小紋理尺寸,因爲Unity中可以壓縮紋理。

  • 儘可能的使用Texture Atlas,但是不同的Shader類型要用不同的紋理。

  • 可以通過平鋪紋理和使用分層的材質來節省一些紋理空間,爲模型增加細節。

 

4

材質

  • 建議選用Maya或者Max中的Stingray PBS材質,在Unity中對應的是Standard (Roughness setup)。

  • 支持Unity和Maya或Max之間的無縫迭代。

 

5

文件格式

  • 如果是製作原型階段,可以使用Maya或Max的原生格式進行快速迭代(需要在同一臺機器上安裝Maya或Max)。

  • 如果要支持多人協作,則可以選擇交換格式比如FBX。

  • FBX也支持更多的功能比如攝像機和光照的導入等。

 

十大美術資產迭代改進


1

Lights(光照),Cameras(攝像機)和Visibility(可見性)導入

從DCC軟件中導出FBX的時候可以選擇包含光照,攝像機等信息。   


導入Unity時可以選擇把這些信息導入。


攝像機數據導入

  • FOV(支持動畫)

  • Projection模式(Orthographic或者Perspective)(不支持動畫)

  • Near/far plane distance(不支持動畫)


光照數據導入

  • Intensity(支持動畫)

  • Color(支持動畫)

  • Range(不支持動畫)

  • Cast Shadows(如果設置爲Off在Unity中就勾選“No Shadows”;設置爲On則在Unity中設置爲“Soft Shadows”)

  • Spot Angle(僅對spot light有效,支持動畫)


2

改進法線計算,增加Weighted Normal計算方法

導入模型時默認的法線導入方式是Import。你也可以改爲Calculate,然後在Normals Mode模式選擇框選擇一個法線計算方式,讓Unity爲你重新計算一遍導入的法線信息。當然,這並不是說選擇Calculate方式就比Import的好。

 

如果選擇Calculate方式,Area Weighted模式會按照Polygon的大小來計算法線對Vertex Normal的影響,Polygon越大對Vertex Normal的影響越大。這適用於高精度面片數較多的模型。Angle Weighted模型可以降低三角面造成的瑕疵,比較適用於面片數較低的模型。當然,默認的計算模式是Area and Angle Weighted,它整合了兩種模式的好處以獲得最佳效果。

 



Unweighted (Legacy)


 

Unweighted

 

Area and Angle Weighted (默認模式)


 

3

增加Stingray PBS材質支持

現在如果在Maya或者3ds Max中爲模型添加Stingray PBS材質,當導入Unity中時,會自動使用Standard(Roughness setup)進行匹配,包括你在DCC工具中設置好的Color Map,Normal Map,Roughness Map,Emissive Map等。

 

Maya 2018中的HyperShade窗口,創建一個Stingray PBS材質,連接到各個貼圖,比如Color Map,Normal Map,Metallic Map和Roughness Map等。                        




將從Maya中導出的FBX文件導入Unity,在Project窗口選中模型,然後在Inspector中選擇Materials設置界面,點擊Extract Materials和Extract Textures按鈕把材質和貼圖取出。



接着就可以把取出的貼圖與材質(已被自動設置爲Standard(Roughness setup))的相關通道相關聯。



4

預製體Prefab中嵌入式材質處理

從上述Stingray PBR流程中可以看出,從Unity 2017.2版本開始,當導入模型時,模型的材質和貼圖信息會被包含在生成的Prefab裏面,而不是像之前那樣放在外部。這個新的導入行爲更便於模型材質和貼圖的管理。


Unity會先在現有工程中按照名稱尋找同名的已經存在的材質和貼圖進行關聯,當然你也可以選擇從新導入的模型中取出材質和貼圖進行關聯。

 

你可以通過Remapped Materials界面進行相關的行爲設置。



5

自定義動畫屬性導入

具體使用方式,請查看文末的直播錄播視頻。


6

Alembic Package 

Alembic會通過Unity 2018.1版本的Package Manager提供給大家。Alembic功能目前只支持通過編輯器模式導入Alembic格式的文件並創建用於渲染的內容,並不支持實時導入,因爲Alembic格式的文件本身會比較大。

 

因爲Alembic還在Preview階段,你需要在你的Unity工程目錄下的Packages/manifest.json文件中添加以下配置信息。

{
    "dependencies": {
        "com.unity.formats.alembic": "0.1.2-preview"
    }
}


添加完成以後,重新打開Unity編輯器,Package Manager窗口中就會出現Alembic下載安裝完成的信息。


                                           

注意:上述方法只適用於Unity 2018.1版本。如果希望在之前的Unity版本中導入Alembic插件,請到GitHub地址下載:https://github.com/unity3d-jp/AlembicImporter/releases    

 

使用流程

  • 在DCC工具中生成所需動畫,導出Alembic格式的動畫緩存文件(後綴名爲 .abc)。

  • 在已經安裝了Alembic插件的Unity工程中導入abc文件,插件會自動處理導入的abc文件。可以通過此界面調整導入設置。


  • 將abc文件拖入場景。你可以通過二種方式來做動畫。

    方法一:打開Timeline,創建一條Animation軌道,關聯相關的abc文件,給Alembic Stream Player組件上的Time屬性做關鍵幀動畫。


    方法二:在Timeline上點擊Add按鈕,創建一條Alembic Track,然後右鍵點擊軌道本身,點擊Add Alembic Shot創建一個Clip,選中它,接着在Inspector中的Alembic Shot Asset下的Stream Player上關聯Hierarchy中的alembic預製體。


 

7

Presets

從Unity 2018.1版本開始,你可以爲Unity中的大部分對象,組件,資源導入器(Asset importers)和Scriptable Object創建preset。Preset本質上就是針對某個類型對象的配置信息。可以作爲Asset資源來保存,也便於通過版本控制系統進行保存更新。

 

現在我們拿光照組件來進行舉例。

創建新的Preset

點擊右上角的Preset圖標打開Preset窗口。


通過這個窗口你可以點擊“Save current to…”按鈕保存當前組件的配置信息,比如光照的顏色,強度,有無陰影等,或者也可以加載當前已經存在的配置信息。


注意:如果Project窗口有保存過一些Presets,那麼這個窗口只會顯示和當前選中組件相關聯的Preset。比如當前選擇的是Transform組件,那麼即使有光照的Preset存在,也不會顯示。

 

使用Preset

我們可以通過上述打開Select Preset窗口選擇合適的Preset應用到當前的組件上,也可以直接從Project窗口拖動Preset到Hierarchy或者Scene窗口,這會自動在場景中爲你創建一個Preset指定類型的對象。

 

我們也可以直接將Preset拖動到你想應用的對象上,Preset會在此對象上直接創建一個新的相關組件,把Preset中的數值填入這個新的組件。當然,如果此對象已經存在相同的組件,系統會報錯當前對象已經添加過相同的組件。



通過Preset Manager爲不同類型的物體創建默認Preset

點擊頂部菜單Edit > Project Settings > Preset Manager可以打開窗口添加默認Preset。

如下圖所示,當前Project中已經創建了二個光照的Preset,你可以在Preset Manager窗口選擇其中一個光照的Preset作爲默認的光照配置。例如:我們使用PurpleWallSpotLight,那麼以後創建的光照對象的默認值都會使用PurpleWallSpotLight這個Preset裏的數值。


另外,當使用組件的Reset菜單(每個組件右上角小齒輪圖標點擊打開的第一個菜單)時,重置的數值會按照默認的Preset來恢復。


Preset API

開發者也可以使用Preset API來做自己的插件開發,用於保存自定義的組件配置信息。詳情請參看文檔:

https://docs.unity3d.com/2018.1/Documentation/ScriptReference/Presets.Preset.html

 

8

Constraints(約束)

目前支持5種約束。

  • Position Constraint

  • Rotation Constraint

  • Scale Constraint

  • Parent Constraint

  • Aim Constraint

 

讓我們與Maya中的Constraints菜單相比較。



Unity中實現的5種Constraints是DCC軟件中最常用的幾種。在日常開發中可被用於以下二種情況。

  • 直接在Unity中使用,可以爲不同的對象之間建立約束關係。也可以通過Timeline爲指定約束的Weight做關鍵幀動畫,滿足動態地啓用約束或者停止約束的需求。

  • 在DCC軟件中設置好Constraints,通過FBX中的選項導入Unity中。目前支持Maya和MotionBuilder。 

注意:在同一個場景中的約束會被同時被評估執行。由於這個行爲,如果我們做一個鏈式的約束,比如C被B位置約束(Position Constraint),B被A位置約束(Position Constraint),那麼當移動A的時候,有可能C的位置信息要在下一幀纔會更新。

 

9

 FBX Exporter工作流

FBX Exporter工具支持Maya 2017或更高的版本,Maya LT 2017或更高的版本,以及3ds Max 2017以及更高的版本。

點擊Edit > Project Settings > Fbx Export,打開Fbx Export Settings窗口。


在窗口中選擇所需安裝的DCC工具的插件(3ds Max 2018, Maya 2017或者Maya 2018)。



後點擊 Install Unity Integration按鈕,在彈出框中選擇Maya或者Max的安裝路徑根目錄,完成安裝。


注意:如果你在Windows機器上安裝的時候碰到下圖的出錯信息,可以先關閉Unity,然後用管理員權限運行Unity,嘗試再次點擊“Install Unity Integration”按鈕進行安裝。 




10

ProBuilder

ProBuilder加入Unity編輯器大家庭是一個對於整個Unity遊戲開發流程具有非常重大的意義。

 

爲什麼這樣說?因爲遊戲引擎是最終遊戲拼裝成可執行文件的地方,但是之前由於Unity不具備建模功能,所以即使要做一個簡單的原型,也需要用到Maya或者3ds Max這樣龐大的功能齊全的建模動畫軟件。不光是增加了遊戲開發者,特別是遊戲設計師的學習曲線和壓力,也增加遊戲設計本身的複雜度。試想一位遊戲設計師,有非常棒的遊戲設計理念和能力,但是缺乏足夠的建模能力,這時候他只能依賴於美術來爲他製作驗證遊戲設計所需的模型或者動畫,這大大增加了溝通成本和設計速度。

 

有了ProBuilder這樣的工具,因爲它本身就是嵌入於Unity編輯器之中,只要你有基礎的建模知識和Unity操作知識,就可以讓遊戲設計師用很短的學習時間掌握足夠的技能,自己用Unity的工具來驗證遊戲設計和想法。這大大加快了遊戲設計的速度。

 

另外,從遊戲實現和美術素材製作迭代的角度來講,我們完全可以用以下流程來加快迭代速度。

 

  • 在Unity中用ProBuilder製作簡單的模型完成場景的搭建。

  • 通過FBX Exporter導出所製作的場景模型成FBX格式文件交給美術。

  • 美術使用這些導出的場景模型,在指定的位置替換成精細模型,並添加紋理貼圖和動畫等。

  • 在美術製作精細場景的時候,程序可以使用簡單模型搭建的場景繼續開發遊戲玩法。

  • 美術完成精細模型資產導入遊戲完成最終遊戲。

 

上述描述對於真實的遊戲開發場景來講,有好多不完整的地方,但是我想表達的要點是:ProBuilder這樣的工具可以大大加快開發迭代週期,節省時間的同時大幅提高製作速度。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章