ラベル 自作Blenderアドオン の投稿を表示しています。 すべての投稿を表示
ラベル 自作Blenderアドオン の投稿を表示しています。 すべての投稿を表示

2026年8月11日火曜日

Blender専用AIアシスタント(自作Blenderアドオン)の試用項目

 Trial items for a custom Blender AI assistant add-on


I have listed the trial items for the custom Blender AI assistant add-on developed in collaboration with ChatGPT. Through these trials, the goal is to implement a "Function Registry" for archaeology-specific operations—enabling the registration, management, and execution of specialized, standardized tasks. Please note that this trial is being conducted as a secondary activity alongside my primary areas of interest, rather than as a standalone project.


ChatGPTと共同開発したBlender専用AIアシスタント(自作Blenderアドオン)の試用項目をリストアップしました。これらの試用の中で、考古学専用操作のFunction Registry化(特殊定形作業の登録管理実行)を目指します。なお、この試用は独自活動というよりも、自分の本来興味活動の中で副次的に行います。

1 地山地形3Dモデル

1-1 既存地山地形3Dモデルの補修

既存の有吉北貝塚北斜面貝層地山地形3Dモデルの精緻化のための補修をBlender専用AIアシスタント(AI Assistant for Blender、以下AABと略称します)を使って行います。


北斜面貝層地山地形3Dモデル

1-2 2次元資料から地山地形3Dモデル生成

既存3Dモデル生成では利用方法がわからなかった2次元資料もあるので、これらを含めて、改めて2次元資料から地山地形3DモデルをAABを使って生成します。


利用方法出来なかった地山地形資料(地形学図)

2 貝層3Dモデル

2-1 2次元資料から貝層3Dモデル生成

当初、セクション図(貝層断面図)から貝層3Dモデル作成は「できる」と考えていたのですが、それは甘い考えで、数年たった今でも局所は別にして、全体について納得できる貝層3Dモデルは出来ていません。その理由は貝層が継続的に供給され、それが規模の大きなものから小さなものまで含めて断続的な重力性移動の結果堆積したものであるためです。河川や海岸や風などによる堆積層とは根本的に異なります。従って、3Dモデル生成の前に、現在ある2次元資料の分析理解が深まることが最も重要です。2次元資料の分析理解が深まり、全体像のピントを十分に合わせてから、AABを使って貝層3Dモデルを生成します。


セクション図の様子

3 遺物点群3Dモデル

3-1 多属性分析が可能な遺物点群3Dモデルの生成

AABを活用して点群分析に最適化したgeometry nodesを具備する遺物点群3Dモデルを生成出来るようにします。これによりgeometry nodesの組合わせや係数を変化させて効果的分析ができるようにします。


geometry nodesの例

3-2 遺物点群3Dモデルの効果的背景整飾生成

遺物3D分布点群モデルが配置されたBlenderにおいて、背景や整飾(スケール、凡例、表題、説明等)をAABを使って生成し、単なる分析資料としてだけでなく、見せる価値の創出をはかります。

4 縄文土器3Dモデル

4-1 縄文土器3Dモデル補修

フォトグラメトリで作成した展示土器3Dモデルの補修をAABを使って行います。


展示土器3Dモデルの補修イメージ

4-2 2次元資料から縄文土器3Dモデル生成

2次元資料からAABをつかって縄文土器3Dモデル生成を試みます。


2次元資料例

5 貝殻・貝製品3Dモデル

5-1 貝殻・貝製品3Dモデル補修

ハマグリ、アワビ等貝殻・貝製品3Dモデルの補修をAABを使って行います。

5-2 2次元資料から貝殻・貝製品3Dモデル生成

2次元資料からAABをつかって貝殻・貝製品3Dモデルを生成します。

6 土坑等縄文遺構3Dモデル

6-1 2次元資料から土坑等縄文遺構3Dモデル生成

土坑等遺構を2次元資料からAABをつかって生成します。

7 重力性貝殻移動シミュレーションモデル

7-1 北斜面貝層重力性移動の想定シミュレーション生成

北斜面貝層重力性移動の想定モデルを幾つか作成し、その3DシミュレーションをAABを使って生成します。

8 メモ

ChatGPTと共同開発したBlender専用AIアシスタント(自作Blenderアドオン)の試用項目をリストアップしました。これらの試用の中で、考古学専用操作のFunction Registry化(特殊定形作業の登録管理実行)を目指します。なお、この試用は独自活動というよりも、自分の本来興味活動の中で副次的に行います。

また、この試用活動のなかで、次の技術習得を目指します。

・Blenderのあらゆる機能を試して知り、全てを活用できる基礎技術を習得する。(特にgeometry nodes)

