【技術筆記】Unity匯入VRM模型時發生材質過大錯誤,如何解決【Unity/Vroid VRM 3D Model】

--

作業示意圖(最近在做的專案)

最近使用VRM模型開發Unity專案時遇到的問題,掙扎了很久爬文找不到解方,詢問chatGPT找到的方法。怕自己忘記,也幫助可能有需要的人,故發此文。

前置適用條件

  1. 錯誤提示通常長這樣:
    RenderTexture.Create failed: RenderTexture too big
    且通常是跳 VRM>Editor>LookAt>VRMLookAtHeadEditor.cs 的第104行有問題。
  2. Unity可能跟我一樣裝了VRM匯入套件:
    https://github.com/vrm-c/UniVRM/releases/tag/v0.127.0

解決方法

在出問題的104行前在加兩行限制大小的語法即可:

public override void OnPreviewGUI(Rect r, GUIStyle background)
{
r.width = Mathf.Min(r.width, 2048); // 新增限制最大寬度
r.height = Mathf.Min(r.height, 2048L); // 新增限制最大高度
m_previewRenderUtility.BeginPreview(r, background); //原104行

若還是有無法解決的人,可能可以嘗試在Unity的Project Setting中找到關於Graphic Setting增加讀取圖面大小的數值限制設定。並且在Vroid中,輸出時儘量減少面數及材質數(如下圖),減少程式的運作負擔。其中Texture Atlas Resolution一率建議設置成2048*2048。

Vroid輸出VRM時的輸出設定,可按照此圖設置

--

--

Millie Wei|央
Millie Wei|央

Written by Millie Wei|央

會寫一點程式的設計師,在名為「設計」的開放世界MMORPG自學修煉中,希望能當個補師,合格的魔法師也可以。

No responses yet