美味しい焼き鳥屋さん

初心者による技術系のメモ

人生で初めてBlenderアドオンを作ったときの話 

 

 

Blenderをアドオンを作っている話

 

Blender上にカメラのリストを作るアドオンを作成しました。

とてもありがたいことに大手CGニュース&ツール情報サイト 3D人(すりぃでぃんちゅ)さんに取り上げていただきました。

3dnchu.com

始めてのアドオン制作なのに多くの方に興味を持っていただけてとても感謝の気持ちでいっぱいです。 

前置きはこれぐらいにして…今回初めてBlenderでアドオンを作りにあたって躓いたところや学習方法にフォーカスを当てて過去の自分のような「アドオンを作りたいけど、挫折ポイントが多すぎる!!」の方のお力になれればと思い投稿させていただきます。

Pythonの勉強方法

アドオンを作るにあたって言語であるPythonをある程度知っておかなければなりません。

書籍や動画、様々な媒体で学ぶ方法がありますが、私が選んだのは「Paizaラーニング」でした。

以前まではPython入門編が無料で閲覧できたので全力でオススメしたかったのですが、この記事を書いている段階で有料会員向けのコンテンツになっていました。

 

Paizaラーニングの次に大変お世話になったのは下記の動画です。

youtu.be

 

実際問題、今回のアドオン制作をするにあたって必ず必要な知識が「データの型」「リスト」「if文」「for文」「関数」「クラス」の内容がなんとな~くわかっていれば作れましたので、この動画を数回往復しておけば何となく行けると思います。

コードの書き方よりもどのタイミングでその知識を使うのか を理解するのが大事でした。

 

作業環境

アドオンはある程度のプログラムをしないと完成しません。本当にプログラミング初心者だった私は「環境構築」に一番苦労しました。

 

コードエディタ

→プログラムを書くツールです。

1.Blender

 Blenderにもテキストエディタが搭載されているため、Blenderそのものでプログラムを書くことが可能です。 ただ、プログラムを書くための機能ではないため、色々と大変です。

2.Visual Studio Code

 よく宗教戦争が起こっていますが、私はVSコードでアドオンを作りました。

単純にプログラミングをするための機能だったりがとても使いやすかったので、特にこだわりが無ければVSコードで開発することをお勧めしたいです。

 

ということでコードエディタはVSコードを選びました。

また、VSコードを利用するにあたって下記のBlender向けの機能がおすすめですので紹介させていただきます!

 

fake - bpy - module

github.com

後々またご紹介させていただきますが、nutti 氏が作成してくださったBlenderアドオン開発向けの機能になります。

機能としてはBlender標準bpy.○○ のコード補間を行ってくれます。

とても便利でした。(ただ、メインPCではうまく動作してくれずサブPCでは動作したので、サブPCでアドオン制作を行っていました)

 

 コードの管理方法

github.com

名前だけ聞いたことある「GitHub」を使ってコードの管理をしています。

単純にコードを上書きしていく運用でも勿論良いと思いますが、ことあるごとに記録できる(コミットと呼ばれている奴)「Git」の方が自分には合ってました。

 

また、Gitをコマンドベースで運用していくのも考えていましたが難しいことはしたくないので、「GitHub Desktop」を使ってGitの管理をしています。

desktop.github.com

Blenderのお話

ここからはアドオン制作の面から見たBlenderのお話です。

みんな大好きBlenderちゃんですが、アドオンを作るにあたって大きな注意点があります。

Pythonのバージョン問題

めったにいないと思いますが、相当前(Blender2.5xぐらい?)のBlender向けのアドオンを扱う場合はPythonのバージョンがPython2.x~のものになります。
(いわゆる2系 3系と呼ばれるやつ)

ちなみに今回のアドオン制作で使用したBlender2.93についてはPython3.9.2が使われているようです。

プログラムの記述方法が異なり、互換性がないので注意です。

 

Blenderのバージョン問題

 Blender2.7xとBlender2.8x~でスクリプト及びアドオンの記載方法が変更になっていますので注意です!

(ネットに転がっている情報が古いことがあります)

dskjal.com

Blender向けPythonの学び方

先ほどまでは「Python」というプログラミング言語についてのお話でしたが、次はBlender向けのPythonの学び方について書いていきます。

 

「エ、アドオンって Pythonデ カクンジャ エ…」状態だと思います。

確かに完全にPythonを理解していればいいのですが、これからプログラミングを勉強するもしくは勉強したばかりの方については「Blenderが読むためのPython」があるんだ!ぐらいの認識の方がアドオン制作にとっつきやすいと思います。

 

Blender API

docs.blender.org

 BLnederのAPIです。

これを読んで理解ができるなら苦労しません。

意味がわかってくると重宝します。(最初のうちは使いませんでした)

はじめてのBlenderアドオン開発

colorful-pico.net

colorful-pico.booth.pm

 

 冒頭に紹介させていただきました「fake-bpy-module」の制作者さまです。 

Blenderアドオン開発向けの日本語ドキュメントになりますので必読です。

また、Boothにて1000円で頒布されてますので支援させていただきました。

 

忘却まとめ

bookyakuno.com

機能を実装するにあたって躓く痒いポイントをピンポイントで解説してくださってることが多いサイトです。

 

dskjal

dskjal.com

Blenderユーザーの方は馴染み深いと思いますが、dskjal様のサイトです。

Blender2.7x→2.8x の対応やRNAプロパティとIDプロパティの話など大変助けられました。

 

MRが楽しい

bluebirdofoz.hatenablog.com

 「Blender2.9で利用可能なpythonスクリプトを作る」シリーズに大変助けられました。

 

實方佑介 先生

  コロナ化で全然開催ができていませんが、BlnedxJPの登壇内容です。

この頃はプログラミングについてチンプンカンプンでしたが「へぇ~!そう処理すればできるんだぁ~!」を目のあたりにした瞬間でしたので、人生上大きな経験ができたかなと

 

アドオン制作をする前に知りたかった知識

 1.操作するためのコマンド、ソースはBlenderにある!

f:id:t0rry:20210805232133p:plain

Blenderのinfoを開くと自分が操作した内容がプログラムで表示されます。

単純に操作を短縮する形のアドオンであれば、infoの内容をコピペするだけでほぼ完成します!

 

f:id:t0rry:20210805232325p:plain

また、各ボタンを右クリックし「ソースを編集」を押すことでソースコードを確認することができます。

f:id:t0rry:20210805232756p:plain

(開発者用オプションを有効にしないとソースを編集が表示されません)

 

f:id:t0rry:20210805235544p:plain

こんな感じでテキストエディタに表示されます。

 

2.困ったらPythonコンソール

f:id:t0rry:20210805235848p:plain

Pythonコンソールのオートコンプリートを使うことで候補が出てきます。

これとっても便利です。

 これを参考にBlenderAPIを閲覧することで各々の仕様を知ることができました。

 

3.テンプレートはテキストエディターに!

f:id:t0rry:20210806230445p:plain

 テンプレート→Python を選ぶことで様々な機能のテンプレートが閲覧できます。

このテンプレートと「ソースを編集」を使うことでやりたいことは大体できると思います。

 

最後に

 アドオン開発をするにあたって環境構築・言語学習・Blenderの知識などなど

相当労力が必要になることが実際に作成してみて深く実感しました。

 

既存の便利なアドオンを作成してくださったアドオン開発者の方により一層の感謝・尊敬の意を表して記事を終えたいと思います。