2016年3月22日 星期二

AssetGraph - 好用的AssetBundle打包工具

作者:Unity Japan
翻譯:Kelvin Lo


AssetGraph是一個用來針對AssetBundle打包的可視化工具。它的目的是用來建立一個架構在自訂規則下,閱讀容易的AssetBundle管理表。


Usage

1.Add Nodes

從Window裡可以呼叫出AssetGraph的視窗,在空白處按右鍵會列出一個你能新增的節點清單,你可以依照需求建立這些節點。建立一個Loader來當作根,它能蒐集Asset清單並帶到下一個節點,以供未來打包AssetBundle當作參考。

Loader節點裡面可以針對不同平台來做分類,代表你可以針對不同發佈平台來打包。指定一個存在的目錄到Load Path來讓系統知道你的Asset要從哪裡載入。

2.Connect Them

當你建立更多的節點後,只要點一下連結點並拖出一條線,你就可以連結他們彼此。點擊這些線AssetGraph會顯示哪些Asset會通過這些管線。


3.Configure Settings

選擇任何種類的節點,你就可以在Inspector視窗看到它的設定選項,透過這些選項你可以自訂你的打包規則,例如,Filter節點可以用來設定過濾規則,Importer節點可以設定不同的匯入方法。


4.Build It!

最後只要按一下AssetGraph視窗上方的Build按鈕就可以打包了。這工具讓美術或是企劃用更直覺的方式來設計包裝。



Why Rule Based?

因為透過規則化的AssetGraph 來處理 AssetBundle 打包流程,程式設計師和美術與企劃就能用更相同的語言來安全的打包,一旦設定好之後當有新的Asset放入目錄,AssetGraph就會自動的將他們納入需要的打包規則中。


Nodes tips

AssetGraph提供幾種不同功能的節點類型,接下來我們會一一介紹。

Loader

Loader會搜尋要打包的Asset並納入它們, 預設的目錄會在專案的根目錄(全專案搜尋),你也可以指定一個存在的目錄給它。
IN: 沒有
OUT: 指定目錄下所有的Asset清單



Filter

Filter會透過Asset的名字和關鍵字配對來過濾前一個節點傳過來的Asset,你可以在同一個Filter建立複數的規則來達成多重過濾。
IN:Asset清單
OUT:過濾配對之後的Asset清單 




Importer

Importer用來改寫由前一個節點傳來Asset的匯入設定(import setting) (註:原Asset設定還是存在的)
IN: Asset清單
OUT: 修改過importer setting後的Asset清單



Grouping

Group 用來將不同的資源清單透過關鍵字指定群組,例如:將經過分類並調整過Import Setting之後的Asset清單群組起來。Group用在打包AssetBundle非常有用,也允許在keyword欄位裡面輸入*號當作是通用字。(例如:Asset*)
IN: Asset清單
OUT: 群組化的Asset清單





Prefabricator

Prefabricator可以讓你在遊戲內依據你需要的格式產生Prefab. 你可以在透過修改AssetGraph.PrefabricatorBase腳本來製作你自己的Prefab。
IN: 群組化的Asset清單
OUT: 產生Prefab之後的群組Asset清單



Prefabricator code example:

public class CreateCharaPrefab : AssetGraph.PrefabricatorBase {
    public override void In (string groupKey, List<AssetGraph.AssetInfo> source, string recommendedPrefabOutputDir) {
        /*
            create character's prefab.

            1.texture & material -> set texture to the material of model.
            2.model -> instantiate, then set material to model.
            3.new prefab -> prefabricate model to new prefab.
            4.delete model instance from hierarchy.
        */

        ~~~ DO SOMETHING ~~~

        // export prefab data.
        PrefabUtility.ReplacePrefab(modelObj, prefabFile);

    }
}

這裡可以找到完整的範例。
Bundlizer

Bundlizer 用來建立指定好名稱後的 "bundle". 如果有用 "*" 的檔名,會同步採用群組的 “*” 設定。
IN: 群組後的Asset清單
OUT: Bundle清單 




BundleBuilder

BundleBuilder會處理所有傳入的規則後建立 AssetBundle 檔案,透過Bundlizer和不同的BundleBuilder,你可以同時建立不同的設定的AssetBundle (例如:壓縮或沒壓縮的)
IN: Bundle清單
OUT: 產生的AssetBundle檔案清單



Exporter

Exporter將上述完成步驟的內容輸出存到目錄,你也可以改變匯出的目錄位置。
IN: Asset清單或AssetBundle檔案清單


雖然AssetGraph是日本Unity所開發,但它目前只是一個插件,也無法再Asset Store上找到,所以你必須要到Github上去下載。https://github.com/unity3d-jp/AssetGraph