・Pythonの構造を読み解く技術を習得する。(→ChatGPTにPythonの解説を出力させることができる)


2026年7月13日月曜日

自然言語でのBlender geometry nodes生成→3Dモデル生成 自作Blenderアドオンの使い勝手 その6

 Generating Blender Geometry Nodes and 3D Models from Natural Language: Usability of My Custom Blender Add-on (Part 6)


As the final test for my custom Blender add-on, I evaluated the process of generating Geometry Nodes and 3D models based on prompts provided by ChatGPT. The results were successful in terms of practicality for 8 out of the 9 tasks. The significance of this add-on is shifting: it is evolving from a mere "Python generation system for creating finished 3D models via natural language" into a tool that facilitates a workflow of "creating a prototype from natural language, followed by iterative rounds of modification and refinement until the final product is achieved."


自作Blenderアドオン開発テストの最終番として、ChatGPTからいただいたお題でgeometry nodes生成→3Dモデル生成をテストしました。9問中8問で実用性合格です。このアドオンの意義は単なる「自然言語による3D完成品作りのためのPython生成システム」から、「自然言語による祖型作成→修正改変→修正改変→修正改変→完成品プロセス」のためのツールに変化しています。

この記事は2026.07.12記事「感動 自然言語での「風で揺れる草原」生成 自作Blenderアドオンの使い勝手 その5」の続きです。

1 事例1 Scatter

事例1は2026.07.12記事「感動 自然言語での「風で揺れる草原」生成 自作Blenderアドオンの使い勝手 その5」で説明した内容です。

2 事例2 道路生成

●プロンプト:Bezier Curveを追加してください。Geometry Nodesで道路を生成してください。道路幅は4m。カーブに沿って道路が作られるようにしてください。カーブを編集すると道路形状も更新されるようにしてください。

●ChatGPTの作業方針:Blender unit = 1m として、編集可能な Bezier Curve を追加し、そのカーブに Geometry Nodes モディファイアを設定します。Geometry Nodes 内で幅4mのプロファイル線を Curve to Mesh でカーブに沿わせ、カーブ編集時に道路メッシュが自動更新される構成です。


2.jpg(Blender画面)

3 事例3 フェンス生成

●プロンプト:Bezier Curveを追加してください。Geometry Nodesで木製フェンスを作ってください。柱は2m間隔。柱の間に横板を3枚配置してください。カーブを編集するとフェンスも変化してください。

●ChatGPTの作業方針:新規作業として、Bezier Curveオブジェクトを作成し、そのカーブ入力を使うGeometry Nodesモディファイアを追加します。柱はカーブに沿って約2m間隔で生成し、横板は3段の連続した木製板としてカーブに追従します。カーブの制御点を編集すると、Geometry Nodesによりフェンス形状も更新されます。


3.jpg(Blender画面)

4 事例4 ランダム岩場

●プロンプト:Plane上に大小様々な岩をランダム配置してください。Geometry Nodesだけで生成してください。岩はIcosphereを変形して作成してください。岩同士は重ならないようにしてください。

●ChatGPT作業方針:新規スクリプトとして作成しました。PlaneにGeometry Nodesモディファイアを追加し、Plane面上にPoisson Disk分布で点を生成して、Icosphere由来の岩メッシュをインスタンス化・ランダム拡縮・回転・ノイズ変形します。岩の最大半径より十分大きい最小点間距離を設定して、岩同士が重ならない安全な配置にしています。

●エラーが出て送信:Python: Traceback (most recent call last):  File "G:\パソコンとソフト\ChatGPT\20260625Blenderアドオン改良\UI版バージョン3開発\k9rtest14.blend\gpt_generated.py", line 234, in <module>  File "G:\パソコンとソフト\ChatGPT\20260625Blenderアドオン改良\UI版バージョン3開発\k9rtest14.blend\gpt_generated.py", line 38, in set_socket_default  File "G:\パソコンとソフト\ChatGPT\20260625Blenderアドオン改良\UI版バージョン3開発\k9rtest14.blend\gpt_generated.py", line 28, in get_socketTypeError: 'int' object is not iterable

●ChatGPTの作業方針:前回エラーは、ソケット取得関数が整数指定を想定しておらず、`int`を反復処理しようとして発生していました。今回はソケット名・複数名・インデックス指定のすべてに対応する安全な関数に修正し、Geometry Nodes全体を再構築する完全スクリプトとして出力します。Plane上にPoisson Diskで点を配置し、Icosphereをノイズ変形した岩をランダムスケール・ランダム回転でインスタンス化します。

