EreMorph 運作原理
基本操作
EreMorph 的配置如下圖所示。
基本流程
加入 EreMorph Component 時,系統會把 Mesh Filter/Skinned Mesh Renderer 的 Shared Mesh 記錄為 Target Mesh。
當未指派 Morph Data Asset(ScriptableObject)並新增新的 Morph Unit 時,將在下列路徑中自動建立 Morph Data Asset。
Morph Data Asset 會儲存 Target Mesh、Morph Unit/Group 資訊、上次儲存路徑等資料。
- Assets/EreMorph_Assets/[Scene 名稱]/[Hierarchy 物件路徑]/Mesh 名稱.asset
當 EreMorph 已指派 Morph Data Asset,系統會在啟動 Editor、進入 Play Mode 與 Scene Build 時,自動由 Target Mesh 產生 Edit Mesh,指派至 Shared Mesh,並套用 Morph Unit 變形。
為避免已 Export 並指派的 Mesh 被 Edit Mesh 自動覆蓋,只有在以下條件下才會自動指派。
- Shared Mesh 與 Morph Data Asset 的 Target Mesh 相同時
關於 Prefab
自 EreMorph 2.0.0 起,Edit Mesh 不再永久儲存,而是在每次啟動 Editor 時產生。
因此,把含有 EreMorph 與 Edit Mesh 的物件儲存為 Prefab 時,Shared Mesh 可能會消失。
EreMorph 正常運作時,會由 Morph Data Asset 自動恢復資料並指派 Edit Mesh,因此一般不會出現問題。
但若 EreMorph 已卸載,或因異常而無法產生 Edit Mesh,該欄位會維持 None,導致 Mesh 消失。
啟用 Prefab Guard後,儲存 Prefab 時會自動切回 Target Mesh。
卸載時亦可掃描 Project 內的 Prefab,檢查是否仍有使用 EreMorph。
關於 Play Mode 與 Scene Build
若 Project 中已安裝 NDMF,EreMorph 會加入 NDMF Build 階段處理。
本工具會在 NDMF 的 Transforming 階段執行,並安排在 ModularAvatar 之前執行。
若 Project 未安裝 NDMF,EreMorph 會使用內建的 Build Processor 自動處理。
詳情請參閱VRChat World/遊戲 Build 行為。
注意事項
如上所述,本工具會修改 Mesh Filter/Skinned Mesh Renderer 的 Shared Mesh。 換言之,可能會與同樣修改 Shared Mesh、或直接編輯該 Mesh 的 Extension 不相容。
在這種情況下,我們建議在使用其他擴充功能之前 Export Mesh。