目次

「Blender未経験で3Dの箱庭を作ってみた Claude Code × Blender MCP」と書かれた記事のサムネイル。空に浮かぶ小さな島に、目の付いた岩、祠、地面から生えた巨大スプーン、自販機、缶、歩く箱が描かれている

Blenderは、これまで一度も触ったことがありません。3Dモデリングというもの自体、外から眺めたことしかなく、ポリゴンやマテリアルといった言葉を、なんとなく知っている程度です。

その状態で、Claude CodeにBlender MCPをつないでみました。Claude CodeがBlenderを直接操作して3Dモデルを作れる仕組みで、これがあれば、Blenderの操作を知らなくても、言葉で頼むだけで3Dのものが出てくるかもしれない。できたモデルをThree.jsで作った空間に置けば、ブラウザの中を歩き回れる小さな箱庭になるのではないか。そう思ったのが始まりです。

Blender未経験の人間が、指示だけでどこまで作れるのか。それを確かめたくて作ったのが、Labsの「AIが作った変な小島」です。空に浮かぶ小さな島を一人称で歩き回り、置いてある変なものを見つけて、少し触ると反応が返ってくる。3Dゲームと呼ぶほどのものではなく、歩き回って変なものを見つけ、少し触って反応を見られる3Dの箱庭、と言うのが近いと思います。

先に書いておくと、作れはした。ただ、見た目については最後まで「良い」と言えるところまでは行かなかった。この記事は、その両方を残しておくためのものです。

Blenderを触ったことすらない状態から始めた

3Dそのものが初めてだったわけではありません。ぽいもの本舗のLabsには、Claude Codeと作ったThree.jsの実験がいくつかあります。ただ、そこにある形は、球や箱といったThree.jsの基本図形をコードで組み合わせたものでした。「祠」や「自販機」のような、形そのものに意味があるものを作る手段は、持っていなかった。

その手段がBlenderなのは分かっています。3Dモデルを作る道具として、たぶん一番よく名前を聞く。でも、開いたことがない。開いたところで、どのボタンが何をするのかも知らない。学ぶ時間を取れば別ですが、今回はそこを飛ばして、指示だけで何が起きるかを見たかった。

もうひとつ、このときは自覚していなかったことがあります。Blenderを知らないだけでなく、「良い3Dとは何か」を語る言葉も持っていなかった。これが後で効いてきます。

まずThree.jsで小さな島を作った

Blenderの前に、歩き回る場所が要ります。そこで先に、Three.jsで小さな島を作ってもらいました。空と雲、草の生えた丸い地面、光と影、それから一人称の移動と視点。PCではマウスとWASDキー、スマホでは画面の左半分をなぞると移動、右半分をなぞると視点が動く。ここまでは全部Claude Codeが書いていて、Blenderはまだ登場していません。

島の上に置く「変なもの」は、先に名前だけ決めました。目の付いた岩、変な自販機、地面から生えた巨大スプーン、謎の祠、動く箱。この5つを、まずはThree.jsの基本図形で組んだ仮の形として立てておく。Blenderで作ったモデルが1つもない段階でも、島そのものは歩けるようにしておきたかったからだ。

仕組みとして良かったのは、差し替えの口を最初から用意しておいたことだと思います。Blenderから書き出したファイルを決まったフォルダに置くと、ページが自動でそれを読み込んで、仮の形と入れ替わる。仮のものが何個で、Blender製が何個かも、ページが自分で数えて表示する。だから、この後Blender製のものが1つ増えるたびに、島の見た目が少しずつ変わっていきました。

この時点では、まだ誰にも見せないページとして置いていました。

Claude CodeからBlenderを操作する

使ったのは、Blender 4.5 LTS (4.5.10) と、ahujasid/blender-mcp の1.9.1、それにThree.jsの0.185系です。Blender側にアドオンを入れておくと、Claude CodeからBlenderの中でPythonを実行したり、ビューポートのスクリーンショットを受け取ったりできるようになります。導入の手順はここでは書きません。手元の環境では証明書まわりで少し引っかかりましたが、それはこの記事の本題ではないので。

