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.json
Always run scripts with
--help
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.
Required actions based on config:
重要提示:使用此工具前,请检查Blender插件的安装状态。
配置文件位置:查看共享配置文件确认安装状态:
~/.claude/plugins/marketplaces/dev-gom-plugins/blender-config.json
始终先使用
--help
运行脚本
查看使用方法。在尝试运行脚本并确定确实需要自定义解决方案之前,请勿阅读源代码。这些脚本可能非常庞大,会占用您的上下文窗口。它们设计为直接作为黑盒脚本调用,而非导入到上下文窗口中。
根据配置执行的必要操作

1. If Blender Not Detected (
blenderExecutable: null
)

1. 未检测到Blender(
blenderExecutable: null

Blender was not found during initialization. Please:
  1. Install Blender 4.0+ from https://www.blender.org
  2. Restart Claude Code session to trigger auto-detection
  3. Check logs:
    .blender-toolkit/init-log.txt
初始化过程中未找到Blender,请执行以下步骤:
  1. https://www.blender.org安装Blender 4.0+
  2. 重启Claude Code会话以触发自动检测
  3. 查看日志:
    .blender-toolkit/init-log.txt

2. If Multiple Versions Detected (
detectedBlenderVersions
array)

2. 检测到多个版本(
detectedBlenderVersions
数组)

The system detected multiple Blender installations. If you want to use a different version:
  1. Open config file (path shown above)
  2. Edit
    blenderExecutable
    field to your preferred version path
  3. 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安装。如果您想使用其他版本:
  1. 打开配置文件(路径如上所示)
  2. 编辑
    blenderExecutable
    字段
    ,设置为您偏好的版本路径
  3. 重启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
)

