This commit is contained in:
2026-10-03 05:40:26 +08:00
parent faf799837f
commit 7bcbcc69ea
7 changed files with 96 additions and 44 deletions
+16
View File
@@ -296,6 +296,22 @@ FaceRig 加同名 `@export`(默认 `true`),并把 uniform 推给 shader。
`test_run` 32/32。
### 改成「shader 顶部调参」而不是 UI 滑块
用户先问能不能在角色选择界面加滑块移动脸部,我给完方案后他决定不做界面,改成在 `face_paint.gdshader`
顶部放几个简单明了的设置。于是把 `face_uv_min` / `face_uv_size` 换成更直观的 **`face_center`(中心)+ `face_size`(宽高)**,
和 `face_flip_y` 一起集中到 shader 顶部的「调表情就改这一段」,每行都写了「往下挪就减小 .y」这类人话注释。
关键点:**FaceRig 必须停止传这三个 uniform**,否则脚本里的值会把 shader 里调好的值盖掉(等于白改)。
删掉了 `face_uv_min` / `face_uv_size` / `face_uv_flip_y` 三个 @export 和三行 set_shader_parameter,
并在 `test_player_has_face_rig_wired` 里加了一条断言:`face_rig.gd` 源码里不许再出现
`set_shader_parameter("face_center"/"face_size"/"face_flip_y"`。
测试改成从 shader 源码里解析 `face_center` / `face_size`(`_shader_vec2()` 辅助函数),
再判定「中心 ± 半径」是否落在头部孤岛内 —— 这样用户随手调值不会误报,只有溢出孤岛才红。
默认值就是原来的覆盖范围(中心 0.8455/0.839,大小 0.301/0.314),画面不变。
`test_run` 32/32,角色选择场景实机跑无 shader/脚本报错。
## 执行用户提供的 export_split.py 命令
用户给出 Blender 5.1 与 `_rig_tools/export_split.py` 路径。我检查到脚本读取 `bpy.data.objects["MouseRig"]`,因此命令原样缺少 blend 源文件;实际运行时补传已有主工程 `mouse.blend`,其余仍是指定脚本。