つながってからの流れは、思っていたより単純でした。

  1. 作りたいものを言葉で書く
  2. Claude Codeが、そのものを組み立てるPythonスクリプトを書いて、Blenderの中で実行する
  3. Claude Codeが、Blenderの画面のスクリーンショットを自分で撮って、形を確かめて直す
  4. 納得したら、GLBという形式で書き出して、島のフォルダに置く
  5. ページを開き直すと、島の上でそれに置き換わっている

こちらがやっていたのは、1で頼むこと、3のスクリーンショットを一緒に見て「もう少し傾けて」「これは違う」と言うこと、5で実際に歩いて感想を言うこと。この3つです。Blenderの画面は開いておく必要がありますが、その画面を自分でクリックしたことは、ほとんどありません。

一度だけ、Blenderのウィンドウを最小化したままにしていたら、Claude Codeが受け取るスクリーンショットが古い画面のまま更新されず、直したつもりの形を確認できていない、ということがありました。ウィンドウを表に出すと直った。Claude CodeがBlenderを「見ている」のは本当にその画面なのだと、変なところで実感した。

最初は「目の付いた岩」

最初に頼んだのは、目の付いた岩でした。岩に目が2つ付いていて、こちらを見ている。名前のとおりのものです。

Claude Codeが岩の形を作るスクリプトを書き、白目と黒目を別の部品として付けて、GLBに書き出す。それを島のフォルダに置いて、ページを開き直す。仮の形だった岩が、Blender製の岩に変わっていた。近づくと、黒目がこちらを追ってくる。

このとき感じたのは、「うまくできた」ではなくて、「本当に出てきた」だった。Blenderを開いてもいないのに、Blenderで作られた岩が、自分の島の上に立っている。

続けて2つ目に頼んだのが、謎の祠です。小さな鳥居のようなものと、祠の本体、その中に何かがいてこちらを見ている。屋根の上には、用途の分からない曲がった棒が1本。こちらはClaude CodeがBlenderの中で何度か角度を変えてスクリーンショットを撮り、鳥居の位置や中のものの見え方を直しながら仕上げました。僕はそのスクリーンショットを横から見て、感想を言っていただけです。

でも見た目はPlayStation 1初期みたいだった

岩と祠が置かれた島を、最初に歩き回ったときの正直な感想は、こうだった。

「PlayStation 1初期のゲームみたいだな」

ここで、2つの感覚を分けて書いておきたいと思います。

ひとつは、3D空間として成立していることへの驚きです。歩ける。見回せる。岩にぶつかると止まる。目がこちらを追う。空があって、影が落ちている。Blenderを知らない人間が指示しただけで、ここまでは本当にできていた。

もうひとつは、見た目の完成度が、想像していたよりかなり低かったことです。岩は大きな三角形の面がそのまま見えていて、色は一様で、祠は箱を積んだ角の硬い形をしていた。10点満点で言えば1点。これを「懐かしい」とか「味がある」と言い換える気にはなれなかった。単純に、良くなかった。

最初に歩いたときの目の付いた岩。大きな三角形の面がそのまま見えていて、色も一様に灰色

驚きと落胆が同時に来る、というのは、あまり経験のない感覚でした。3D空間ができたことには驚いていて、その3D空間の見た目には落胆している。両方とも本当なので、片方に寄せずに書いておきます。

直しても、良い3Dになったわけではない

「初期のPlayStationみたいに見えるのを直したい」と頼みました。ただ、何をどう直せばいいのかは、こちらからは言えなかった。言えるのは「面が見える」「角が硬い」「のっぺりしている」という、見えたままの言葉だけです。