●特記事項:Random Rock Scale X、Y、ZがCombine Non Uniform ScaleのXYZにつながれていなかったので、手作業でラインをつなぎ完成品となる。


4.jpg(Blender画面)

5 事例5 成長する木

●プロンプト:Geometry Nodesで樹木を作成してください。幹から枝が分岐し、枝からさらに枝が分岐するようにしてください。乱数で自然な形状にしてください。

●ChatGPTの作業方針:ランダムな再帰分岐で「幹→枝→小枝」を作る曲線スケルトンを生成し、それをGeometry Nodesの「Curve to Mesh」で太さ付きの木として表示するスクリプトです。枝先には簡易的な葉メッシュも追加します。毎回少し違う自然な形になります。


5.jpg(Blender画面)

6 事例6 縄文土器片ランダム配置

●プロンプト:Plane上に縄文土器片を500個ランダム配置してください。Geometry Nodesで作成してください。大きさはランダム。回転もランダム。重なりは少なくしてください。密集する場所と疎らな場所を自然に作ってください。

●ChatGPTの作業方針:Plane上に500個の縄文土器片を配置します。配置点・サイズ・回転・種類番号はPythonで安全に生成し、Geometry Nodesでは点群オブジェクト上に土器片プロトタイプのコレクションをインスタンス化します。重なりを減らすため簡易Poisson風の距離チェックを行い、クラスター中心を混ぜて密集・疎らの自然な分布を作ります。

●エラー送信:縄文土器片が一カ所に塔のように積み上がっています。縄文土器片をPlaneの上に平面的に配置して、密集とまばらを作ってください。

●ChatGPTの作業方針:前回の「一カ所に塔のように積み上がる」原因を避けるため、500個分の配置点をXY平面上の点メッシュとして明示的に作り、各点にスケール・Z回転・プロトタイプ番号属性を持たせました。Geometry Nodesではその点に対して土器片プロトタイプのコレクションを「Separate Children / Pick Instance」で平面的にインスタンス化します。密集と疎らはクラスタ分布+距離チェックで生成し、重なりを抑えています。

●特記事項:点が小範囲で立体的に分布するものになり、結局望む3Dモデルは出来なかった。別に2回トライしたが、いずれも使える結果にならなかった。「密集する場所と疎らな場所を自然に作ってください。」という言葉の意味をChatGPTが誤解している可能性を感じる。


6.jpg(Blender画面)

7 事例7 貝層

●プロンプト:Geometry Nodesで貝層を作成してください。Plane上に二枚貝をランダム配置してください。一定方向にやや配向してください。層厚30cm程度。部分的に密度を変えてください。

ChatGPTの作業方針:Blender 4.4.3でそのまま実行できる新規スクリプトです。Plane上に、30cm程度の層厚を持つ貝層ボリュームを作り、二枚貝形状をランダム配置します。配向は一定方向へ弱く揃え、密度は高密度・低密度パッチで部分的に変化させています。対象PlaneにはGeometry Nodesコントローラ用モディファイアも付与します。


7.jpg(Blender画面)

8 事例8 石器散布

●プロンプト:Plane上に石器を100個散布してください。谷状に密集するようにしてください。Geometry Nodesで作成してください。

●ChatGPTの作業方針:Geometry NodesモディファイアをPlaneに作成し、別途用意した100頂点のポイントメッシュを参照して石器コレクションをインスタンス散布します。ポイントは蛇行する谷筋に沿って生成しているため、Plane上で谷状に密集します。石器は複数の低ポリゴン石器メッシュを作成し、Geometry Nodes側でランダムに選択・回転・スケールします。


8.jpg(Blender画面)

9 事例9 樹木林

●プロンプト:Plane上に樹木を配置してください。林縁では密度を低くしてください。中央部は密度を高くしてください。

●ChatGPTの作業方針:XY平面上の「Plane」を対象にし、存在しない場合は新規作成します。中央ほど採用確率を高く、外周ほど低くするリジェクションサンプリングで樹木を配置し、林縁の密度を低くしています。既存オブジェクトは削除せず、前回生成した同名コレクションのみ作り直します。

●特記事項:プロンプトにgeometry nodesをふくんでいないので、geometry nodesが使われないで、3Dモデルが生成した。


9.jpg(Blender画面)

10 メモ

10-1 結果

プロンプトからそのままgeometry nodes→3Dモデルができたもの。6件(2、3、5、7、8、9)

軽微な手作業追加でgeometry nodes→3Dモデルができたもの。1件(1)

エラーがでたが、エラー克服してgeometry nodes→3Dモデルができたもの。1件(4)

