3DCGで何をどう作るか考え中

ZbrushとBlenderの使い方、ヒント、コツなど。たまにZbrushプラグイン開発も。

初心者のためのBlenderアドオン開発マニュアル執筆と、Zbrushとの連携

(約 4,300文字の記事です。)

f:id:yamato-tsukasa:20210731025411p:plain

ここしばらくブログを更新できていなかった理由はBlenderアドオン開発のための試行錯誤に全力投球だったから。Blender APIやPythonの学習に集中していた。なのでアウトプットしている余裕がなかった。今回、作りたいBlenderアドオンのアルファ版が完成し、一段落付いたのでブログを更新します。

対象読者はBlenderのアドオン開発に興味のある人、及びZbrushユーザー、Blenderユーザーです。

初心者向けの情報がほぼゼロ

f:id:yamato-tsukasa:20210731030653j:plain

Blenderのアドオン開発はきつい。なぜならば、超絶初心者向けの情報がないからだ。だから体当たりで開発するしかなかった。その経過と、実際にアドオン開発できるまでの実力を身に付けるための記事をnoteで執筆した。

ネット上での「脱初心者向けや中級者向け」の日本語情報は結構ある。日本語で調べられる大抵の情報にはアクセスした。BOOTHの本も買ったし、英語のKindle本も買って読んだ。だが分からないことのほうが多かった

超絶初心者向けの情報がない。だったら自分で作ればいいじゃないか!というわけで書いた体当たり記事。

Blenderのアドオンは素人でもすぐに作れる!基礎から解説|大和 司 2nd|note

最初は本当に、イライラした。1つの結論を得るのに3~4時間かかったりもした。わけが分からない。なんなんだ、それ?そういう状況が1週間続いた。本当にキツかった。

おそらくBlenderアドオン開発者の誰もがそう感じることだろう。たったそれだけのことができない、やり方が分からないってね。

リファレンスじゃなくて「分かりやすい解説」が必要

リファレンスなら公式のマニュアルがある。

Blender 2.93.2 Release Candidate Python API Documentation — Blender Python API

だが見てみれば分かる。「初心者に分かりやすいように書いていない」。リファレンスなので、辞書的。だが、英和辞書だけで英会話ができるようにならないことは誰でも知っている。

なので、リファレンスがポンッとあるだけでは何の役にも立たない。

少なくとも初心者にとっては、本当に、何の役にも立たなかったんだ……。

他人のソースコードが読めない

リファレンスも役に立たないならば、既存の動くソースコードから学習するしかない。

f:id:yamato-tsukasa:20210731031029p:plain

だがしかし!他人のソースコードが全く読めない。何が書いているのかサッパリ分からない。Pythonの知識が無いからか?そう思ってPythonの教科書を読んで、基礎知識を補充した。だが分からない。何なんだ?Blender APIって?

本当に1週間ほどは、情報収集と理解と実践に費やした。1つ引っかかるとそこから先が分からない。それがコーディングだ。だが、Blender APIは本当に分かりにくい。

なので、手に入る情報を片っ端から吸収していった。いくつかの有料教材も買ったが、満足のいく「素人向けの分かりやすい情報」がなかった。全て「脱初心者以上や中級者向け」の実践的な情報ばかりなのだ。



ちがう、違う!そうじゃない!!!初心者が欲しい情報はそれじゃない。

だから違うんだって!別に「キューブを追加」したいわけじゃない。「キューブをX軸に移動させたいわけじゃない」。そんなのShift + Aですぐにできるんだから!G + Xでできるんだから。

やりたいことはそれじゃない!!!

当マガジンではそういうくだらないことを実現させてドヤ顔するための文字列は使っていない

そこから得られる「どんなことに応用できるか」が重要なんだ。

素人の、素人による、素人のための情報源

だったら自分で作るしかない!そう思った。Pythonすら知らないド素人が、Blenderのアドオンを作るのだ。その試行錯誤や失敗談は、きっと、これからの「超絶ド素人」がBlenderアドオンを作る上できっと役に立つ。そう思ったからこそ、このマガジンを作ろうと思った。

Blenderのアドオンは素人でもすぐに作れる!基礎から解説|大和 司 2nd|note

実際にアドオンを作れたよ!

今回の記事の言いたいことはこれ。知識ゼロから、思い通りのBlenderアドオンを作れたのだ。まだエラー処理などないので「素人の他人に使わせても堅牢に動くレベル」ではないが、とりあえず、自分が自分専用に使う「エラー処理無し」の、仕様上の動作のみ正常に動くアドオンは、上記マガジンの知識で作り上げることができた。

f:id:yamato-tsukasa:20210731025411p:plain

本当に、本当に、最初はソースコードが全く読めなかった

bpy.context.scene. ~ なんの呪文ですか?と。

だが今回、実際にゼロからのコーディングで、自分のイメージ通りの挙動のアドオンを作ることができた。これは誇れることだと思った。そして上記のマガジンにはそこに至るための全ての「私が仕入れた知識」が書いてある。

もう車輪の再発明は必要ない。

上記マガジンを読めば、誰でもすぐに「実践的なBlenderアドオン」を作れる。

もちろん、パーフェクトな正しい知識ではない。それを求めたら百科事典を書くことになる。「リンゴとは何か?」を知るために百科事典を第1巻から最終刊まで読破する必要はないことは明らかだ。必要なのは百科事典の知識ではなくて「リンゴとは○○である」という簡潔な答えだけなのだ。だから上記のマガジンでは、リファレンス的な無駄な詳細はカットして「要するに何?」に特化したマガジンに仕上がっている。

ZbrushとBlenderとの連携の未来

f:id:yamato-tsukasa:20210714223638j:plain

少なくとも、私は今、Zbrushのプラグイン開発による自由な空と、Blenderのアドオン開発という自由な空の、2つを手に入れた。これらの2×2は無限大だ。4じゃない。やれることが4つじゃないから。それだけのポテンシャルを手に入れた。

悪いことは言わない。今Zbrushオンリーのプロは、今すぐにBlenderを学び、リグ入れとウェイト塗りくらいを身に付けた方がいい。

GoBアシストツールV3(メッシュをZbrushとBlenderで往復させるWindows専用プラグイン) - YAMATO Tools - BOOTH

ZbrushとBlenderとの連携はもうできている。そこにリグポージングが入ってくるのだ。そして色んなことがZbrushとBlenderとで往復できるようになる。少なくともそれの一部を実現するアドオンが、アルファ版として完成している。私はこれを自分でも使うつもりでいるし、近い将来には公開する予定でもある。

もう、BlenderによるリグポージングとZbrushによるスカルプトは、実用的なレベルで可逆性を持った上で完全に連携したも同然なのだ。それを「数十秒」で、ボタン2, 3クリックで実践するライバルがすぐに現れる。プロの競争相手はプロであるが彼等は「数分程度」でポーズ変形するレベルに達しているのだ。多く見積もってもポーズ変更に20分以上使うことは無いと思った方がいい。

もうマスク+マスクブラー+ギズモによる「1関節単位のポージング」をしている場合じゃない。

それだけは断言しておく。



詳細は今後の記事にご期待下さい。





今回の創作活動は約1時間15分(累積 約2,515時間)
(744回目のブログ更新)

筆者はAmazonアソシエイト・プログラムに参加しています。(AmazonアソシエイトとはAmazon.co.jpの商品を宣伝し所定の条件を満たすことで紹介料をAmazon様から頂けるという大変ありがたい仕組みのこと。)
以下のリンクを経由してAmazonで何かを買うと購入額の1~3%ほどのお小遣いが私に寄付されます(笑)