Blenderアドオン開発にAIアシスタントChatGPTを活用した実践的なケーススタディを紹介します。アドオンの開発過程で遭遇した問題を解決し、効率的な開発プロセスを実現。ChatGPTの有用性を検証し、AIと人間の協力による開発の可能性を探ります。
アドオン開発の実例を通じて、ChatGPTの活用方法や開発プロセスの改善点を考察します。
コンテンツ
アドオン開発のはじまり
本記事では、Blenderアドオン開発の新たな方法として、
AIアシスタントであるChatGPTを活用し「MPP-Material Pick & Paste-」というアドオンを作成した経緯とその過程を紹介します。
このアドオンは、Blender内でマテリアルを瞬時に取得しペーストできる機能を提供します。
こちらはチャット開始時の一文です。
実際の完成形とは少し内容は違っていますが、このようにやりたい事を明確にしていくと良いでしょう。
ChatGPTとのコラボレーション
開発初期段階からChatGPTを用いてアドバイスやコードの提案を受けることで、効率的かつ短期間でアドオン開発を進めることができました。ChatGPTは、状況に応じた適切な指示や修正案を提供し、プログラミングに関する問題を解決する上で大変有益でした。
問題と解決
アドオン開発の過程でいくつかの問題が発生しましたが、ChatGPTのサポートによって解決しました。例えば、ミラーモディファイアを使用した際にエラーが発生する問題や、編集モードでの選択面へのペーストがうまくいかない問題などがありました。これらの問題は、繰り返しのやり取りとコードの修正によって解決され、アドオンの完成に繋がりました。
- エラーの原因特定と解決方法の提案:
- エラーメッセージを解析し、原因となるコードの部分を特定
- 解決策として、コードの修正や追加を提案
- ミラーモディファイアに関する問題:
- ミラーモディファイアを使用したオブジェクトで、編集モードに入るとメッシュの実態がないため、面を取得できない問題
- 解決策として、編集モードを使わずに、オブジェクトデータに直接アクセスして面の情報を取得
- 複数のマテリアルスロットを持つオブジェクトへの適用問題:
- Pasteを適用した際、複数のマテリアルスロットが存在するオブジェクトに対して、正しくマテリアルが適用されない問題
- 解決策として、選択された面のマテリアルインデックスを正確に取得し、適切なマテリアルを適用
- エラー発生時の対応:
- IndexErrorやTypeErrorなどのエラーが発生した場合の対処方法を提案
- 適切なエラーハンドリングを行い、アドオンの安定性を向上させる
- ChatGPTによるミス:
- ChatGPTが提案したコードに誤りがあった場合、修正や再提案を行いました
- ユーザーからのフィードバックを受けて、正確な解決策を提供するよう努めました
これらの問題と解決方法は、Blenderアドオン開発における典型的な課題であり、ChatGPTとの協力によって効率的に解決が進められました。今回の開発プロセスは、AIアシスタントと人間が共同で取り組むことで、さまざまな問題に対処できることを示しています。
私の感想
私自身、ChatGPTと共にアドオン開発を行うことで、開発スキルや知識を向上させることができました。また、効率的に開発を進められるため、時間を節約することができました。ChatGPTの協力により、アドオン開発が新たな次元へと進むことを実感しました。
ChatGPTの感想
わたくしChatGPTは、質問者と共にアドオン開発をサポートすることができ、有益なコラボレーションを実現できたと感じています。このような実践的なプロジェクトで役立つことができることは、私たちAIアシスタントにとっても大変喜ばしいことです。
まとめ
この記事では、Blenderアドオン「Material Pick & Paste」の開発過程と、AIアシスタントであるChatGPTとの協力を紹介しました。開発において発生した問題は、ChatGPTのサポートを受けながら解決し、効率的な開発プロセスが実現されました。この経験から、AIアシスタントと人間が共同でプロジェクトに取り組むことで、新たな可能性が広がることを確信しました。
今後も、AIアシスタントを活用したBlenderアドオン開発やその他の分野でのコラボレーションを通じて、さらなる技術革新や創造力の向上につなげていくことを期待しています。この記事が、AIアシスタントを活用した新しいアプローチに興味を持つ皆さんにとって、有益な情報となることを願っています。
…とまぁここまでの記事内容も、ほぼ全部ChatGPTに作らせてみましたよ
…どおりでお硬い文章なわけだ
本当に簡単に開発できたの?
先程の記事内容だけを見ると、開発はスムーズに進行し、綺麗にまとまった感があります
実際のところは、想像していたよりも時間がかかったと感じています
実はこのアドオンを作る前に、全く別のアドオンを作ろうとしていましたが、断念したという経緯もあります
最初は別のアドオンを作ろうとした
何を作ろうとしたの?
機械学習を使ったUV展開(最適なシームを生成)するアドオンを作ろうとしました
多数のモデルのUVシーム状況を学習させ、学習モデルを構築
それをBlender上で読み取る所までは進行しました。
ただそれをアドオン形式で配布可能な体裁を整える際に、依存関係周りの構築がどうも上手くいかず、開発は難航…
少し多くを求めすぎたのかな…
依存関係のオンパレード…
更にそこから終わりの見えないChatGPTとのやり取りが続いたので中断し、完成させる事を目標に途中からシンプルなアドオンの開発に切替えました。
エラーが出ては修正の繰り返し
実行するとエラーが出て、そのエラーを伝えて修正案を貰い…
実行しエラーが出て、そのエラーを伝え…
ひたすら繰り返します。
基本的にやり取りの8割はこんな感じです
色々なエラーの状況をクリアしてようやく動作するようになります
それでも上手くいかない事が…
ChatGPTの情報が古い
これはある意味死活問題なんですよね
どうもBlenderの仕様が変わってたリすると対応出来ない気がします
Blenderの出すコードはあくまでも2021年9月の時点の開発に関するコードです。
実装内容によっては上手く動かない事もありえます
ChatGPTでアドオンを作るコツ
ではその上で、ChatGPTをでアドオン等を作る際に抑えておきたいポイントを紹介します
最小構成で進行させる
まずは全て最小限の構成から進めるのをおすすめします。
進行状況を的確に把握しながら確実に開発を進め、エラーが出てた際にピンポイントで修正を進めることが出来ます。
今回でいうと、まずプレファレンス画面とキー設定部分を先に構築させました。
そしてChatGPTの返信文字量にはある程度限界があります。
返答内容が長すぎると途中でChatGPTの反応がなくなります。
1つのファイルが大きくなり過ぎないようにファイルを分割すると進行しやすくなります。
アドオン登録部分とプレファレンス画面を構築する「__init__.py」
メイン処理の「mpp_main.py」
今回はこのように2つのファイルに分けて進めました
それでもやり取りが途切れることは多いですけどね…
これが多発すると地味にめんどくさい
処理単位で少しづつ構築する
ある程度、外枠が完成したら、あとは一つ一つ処理の部分を詰めていきました
この辺からアドオンとしてちゃんと動作するようになるので、少し楽しくなってきますね
コードは多少読めたほうが良い
私自身は、Pythonはかじる程度で、Blender特有の処理には疎いものの、他のスクリプトやシェーダー言語には慣れているので、実際にこのアドオン内で何が行われているのかはざっくりと把握出来ていました
逆に全くの無知だとどうなの?
スクリプトも何もかも無知な状態でアドオン開発をするとなると
少しハードルは高くなるかもしれません
上手くいかない場合は情報を与える
ということでそういう事を繰り返し、「MPP」アドオンが完成しました
完成アドオン「MPP -Material Pick & Paste」はこちら
ちなみにこのロゴっぽい画像、なんかあるとカッコいいかなと思いMidjourneyに生成させました
MPPと伝えてもなんか文字が増殖されちゃうので後でPhotoshopで加工してます
みなさんも是非ChatGPTでアドオン作ってみてね!
コメント