跳转至

name: lilToon 全项目批量亮度修复 description: 修复VRChat暗环境模型变黑,批量调整lilToon的_LightMinLimit参数 author: Hermes date: 2026-06-09 tags: [vrchat, unity, liltoon, lighting]


lilToon 全项目批量亮度修复

问题描述

VRChat 暗环境下模型变黑,因为默认 _LightMinLimit 太低(0.05),导致暗部直接被 cutoff,需要批量上调。

批量修改步骤(Unity MCP)

通过 Unity MCP 远程执行 Python 代码,全项目筛选并修改 lilToon 材质:

# 获取所有材质
materials = await unity_mcp.execute_code("""
import UnityEditor
result = []
for guid in UnityEditor.AssetDatabase.FindAssets("t:Material"):
    path = UnityEditor.AssetDatabase.GUIDToAssetPath(guid)
    mat = UnityEditor.AssetDatabase.LoadAssetAtPath(path, UnityEngine.Material)
    if mat.shader.name.Contains("lilToon"):
        result.append((path, mat.GetFloat("_LightMinLimit")))
return result
""")
ontains("lilToon"):
        result.append((path, mat.GetFloat("_LightMinLimit")))
return result
""")# 筛选目标材质,然后批量修改
await unity_mcp.execute_code("""
import UnityEditor
import json
import datetime

backup_path = f"Assets/Backups/lilToon_LightMinLimit_backup_0.2to0.3_{datetime.date.today().isoformat()}.json"
backup = {}
changed = 0
skipped = 0

for guid in UnityEditor.AssetDatabase.FindAssets("t:Material"):
    path = UnityEditor.AssetDatabase.GUIDToAssetPath(guid)
    mat = UnityEditor.AssetDatabase.LoadAssetAtPath(path, UnityEngine.Material)
    if mat.shader.name.Contains("lilToon") and mat.HasProperty("_LightMinLimit"):
        current = mat.GetFloat("_LightMinLimit")
        backup[path] = current
        if abs(current - 0.2) < 0.001:
            mat.SetFloat("_LightMinLimit", 0.3)
            changed += 1
        else:
            skipped += 1

UnityEditor.AssetDatabase.SaveAssets()
with open(backup_path, "w") as f:
    json.dump(backup, f, indent=2)

return {"changed": changed, "skipped": skipped, "backup": backup_path}
""")

历史修改记录

  • 2026-06-08:全项目 996 个 lilToon,919 个 _LightMinLimit0.05 → 0.2_VertexLightStrength 全设 0,备份:Assets/Backups/lilToon_FULL_PROJECT_backup_2026-06-08_203005.json
  • 2026-06-09:全项目 992 个 lilToon,991 个 _LightMinLimit0.2 → 0.3,跳过 Cazalis_Face_Face2on1.mat(已是 0.3,脸部备用材质,场景未使用),备份:Assets/Backups/lilToon_LightMinLimit_backup_0.2to0.3_2026-06-09.json

关键注意事项

  • 必须保留完整备份,方便回滚
  • 跳过的值不等于目标值的材质,避免覆盖手动修改
  • _VertexLightStrength 建议全员设 0,避免顶点光干扰亮度