ChatGPTで3Dモデルも作れる? 「Blender」使って挑戦してみた
聞くところによると、対話型AI(人工知能)「ChatGPT」は、3Dモデルの生成もできるようだ。
3Dモデリングソフトとして有名な「Blender」は、プログラミング言語「Python」に対応している。スクリプト文に従ってオブジェクト作成や編集といった操作ができる。そして、ChatGPTに命令すると、Pythonのスクリプトを生成できるのだ。ChatGPTにBlender用のスクリプトを生成させ、知識のない記者でも3Dモデルを作れないか試した。
まずは球体作り
ChatGPTを起動。使用する言語エンジンに「GPT-3.5」を選択し、「Blenderで球体を作りたいです。Blender用のPythonのスクリプトを教えてください」と指示する。
「以下は、Blenderで球体を作成するためのPythonスクリプトです」との文言とともに、
import bpy
# 新しいスフィアオブジェクトを作成
bpy.ops.mesh.primitive_uv_sphere_add(radius=1.0, location=(0, 0, 0))
# スフィアオブジェクトを選択状態にする
sphere_obj = bpy.context.active_object
# スフィアオブジェクトのマテリアルを設定
material = bpy.data.materials.new(name="SphereMaterial")
sphere_obj.data.materials.append(material)
# スクリプトを実行するときの出力メッセージ
print("球体が作成されました。")
とスクリプト文が生成された。
続いてBlender(バージョン3.4.1)を起動。「スクリプト作成」というウィンドウを開き、ChatGPT製のスクリプト文をそのままコピー&ペーストして実行した。無事、シンプルな球体が生成された。これぐらい単純な立方体であれば、問題はないようだ。
イス作りをしてみると
続いて、ChatGPTで最新の言語エンジン「GPT-4」を選択。「Blenderでシンプルな椅子を作りたいです」と指示する。脚4本と座面、背もたれ。それぞれのパーツを生成できるスクリプトを生成してくれた。
ところが、Blenderに読み込ませると、各パーツが結合せずバラバラに出現した。手間ながら手動操作で各パーツを組み合わせると、イスらしくはなった。
星型のオブジェクトは作れるか。指示すると、「五芒星が作成されます」という触れ込みのPython文が生成された。Blenderで実行させると、「平面で横方向に長い二等辺三角形が5個出現し、三角形に囲まれた中央部分が五角形に見える」という3Dモデルが出現した。あまり、五芒星には見えない。
「鎖」作りにトライ
ChatGPTと、Blenderの組み合わせ。単純な形を繰り返して表示するのは得意分野なのかもしれない。そう考え、「鎖」作りに挑戦する。GPTに「鎖の形を作りたいです。縦長の輪が、合計30個つながった物体です」と指示する。
ChatGPTは「以下のスクリプトはトーラス(ドーナツ形状)を作成し、それを鎖のリンクとして使用します」と回答し、淡々とスクリプト文を生成した。コピー&ペーストで実行すると、ドーナツ状の物体が30個並んで出てきた。全て同じ方向を向いて並んでいるため、つながりを欠いて鎖を形成できていない。
ひとつ目のドーナツは縦向き、次のドーナツは横向き、という具合で互い違いにつながるよう指示するなど、試行錯誤する。最終的には、奇数順のドーナツは正面を向き、偶数順のドーナツは側面を向く。そんなドーナツが次々と出現するスクリプト文が出力された。偶数順のドーナツが水平方向に90度回転すれば鎖らしくなるのだが、うまくいかない。
記者のChatGPTへの命令内容が甘いのかもしれない。手動で側面を向いたドーナツをそれぞれ水平方向へ倒してやると、少し鎖らしくなった。
「素人でもすぐに3Dモデル制作のプロに」とはいかなかった。ただ、プログラミングやBlenderに明るい人なら、生成されたスクリプト文を修正しつつちょっとした単純な構造物を生成するのに便利そうだ。