Blenderをアドオンを作っている話
【告知~!】
— と り🐔 (@t0rry_) 2021年8月3日
Blenderアドオン作ってみました!
【Camera List】
1.シーン上に単純なカメラが配置できる
2.シーン上のカメラのリストを作成できる
↑ ここが目玉!
3.リストに登録したアイテムをカメラビューにすることで視点移動できる
4.その他 色々と仕込み中
→https://t.co/OBaQnW0CeP pic.twitter.com/FUZCg27QuY
Blender上にカメラのリストを作るアドオンを作成しました。
とてもありがたいことに大手CGニュース&ツール情報サイト 3D人(すりぃでぃんちゅ)さんに取り上げていただきました。
始めてのアドオン制作なのに多くの方に興味を持っていただけてとても感謝の気持ちでいっぱいです。
前置きはこれぐらいにして…今回初めてBlenderでアドオンを作りにあたって躓いたところや学習方法にフォーカスを当てて過去の自分のような「アドオンを作りたいけど、挫折ポイントが多すぎる!!」の方のお力になれればと思い投稿させていただきます。
Pythonの勉強方法
アドオンを作るにあたって言語であるPythonをある程度知っておかなければなりません。
書籍や動画、様々な媒体で学ぶ方法がありますが、私が選んだのは「Paizaラーニング」でした。
以前まではPython入門編が無料で閲覧できたので全力でオススメしたかったのですが、この記事を書いている段階で有料会員向けのコンテンツになっていました。
Paizaラーニングの次に大変お世話になったのは下記の動画です。
実際問題、今回のアドオン制作をするにあたって必ず必要な知識が「データの型」「リスト」「if文」「for文」「関数」「クラス」の内容がなんとな~くわかっていれば作れましたので、この動画を数回往復しておけば何となく行けると思います。
コードの書き方よりもどのタイミングでその知識を使うのか を理解するのが大事でした。
作業環境
アドオンはある程度のプログラムをしないと完成しません。本当にプログラミング初心者だった私は「環境構築」に一番苦労しました。
コードエディタ
→プログラムを書くツールです。
1.Blender
Blenderにもテキストエディタが搭載されているため、Blenderそのものでプログラムを書くことが可能です。 ただ、プログラムを書くための機能ではないため、色々と大変です。
よく宗教戦争が起こっていますが、私はVSコードでアドオンを作りました。
単純にプログラミングをするための機能だったりがとても使いやすかったので、特にこだわりが無ければVSコードで開発することをお勧めしたいです。
ということでコードエディタはVSコードを選びました。
また、VSコードを利用するにあたって下記のBlender向けの機能がおすすめですので紹介させていただきます!
fake - bpy - module
後々またご紹介させていただきますが、nutti 氏が作成してくださったBlenderアドオン開発向けの機能になります。
機能としてはBlender標準bpy.○○ のコード補間を行ってくれます。
とても便利でした。(ただ、メインPCではうまく動作してくれずサブPCでは動作したので、サブPCでアドオン制作を行っていました)
コードの管理方法
名前だけ聞いたことある「GitHub」を使ってコードの管理をしています。
単純にコードを上書きしていく運用でも勿論良いと思いますが、ことあるごとに記録できる(コミットと呼ばれている奴)「Git」の方が自分には合ってました。
また、Gitをコマンドベースで運用していくのも考えていましたが難しいことはしたくないので、「GitHub Desktop」を使ってGitの管理をしています。
Blenderのお話
ここからはアドオン制作の面から見たBlenderのお話です。
みんな大好きBlenderちゃんですが、アドオンを作るにあたって大きな注意点があります。
Pythonのバージョン問題
めったにいないと思いますが、相当前(Blender2.5xぐらい?)のBlender向けのアドオンを扱う場合はPythonのバージョンがPython2.x~のものになります。
(いわゆる2系 3系と呼ばれるやつ)
ちなみに今回のアドオン制作で使用したBlender2.93についてはPython3.9.2が使われているようです。
プログラムの記述方法が異なり、互換性がないので注意です。
Blenderのバージョン問題
Blender2.7xとBlender2.8x~でスクリプト及びアドオンの記載方法が変更になっていますので注意です!
(ネットに転がっている情報が古いことがあります)
Blender向けPythonの学び方
先ほどまでは「Python」というプログラミング言語についてのお話でしたが、次はBlender向けのPythonの学び方について書いていきます。
「エ、アドオンって Pythonデ カクンジャ エ…」状態だと思います。
確かに完全にPythonを理解していればいいのですが、これからプログラミングを勉強するもしくは勉強したばかりの方については「Blenderが読むためのPython」があるんだ!ぐらいの認識の方がアドオン制作にとっつきやすいと思います。
Blender API
BLnederのAPIです。
これを読んで理解ができるなら苦労しません。
意味がわかってくると重宝します。(最初のうちは使いませんでした)
はじめてのBlenderアドオン開発
冒頭に紹介させていただきました「fake-bpy-module」の制作者さまです。
Blenderアドオン開発向けの日本語ドキュメントになりますので必読です。
また、Boothにて1000円で頒布されてますので支援させていただきました。
忘却まとめ
機能を実装するにあたって躓く痒いポイントをピンポイントで解説してくださってることが多いサイトです。
dskjal
Blenderユーザーの方は馴染み深いと思いますが、dskjal様のサイトです。
Blender2.7x→2.8x の対応やRNAプロパティとIDプロパティの話など大変助けられました。
MRが楽しい
「Blender2.9で利用可能なpythonスクリプトを作る」シリーズに大変助けられました。
實方佑介 先生
#BlendxJP で登壇したスライドだよ!みてね!
— 實方佑介 (@YusukeSanekata) 2018年11月4日
制御せよBlender! blenderとpython なんでも、どこまでも ——定型処理からワークフローアドオン、サーバーサイド実行まで——https://t.co/NE3oszyGgS
コロナ化で全然開催ができていませんが、BlnedxJPの登壇内容です。
この頃はプログラミングについてチンプンカンプンでしたが「へぇ~!そう処理すればできるんだぁ~!」を目のあたりにした瞬間でしたので、人生上大きな経験ができたかなと
アドオン制作をする前に知りたかった知識
1.操作するためのコマンド、ソースはBlenderにある!
Blenderのinfoを開くと自分が操作した内容がプログラムで表示されます。
単純に操作を短縮する形のアドオンであれば、infoの内容をコピペするだけでほぼ完成します!
また、各ボタンを右クリックし「ソースを編集」を押すことでソースコードを確認することができます。
(開発者用オプションを有効にしないとソースを編集が表示されません)
こんな感じでテキストエディタに表示されます。
2.困ったらPythonコンソール
Pythonコンソールのオートコンプリートを使うことで候補が出てきます。
これとっても便利です。
これを参考にBlenderのAPIを閲覧することで各々の仕様を知ることができました。
3.テンプレートはテキストエディターに!
テンプレート→Python を選ぶことで様々な機能のテンプレートが閲覧できます。
このテンプレートと「ソースを編集」を使うことでやりたいことは大体できると思います。
最後に
アドオン開発をするにあたって環境構築・言語学習・Blenderの知識などなど
相当労力が必要になることが実際に作成してみて深く実感しました。
既存の便利なアドオンを作成してくださったアドオン開発者の方により一層の感謝・尊敬の意を表して記事を終えたいと思います。