对抗模型偷取
OSC
2022.3.06: 新版VRChat提供了OSC接口, 可以靠外部数据来控制模型运动.
也就是说, 模型本身可以没有控制表情等的脚本, 全都放到外部来运行, 这样即使模型本身被盗, 拿到的也是没有表情/动作等的不完全体, 无法直接进行hotswap, 解包的价值也有限.
缩略图
现在VRChat有三伙人有自动偷皮机器人, 分别是Pxxxxx, Axxx和Rxxxxx. 目前版本机器人能无声无提示进入世界, 加载出所有人的模型后进入其他世界, 很恐怖.
机器人能靠世界id进入所有公开和invite+地图, 即使没有好友也可以. 只有invite only能挡住机器人, 也可以看到vrc现在防护做得有多烂.
也就是说, 绝大部分人在网上看到你被偷的模型, 是需要依靠缩略图和缩略模型的;
设置好开关让默认所有东西都隐藏 这样缩略3d就是一片空白; 同时设置不相关的缩略图 (有插件可以自定义, 或者干脆把摄像头对着别的模型) 增加成功几率.
选择性使用模型
只在私人(invite only)世界使用重要私人模型, 降低被人盯上的几率.
这样能防住手动偷模型的人, 以及大部分机器人.
如果你想用魔法对抗魔法, 也有能检测Pxxxxx bot 和 Axxx bot并自动踢出世界的mod 但这也是在修改客户端, 风险自行考量.
Shader
2022.3.06
目前的解包工具都没法无损还原shader, 但是脚本和动作等都能完全复制. 在一般的解包修复流程里, 也是先找到原包用的是什么Shader, 然后去下载对应的shader替换, 而不是尝试修复原包里的shader.
如果用的是已知的公开shader (比如unitychanToonShader, poiyomi, Arktoon之类), shader的属性 (叫做shader keyword)是能被读出来的; 别人替换一个好的shader, 复制你的shader设置就可以一比一还原.
相反, 在没有shader源文件的情况下, 想复制出效果就很难了.
因此可以用一些可编程的自定义shader+遮罩来替代matcap/normal, 这样在被解包的时候写在shader里的效果都很难被复制.
留下不可见记号
作为创作者, 可以在shader/皮肤内侧/身体里面等地方添加一般看不到的文字, 比如说专供xxx使用等, 同时配合GT AvaCrypt防止轻易被去除掉.
可以只有在穿模的时候才能看到, 这样万一被偷方便及时发现, 也降低被偷窃者使用的概率.
GT-AntiRip
Github有一个项目叫做GT-AntiRip, 支持Avatar3.0系统:
实现思路是在发布时把骨骼转变成难以编辑的模式, 同时把一部分模型的内容放在shader里渲染. 不使用加密密钥无法还原shader, 而解包获得的模型会是支离破碎的样子.
缺点是在公开世界时别人必须打开了shader才能看到正常的你的模型; 适用于trusted user以上, 或者私人定制比较珍贵的模型.
备份Unity项目, 然后在模型里添加Avacrypt:
剩下的步骤比较多, 建议去看github readme.
目前这个项目还在alpha阶段, 也不能完全防住偷取 但也好过完全没有.