AIにBlenderの作業を任せる|スクリプト生成で手作業を減らす
Blenderの作業で消耗するのは、難しい操作ではなく単純な繰り返しです。オブジェクトを一つずつ選んで名前を直す、同じ設定を何十個に流す、要らないデータを探して消す。この手の作業は、スクリプトにしてしまえば一度で終わります。
問題は、そのスクリプトを書くのにPythonの知識が要ることでした。そこがAIで埋まります。GPT-6 AstraではCADのコード生成が強化されたとされており、モデリングソフトの操作をコードに落とす用途と噛み合う方向です。
ただし、返ってきたコードをそのまま本番のデータで走らせると、たいてい事故ります。頼み方と、安全に試す手順と、壊れたときの戻し方をセットで持ってから始めましょう。
スクリプトにすると得をする作業の見分け方
何でもスクリプトにすればいいわけではありません。書かせて、確かめて、直して、という往復にも時間はかかります。手作業のほうが速い場面は普通にあります。
3つの条件が揃うと元が取れる
回数が多いこと、手順が毎回同じであること、結果が目で見て確かめられること。この3つが揃った作業は、スクリプト化するとほぼ確実に得をします。逆に、一回きりで、そのつど判断が入る作業は手でやったほうが早いです。
判断の量を基準にすると分かりやすくなります。「どれを選ぶか迷わない」作業は自動化向き、「見ながら決める」作業は手作業向きです。
向いている作業の例
- 大量のオブジェクトやマテリアルの名前を規則にそって付け替える
- 使われていないデータを洗い出して一覧にする
- 複数のオブジェクトに同じ設定を一括で適用する
- 階層のどこに何があるかをテキストで書き出す
- 指定した条件に当てはまる部分だけを選択状態にする
向いていない作業の例
形を作る作業、シルエットを整える作業、崩れを目で見て直す作業は、スクリプトにしても満足のいく結果になりません。数値で表現できない判断が中心だからです。
ポリゴンを減らす作業も、自動化できる部分と目で見て決める部分が混ざります。どこまで任せてよいかはポリゴン削減の進め方をまとめた記事で切り分けています。
最初の一本は「何かを変更するスクリプト」ではなく「状態を書き出すだけのスクリプト」にしてください。データを一切書き換えないので、失敗しても被害がゼロです。動作を確かめる練習にちょうどいい題材になります。
頼むときに渡す情報を決めておく
返ってくるコードの質は、こちらが渡した情報の量でほぼ決まります。毎回同じ項目を埋めるだけなので、テンプレートとして持っておくと楽になります。
最低限これだけは書く
どのソフトのどの機能で動かすか
Blenderのスクリプト実行環境で動かす前提であることを明記します。書かないと、別のソフト向けのコードが返ってくることがあります。
データの構造
何がいくつあり、どういう名前が付いていて、どう入れ子になっているか。ここが曖昧だと、存在しない前提のコードが出てきます。
終わった状態
実行後にどうなっていてほしいかを、結果として書きます。操作手順ではなく状態で伝えるのがコツです。
触ってほしくない場所
消してはいけないもの、名前を変えてはいけないものを先に伝えます。後から言うと作り直しになります。
安全側の指定
「削除は行わず、対象を一覧表示するだけにして」と条件を付けると、危険なコードが出てくる確率が下がります。
データの構造は書き出させて渡す
入れ子の構造を文章で説明するのは面倒です。先に「今のデータの階層をテキストで書き出すスクリプト」を作らせ、その出力を貼り付けるほうが正確に伝わります。
この二段構えにすると、こちらの説明ミスで的外れなコードが返ってくる事故が減ります。書き出し用のスクリプトは一度作れば使い回せます。
出てきたコードを安全に試す
ここが本題です。AI活用でいちばん多い事故は、生成されたスクリプトを内容を見ずに本番データで実行して壊すことです。順番を決めておけば、この事故はほぼ防げます。
実行する前に3つ確認する
まず、コードの中に削除や上書きに当たる処理が入っていないかを見ます。読めなければ、AIに「このコードが消したり書き換えたりする対象を全部挙げて」と聞いてください。説明と中身が食い違っていれば、その時点で止められます。
次に、対象の選び方を確認します。「全部」を対象にしているのか、条件で絞っているのか。ここが想定より広いと、関係ないところまで書き換わります。
最後に、元に戻せるかを確かめます。取り消し操作で戻せない種類の処理もあるので、戻せない前提で準備しておくのが安全です。
試す場所を段階的に上げる
捨ててよいファイルで試す
適当な立方体をいくつか置いただけのファイルを用意し、そこで動かします。壊れても何も失いません。
本番データの複製で試す
複製したファイルで、実データに近い構造のまま動かします。ここで初めて、想定外の名前や階層に当たります。
本番で実行する
複製で意図どおりに動いたものだけを本番に適用します。実行直前にもう一度保存しておきます。
「たぶん大丈夫だろう」で本番データに直接流すのは避けてください。数十分の作業が消えるだけなら軽傷ですが、何日もかけたモデルが壊れると復帰する気力ごと失います。複製を取る手間は1分もかかりません。
動かないときの戻し方と直し方
エラーが出ること自体は普通です。一度で通ることのほうが少ないので、直し方を持っておけば怖くありません。
エラー文はそのまま貼り付ける
要約せず、表示された文言をそのまま渡してください。行の位置や関数の名前が含まれているので、AI側で原因を特定しやすくなります。要約すると、いちばん重要な部分が落ちます。
あわせて、そのとき選択していたものや、データの状態も添えます。同じエラーでも、対象が空だった場合と型が違う場合では直し方が変わります。
何も起きないときは対象を疑う
エラーが出ないのに結果も変わらない、という状態がいちばん厄介です。多くは、条件に合う対象が一つも無かったか、選択されていないものを対象にしていたかのどちらかです。
対象の数を表示する処理を一行足させると、すぐ切り分けられます。ゼロなら条件の問題、ゼロでないなら処理の問題です。
壊した状態から戻す
保存前なら取り消し操作で戻る場合があります。保存してしまった場合は、複製したファイルから作業をやり直すのが最短です。作業単位でのバックアップの取り方はバックアップとバージョン管理の記事にまとめています。
毎回複製するのは正直めんどうです。
一度失うと考えが変わります。スクリプトは手作業と違って一瞬で全体に影響するので、手作業のときより慎重に扱ってちょうどいいくらいです。
実際によく任せている作業
抽象的な話が続いたので、実務でよく出てくる場面を挙げておきます。どれも「判断が要らない繰り返し」です。
命名の統一
配布データや自分の作業でばらついた名前を、規則にそって付け直す作業です。手でやると数十回のクリックが必要ですが、規則さえ決まれば一度で終わります。
規則は自分で決めてから渡してください。「いい感じに」と頼むと、自分の頭にない命名で返ってきて、かえって混乱します。
不要データの洗い出し
使われていないマテリアルや、参照が切れたデータを一覧にする用途です。ここで大事なのは、いきなり削除させないことです。まず一覧を出させ、中身を見てから消す対象を決めます。
設定の一括適用と確認
複数のオブジェクトに同じ設定を流す作業と、その設定が本当に全部に入ったかを確認する作業です。適用と確認をセットで書かせておくと、抜けに気づけます。
手作業だと、途中で一つ飛ばしても気づきません。数十個を目視で照合するのは現実的でないからです。確認まで自動化すると、抜けの有無が一行の表示で分かります。
作業前後の差分を出す
処理を走らせる前と後で、何がどう変わったかを一覧にする使い方も便利です。名前の変更前後、削除された対象の数、設定が変わったオブジェクトの数。これを毎回出しておくと、意図しない変更にその場で気づけます。
差分を出す処理は、本体のスクリプトとは別に作らせてください。同じスクリプトの中に入れると、本体が壊れたときに差分も出なくなります。
この「確認まで含めて書かせる」考え方は、AIを使うすべての場面で効きます。頼み方の型はAIにアバター制作を任せる範囲を整理した記事でも扱っています。
少しずつ読めるようになる進め方
コードが完全に読めなくても実用にはなります。ただ、少しだけ読めると安全性が跳ね上がります。ゼロから学ぶ必要はありません。
まず「消す処理」だけ見分ける
覚える優先順位の一位は、削除や上書きに当たる書き方を見分けることです。ここだけ分かれば、危険なコードを実行前に止められます。文法の全体を理解する必要はありません。
返ってきたコードに説明を付けさせる
「各行が何をしているかコメントを付けて」と頼むと、注釈付きで返ってきます。同じ処理を何度も見るうちに、よく出てくる書き方が自然と分かるようになります。
教科書を最初から読むより、自分が実際に使ったコードを読むほうが定着します。目的があるぶん、覚える動機が続きます。
動いたコードは残しておく
うまく動いたスクリプトは、何をするものかを一行添えて保存しておきましょう。次に似た作業が来たとき、ゼロから頼み直すより、既存のものを見せて「これを応用して」と頼むほうが早く正確です。
溜まってくると、自分専用の道具箱になります。他人のアバターを触るときにも使い回せるので、作るたびに資産が増えていく感覚が出てきます。
短く区切って作らせる
長い処理を一度に書かせず、機能ごとに分けて頼んでください。短いほど読みやすく、壊れたときの原因も絞りやすくなります。動いた断片を積み上げていくほうが、結果的に早く仕上がります。
よくある質問
使えます。ただし、実行する前に内容の説明を求めて読む習慣だけは持ってください。読めない状態でも、削除や上書きに当たる処理が入っているかどうかを確認するだけで、事故の大半は防げます。あわせて、捨ててよいファイルで先に動かす手順を守れば、知識が無くても安全に運用できます。慣れてくると、よく出てくる書き方から少しずつ読めるようになります。
エラーの文言をそのまま貼り付けて、そのときのデータの状態も添えて相談してください。よくある原因は、想定していた名前のオブジェクトが無い、対象が選択されていない、データの種類が想定と違う、の3つです。どれも、対象の数や名前を表示する処理を一行足すだけで切り分けられます。長いスクリプトなら、機能ごとに分けて動かすと止まっている場所が特定しやすくなります。
処理の内容によります。名前の整理やデータの掃除であれば問題ありません。ただし、形やウェイトに影響する処理を通した場合は、必ず動かして確認してください。静止した状態では気づかない崩れが、腕を上げたり振り向いたりしたときに出ることがあります。スクリプトは一度に全体へ影響するので、確認も全体を通して行うのが安全です。
まとめ
- 回数が多く、手順が同じで、結果を目で確かめられる作業だけをスクリプト化する
- 頼むときは、ソフト・データ構造・終わった状態・触らない場所・安全側の指定を書く
- 実行前に、削除や上書きの有無と対象の範囲を必ず確認する
- 捨ててよいファイル、複製、本番の順に試す場所を上げていく
- 最初に覚えるのは文法全体ではなく「消す処理を見分けること」
AI全般の頼み方と検証の型はChatGPTでアバター制作を進める記事に、作業前の保存の考え方はバックアップの記事にまとめてあります。
※Blenderの機能や画面構成は更新で変わります。実行環境の詳細は公式のドキュメントで確認してください。