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 个
_LightMinLimit从0.05 → 0.2,_VertexLightStrength全设 0,备份:Assets/Backups/lilToon_FULL_PROJECT_backup_2026-06-08_203005.json - 2026-06-09:全项目 992 个 lilToon,991 个
_LightMinLimit从0.2 → 0.3,跳过Cazalis_Face_Face2on1.mat(已是 0.3,脸部备用材质,场景未使用),备份:Assets/Backups/lilToon_LightMinLimit_backup_0.2to0.3_2026-06-09.json
关键注意事项
- 必须保留完整备份,方便回滚
- 跳过的值不等于目标值的材质,避免覆盖手动修改
_VertexLightStrength建议全员设 0,避免顶点光干扰亮度