License
MIT

2016年3月16日 星期三

Unity 5.4公開測試,免費用戶也能下載使用!

作者:ALEX LIAN  原文連結

為開發者提供可靠穩定的產品是我們一貫的使命,現在我們想提供Unity 5.4 beta版本給所有的開發者測試,包含了Unity Personal Edition版本的用戶。我們非常希望大家下載並試試Unity 5.4中圖形和性能帶來的更新。我們也非常重視用戶的回饋,希望你能夠多給我們意見,你可以從Unity裡的Unity Bug Reporter來送出你發現的Bug。

為什麼Unity 5.4要發佈公開測試?



我們想瞭解你們對正式版本的期望,所以為了在正式版之前搜集更多實際建議,我們決定將Unity 5.4作為beta版發佈。
同時我們也發佈了 Unity 5.3.4。我們花了許多努力持續增強與穩定的版本,接下來的半年中,還會繼續發佈額外的小版本以及補丁進一步改進Unity 5.3.x的穩定性。

這篇文章(英文)可以瞭解我們為改進Unity發佈品質所做的努力,或繼續閱讀瞭解Unity 5.4 beta中的全部新功能。


加強視覺特效、更好的性能、更緊密的Unity IAP整合以及一個針對VR渲染的重大升級



在Unity 5.4 beta中,視覺特效以及編輯器內的美術流程有了顯著的提升。我們還對VR渲染管線做了進一步的優化,以便開發者能在主流VR平臺上進行輕鬆發佈。

我們的跨平臺IAP內購服務,只需透過它就可以對應目前市面上多個商店的支援,現在Unity IAP也與編輯器更加緊密的結合,這將會為提高遊戲收益表現提供更好的體驗。

這個版本還幫WebGL優化了更快的發佈時間,支援Retina的螢幕,以及很多其他功能……

下載Unity 5.4 beta


更多自訂粒子系統與更棒的光照



Unity 5.4 beta提供了新的粒子大小控制,允許開發者分開控制它們的長寬及網格粒子的3D表現形式。


我們還發佈了一個新的觸發器模組,可讓開發者在一個碰撞器中修改粒子屬性。舉個例子:你可以自訂一個callback,在粒子碰到碰撞器時銷毀,而且可以當下修改所有的粒子屬性。看看這個效果。


最後,較大的粒子特效現在可以和新的Light Probe Proxy Volumes結合。光照探測器代理(LPPV)是一種為了無法使用烘焙光照貼圖的大型動態物體提供烘焙光照資訊的新方法。

LPPV會在一個區域內產生一個3D光照探測網格,並允許指定網格解析度。這樣使用者就可以對探測器照明的物體加一個環境漸變。LPPV不僅對粒子有用,你還可以將其用於任何的大型動態物體。


美術:將材質導入Unity專案及所得



如果你正在使用像是Substance Painter, Quixel DDo Painter, Marmoset Toolbag 2, 或者Knald這樣的工業級美術工具,你會發現現在從這些工具導入的材質網格將會繼續保持原來漂亮的模樣,只需將它們直接拖到你的遊戲專案中即可。




為了做到這一點,我們在Unity 5.3中將標準著色模型從傳統法線Phong改為新的GGX。在Unity 5.4 beta中,我們還徹底重制了立方體貼圖算法,以獲得執行時間更短的精確和無噪效果。

新的電影特效



3個月前,我們在Asset Store發佈了電影特效(Cinematic Image Effects)工具,包含螢幕空間光線追蹤反射(SSRR)、色調映射、調色、抗鋸齒(SMAA)、以及景深。全部可以免費下載。






正如你所見,我們在《Adam and The Labs》的Demo中充分利用了這些功能。



令我們驕傲的是,這些圖像效果的程式碼完全開源。你可以在BitBucket上找到它,歡迎你協助繼續完整它。


支援更多VR平臺以及更佳效能



我們在最近的Vision VR會議聲明中公佈了對SteamVR的支援,以及許多效能方面的重大改進。這些都包含在Unity 5.4 beta中。

支援更多VR平臺



在這個最新版的Unity中,你只需用到單個API且無需針對不同設備做太多調整就可以將專案編譯到SteamVR、Oculus Rift、Gear VR以及Playstation VR設備。為了達成這個目標,我們重建了VR子系統,去掉不同VR設備間重複功能的程式。

更好的VR表現



Unity 5.4開放針對VR新的渲染方式Double Wide Rendering,VR開發者現在能在Windows及PS4平臺上同時將一個圖像同時渲染輸出至兩個視窗。我們還導入了Graphics Jobs,能將工作從主執行緒遷移到工作執行緒而獲得極大的渲染效能提升。