Claude Codeは、そこから技術的な対処を出してきました。岩の面を細かく分割して、面ごとの陰影ではなく滑らかな陰影にする。箱の角に小さな丸みを付ける。頂点ごとに少しずつ色を変えて、一様な色をなくす。素材ごとに表面の粗さを変える。Three.js側では、光を3方向から当て直し、空をもとにした環境光を足し、明るさを画面に収める方法 (トーンマッピング) を変え、影の縁を柔らかくする。どれもClaude Codeが提案して、Claude Codeが実行しています。

結果は、多少はマシになった、というところです。

直したあとの目の付いた岩。面の分割が細かくなって輪郭は滑らかになり、色にも濃淡が付いた

面は見えなくなり、角は丸くなり、色にも濃淡が付いた。10点満点なら、1点が2点になった、くらいの感覚だ。自分が良いと思える3Dには、届いていない。

ここで分かったのは、「見た目の良い3D」へ向かう指示が、自分には出せないということでした。技術的に間違っているところは、名前を付けて指摘すれば直る。でも、技術的に直したあとに残る「なんか良くない」に対して、次に何を頼めばいいのかが見えなかった。Claude Codeも、名指しされたものは直しましたが、その先の道筋を自分から示すことはなかった。

AIの限界を語りたいわけではありません。3Dの良し悪しを見る目を持たない人間が指示を出すと、技術的に正しいところで止まってしまうのかもしれない。少なくとも今回は、そういう状態でした。

それでも6個のBlender製オブジェクトまで作れた

見た目の話はいったん置いて、島はこの段階でLabsに公開しました。Blender製が2つ、仮の形が3つの、制作途中の状態のままです。そこから、変な自販機、地面から生えた巨大スプーン、動く箱を順番にBlender製へ置き換え、途中で思いついて缶も1つ足した。最終的に、島の上の6つはすべてBlender製になっています。

指示は、どれも言葉だけです。自販機なら「少し傾いていて、商品の窓の中に商品ではないものが入っていて、ボタンの数や配置が変で、文字やロゴは入れない」。スプーンなら「地面から斜めに生えていて、柄は曲がっていて、植物とスプーンの中間のような、根元に土の盛り上がり」。箱なら「ただの直方体ではなく、少し膨らんで傾いていて、蓋と留め具があって、何のための箱かは分からない」。Blenderの操作の言葉は、ひとつも使っていません。

その中で、作りながら分かったことをいくつか書いておきます。

変な自販機。傾いた赤茶色の筐体に、商品の窓、ばらばらに並んだボタン、コイン投入口、取り出し口があり、窓の中から目がこちらを見ている

自販機は、最初、商品の窓が平らな板にしか見えませんでした。Claude Codeが浅い箱を本体の表面に貼り付ける形で窓を作っていて、本体の面が奥をふさいでいたからです。直し方は、窓を本体の面から彫ること。窓の中に物を置けるようになって、今は中から目がこちらを見ています。

地面から生えた巨大スプーン。見上げる位置から、こちらへ少し起こされた皿の内側の凹みが見えている

スプーンは、皿の凹みが島の上からまったく見えなかった。形としては凹んでいるのに、背の高いスプーンを見上げるプレイヤーの目には、皿が空を向いていて縁しか見えない。Blenderで形を確かめる視点と、島の上で見る視点が違っていました。皿を手前に18度ほど起こし、内側を少し暗くして、やっと凹みが読めるようになった。

動く箱。少し膨らんだ青い箱に金属の蓋と留め具が付いていて、奥に目の付いた岩と謎の祠が見えている

動く箱は、初めての動くモデルでした。Blenderの中で箱の位置と傾きにキーフレームを打ち、ゆっくり浮いて、傾いて、戻る8秒のループにして、そのままGLBに書き出す。Three.js側は、モデルにアニメーションが入っていたときだけそれを再生します。ひとつ気をつけたのは、箱が下へ沈む動きは、そのまま地面へのめり込みになること。島のページはモデルの静止した姿勢を地面に合わせるので、動きは上向きとひねりだけにしました。

