3DCGツールのスクリプトをAIに書かせる「バイブコーディング」入門|Max・Maya・Blender別のコツ

ブログ

私が初めてMAXScriptを書いたのは、アニメ背景の仕事で、道路に沿ってモブの車を自動配置するツールでした。実際の走行速度(時速)から、車がパスを1秒間に何パーセント進むかを逆算して、パスコンストレイントに与える——という処理です。ロジックの中心は、拍子抜けするほど短いものでした。

-- 時速から「1秒間にパスを何%進むか」を求める
km = 50                              -- 走らせたい速度(時速km)
ms = km / 3.6                        -- 秒速(m/s)に変換
segLen = getSegLengths $ 1           -- 選択したスプラインのセグメント長
percent = ms / segLen[segLen.count] * 100.0   -- パスコンストレイントの1秒あたり%

今でこそ数行に見えますが、当時はこの数行を書くために、リファレンスで getSegLengths の使い方を調べ、単位換算でつまずき、動かしてはエラーを直し…と、動くまでにずいぶん時間がかかりました。それでも、手作業で何十台もの車を一台ずつ配置していた作業が自動化できたときの感動は、今でも覚えています。

それがここ最近は、AIに「こういうことがしたい」と言葉で伝えるだけで、たたき台のスクリプトが返ってくるようになりました。いわゆる「バイブコーディング(vibe coding)」——やりたいことをAIに伝えて、返ってきたコードを動かしてみる、雰囲気(vibe)まかせのコーディングスタイルです。プログラミングに詳しくない人でも、繰り返し作業の自動化を試せる時代になってきました。

バイブコーディングの基本の流れ

3ds Max・Maya・Blenderのような3DCGツールは、どれもスクリプトで操作できます。つまりバイブコーディングと相性がよく、繰り返し作業の自動化を「コードが書けない人」でも試せるようになってきました。ただし、ツールによってAIの得意・不得意がかなり違います。この記事では、その違いと実際のコツを整理します。

使うAIはChatGPT・Claude・Geminiなど何でも構いません。基本の流れはどのツールでも同じです。

  1. 「どのソフトの、どの言語で、何をしたいか」をAIに伝える
  2. 返ってきたスクリプトをコピーして、ツール上で実行する
  3. エラーが出たら、そのエラー文をそのままAIに貼って直してもらう
  4. 意図通り動くまで2〜3を繰り返す

ポイントは 「どのソフトのどの言語か」を最初に明示する こと。ここが曖昧だと、AIはツールもバージョンもバラバラなコードを混ぜて返してきがちです。

3ds Maxの場合(MAXScript / Python)

3ds Maxの標準スクリプト言語はMAXScriptです。ただし、MAXScriptはBlenderのPythonなどに比べて世の中の情報量が少なく、AIの学習データも相対的に薄めです。そのため、ありそうで存在しない関数(ハルシネーション)を返してくることがそれなりにあります。

それでも、冒頭の車配置のような処理なら、今は「時速からパスコンストレイントの1秒あたりの進行率を計算するMAXScriptを書いて」と伝えるだけで、たたき台がすぐに返ってきます。かつて何時間もかけて調べながら書いたものが、出発点だけなら数分で手に入る——これがバイブコーディングの実感です。

  • コツ:AIには「MAXScriptで」と明示し、返ってきたコードはリスナーで一つずつ確認する
  • 近年の3ds MaxはPython(pymxs)も使えるので、「Python(pymxs)で書いて」と指定する手もある
  • そのソフト独自の細かい命令(API)より、ロジック部分(繰り返し・条件分岐)の方がAIは正確

Mayaの場合(Python / MEL)

MayaはPython(maya.cmds)での自動化が一般的で、情報量も豊富です。AIの精度も3ds Maxより高めで、素直なリクエストならかなり実用的なコードが返ってきます。

  • コツ:「Mayaのpython(maya.cmds)で」と指定すると安定する
  • 古いPyMEL前提のコードが混ざることがあるので、動かないときはその旨を伝える
  • Mayaのバージョンによって挙動が変わる部分は、バージョンも伝えると精度が上がる

Blenderの場合(Python / bpy)

Blenderのbpyは世界中のユーザーが情報を公開しているため、AIが最も得意とする領域です。ただし注意点があり、bpyはバージョンが上がると命令の仕様(API)がよく変わるため、AIが古いバージョン向けのコードを返しがちです。

  • コツ:「Blender 4系のbpyで」のように、使っているバージョンを必ず伝える
  • オペレーター(bpy.ops)は実行される状況(コンテキスト)に左右されるので、動かないときはその点を疑う
  • スクリプトエディタのコンソールにエラーが出るので、それをそのままAIに渡すと解決が早い

バイブコーディングの注意点

「雰囲気で動かす」からこそ、気をつけたいことがあります。特にスクリプトはシーンを一括で変更できてしまうため、中身を理解しないまま実行するのは危険です。

  • 必ず保存済みのファイル・テスト用シーンで試す(削除系スクリプトは元に戻せないことがある)
  • 何をするコードなのか、最低限AIに説明させてから実行する
  • うまくいったスクリプトは、コメントを付けて自分用に保存しておくと資産になる

管理人のひとこと

個人的には、MAXScriptみたいに情報が少ない言語ほどAIに助けてもらう価値が大きいと感じてます。ゼロから調べると大変な処理が、たたき台だけでもすぐ出てくるのは本当にありがたい。ただ「動いたからヨシ」で中身を見ないと、たまにとんでもない挙動をするので、そこだけは気をつけたいところですね。

コメント

タイトルとURLをコピーしました