要瞭解如何開始開發VR,這些與Unity 5.3同時發佈的實用教程以及相關免費資源是個不錯的開始。

更緊密的IAP內購整合



我們不斷拓展多平臺的支援,現在Unity IAP以及Analytics已支援最新的tvOS應用商店。你可以在一個測試環境中測試你的專案,並即時通過Unity Analytics主畫面看到收入報告以及驗證內容。

多執行緒渲染表現更佳



Unity 5.4 beta對多執行緒渲染的支援更上一層樓。可根據專案以及目標平臺的特點,大幅提高你的FPS。

我們在Unity 5.3中將粒子、圖片、眩光、光暈、線條以及拖尾特效從主執行緒移出,在此之前我們引入了平行命令列表產成特校。不再在同一個CPU執行腳本、物理以及其他正在使用的系統上生成一個圖形命令清單,而是將工作分配到多個CPU上,消除一些潛在問題,並使許多複雜場景運行更流暢。

使用GPU產生實體減少Draw Call



更少的Draw Call代表著更好的效能,而且有了正在推出的GPU Instancing技術,只需很少的Draw Call就可以大量的渲染相同材質的模型。GPU Instancing目前支援DX 11和Shader Model 4.0的Windows PC版本,或是OpenGL 4.1+的OS X。我們正在製作支援更多的平臺,請持續關注。


場景包含3種類型的岩石。每塊岩石都賦以不同的灰度顏色。第一個場景使用了一個新的帶有產生實體的標準著色器,第二個場景使用的是內建標準著色器。資料獲取於 Unity 5.4 beta 8 ,Windows /D3D11,Intel Core i7-4980HQ@2.8GHz CPU , nVidia GeForce GT 750M GPU

針對平台增強基本圖型功能,紋理陣列、電腦著色器 以及更多



如果你是個美術程式設計師,2D Texture Arrays可以幫你優化大型場景以及渲染。這功能會讓GPU將相同尺寸格式的2D貼圖視為單個物體。

這個版本我們還改進一系列底層圖形結構。Compute Shader之間現在可以透過DispatchIndirect連結到一起,暫存器也優化,除錯資訊可用於計算著色器的錯誤。使用CopyTexture函數可進行快速貼圖複製,此外還支援使用統一的陣列當作著色器參數。在Metal,OpenGL以及D3D9平臺上,我們實現了Alpha-to-Coverage,在iOS上,我們現在支援使用Metal圖形時進行多執行緒渲染。最後,可通過一個新的ImageEffectAllowedInSceneView特性將圖像效果應用到場景視圖鏡頭上。

我們認為這些小改進綜合起來將對改進渲染管線起到很大幫助。


平臺相關更新及改進:WebGL、PS3,以及WebPlayer更快的WebGL開發版生成速度


如字面意思一樣。WebGL平台啟用“Use pre-built engine”選項來發佈遊戲。你會發現開發版本的發佈速度加快了許多,這大大提高了開發與測試效率。

告別WebPlayer、PS3發佈,以及iOS6支援


之前曾公告過,由於瀏覽器廠商都在推動無外掛Web,Unity 5.3是最後一個支持Web Player發佈的Unity版本。當然,如果你還是需要的話,仍然可以用Unity 5.3.4或早期Unity版本來發佈Web Player遊戲。

我們不斷對WebGL發佈選項的效能改進,現在你完全可以將它做為製作Web遊戲的可靠選擇。Unity將保持對WebGL平臺的持續大力投入,並與廠商一起合作做出更多的改進。

由於iPhone使用者更新至最新版本iOS的速度很快,因此我們在此次Unity版本的發佈清單中移除了iOS 6。我們還含淚揮別了PS3支援,以使我們能更專注的在PS4平台優化上。

Retina支援及可縮放遊戲視圖



如果你正在一台擁有Retina螢幕的Mac上開發,Unity編輯器會看起來非常漂亮。針對Windows用戶的HiDPI也在進行中了。

此外,如果你正在一台高解析度的螢幕上開發專案,現在你可以在編輯器的遊戲視圖中縮放整個螢幕。OS X與Windows版本的編輯器都支援此功能。



享用Unity 5.4 beta



我們鼓勵用Unity 5.4 beta打開你的專案(確保先備份你的專案),並從新版本的眾多改進中獲益。

隨著Unity的普及率飆升,Unity所做的應用多樣性也在不斷增加,請原諒我們的QA過程可能會出現的疏失。我們對於你的反饋表示由衷感謝,回報Bug可以從Help功能表中的Unity Bug Reporter來回報。

關於我自己

我的相片
Unity台灣官方部落格 請上Facebook搜尋Unity Taiwan取得Unity中文的最新資訊