3Dモデルが出来なかったもの。1件(6)

10-2 評価

出来上がったものが望み通りとはかぎらないが、予想以上の好成績といえる。BlenderChatGPTUI版のgeometry nodes生成能力は素晴らしいもので、十分に実用的であるといえる。この能力をいかに引き出すプロンプトを用意するかというユーザーサイドの能力向上が求められる。またgeometry nodesを思い通りに改変して行く上で、ユーザーにgeometry nodes組み立て技術の基礎が求められる。

3Dモデルが出来なかったものは「いい線まで」行っていて、プロンプトを適切に改変するなど、じっくりユーザーが取組めば完成できる可能性を感じる。今後プロンプトを「祖型生成+対話的改良」のプロセスに区切って、試したい。

10-3 感想

このアドオンの意義は単なる「自然言語による3D完成品作りのためのPython生成システム」から、「自然言語による祖型作成→修正改変→修正改変→修正改変→完成品プロセス」のためのツールに変化している。

ChatGPT(web版)と私とのBlenderアドオン開発に関する考え方の調子が合ってきている。


2026年7月12日日曜日

感動 自然言語での「風で揺れる草原」生成 自作Blenderアドオンの使い勝手 その5

 An Impressive Result: Generating a "Wind-Swaying Grassland" via Natural Language – Usability of My Custom Blender Add-on (Part 5)


I successfully created a "wind-swaying grassland" object using Geometry Nodes based on a natural language prompt. It was a truly impressive experience. This confirmed that my custom Blender add-on is effectively leveraging ChatGPT's capabilities. It turns out my initial assumption—that ChatGPT might struggle with Geometry Nodes—was incorrect.


自然言語で、geometry nodesで「風に揺れる草原」オブジェクトを作成しました。感動を覚えます。自作Blenderアドオンが十分にChatGPT機能を発揮していることを確認しました。ChatGPTがgeometry nodesに弱いのではないかという自分の見立ては間違っていたようです。

この記事は2026.07.10記事「自然言語による3Dシミュレーション作成 自作Blenderアドオンの使い勝手 その4」の続きです。

1 自然言語での「風で揺れる草原」生成

●利用システム:自作BlenderアドオンBlenderChatGPTUI版(gpt-5.5)

●プロンプト:新しいPlaneを作成し、Geometry Nodesで草原を作ってください。Plane上に2000本程度の草をランダム配置してください。草はカーブではなくメッシュで作成してください。高さはランダムにしてください。風で少し揺れるようにしてください。

●ChatGPTの作業方針:新規Planeを作成し、Geometry Nodesモディファイアで2000点をランダム生成して、メッシュ製の草ブレードをインスタンス配置します。高さ・向き・位置をランダム化し、Scene Timeを使ったSet Positionで草の先端ほど少し揺れる風表現を入れています。


「風で揺れる草原」生成結果(Blender画面)


自然言語による「風で揺れる草原」生成動画

●注記:生成したgeometry nodesは風で揺れるノードが本流につながっていなかったので、ライン1本を手作業で追加しました。それにより風で揺れるオブジェクトが完成しました。

2 メモ

geometry nodesでライン1本足りなかったという不備はあるものの、自然言語でgeometry nodesで「風に揺れる草原」がほぼ完璧に生成されました。感動です。恥ずかしいながら、自分は手作業で「風に揺れる草原」geometry nodesを組み立てる能力はありません。

このお題はChatGPT(web版)につくってもらったものです。

AIが、

* Distribute Points

* Instance

* Random Value

* Rotation

* Scale

を理解しているか調べる課題です。

自作Blenderアドオンが十分にChatGPT機能を発揮していることを確認しました。ChatGPTがgeometry nodesに弱いのではないかという自分の見立ては間違っていたようです。

3 説明(自然言語でオブジェクトが生成する仕組み)

Blenderアドオン(人がプロンプト(自然言語)入力)-OpenAI(プロンプト解析、作業方針とPythonスクリプト生成)-Blenderアドオン(作業方針とPythonスクリプト生成表示)-人(Blenderアドオンで、作業方針とPythonスクリプト確認、Pythonを走らせる指示)-パソコン内Blender(Pythonスクリプトに基づきオブジェクト生成)


2026年7月10日金曜日

自然言語による3Dシミュレーション作成 自作Blenderアドオンの使い勝手 その4

 Creating 3D Simulations via Natural Language: Usability of a Custom Blender Add-on – Part 4


I created a 3D particle simulation in Blender using Geometry Nodes driven by natural language. The very fact that a 3D simulation can be realized by constructing Geometry Nodes through natural language is astonishing.


