cli-anything-blender は何をしますか?
GIMP CLIハーネスと同じパターンに従った、ステートフルな3Dシーン編集用コマンドラインインターフェース。実際のBlenderレンダリングにはbpyスクリプト生成とともにJSONシーン記述形式を使用します。
インストール
このCLIはcli-anything-blenderパッケージの一部としてインストールされます:
pip install cli-anything-blender
前提条件:
- Python 3.10+
- blender(>= 4.2)がシステムにインストールされていること
使用法
基本コマンド
# ヘルプを表示
cli-anything-blender --help
# 対話型REPLモードを開始
cli-anything-blender
# 新しいシーンプロジェクトを作成
cli-anything-blender scene new -o scene.blend-cli.json
# JSON出力で実行(エージェント向け)
cli-anything-blender --json --project scene.blend-cli.json scene info
REPLモード
サブコマンドなしで起動すると、対話型REPLセッションが開始されます:
cli-anything-blender
# タブ補完と履歴機能付きで対話的にコマンドを入力
コマンドグループ
Scene
シーン管理コマンド。
| コマンド | 説明 |
|---|---|
new | 新しいシーンを作成 |
open | 既存のシーンを開く |
save | 現在のシーンを保存 |
info | シーン情報を表示 |
profiles | 利用可能なシーンプロファイルを一覧表示 |
json | 生のシーンJSONを出力 |
Object Group
3Dオブジェクト管理コマンド。
| コマンド | 説明 |
|---|---|
add | 3Dプリミティブオブジェクトを追加 |
remove | インデックスでオブジェクトを削除 |
duplicate | オブジェクトを複製 |
transform | オブジェクトを変形(移動、回転、拡大縮小) |
set | オブジェクトのプロパティを設定(名前、可視性、位置、回転、スケール、親) |
list | すべてのオブジェクトを一覧表示 |
get | オブジェクトの詳細情報を取得 |
Material
マテリアル管理コマンド。
| コマンド | 説明 |
|---|---|
create | 新しいマテリアルを作成 |
assign | マテリアルをオブジェクトに割り当て |
set | マテリアルのプロパティを設定(色、メタリック、粗さ、スペキュラー、アルファなど) |
list | すべてのマテリアルを一覧表示 |
get | マテリアルの詳細情報を取得 |
Modifier Group
モディファイア管理コマンド。
| コマンド | 説明 |
|---|---|
list-available | 利用可能なすべてのモディファイアを一覧表示 |
info | モディファイアの詳細を表示 |
add | オブジェクトにモディファイアを追加 |
remove | インデックスでモディファイアを削除 |
set | モディファイアのパラメータを設定 |
list | オブジェクト上のモディファイアを一覧表示 |
Camera
カメラ管理コマンド。
| コマンド | 説明 |
|---|---|
add | シーンにカメラを追加 |
set | カメラのプロパティを設定 |
set-active | アクティブカメラを設定 |
list | すべてのカメラを一覧表示 |
Light
ライト管理コマンド。
| コマンド | 説明 |
|---|---|
add | シーンにライトを追加 |
set | ライトのプロパティを設定 |
list | すべてのライトを一覧表示 |
Animation
アニメーションとキーフレームコマンド。
| コマンド | 説明 |
|---|---|
keyframe | オブジェクトにキーフレームを設定 |
remove-keyframe | オブジェクトからキーフレームを削除 |
frame-range | アニメーションのフレーム範囲を設定 |
fps | アニメーションのFPSを設定 |
list-keyframes | オブジェクトのキーフレームを一覧表示 |
Render Group
レンダリング設定と出力コマンド。
| コマンド | 説明 |
|---|---|
settings | レンダリング設定を構成 |
info | 現在のレンダリング設定を表示 |
presets | 利用可能なレンダリングプリセットを一覧表示 |
execute | シーンをレンダリング(bpyスクリプトを生成) |
script | レンダリングせずにbpyスクリプトを生成 |
Preview
実際のプレビューバンドルキャプチャとライブプレビューセッションコマンド。
| コマンド | 説明 |
|---|---|
preview recipes | 利用可能なプレビューレシピを一覧表示 |
preview capture | アクティブシーンの実際のプレビューバンドルをレンダリング |
preview latest | 最新の既存プレビューバンドルを返す |
preview live start | ライブプレビューセッションを開始し、最初のバンドルを公開 |
preview live push | ライブセッションに更新されたバンドルを公開 |
preview live status | レンダリングせずに現在のライブセッション状態を読み取る |
preview live stop | アーティファクトを削除せずにライブセッションを停止 |
レシピ quick の一般的なバンドルアーティファクト:
hero.png:実際のEeveeプレビューレンダリングからworkbench.png:実際のBlender Workbenchレンダリングから
ライブセッションの永続化:
session.json:可変のヘッドとして- 不変のバンドルディレクトリ
trajectory.json:追記専用のコマンド→プレビュー履歴として
ビューア側:
cli-hub previews inspect <bundle-or-session>cli-hub previews html <bundle-or-session> -o page.htmlcli-hub previews watch <session-dir> --opencli-hub previews open <bundle-or-session>
Session
セッション管理コマンド。
| コマンド | 説明 |
|---|---|
status | セッションステータスを表示 |
undo | 最後の操作を元に戻す |
redo | 最後に元に戻した操作をやり直す |
history | アンドゥ履歴を表示 |
例
新しいプロジェクトを作成
新しいBlenderシーンプロジェクトファイルを作成。
cli-anything-blender scene new -o myscene.blend-cli.json
# またはプログラム的な使用のためにJSON出力
cli-anything-blender --json scene new -o myscene.blend-cli.json
対話型REPLセッション
アンドゥ/リドゥ対応の対話型セッションを開始。
cli-anything-blender
# 対話的にコマンドを入力
# 利用可能なコマンドを表示するには 'help'
# 履歴ナビゲーションには 'undo' と 'redo'
状態管理
CLIは以下のセッション状態を維持します:
- アンドゥ/リドゥ:最大50レベルの履歴
- プロジェクトの永続化:JSONとしてプロジェクト状態を保存/読み込み
- セッション追跡:変更や修正を追跡
出力形式
すべてのコマンドはデュアル出力モードをサポート:
- 人間可読(デフォルト):表、色付き、フォーマット済みテキスト
- 機械可読(
--jsonフラグ):エージェント向けの構造化JSON
# 人間向け出力
cli-anything-blender --project scene.blend-cli.json scene info
# エージェント向けJSON出力
cli-anything-blender --json --project scene.blend-cli.json scene info
プレビューワークフロー
エージェントが信頼性のある視覚的チェックポイントを必要とする場合は、Blenderプレビューを使用します:
# プレビューレシピを一覧表示
cli-anything-blender --project scene.blend-cli.json preview recipes
# 実際のプレビューバンドルをキャプチャ
cli-anything-blender --json --project scene.blend-cli.json preview capture --recipe quick
# ライブプレビューループを開始
cli-anything-blender --json --project scene.blend-cli.json preview live start --recipe quick --mode poll --source-poll-ms 500
# レンダリングせずに現在のライブヘッドを照会
cli-anything-blender --json --project scene.blend-cli.json preview live status --recipe quick
エージェントの場合、preview capture --json はバンドルメタデータとアーティファクトファイルパスを返します。preview live status --json はセッションメタデータとコンパクトな trajectory_summary を返します。
AIエージェント向け
このCLIをプログラム的に使用する場合:
- 常に
--jsonフラグを使用 して解析可能な出力を得る - リターンコードを確認 - 0は成功、非0はエラー
- 失敗時はstderrを解析 してエラーメッセージを取得
- 必須:すべてのファイル操作に絶対パスを使用(レンダリング、プロジェクトファイル)。相対パスはバックグラウンド実行で失敗しやすいです。
- 視覚的確認には
preview captureまたはpreview live ...を使用。JSONだけでシーンの品質を推測しないでください。 - 返されたアーティファクトパスを読み取る(
hero.pngやworkbench.pngなど)。JSONペイロードはファイルを参照し、画像バイトをインライン化しません。 _bundle_dirは1つのスナップショットとしてのみ扱う。安定したライブ履歴には_session_dirと_trajectory_pathを使用します。cli-hub previews ...は既存のプレビューの検査/オープンにのみ使用。プレビュー生成自体は常にcli-anything-blender preview ...を通じて行われます。
詳細情報
- 完全なドキュメント:パッケージ内のREADME.mdを参照
- テストカバレッジ:パッケージ内のTEST.mdを参照
- 方法論:cli-anything-plugin内のHARNESS.mdを参照
バージョン
1.0.0