どの直しも、こちらが「窓が板に見える」「凹みが見えない」と言い、Claude CodeがBlenderとブラウザの両方のスクリーンショットを見て原因を見つける、という進み方でした。

ちなみに、実際に指示を出しながら作業していた時間だけで見ると、体感では2時間ほどです。Blenderを一度も触ったことがなく、3Dモデリングの知識もない状態なのに、その間にBlender製のオブジェクトが作られ、GLBとしてブラウザに入り、Three.jsの空間を歩いて触れるところまで来ていた。驚いたのは、その事実のほうでした。

3Dモデルだけでなく、その中を歩けた

振り返ると、一番驚いたのはモデルができたことではなく、そのモデルの間を歩けたことでした。

Blenderから書き出したファイルは、置くだけで島の上に立ちます。ページ側が高さを揃え、足元を地面に合わせ、ぶつかる範囲を決める。近づくと名前が出る。PCではクリックしてマウスで見回し、スマホでは画面をなぞる。岩の目はこちらを追ってくるし、自販機の裏に回れば裏側が見えます。

「Blenderでモデルを作る」と「その中を歩く」は、自分の中では別々の遠い作業でした。それが、言葉で頼んでファイルが出てきて、置いて、歩く、という一続きの流れになっていた。Blenderを一度も開かないまま、ここまで来られたことが、この実験でいちばん意外だった点です。

さらに少しだけ触れるようにした

歩けるだけだと、見つけて終わりになります。そこで、6つそれぞれにひとつずつ、小さな反応を付けました。

岩は、近づくと2回まばたきをする。祠は、正面に少し留まると中がほんのり光る。自販機は、クリックするとボタンが1つ光って、取り出し口に何か分からないものが出てくる。スプーンは、さわると根元からしなって戻る。動く箱は、かなり近づくと動きがぴたりと止まる。缶は、さわると向こうへ転がっていく (転がりすぎないよう3回まで)。

反応を引き出すと「みつけた変なもの 0 / 6」の数が増えていき、6つ全部に反応させると、小さく一言だけ出ます。「この島には、もう何もない……たぶん。」

6つすべてに反応させたあとの島。左上に「みつけた変なもの 6 / 6」と「この島には、もう何もない……たぶん。」が出ていて、遠くに謎の祠と動く箱が見える

記録は保存していません。読み込み直すと0に戻って、また探せる。音もない。目的もスコアもない。本格的なゲームではなく、歩いて、見つけて、少し触れる箱庭。それ以上のものにはしませんでした。

Blenderを知らなくても作れた。でも、その先は分からなかった

今回の実験を一文にすると、こうなります。

AIはBlender未経験者をいきなり3D空間を作れる地点まで運んでくれる。でも、そこから見た目の良い3Dへどう進むかは、今回はほとんど見えなかった。

前半は、この記事で書いてきたとおりです。Blenderを開かず、言葉で頼むだけで、6つのモデルができて、その間を歩けて、触ると反応する。ここまでできるとは、始める前には思っていませんでした。

後半も、同じくらい本当のことです。最初に見た「PlayStation 1初期」の印象は、直したあとも消えきらなかった。Claude Codeは技術的な修正はできた。でも、その先にある「良く見える3D」への道は、今回は見つからなかった。それは、そこへ向かう指示を出せなかったからでもあります。

AIには3Dの見た目を良くできない、という話にするつもりはありません。少なくとも、Blenderを知らず、3Dを見る目もない人間が指示を出した今回は、そこまで行けなかった。そういう記録として残しておきます。

島は公開したままにしてあります。見た目の点数は自分の中では2点ですが、歩き回れる3D空間として成立していることは、実際に歩いてもらえば分かると思います。

「AIが作った変な小島」で実際に歩いてみる