自然言語により、Blender geometry nodesで粒子の3Dシミュレーションを作成しました。自然言語でgeometry nodesが組まれ、3Dシミュレーションが実現すること自体が驚きです。

この記事は2026.07.08記事「自然言語によるBlenderマテリアル設定 自作Blenderアドオンの使い勝手 その3」の続きです。

1 3Dシミュレーション作成例 1

●プロンプト:新しくオブジェクトを作って、ジオメトリノードで、シミュレーションノードを使ったパーティクルをつくってください。

●ChatGPTの作業方針

新規オブジェクトを作成し、Geometry Nodesモディファイア内にSimulation Input / Simulation Outputを含む簡単なパーティクルシミュレーションを構築します。タイムラインを再生すると、ランダム配置された粒子が毎フレーム下方向へ移動します。


シミュレーション作成結果(Blender画面)


シミュレーション動画

このプロンプトは次のめねがさんYouTube動画(【Claude】AIがBlenderを操作! どこまで出来るかクリエイターが検証してみた & 使い方を徹底解説!【革命】)におけるClaude Blender MCPによる3Dシミュレーション作成事例と比較するために、同じプロンプトを利用させていただきました。


めねがさんYouTube動画における3Dシミュレーション作成事例

geometry nodesにより3Dシミュレーションを作成する技術が自分にないので詳細はわかりませんが、素人見で、この例ではBlenderChatGPTUI版よりClaude Blender MCPの方が質が少しだけ高い結果になっているように見えます。

2 3Dシミュレーション作成例 2

●プロンプト:新しくオブジェクトを作って、ジオメトリノードで、シミュレーションノードを使って、粒子が上方四方に飛び出して落下するパーティクルシミュレーションをつくってください。

●ChatGPTの作業方針:新規オブジェクトにジオメトリノードモディファイアを作成し、Simulation Input / Simulation Output ノードを含むノードツリーをPythonで構築します。粒子は点として生成され、初期速度で上方・四方へ飛び出し、シミュレーション内で重力により落下します。実行後はタイムラインを1フレーム目から再生してください。


シミュレーション作成結果(Blender画面)


シミュレーション動画

3 メモ

自然言語でgeometry nodesが組まれ、3Dシミュレーションが実現すること自体が驚きです。自分が望むシミュレーションの祖型を自然言語でつくることができるのか、できるとしたらどのようなステップを踏むのか、今後の課題です。


2026年6月30日火曜日

自作BlenderアドオンBlenderChatGPTUI版の実装

 Implementation of "BlenderChatGPTUI": A Custom Blender Add-on


To streamline the process of generating Python scripts with ChatGPT and executing operations in Blender, I have created and begun testing a custom add-on called "BlenderChatGPTUI." My goal is to develop it into a function-calling add-on.


ChatGPTによるPythonスクリプト生成→Blender操作をより効率的に行うために、自作BlenderアドオンとしてBlenderChatGPTUI版を作成し、試用し始めました。Function Calling型アドオンを目指しています。

この記事は2026.01.22記事「ChatGPTそのものをBlenderのアドオンにする」の続きです。

1 自作BlenderアドオンBlenderChatGPTUI版

自作BlenderアドオンBlenderChatGPTUI版のパネル

2 自作BlenderアドオンBlenderChatGPTUI版の挙動


自作BlenderアドオンBlenderChatGPTUI版の挙動 1

メッセージ欄に「"G:\test\aaa.csv"を点群(メッシュ)でBlender4.4.3にインポートしてください。」を書き込みました。


自作BlenderアドオンBlenderChatGPTUI版の挙動 2

SendをクリックするとPythonスクリプトが生成されます。


自作BlenderアドオンBlenderChatGPTUI版の挙動 3

Run generated scriptをクリックすると3Dビューポートに点群(メッシュ)が生成し、アウトライナーにメッシュ名が表示されます。


自作BlenderアドオンBlenderChatGPTUI版の挙動 4

Open Chat Logをクリックするとテキストエディターにログが表示されます。

Pythonスクリプト、ログ共にテキストエディターに名称案が表示されていますので、テキストエディター機能を使って書き出すことが出来ます。

3 改善と目指す方向

ChatGPTでBlenderPythonスクリプトを作成する行為の効率化を目指してアドオンBlenderChatGPTUI版を作成しました。当面様々な実務にこのアドオンを使って、出来ること、出来ないこと、使い勝手など課題を抽出して改善します。当面はエラーが出た時や機能が実現出来なかった時の対処方法について検討、改善します。

UI版が安定したら、本命であるFunction Calling版作成に取り掛かります。最終的には考古学・実測図専用Agent型を目指します。