blender-toolkit
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinese⚠️ Installation Check (READ THIS FIRST)
⚠️ 安装检查(请先阅读)
IMPORTANT: Before using this skill, check Blender addon installation status.
Config location: Check the shared config file for your installation status:
~/.claude/plugins/marketplaces/dev-gom-plugins/blender-config.jsonAlways run scripts with first to see usage. DO NOT read the source until you try running the script first and find that a customized solution is abslutely necessary. These scripts can be very large and thus pollute your context window. They exist to be called directly as black-box scripts rather than ingested into your context window.
--helpRequired actions based on config:
重要提示:使用此工具前,请检查Blender插件的安装状态。
配置文件位置:查看共享配置文件确认安装状态:
~/.claude/plugins/marketplaces/dev-gom-plugins/blender-config.json始终先使用运行脚本查看使用方法。在尝试运行脚本并确定确实需要自定义解决方案之前,请勿阅读源代码。这些脚本可能非常庞大,会占用您的上下文窗口。它们设计为直接作为黑盒脚本调用,而非导入到上下文窗口中。
--help根据配置执行的必要操作:
1. If Blender Not Detected (blenderExecutable: null
)
blenderExecutable: null1. 未检测到Blender(blenderExecutable: null
)
blenderExecutable: nullBlender was not found during initialization. Please:
- Install Blender 4.0+ from https://www.blender.org
- Restart Claude Code session to trigger auto-detection
- Check logs:
.blender-toolkit/init-log.txt
初始化过程中未找到Blender,请执行以下步骤:
- 从https://www.blender.org安装Blender 4.0+
- 重启Claude Code会话以触发自动检测
- 查看日志:
.blender-toolkit/init-log.txt
2. If Multiple Versions Detected (detectedBlenderVersions
array)
detectedBlenderVersions2. 检测到多个版本(detectedBlenderVersions
数组)
detectedBlenderVersionsThe system detected multiple Blender installations. If you want to use a different version:
- Open config file (path shown above)
- Edit field to your preferred version path
blenderExecutable - Restart Claude Code session
Example:
json
{
"detectedBlenderVersions": [
{"version": "4.2.0", "path": "C:\\Program Files\\Blender Foundation\\Blender 4.2\\blender.exe"},
{"version": "4.1.0", "path": "C:\\Program Files\\Blender Foundation\\Blender 4.1\\blender.exe"}
],
"blenderExecutable": "C:\\Program Files\\Blender Foundation\\Blender 4.2\\blender.exe"
}系统检测到多个Blender安装。如果您想使用其他版本:
- 打开配置文件(路径如上所示)
- 编辑字段,设置为您偏好的版本路径
blenderExecutable - 重启Claude Code会话
示例:
json
{
"detectedBlenderVersions": [
{"version": "4.2.0", "path": "C:\\Program Files\\Blender Foundation\\Blender 4.2\\blender.exe"},
{"version": "4.1.0", "path": "C:\\Program Files\\Blender Foundation\\Blender 4.1\\blender.exe"}
],
"blenderExecutable": "C:\\Program Files\\Blender Foundation\\Blender 4.2\\blender.exe"
}3. If Addon Not Installed (addonInstalled: false
)
addonInstalled: false3. 插件未安装(addonInstalled: false
)
addonInstalled: falseThe addon needs to be installed manually. Follow these steps:
Manual Installation Steps:
Method 1: Install from ZIP (Recommended)
bash
undefined需要手动安装插件,请遵循以下步骤:
手动安装步骤:
方法1:从ZIP安装(推荐)
bash
undefined1. Open Blender 4.0+
1. 打开Blender 4.0+
2. Edit > Preferences > Add-ons > Install
2. 编辑 > 偏好设置 > 插件 > 安装
3. Select: .blender-toolkit/blender-toolkit-addon-v*.zip
3. 选择:.blender-toolkit/blender-toolkit-addon-v*.zip
4. Enable "Blender Toolkit WebSocket Server"
4. 启用“Blender Toolkit WebSocket Server”
**Method 2: Install from Source**
```bash
**方法2:从源码安装**
```bash1. Open Blender 4.0+
1. 打开Blender 4.0+
2. Edit > Preferences > Add-ons > Install
2. 编辑 > 偏好设置 > 插件 > 安装
3. Select: plugins/blender-toolkit/skills/addon/init.py
3. 选择:plugins/blender-toolkit/skills/addon/init.py
4. Enable "Blender Toolkit WebSocket Server"
4. 启用“Blender Toolkit WebSocket Server”
**Start WebSocket Server**:
1. Open 3D View → Sidebar (press N key)
2. Find "Blender Toolkit" tab
3. Click "Start Server" button
4. Default port: 9400 (auto-assigned per project)
**Update Config**:
- Open config file (path shown above)
- Set `"addonInstalled": true`
- Save file
**Verify Connection**:
- Try a simple command: `node .blender-toolkit/bt.js list-objects`
- If successful, you'll see a list of objects in your scene
**Troubleshooting**:
- If Blender path is incorrect: Update `blenderExecutable` in config
- If port is in use: System will auto-assign next available port (9401-9500)
- Check logs: `.blender-toolkit/init-log.txt`
- Check Blender console for error messages
**启动WebSocket服务器**:
1. 打开3D视图 → 侧边栏(按N键)
2. 找到“Blender Toolkit”标签页
3. 点击“Start Server”按钮
4. 默认端口:9400(每个项目自动分配)
**更新配置**:
- 打开配置文件(路径如上所示)
- 设置`"addonInstalled": true`
- 保存文件
**验证连接**:
- 尝试简单命令:`node .blender-toolkit/bt.js list-objects`
- 如果成功,您将看到场景中的对象列表
**故障排除**:
- 如果Blender路径不正确:更新配置中的`blenderExecutable`
- 如果端口被占用:系统将自动分配下一个可用端口(9401-9500)
- 查看日志:`.blender-toolkit/init-log.txt`
- 查看Blender控制台的错误消息4. If Everything is Ready (addonInstalled: true
)
addonInstalled: true4. 一切准备就绪(addonInstalled: true
)
addonInstalled: true✅ You're all set! You can use all Blender Toolkit commands.
✅ 您已准备就绪!可以使用所有Blender Toolkit命令。
blender-toolkit
blender-toolkit
Automate Blender workflows with WebSocket-based real-time control. Create geometry, manage materials and modifiers, and retarget Mixamo animations to custom rigs with intelligent bone mapping.
通过基于WebSocket的实时控制自动化Blender工作流。创建几何图形、管理材质与修改器,并通过智能骨骼映射将Mixamo动画重定向到自定义绑定。
Purpose
用途
Provide comprehensive Blender automation through:
- 🎨 Geometry Creation - Primitives (cube, sphere, cylinder, plane, cone, torus)
- 🎭 Material Management - Create, assign, and configure materials
- 🔧 Modifier Control - Add, apply, and manage modifiers
- 🎬 Animation Retargeting - Mixamo to custom rigs with automatic bone mapping
通过以下功能提供全面的Blender自动化:
- 🎨 几何创建 - 基本体(立方体、球体、圆柱体、平面、圆锥体、圆环)
- 🎭 材质管理 - 创建、分配和配置材质
- 🔧 修改器控制 - 添加、应用和管理修改器
- 🎬 动画重定向 - 将Mixamo动画通过自动骨骼映射应用到自定义绑定
When to Use
使用场景
Use this skill when:
- Creating 3D Geometry: User wants to create primitives or manipulate meshes
- Managing Materials: User needs to create or assign materials with PBR properties
- Adding Modifiers: User wants subdivision, mirror, array, or other modifiers
- Retargeting Animations: User needs to apply Mixamo animations to custom characters
- Batch Operations: User wants to process multiple objects or animations
Note: Mixamo does not provide an official API. Users must manually download FBX files from Mixamo.com.
在以下场景中使用此工具:
- 创建3D几何图形:用户需要创建基本体或操作网格
- 管理材质:用户需要创建或分配具有PBR属性的材质
- 添加修改器:用户需要细分、镜像、阵列或其他修改器
- 重定向动画:用户需要将Mixamo动画应用到自定义角色
- 批量操作:用户需要处理多个对象或动画
注意:Mixamo不提供官方API。用户必须手动从Mixamo.com下载FBX文件。
Quick Start
快速开始
Prerequisites Checklist
前置条件检查清单
Before starting, ensure:
- Blender 4.0+ installed
- Blender Toolkit addon installed and enabled
- WebSocket server started in Blender (default port: 9400)
- Character rig loaded (for animation retargeting)
Install Addon:
1. Open Blender → Edit → Preferences → Add-ons
2. Click "Install" → Select plugins/blender-toolkit/skills/addon/__init__.py
3. Enable "Blender Toolkit WebSocket Server"
4. Start server: View3D → Sidebar (N) → "Blender Toolkit" → "Start Server"开始前,请确保:
- 已安装Blender 4.0+
- 已安装并启用Blender Toolkit插件
- 已在Blender中启动WebSocket服务器(默认端口:9400)
- 已加载角色绑定(用于动画重定向)
安装插件:
1. 打开Blender → 编辑 → 偏好设置 → 插件
2. 点击“安装” → 选择plugins/blender-toolkit/skills/addon/__init__.py
3. 启用“Blender Toolkit WebSocket Server”
4. 启动服务器:3D视图 → 侧边栏(N) → “Blender Toolkit” → “Start Server”Common Operations
常见操作
Create Geometry:
bash
undefined创建几何图形:
bash
undefinedCreate cube at origin
在原点创建立方体
blender-toolkit create-cube --size 2.0
blender-toolkit create-cube --size 2.0
Create sphere with custom settings
使用自定义设置创建球体
blender-toolkit create-sphere --radius 1.5 --segments 64
blender-toolkit create-sphere --radius 1.5 --segments 64
Subdivide mesh
细分网格
blender-toolkit subdivide --name "Cube" --cuts 2
**Manage Objects:**
```bashblender-toolkit subdivide --name "Cube" --cuts 2
**管理对象**:
```bashList all objects
列出所有对象
blender-toolkit list-objects
blender-toolkit list-objects
Transform object
变换对象
blender-toolkit transform --name "Cube" --loc-x 5 --loc-y 0 --scale-x 2
blender-toolkit transform --name "Cube" --loc-x 5 --loc-y 0 --scale-x 2
Duplicate object
复制对象
blender-toolkit duplicate --name "Cube" --new-name "Cube.001" --x 3
**Materials:**
```bashblender-toolkit duplicate --name "Cube" --new-name "Cube.001" --x 3
**材质操作**:
```bashCreate material
创建材质
blender-toolkit material create --name "RedMaterial"
blender-toolkit material create --name "RedMaterial"
Assign to object
分配给对象
blender-toolkit material assign --object "Cube" --material "RedMaterial"
blender-toolkit material assign --object "Cube" --material "RedMaterial"
Set color
设置颜色
blender-toolkit material set-color --material "RedMaterial" --r 1.0 --g 0.0 --b 0.0
**Retarget Animation:**
```bashblender-toolkit material set-color --material "RedMaterial" --r 1.0 --g 0.0 --b 0.0
**动画重定向**:
```bashBasic retargeting with UI confirmation
带UI确认的基本重定向
blender-toolkit retarget
--target "HeroRig"
--file "./Walking.fbx"
--name "Walking"
--target "HeroRig"
--file "./Walking.fbx"
--name "Walking"
blender-toolkit retarget
--target "HeroRig"
--file "./Walking.fbx"
--name "Walking"
--target "HeroRig"
--file "./Walking.fbx"
--name "Walking"
Rigify preset (skip confirmation)
Rigify预设(跳过确认)
blender-toolkit retarget
--target "MyRigifyCharacter"
--file "./Walking.fbx"
--mapping mixamo_to_rigify
--skip-confirmation
--target "MyRigifyCharacter"
--file "./Walking.fbx"
--mapping mixamo_to_rigify
--skip-confirmation
blender-toolkit retarget
--target "MyRigifyCharacter"
--file "./Walking.fbx"
--mapping mixamo_to_rigify
--skip-confirmation
--target "MyRigifyCharacter"
--file "./Walking.fbx"
--mapping mixamo_to_rigify
--skip-confirmation
Show Mixamo download instructions
显示Mixamo下载说明
blender-toolkit mixamo-help Walking
undefinedblender-toolkit mixamo-help Walking
undefinedArchitecture
架构
WebSocket-Based Design:
┌──────────────┐ ┌─────────────┐ WebSocket ┌──────────────┐
│ Claude Code │ IPC │ TypeScript │◄──────────────►│ Blender │
│ (Skill) │────────►│ Client │ Port 9400+ │ (Addon) │
└──────────────┘ └─────────────┘ └──────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌────────────────────┐
│ - Geometry │ │ - WebSocket │
│ - Material │ │ Server │
│ - Modifier │ │ - Command │
│ - Retargeting │ │ Handlers │
│ - Bone Mapping │ │ - Bone Mapping UI │
└─────────────────┘ └────────────────────┘Key Components:
- WebSocket Server: Python addon in Blender (ports 9400-9500)
- TypeScript Client: Sends commands via JSON-RPC
- Bone Mapping System: Fuzzy matching with UI confirmation
- Two-Phase Workflow: Generate → Review → Apply
基于WebSocket的设计:
┌──────────────┐ ┌─────────────┐ WebSocket ┌──────────────┐
│ Claude Code │ IPC │ TypeScript │◄──────────────►│ Blender │
│ (工具) │────────►│ 客户端 │ 端口9400+ │ (插件) │
└──────────────┘ └─────────────┘ └──────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌────────────────────┐
│ - 几何创建 │ │ - WebSocket │
│ - 材质管理 │ │ 服务器 │
│ - 修改器控制 │ │ - 命令处理 │
│ - 动画重定向 │ │ - 骨骼映射UI │
│ - 骨骼映射 │ │ │
└─────────────────┘ └────────────────────┘核心组件:
- WebSocket服务器:Blender中的Python插件(端口9400-9500)
- TypeScript客户端:通过JSON-RPC发送命令
- 骨骼映射系统:带UI确认的模糊匹配
- 两阶段工作流:生成 → 审核 → 应用
Core Workflows
核心工作流
1. Geometry Creation Workflow
1. 几何创建工作流
Extract Requirements:
- Primitive type (cube, sphere, cylinder, etc.)
- Position (x, y, z coordinates)
- Size parameters (radius, depth, segments)
- Optional object name
Execute:
typescript
import { BlenderClient } from 'blender-toolkit';
const client = new BlenderClient();
await client.connect(9400);
// Create sphere
const result = await client.sendCommand('Geometry.createSphere', {
location: [0, 0, 2],
radius: 1.5,
segments: 64,
name: 'MySphere'
});
console.log(`✅ Created ${result.name} with ${result.vertices} vertices`);提取需求:
- 基本体类型(立方体、球体、圆柱体等)
- 位置(x、y、z坐标)
- 尺寸参数(半径、深度、分段数)
- 可选对象名称
执行代码:
typescript
import { BlenderClient } from 'blender-toolkit';
const client = new BlenderClient();
await client.connect(9400);
// 创建球体
const result = await client.sendCommand('Geometry.createSphere', {
location: [0, 0, 2],
radius: 1.5,
segments: 64,
name: 'MySphere'
});
console.log(`✅ 创建了 ${result.name},包含 ${result.vertices} 个顶点`);2. Material Assignment Workflow
2. 材质分配工作流
Steps:
- Create material
- Assign to object
- Configure properties (color, metallic, roughness)
Execute:
bash
undefined步骤:
- 创建材质
- 分配给对象
- 配置属性(颜色、金属度、粗糙度)
执行命令:
bash
undefinedCreate and configure material
创建并配置材质
blender-toolkit material create --name "Metal"
blender-toolkit material set-color --material "Metal" --r 0.8 --g 0.8 --b 0.8
blender-toolkit material set-metallic --material "Metal" --value 1.0
blender-toolkit material set-roughness --material "Metal" --value 0.2
blender-toolkit material create --name "Metal"
blender-toolkit material set-color --material "Metal" --r 0.8 --g 0.8 --b 0.8
blender-toolkit material set-metallic --material "Metal" --value 1.0
blender-toolkit material set-roughness --material "Metal" --value 0.2
Assign to object
分配给对象
blender-toolkit material assign --object "Sphere" --material "Metal"
undefinedblender-toolkit material assign --object "Sphere" --material "Metal"
undefined3. Animation Retargeting Workflow ⭐
3. 动画重定向工作流 ⭐
Most Common Use Case
Phase 1: Setup & Generate Mapping
1. User provides:
- Target character armature name
- Animation FBX file path
- (Optional) Animation name for NLA track
2. System executes:
- Connects to Blender WebSocket
- Imports FBX file
- Analyzes bone structure
- Auto-generates bone mapping (fuzzy matching)
- Displays mapping in Blender UI for review
3. Quality Assessment:
- Excellent (8-9 critical bones) → Safe to auto-apply
- Good (6-7 critical bones) → Quick review recommended
- Fair (4-5 critical bones) → Thorough review required
- Poor (< 4 critical bones) → Manual mapping neededPhase 2: User Confirmation
1. User reviews mapping in Blender:
- View3D → Sidebar (N) → "Blender Toolkit" → "Bone Mapping Review"
- Check source → target correspondence
- Edit incorrect mappings using dropdowns
- Use "Auto Re-map" button to regenerate if needed
2. User confirms:
- Click "Apply Retargeting" button in Blender
3. System completes:
- Creates constraint-based retargeting
- Bakes animation to keyframes
- Adds to NLA track
- Cleans up temporary objectsExample:
typescript
import { AnimationRetargetingWorkflow } from 'blender-toolkit';
const workflow = new AnimationRetargetingWorkflow();
// If user doesn't have FBX yet
console.log(workflow.getManualDownloadInstructions('Walking'));
// After user downloads FBX
await workflow.run({
targetCharacterArmature: 'HeroRig',
animationFilePath: './Walking.fbx',
animationName: 'Walking',
boneMapping: 'auto', // Auto-generate with fuzzy matching
skipConfirmation: false // Enable UI review workflow
});Skip Confirmation (For Known-Good Mappings):
bash
undefined最常用场景
阶段1:设置与生成映射
1. 用户提供:
- 目标角色骨骼名称
- 动画FBX文件路径
- (可选)NLA轨道的动画名称
2. 系统执行:
- 连接到Blender WebSocket
- 导入FBX文件
- 分析骨骼结构
- 自动生成骨骼映射(模糊匹配)
- 在Blender UI中显示映射供审核
3. 质量评估:
- 优秀(8-9个关键骨骼匹配)→ 可安全自动应用
- 良好(6-7个关键骨骼匹配)→ 建议快速审核
- 一般(4-5个关键骨骼匹配)→ 需要彻底审核
- 较差(少于4个关键骨骼匹配)→ 需要手动映射阶段2:用户确认
1. 用户在Blender中审核映射:
- 3D视图 → 侧边栏(N) → "Blender Toolkit" → "Bone Mapping Review"
- 检查源骨骼与目标骨骼的对应关系
- 使用下拉菜单编辑错误的映射
- 如有需要,点击“Auto Re-map”按钮重新生成映射
2. 用户确认:
- 在Blender中点击“Apply Retargeting”按钮
3. 系统完成操作:
- 创建基于约束的重定向
- 将动画烘焙为关键帧
- 添加到NLA轨道
- 清理临时对象示例代码:
typescript
import { AnimationRetargetingWorkflow } from 'blender-toolkit';
const workflow = new AnimationRetargetingWorkflow();
// 如果用户还没有FBX文件
console.log(workflow.getManualDownloadInstructions('Walking'));
// 用户下载FBX后
await workflow.run({
targetCharacterArmature: 'HeroRig',
animationFilePath: './Walking.fbx',
animationName: 'Walking',
boneMapping: 'auto', // 通过模糊匹配自动生成
skipConfirmation: false // 启用UI审核工作流
});跳过确认(已知可靠映射):
bash
undefinedRigify preset - instant application
Rigify预设 - 即时应用
blender-toolkit retarget
--target "RigifyCharacter"
--file "./Walking.fbx"
--mapping mixamo_to_rigify
--skip-confirmation
--target "RigifyCharacter"
--file "./Walking.fbx"
--mapping mixamo_to_rigify
--skip-confirmation
blender-toolkit retarget
--target "RigifyCharacter"
--file "./Walking.fbx"
--mapping mixamo_to_rigify
--skip-confirmation
--target "RigifyCharacter"
--file "./Walking.fbx"
--mapping mixamo_to_rigify
--skip-confirmation
Excellent quality - trusted auto-mapping
优秀质量 - 信任自动映射
blender-toolkit retarget
--target "MyCharacter"
--file "./Walking.fbx"
--skip-confirmation
--target "MyCharacter"
--file "./Walking.fbx"
--skip-confirmation
undefinedblender-toolkit retarget
--target "MyCharacter"
--file "./Walking.fbx"
--skip-confirmation
--target "MyCharacter"
--file "./Walking.fbx"
--skip-confirmation
undefinedKey Features
核心功能
Auto Bone Mapping with UI Review 🌟
带UI审核的自动骨骼映射 🌟
Recommended Workflow for unknown or custom rigs:
How It Works:
-
Fuzzy Matching Algorithm
- Normalizes bone names (handles various conventions)
- Calculates similarity scores (0.0-1.0)
- Applies bonuses for:
- Substring matches (+0.15)
- Common prefixes: left, right (+0.1)
- Common suffixes: .L, .R, _l, _r (+0.1)
- Number matching: Spine1, Spine2 (+0.1)
- Anatomical keywords: arm, leg, hand (+0.05)
-
Quality Assessment
- Tracks 9 critical bones (Hips, Spine, Head, Arms, Legs, Hands)
- Provides quality rating (Excellent/Good/Fair/Poor)
- Recommends action based on quality
-
UI Confirmation Panel
- Shows complete mapping table
- Editable dropdowns for each mapping
- "Auto Re-map" button (regenerate)
- "Apply Retargeting" button (proceed)
Benefits:
- Works with any rig structure
- No manual configuration needed
- User verifies before application
- Prevents animation errors
推荐工作流适用于未知或自定义绑定:
工作原理:
-
模糊匹配算法
- 标准化骨骼名称(支持多种命名规范)
- 计算相似度分数(0.0-1.0)
- 为以下情况加分:
- 子字符串匹配(+0.15)
- 常见前缀:left、right(+0.1)
- 常见后缀:.L、.R、_l、_r(+0.1)
- 数字匹配:Spine1、Spine2(+0.1)
- 解剖学术语:arm、leg、hand(+0.05)
-
质量评估
- 跟踪9个关键骨骼(臀部、脊柱、头部、手臂、腿部、手部)
- 提供质量评级(优秀/良好/一般/较差)
- 根据质量推荐操作
-
UI确认面板
- 显示完整的映射表
- 每个映射可通过下拉菜单编辑
- “Auto Re-map”按钮(重新生成映射)
- “Apply Retargeting”按钮(继续操作)
优势:
- 适用于任何绑定结构
- 无需手动配置
- 用户可在应用前验证
- 防止动画错误
Three Bone Mapping Modes
三种骨骼映射模式
1. Auto Mode (Recommended) ⭐
bash
undefined1. 自动模式(推荐) ⭐
bash
undefinedDefault: Auto-generate with UI confirmation
默认:自动生成并启用UI确认
blender-toolkit retarget --target "Hero" --file "./Walk.fbx"
- Fuzzy matching algorithm
- UI review workflow
- Best for unknown rigs
**2. Rigify Mode**
```bashblender-toolkit retarget --target "Hero" --file "./Walk.fbx"
- 模糊匹配算法
- UI审核工作流
- 最适合未知绑定
**2. Rigify模式**
```bashPreset for Rigify control rigs
针对Rigify控制绑定的预设
blender-toolkit retarget --target "Hero" --file "./Walk.fbx" --mapping mixamo_to_rigify
- Predefined Mixamo → Rigify mapping
- Instant application
- Highest accuracy for Rigify
**3. Custom Mode**
```typescript
// Explicit bone mapping
const customMapping = {
"Hips": "root_bone",
"Spine": "torso_01",
"LeftArm": "l_upper_arm",
// ... complete mapping
};
await workflow.run({
boneMapping: customMapping,
skipConfirmation: true
});- Full control
- Reusable across animations
- For non-standard rigs
blender-toolkit retarget --target "Hero" --file "./Walk.fbx" --mapping mixamo_to_rigify
- 预定义的Mixamo → Rigify映射
- 即时应用
- 对Rigify绑定准确率最高
**3. 自定义模式**
```typescript
// 显式骨骼映射
const customMapping = {
"Hips": "root_bone",
"Spine": "torso_01",
"LeftArm": "l_upper_arm",
// ... 完整映射
};
await workflow.run({
boneMapping: customMapping,
skipConfirmation: true
});- 完全控制
- 可在多个动画中复用
- 适用于非标准绑定
Multi-Project Support
多项目支持
Automatic Port Management:
- Projects automatically assigned unique ports (9400-9500)
- Configuration persists across sessions
- Multiple Blender instances can run simultaneously
Configuration Storage:
json
// ~/.claude/plugins/.../blender-config.json
{
"projects": {
"/path/to/project-a": { "port": 9400 },
"/path/to/project-b": { "port": 9401 }
}
}自动端口管理:
- 每个项目自动分配唯一端口(9400-9500)
- 配置跨会话持久化
- 可同时运行多个Blender实例
配置存储:
json
// ~/.claude/plugins/.../blender-config.json
{
"projects": {
"/path/to/project-a": { "port": 9400 },
"/path/to/project-b": { "port": 9401 }
}
}Important Guidelines
重要指南
When to Ask User
何时询问用户
Use tool if:
AskUserQuestion- Character armature name is unclear
- Multiple rigs exist (ambiguous target)
- Animation FBX path not provided
- Blender WebSocket connection fails
- User needs Mixamo download guidance
DO NOT guess:
- Character names
- File paths
- Rig structures
在以下情况使用工具:
AskUserQuestion- 角色骨骼名称不明确
- 存在多个绑定(目标不明确)
- 未提供动画FBX路径
- Blender WebSocket连接失败
- 用户需要Mixamo下载指导
请勿猜测:
- 角色名称
- 文件路径
- 绑定结构
Mixamo Download Process
Mixamo下载流程
Since Mixamo has no API, users must manually download:
Provide Instructions:
typescript
// Show download help
const workflow = new AnimationRetargetingWorkflow();
console.log(workflow.getManualDownloadInstructions('Walking'));
console.log(workflow.getRecommendedSettings());Wait for User:
- Guide user through Mixamo.com download
- Get file path after download completes
- Then proceed with retargeting
由于Mixamo没有官方API,用户必须手动下载:
提供指导:
typescript
// 显示下载帮助
const workflow = new AnimationRetargetingWorkflow();
console.log(workflow.getManualDownloadInstructions('Walking'));
console.log(workflow.getRecommendedSettings());等待用户操作:
- 指导用户通过Mixamo.com下载
- 下载完成后获取文件路径
- 然后继续重定向操作
Troubleshooting
故障排除
"Blender is not running"
"Blender未运行"
bash
undefinedbash
undefinedCheck connection
检查连接状态
blender-toolkit daemon-status
blender-toolkit daemon-status
If failed:
如果连接失败:
- Verify Blender is open
- Check addon is enabled
- Start server: Blender → N → "Blender Toolkit" → "Start Server"
undefined- 确认Blender已打开
- 检查插件已启用
- 启动服务器:Blender → N → "Blender Toolkit" → "Start Server"
undefined"Target armature not found"
"未找到目标骨骼"
- Verify exact armature name (case-sensitive)
- Check character is in current scene
- Use to see available armatures
list-objects --type ARMATURE
- 确认骨骼名称完全匹配(区分大小写)
- 检查角色是否在当前场景中
- 使用查看可用骨骼
list-objects --type ARMATURE
"Poor quality" bone mapping
"骨骼映射质量较差"
- Review bone names in Blender (Edit Mode)
- Create custom mapping for critical bones
- Lower similarity threshold (default: 0.6)
- Check rig has proper hierarchy
- 在Blender中(编辑模式)查看骨骼名称
- 为关键骨骼创建自定义映射
- 降低相似度阈值(默认:0.6)
- 检查绑定是否有正确的层级结构
"Twisted or inverted limbs"
"肢体扭曲或反转"
- Check left/right bone mapping
- Verify bone roll in Edit Mode
- Review constraint axes
- Test with simple animation first
- 检查左右骨骼的映射
- 在编辑模式中验证骨骼滚动
- 检查约束轴
- 先使用简单动画测试
Best Practices
最佳实践
-
🌟 Use Auto Mode with UI Confirmation
- Most reliable for unknown rigs
- Always review critical bones (Hips, Spine, Arms, Legs)
- Edit incorrect mappings before applying
-
Test Simple Animations First
- Start with Idle or Walking
- Verify bone mapping works correctly
- Check root motion (Hips bone)
- Then proceed to complex animations
-
Download Correct Format from Mixamo
- Format: FBX (.fbx)
- Skin: Without Skin
- FPS: 30 fps
- Keyframe Reduction: None
-
Check Quality Before Auto-Apply
- Excellent (8-9 critical) → Safe to skip confirmation
- Good (6-7 critical) → Quick review
- Fair (4-5 critical) → Thorough review
- Poor (< 4 critical) → Use custom mapping
-
Save Custom Mappings for Reuse
- Document successful mappings
- Reuse for same character's animations
- Share with team members
-
Let System Manage Ports
- Don't manually configure ports
- System handles multi-project conflicts
- Configuration persists automatically
-
🌟 使用带UI确认的自动模式
- 对未知绑定最可靠
- 始终审核关键骨骼(臀部、脊柱、手臂、腿部)
- 应用前编辑错误的映射
-
先测试简单动画
- 从Idle或Walking动画开始
- 验证骨骼映射是否正确
- 检查根运动(臀部骨骼)
- 然后处理复杂动画
-
从Mixamo下载正确格式
- 格式:FBX (.fbx)
- 蒙皮:无蒙皮
- FPS:30 fps
- 关键帧简化:无
-
自动应用前检查质量
- 优秀(8-9个关键骨骼匹配)→ 可安全跳过确认
- 良好(6-7个关键骨骼匹配)→ 快速审核
- 一般(4-5个关键骨骼匹配)→ 彻底审核
- 较差(少于4个关键骨骼匹配)→ 使用自定义映射
-
保存自定义映射以便复用
- 记录成功的映射
- 同一角色的动画可复用
- 与团队成员共享
-
让系统管理端口
- 不要手动配置端口
- 系统处理多项目冲突
- 配置自动持久化
References
参考文档
Detailed documentation in folder:
references/-
commands-reference.md - Complete CLI command reference
- All geometry, object, material, modifier commands
- Detailed options and examples
- Port management and tips
-
bone-mapping-guide.md - Bone matching system details
- Fuzzy matching algorithm explained
- Quality assessment metrics
- Common mapping patterns (Rigify, UE4, Unity)
- Troubleshooting mapping issues
-
workflow-guide.md - Complete workflow documentation
- Step-by-step retargeting workflow
- Mixamo download process
- Two-phase confirmation details
- Batch processing workflows
- Multi-project workflows
-
addon-api-reference.md - WebSocket API documentation
- JSON-RPC protocol details
- All API methods and parameters
- Error handling
- Security and performance tips
When to Load References:
- User needs detailed command options
- Troubleshooting complex issues
- Understanding bone mapping algorithm
- Setting up advanced workflows
- API integration requirements
详细文档位于文件夹:
references/-
commands-reference.md - 完整的CLI命令参考
- 所有几何、对象、材质、修改器命令
- 详细选项和示例
- 端口管理和技巧
-
bone-mapping-guide.md - 骨骼匹配系统详情
- 模糊匹配算法说明
- 质量评估指标
- 常见映射模式(Rigify、UE4、Unity)
- 映射问题故障排除
-
workflow-guide.md - 完整工作流文档
- 分步重定向工作流
- Mixamo下载流程
- 两阶段确认详情
- 批量处理工作流
- 多项目工作流
-
addon-api-reference.md - WebSocket API文档
- JSON-RPC协议详情
- 所有API方法和参数
- 错误处理
- 安全和性能提示
何时加载参考文档:
- 用户需要详细的命令选项
- 排查复杂问题
- 理解骨骼映射算法
- 设置高级工作流
- API集成需求
Output Structure
输出结构
.blender-toolkit/
├── skills/scripts/ # Local TypeScript scripts (auto-initialized)
│ ├── src/ # Source code
│ ├── dist/ # Compiled JavaScript
│ └── node_modules/ # Dependencies
├── bt.js # CLI wrapper
├── logs/ # Log files
│ ├── typescript.log
│ ├── blender-addon.log
│ └── error.log
└── .gitignore
Shared config:
~/.claude/plugins/.../blender-config.json.blender-toolkit/
├── skills/scripts/ # 本地TypeScript脚本(自动初始化)
│ ├── src/ # 源代码
│ ├── dist/ # 编译后的JavaScript
│ └── node_modules/ # 依赖包
├── bt.js # CLI包装器
├── logs/ # 日志文件
│ ├── typescript.log
│ ├── blender-addon.log
│ └── error.log
└── .gitignore
共享配置:
~/.claude/plugins/.../blender-config.jsonNotes
注意事项
- Port range: 9400-9500 (Browser Pilot uses 9222-9322)
- File formats: FBX recommended, Collada (.dae) supported
- Blender version: 4.0+ required (2023+)
- Auto-initialization: SessionStart hook installs and builds scripts
- No manual daemon management: System handles everything
- WebSocket protocol: JSON-RPC 2.0
- 端口范围:9400-9500(Browser Pilot使用9222-9322)
- 文件格式:推荐FBX,支持Collada (.dae)
- Blender版本:需要4.0+(2023+)
- 自动初始化:SessionStart钩子会安装并构建脚本
- 无需手动管理守护进程:系统自动处理所有事项
- WebSocket协议:JSON-RPC 2.0