| name | aria-load-vrm |
| description | Use when the user wants to import a VRoidHub character or .vrm file into Aria's desktop avatar — replacing the current built-in / custom preset with their own VRM model. Triggered by natural language containing a URL: "把模型换成这个 https://hub.vroid.com/characters/..." / "用这个 vroid https://..." / "导入这个 vrm <url>" / "换成这个模型 <url>" / "load this vrm <url>" / "import this vroid <url>". Required: the user message MUST contain a URL (https:// or http://). If no URL present, ask the user for the link instead of triggering. Different from aria-pick-character (which switches between 11 built-in anime presets like Yor/Maomao/Anya) — that loads internal preset data, this loads an external VRM file from a URL. |
Aria — 导入 VRoidHub / VRM 模型
用户用自然语言贴 VRoidHub 链接或 .vrm 文件 URL 想换 avatar 时,跑以下流程。
工作流
Step 1: 检测 + 提取 URL
用户消息里必须有 URL (http:// 或 https://). 常见格式:
https://hub.vroid.com/characters/<id> — VRoidHub 角色页面
https://hub.vroid.com/... — VRoidHub 其他变体
https://<host>/<path>.vrm — 直链 .vrm 文件
LLM 任务: 提取第一个 URL, 放到变量 $VRM_URL. 如果用户消息有多个 URL,
默认用最后一个 (用户通常前面是上下文, 最后才贴新链接). 实在不确定就问用户
"你要用哪个? 还是 ?"
如果用户消息没有 URL (例如只说 "导入 vrm" / "换 vrm 模型" 没贴链接):
不要 调脚本。回复 "把 VRoidHub 链接 (或 .vrm 文件 URL) 发我, 比如
https://hub.vroid.com/characters/" 等用户补充。
Step 2: 调脚本
"${CLAUDE_PLUGIN_ROOT}/bin/load-vrm.sh" "$VRM_URL"
成功 (204) → 简短确认: "好,转给 Aria 让她去拉 + 加载。需要点时间,看一下 app 窗口。"
失败 (server 没响应 / 422 等) → 把脚本 stderr 原文转给用户,
建议 /aria-awake 或检查 URL。
Step 3: 告知用户副作用
加载成功后,捏人入口会被禁用 (VRM 模型跟内置的 sliders / 捏人系统不兼容)。
告诉用户:
"VRM 加载完后,捏人入口会暂时关掉 (VRM 模型不能用 slider 调发型/衣服)。
想回到能捏的 avatar,说 '换回 Yor' 或 '挑个 maomao' 这类,我帮你切回内置预设。"
不要每次都长篇大论 — 用户第一次导入说一下足够。之后再 import 不必重复。
跟其他 skill 的关系
| Skill | 区别 |
|---|
| aria-load-vrm (这条) | 从外部 URL 导入 VRM 模型 (用户的 vroid 作品) |
| aria-pick-character | 11 个内置 anime preset 切换 (Yor / Maomao / Anya 等) |
| aria-edit-soul | 改 Aria 的人格/提示词 |
注意事项
- 必须有 URL — skill 不接 "导入我那个 vrm" 这种没具体链接的诉求
- URL 不验证 (server pass-through, 同事 Flutter 端解析 + 拉文件)
- 同事的 Flutter / Unity 端实现 VRM 加载, 我们 (CC + server) 只 broadcast 一下
- 用户跑这个 skill 后 aria.app 那边会自己处理: 拉文件 / Unity 加载 / 禁用捏人 UI
- 失败情形 (拉文件失败 / VRM 不兼容 / 文件损坏) 由 Flutter 端反馈用户, 不通过 CC
- 一次只能 trigger 一个 VRM 加载, 用户连续贴多个 URL 默认用最后一个或问用户