Parameter Collector
作用
本目录中的脚本用于采集模型的非PBR贴图参数,配合 EZMenu 实现贴图切换功能。
通过运行脚本,您可以快速获取当前模型的贴图设置参数,并配合 EZMenu 的 non-pbr/SetTextureAdv 功能,将采集到的参数粘贴到 SetTextureAdv 的 Parameters 参数框中,从而实现参数的保存。当您通过软件生成脚本后,只需点击对应的菜单项,即可将模型的贴图恢复到保存的参数状态。
使用说明
前置: 为每个 Link Prim 创建 PrimTag
在运行参数采集脚本之前,请确保每个链接的物件(link prim)在其描述(description)字段中写上一个以 ez: 开头,以;结尾的名字,例如 ez:dengxin;。
为什么要这样做?因为脚本会根据这个名字来识别每个链接的物体,并采集其贴图参数。如果没有正确命名,脚本将无法正确识别物体,导致采集失败。
你可以使用脚本文件夹中的 1.AutoPrimTag 脚本来自动为每个链接的物体添加 PrimTag。
参数采集
参数采集脚本在 **2.Parameter Collector (For Non-PBR)**目录中。将这个脚本放入模型中,点击模型,脚本会自动采集模型的贴图参数。采集完成后,脚本会在 Nearby Chat 中输出采集到的参数。
将这些参数复制到 EZMenu 的 SetTextureAdv 的 Parameters 属性框中,即可配置完成。
默认采集的是设置好的以下参数:
- Diffuse
- Normal
- Specular
- Glow
- Full Bright
- Tint Color
如果某个Face不需要采集,可以将其Diffuse设置为Default或者Blank贴图,脚本会自动跳过这个Face的采集。
Parameters 目录
如果您不需要采集全部参数,只需部分参数,可以在 Parameters 目录中找到对应的独立脚本。将这些脚本与 ParameterCollector 一起放入模型中,即可仅采集您需要的参数部分。
3. 使用参数
参数采集后,脚本会在 Nearby Chat 中输出采集到的参数,这些参数会以 ==== Parameters Begin ==== 开头,以 ==== Parameters End ==== 结尾。将这些参数复制到 EZMenu 的 SetTextureAdv 的 Parameters 属性框中,即可配置完成。
你获取到的参数应该类似这样的格式:
==== Parameters Begin ====#t|1|0|<1.0, 1.0, 1.0>|1.0;t|1|1|<1.0, 1.0, 1.0>|1.0;t|1|2|<1.0, 1.0, 1.0>|1.0;t|1|3|<1.0, 1.0, 1.0>|1.0;t|1|4|<1.0, 1.0, 1.0>|1.0;t|1|5|<1.0, 1.0, 1.0>|1.0;t|1|6|<1.0, 1.0, 1.0>|1.0;t|1|7|<1.0, 1.0, 1.0>|1.0#t|2|0|<1.0, 1.0, 1.0>|1.0#t|3|0|<1.0, 1.0, 1.0>|1.0;t|3|1|<1.0, 1.0, 1.0>|1.0;t|3|2|<1.0, 1.0, 1.0>|1.0;t|3|3|<1.0, 1.0, 1.0>|1.0;t|3|5|<1.0, 1.0, 1.0>|1.0#t|4|0|<1.0, 1.0, 1.0>|1.0#t|5|0|<1.0, 1.0, 1.0>|1.0==== Parameters End ====
如果你得到的参数不是我这样的格式,每一行不是以 # 开头,而是每一行都有消息的时间和名字的话,类似这样:
[04:47] YUSR-Hexagonal wooden palace lantern-01: #d|0|0|a7b3c9d2e4f5g6h7i8j9k0l1m2n3o4p|<1.0, 1.0, 0.0>|ZV|0.0;d|0|1|q1w2e3r4t5y6u7i8o9p0a1s2d3f|<1.0, 1.0, 0.0>|ZV|0.0;d|0|2|z9x8c7v6b5n4m3l2k1j0h9g8f7|<1.0, 1.0, 0.0>|ZV|0.0[04:47] YUSR-Hexagonal wooden palace lantern-01: #n|0|0|p0o9i8u7y6t5r4e3w2q1a2s3d4f|<1.0, 1.0, 0.0>|ZV|0.0;n|0|1|g5h6j7k8l9m0n1b2v3c4x5z6a7|<1.0, 1.0, 0.0>|ZV|0.0;n|0|2|NK|<1.0, 1.0, 0.0>|ZV|0.0[04:47] YUSR-Hexagonal wooden palace lantern-01: #s|0|0|m8n9b0v1c2x3z4a5s6d7f8g9h0|<1.0, 1.0, 0.0>|ZV|0.0|<1.0, 1.0, 1.0>|51|0;s|0|1|j1k2l3m4n5b6v7c8x9z0a1s2|<1.0, 1.0, 0.0>|ZV|0.0|<1.0, 1.0, 1.0>|51|0;s|0|2|NK|<1.0, 1.0, 0.0>|ZV|0.0|<1.0, 1.0, 1.0>|51|0[04:47] YUSR-Hexagonal wooden palace lantern-01: #g|0|0|0.0;g|0|1|0.0;g|0|2|0.0[04:47] YUSR-Hexagonal wooden palace lantern-01: #f|0|0|0;f|0|1|0;f|0|2|0[04:47] YUSR-Hexagonal wooden palace lantern-01: #t|0|0|<1.0, 1.0, 1.0>|1.0;t|0|1|<1.0, 1.0, 1.0>|1.0;t|0|2|<1.0, 0.9, 0.8>|0.7那么你需要到FireStorm的设置里面更改一下聊天记录风格(假如你是用FireStorm的话)。

Use V1 style chat headers的勾去掉。
否则采集到的参数会有时间和模型名字,导致无法正确识别。
4. 使用 EZMenu
将 EZMenu 的 SetTextureAdv 节点放入模型中,将 Parameters 属性框中填入采集到的参数即可。

注意事项
- PrimTag优先:务必在运行参数采集脚本前完成 link prim 的 PrimTag 工作。如果采集参数后再修改 PrimTag,可能会导致参数无法正确映射到对应的物件从而无法正常工作。
- 兼容性:脚本设计时已考虑了 description 字段中可能存在的其他信息,不会与其他功能脚本使用description属性冲突。