VRC-AU v1.0.0

工业级全自动
模型分发系统

摒弃低效的手工查验。本系统基于 Python 与 C# 底层探针技术,从多层嵌套压缩包中直取核心模块,无缝建立沙盒环境并静默推送海量 VRChat 模型资产。

部署指南 查看源码
> python main.py batch --dir "D:\Model" -y
[*] Initializing environment protocols...
[*] Discovered 60 archives. Verifying manifest signatures...
[✓] Virtual VPM CLI instantiated successfully.

=== Pipeline Exec: Airi ===
Injecting memory hooks... SDK modal circumvented.
Stripping read-only Author ID: avtr_e728
Initiating AssetBundle compilation daemon...
[AutoUploader] Build Complete. Data transmitted.

=== Pipeline Exec: Azuki ===
Purging stale internal Scene states...
Importing package: Azuki.unitypackage_

核心系统特性

抛弃表层自动点击脚本的脆弱性。系统直接深入 Unity Memory 层级,重构了自动化发布的工作流闭环。

内存级反射试探

越过 Unity 内部 UI Toolkit 渲染树阻碍。免除前端“版权声明”拦截,系统执行深层反射探针注入,强制唤醒 SDK 内部原生回调逻辑,从根本上解决阻塞问题。

var method = typeof(Clickable).GetMethod(
  "Invoke", BindingFlags.NonPublic);

if (method != null) {
  method.Invoke(btn, args);
  Log("Modal lock bypassed.");
}

智能启发式解包

支持原生下钻至多层嵌套的 .rar/.zip/.7z 压缩包。启发式正则过滤混淆型着色器插件包,精准锁定模型主干执行单向物理提取。

一次性无状态沙盒

基于 vrc-get 创建绝对纯洁的 Unity 工作区。每次运行完毕即彻底抹杀暂存文件,避免多模型混传引发的关键性资产覆盖与冲突。

基底依赖预铺设

在引擎完全挂载之前,系统级前置灌入最新的 `lilToon` 与 `Modular Avatar` 框架,在物理层面灭绝任何由于依赖缺失导致的“粉红材质”灾难。

物理持久层溯源

执行状态绝对透明。上传成功的每一份模型数据都将在 `upload_results.json` 中固化输出 Blueprint ID,确保状态溯源。自动跳过无法解析的异常件。

快速部署

只需三步即可完成本地引擎挂载和初次鉴权,随后开启无感知自动化作业。

1. 克隆与初始化基建

克隆仓库至本地环境,主控脚本将自动巡检系统级环境变量并预载入 vrc-get CLI。

git clone https://github.com/dwgx/VRC-Auto-Uploader.git cd VRC-Auto-Uploader python main.py setup

2. 沙盒首次授权

执行一次点对点单例推送。此步骤需要你在弹出的只读界面中登入凭据。此后授权信物将持久化固化于底层。

python main.py upload --package "D:\Model\Azuki.unitypackage"

3. 并行工业化部署

指向包含海量资产的根目录区,开启最高权限全自动模式,程序将自主过滤、解包与发布。

python main.py batch --dir "D:\Model" -y

工作流编排

端到端的工作流引擎执行生命周期。

勘查与剥离阶段 (Discovery & Extraction)

本地巡游爬虫针对目录网进行深层穿透。无视压缩文件的表层扩展名,抽取出最吻合主模型的唯一 .unitypackage 实体。

容器环境置备 (Provisioning)

系统调度底层的 VPM 命令库构建符合 2022.3 基线的独立开发模版,并严格锁死依赖版本防范意外升维。

越权逻辑注入 (C# Injection)

绕过编辑器常规载入顺序,以文件置换形式在前置 Editor 中写入无阻断回调逻辑与监视探针。

总线发端收尾 (Execution & Cleanup)

强启动引擎。利用管道传输执行令,后台默默汇集 AssetBundle。并在传输达成释放响应封包后,清理战场。

常见技术疑问

为何必须利用原生 GUI 模式而不能使用 Headless Batchmode?

VRChat V3 Builder 的关键句柄 VRCSdkControlPanel.TryGetBuilder() 在底层代码硬性强绑定了 EditorWindow UI 实体的生存期。因此,无论业务怎样抽象,只要 Unity 实例剥离了 GUI 主循环它就永远返回 Null。本系统巧妙结合了前端启动和宏屏蔽来绕过此锁。

模型兼容性覆盖到什么程度?

原生支持打包标准 VRC Avatar 3.0 的一切资产规范。系统已默认规避了市面上最容易污染环境的第三方杂糅件,并通过动态下放 lilToon 防止着色器空指。遇到完全无 AvatarDescriptor 的空壳文件将精准截停,继续下一任务。