3. 插件未安装(
addonInstalled: false

The addon needs to be installed manually. Follow these steps:
Manual Installation Steps:
Method 1: Install from ZIP (Recommended)
bash
undefined
需要手动安装插件,请遵循以下步骤:
手动安装步骤
方法1:从ZIP安装(推荐)
bash
undefined

1. 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:从源码安装**
```bash

1. 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
)

4. 一切准备就绪(
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
undefined

Create 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:**
```bash
blender-toolkit subdivide --name "Cube" --cuts 2

**管理对象**:
```bash

List 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:**
```bash
blender-toolkit duplicate --name "Cube" --new-name "Cube.001" --x 3

**材质操作**:
```bash

Create 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:**
```bash
blender-toolkit material set-color --material "RedMaterial" --r 1.0 --g 0.0 --b 0.0

**动画重定向**:
```bash

Basic retargeting with UI confirmation

带UI确认的基本重定向

blender-toolkit retarget
--target "HeroRig"
--file "./Walking.fbx"
--name "Walking"
blender-toolkit retarget
--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
blender-toolkit retarget
--target "MyRigifyCharacter"
--file "./Walking.fbx"
--mapping mixamo_to_rigify
--skip-confirmation

Show Mixamo download instructions

显示Mixamo下载说明

blender-toolkit mixamo-help Walking
undefined
blender-toolkit mixamo-help Walking
undefined

Architecture

架构

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:
  1. Create material
  2. Assign to object
  3. Configure properties (color, metallic, roughness)
Execute:
bash
undefined
步骤
  1. 创建材质
  2. 分配给对象
  3. 配置属性(颜色、金属度、粗糙度)
执行命令
bash
undefined

Create 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"
undefined
blender-toolkit material assign --object "Sphere" --material "Metal"
undefined

3. 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 needed
Phase 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 objects
Example:
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
undefined

Rigify preset - instant application

Rigify预设 - 即时应用

blender-toolkit retarget
--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

Excellent quality - trusted auto-mapping

优秀质量 - 信任自动映射

blender-toolkit retarget
--target "MyCharacter"
--file "./Walking.fbx"
--skip-confirmation
undefined
blender-toolkit retarget
--target "MyCharacter"
--file "./Walking.fbx"
--skip-confirmation
undefined

Key Features

核心功能

Auto Bone Mapping with UI Review 🌟

带UI审核的自动骨骼映射 🌟

Recommended Workflow for unknown or custom rigs:
How It Works:
  1. 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)
  2. Quality Assessment
    • Tracks 9 critical bones (Hips, Spine, Head, Arms, Legs, Hands)
    • Provides quality rating (Excellent/Good/Fair/Poor)
    • Recommends action based on quality
  3. 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
推荐工作流适用于未知或自定义绑定:
工作原理
  1. 模糊匹配算法
    • 标准化骨骼名称(支持多种命名规范)
    • 计算相似度分数(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)
  2. 质量评估
    • 跟踪9个关键骨骼(臀部、脊柱、头部、手臂、腿部、手部)
    • 提供质量评级(优秀/良好/一般/较差)
    • 根据质量推荐操作
  3. UI确认面板
    • 显示完整的映射表
    • 每个映射可通过下拉菜单编辑
    • “Auto Re-map”按钮(重新生成映射)
    • “Apply Retargeting”按钮(继续操作)
优势
  • 适用于任何绑定结构
  • 无需手动配置
  • 用户可在应用前验证
  • 防止动画错误

Three Bone Mapping Modes

三种骨骼映射模式

1. Auto Mode (Recommended)
bash
undefined
1. 自动模式(推荐)
bash
undefined

Default: 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**
```bash
blender-toolkit retarget --target "Hero" --file "./Walk.fbx"
- 模糊匹配算法
- UI审核工作流
- 最适合未知绑定

**2. Rigify模式**
```bash

Preset 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
AskUserQuestion
tool if:
  • 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
undefined
bash
undefined

Check connection

检查连接状态

blender-toolkit daemon-status
blender-toolkit daemon-status

If failed:

如果连接失败:

  1. Verify Blender is open
  2. Check addon is enabled
  3. Start server: Blender → N → "Blender Toolkit" → "Start Server"
undefined
  1. 确认Blender已打开
  2. 检查插件已启用
  3. 启动服务器:Blender → N → "Blender Toolkit" → "Start Server"
undefined

"Target armature not found"

"未找到目标骨骼"

  • Verify exact armature name (case-sensitive)
  • Check character is in current scene
  • Use
    list-objects --type ARMATURE
    to see available armatures
  • 确认骨骼名称完全匹配(区分大小写)
  • 检查角色是否在当前场景中
  • 使用
    list-objects --type ARMATURE
    查看可用骨骼

"Poor quality" bone mapping

"骨骼映射质量较差"

  1. Review bone names in Blender (Edit Mode)
  2. Create custom mapping for critical bones
  3. Lower similarity threshold (default: 0.6)
  4. Check rig has proper hierarchy
  1. 在Blender中(编辑模式)查看骨骼名称
  2. 为关键骨骼创建自定义映射
  3. 降低相似度阈值(默认:0.6)
  4. 检查绑定是否有正确的层级结构

"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

最佳实践

  1. 🌟 Use Auto Mode with UI Confirmation
    • Most reliable for unknown rigs
    • Always review critical bones (Hips, Spine, Arms, Legs)
    • Edit incorrect mappings before applying
  2. Test Simple Animations First
    • Start with Idle or Walking
    • Verify bone mapping works correctly
    • Check root motion (Hips bone)
    • Then proceed to complex animations
  3. Download Correct Format from Mixamo
    • Format: FBX (.fbx)
    • Skin: Without Skin
    • FPS: 30 fps
    • Keyframe Reduction: None
  4. 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
  5. Save Custom Mappings for Reuse
    • Document successful mappings
    • Reuse for same character's animations
    • Share with team members
  6. Let System Manage Ports
    • Don't manually configure ports
    • System handles multi-project conflicts
    • Configuration persists automatically
  1. 🌟 使用带UI确认的自动模式
    • 对未知绑定最可靠
    • 始终审核关键骨骼(臀部、脊柱、手臂、腿部)
    • 应用前编辑错误的映射
  2. 先测试简单动画
    • 从Idle或Walking动画开始
    • 验证骨骼映射是否正确
    • 检查根运动(臀部骨骼)
    • 然后处理复杂动画
  3. 从Mixamo下载正确格式
    • 格式:FBX (.fbx)
    • 蒙皮:无蒙皮
    • FPS:30 fps
    • 关键帧简化:无
  4. 自动应用前检查质量
    • 优秀(8-9个关键骨骼匹配)→ 可安全跳过确认
    • 良好(6-7个关键骨骼匹配)→ 快速审核
    • 一般(4-5个关键骨骼匹配)→ 彻底审核
    • 较差(少于4个关键骨骼匹配)→ 使用自定义映射
  5. 保存自定义映射以便复用
    • 记录成功的映射
    • 同一角色的动画可复用
    • 与团队成员共享
  6. 让系统管理端口
    • 不要手动配置端口
    • 系统处理多项目冲突
    • 配置自动持久化

References

参考文档

Detailed documentation in
references/
folder:
  • 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.json

Notes

注意事项

  • 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