見出し画像

Blender Geometry Nodesの理解と学習方法

BlenderのGeometry Nodesについて、自分なりに少し理解できるようになってきました。いくつか試した上での理解方法や解釈の仕方など、Geometry Nodesの学習方法をメモしてみました。


YouTubeの作例やチュートリアルを真似る

最初は、Youtubeのチュートリアルや作例を見ながら模倣する事から始めました。Youtubeにアップした「蛍が集まるキャンプ」という作品は、Geometry Nodesを使って蛍の光を表現していて、これはいくつかのYoutubeの作例をもとに組み合わせて制作したものになります。

学習を始めて最初のほうは、Geometry Nodesで代表的な、地形の生成などを試みました。しかし、作例のとおりに完成できるものもあれば、できないものがありました。完成できない場合、共通の挫折点は「Nodeの処理が複雑になって途中で理解できなくなる」点でした。

また、Geometry Nodesは急速に進化していて、Blenderのバージョンによっては、チュートリアルで使用されているNodeが別の機能に名前ごと変更されているケースが多く見られました。そうなると、チュートリアルで使っているノードが、別のノードにどう変わったのかが分からなくなり、詰まるケースが多かったです。

また、Geometry Nodesを理解する上で一番のネックだったのは、体系的な学習教材が少なく、Udemyにも体系だって学べる良い講義が当時は見つからなかったというのが背景にありました。

Geometry Nodesを体系だって学ぶ

自分は、後述の書籍紹介で触れる技術書「Blenderジオメトリノードではじめるプロシージャルモデリング」で体系的に学ぶことができました。

ネットで見られるGeometry Nodesに関する作例の情報は確かに豊富ですが、Geometry Nodes自体の解釈と体系的な学習についての情報は少なく「ノードの意味と機能はわかるけど、組み合わせて何ができるかがわからない」という状態が続きました。

Youtubeなどで視聴できる豊富な作例、それを真似るだけである程度のアウトプットができるというのは素晴らしい時代だと思います。しかし、体系的な理解がなければ、動画制作している作者の意図したものは作れますが、自分自身の意図したものは作れないという、贅沢な課題があったりもします。自分がこれまで、Blenderの習得やAWSの学習で感じた事は、時間をかけてでも本を一冊完全に理解する、またはハンズオンで講義を完全に終えて演習を完成させるという学習体験を踏むことです。

技術書の読了と実践や、Udemyなどの講義と演習は、確かに時間はかかりますが、一度でも通してやりきると、ソフトウェア全体を理解する基礎になるので良い経験だと思いました。Blenderには資格はありませんが、AWSに関しては初級の資格を通してやりきったことで、クラウド全般に関する理解が深まったりしました。

自分なりのGeometry Nodesとノードの解釈

Geometry Nodesとシェーダーは、「左からノードを並べて線をつないで右につなげる」「インプットとアウトプットの始点終点の間にノードを入れる」が基本的な概念です。しかしこの「左から右」という概念の理解にすごく苦労しました。

当初、Geometry Nodesを「ビジュアルで表現されたプログラム」と解釈していましたが、ノードが左から始まり、分岐して並列に流れ、時には合流し、源流のノードから値が流れてくるという考え方が、プログラミングの概念と合わず、この差分をうまく理解できずに混乱しました。

プログラムは基本的に「上から下へと流れる」のが原則です。JavaやC#のようなオブジェクト指向プログラミングにおいて、別のクラスに処理が移る場合でも、基本的には呼び出し元の処理は「上から下」に動いていくので、並列には動作せず、現在より前の処理から、差し込まれるように値が渡されることはありません。また、プログラムのif文とGeometry Nodesの分岐とは大きく異なるのですが、最初は同じような分岐と理解していたのも、混乱する原因でした。

後述する「Blenderジオメトリノードではじめるプロシージャルモデリング」を読んでいて、ふとしたきっかけでGeometry Nodesを理解できました。Geometry Nodesは、川の水源地から下流までの水の流れに似ていると認識したときでした。つまり、水が分岐して並行に流れ、支流が結局は一つの河口につながるという概念です。

これに加えて、Blenderには「タイムライン」つまり時間の概念があり、それが左から右へと流れる川に並行する形で、時間軸が存在していると理解しました。

この「並行する処理と、時間軸の概念」をあわせて理解したことで、Geometry Nodesを体系的に理解できる基礎がやっと固まった気がします。

※ この作品は、配置したノードを自分の中できちんと理解して表現できたはじめての作品になります。

技術書「Blenderジオメトリノードではじめるプロシージャルモデリング」

2023年12月に、ボーンデジタル社から「Blenderジオメトリノードではじめるプロシージャルモデリング」という書籍が発売されました。

私はこの書籍を参考にして、体系的にGeometry Nodesを学習しました。情報がまだ少ない中で順序立てて学習できるため、私にとっては非常に価値がありました。

ただ、この書籍はメリット・デメリットがわりと明確で、読み進めるには少し癖が強いと感じました。以下、まとめてみました。

良かった点

  • Geometry Nodesについて体系だった学習ができるので、応用力が身につきました

  • Geometry Nodesに含まれるたくさんのノードの中から、頻繁に使用する主要なノードを選び、作例紹介や演習が記載されています。同じノードを何度も使用することで理解が深まりました。

  • Geometry Nodesを使用したシンプルな作品を作りますが、想像力次第でいろいろ応用が効かせられるので、作例の発展性が高いです。

  • 全体を一通り作成した後、YouTubeなどのチュートリアルを見て、何をしているのかを理解できるようになります。英語インターフェイスでも日本語インターフェイスでも「この表現ならこれを使うのかな?」と理解できるので、Youtubeのチュートリアルの理解度も高まりました。

  • Geometry Nodes系のアドオンを購入した場合、カスタマイズやパラメータの変更が可能です。プロパティウィンドウからのパラメーター入力だけではカスタマイズが完全には出来ないため、Geometry Nodes系アドオンの性能をさらに引き上げることができました。

難解に感じた点

  • 原著が海外のもので、訳文が難解で理解しにくい箇所が複数ありました

  • 画面のキャプチャの解像度が非常に低く、Kindleで拡大してもどのノードを使用しているのか判断できませんでした。特に、ノードの名前が判別できないくらいボヤケているのは苦労しました。

  • 説明が不足している部分があり、細部を読み込み、行間を推測しなければならない場所が多く、書籍の最初の方で挫折する可能性がありました。上記の「読みづらさ」を乗り越えたうえで、作例を1つ2つ、実際につくってみると解決するハードルではあります。

これは書籍や訳者の問題ではない気がしました。海外のチュートリアルやドキュメントでは「行間を読む」「画面に情報が収まりきっていない」「手が早いので重要な部分が秒で過ぎ去っていく」といった状況が多い気がします。そのため「非常に優れた先輩の仕事を隣で観察する」または「優れた先輩がOJTで指導してくれるが、作業が速いので必死にメモを取る」という姿勢が、海外の教材や技術書をもとに学習を進めるのに役立つ気がします。

個人的には「説明が丁寧で挫折ポイントも少ないけど、苦労や挫折がないので、技術が身につかない」よりも「内容が難しく、挫折ポイントも多くあるけど、やりきれば深く学べるし、技術が血肉になる」という技術書が好きなので、個人的にはこの書籍を買って本当に良かったと思っています。


Blederの作例はYoutubeにまとめているので、良かったらチャンネル登録よろしくおねがいします。


この記事が参加している募集

仕事について話そう

この記事が気に入ったらサポートをしてみませんか?