原文地址:AssetGraph - 好用的AssetBundle打包工具
作者:Unity Japan
翻譯:Kelvin Lo
AssetGraph是一個用來針對AssetBundle打包的可視化工具。它的目的是用來建立一個架構在自訂規則下,閱讀容易的AssetBundle管理表。
<此处有视频,在youtube上,自行查阅吧>
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:
這裡可以找到完整的範例。
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上去拉下來,如果對Github操作不熟,也可以下載我們提供的安裝包(不再更新)。
Download Link:
https://github.com/unity3d-jp/AssetGraph
最後只要按一下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上去拉下來,如果對Github操作不熟,也可以下載我們提供的安裝包(不再更新)。
Download Link:
https://github.com/unity3d-jp/AssetGraph