井戸底より

とりとめのない散文、水底に沈んだ駄文

GeometryNodesでインボリュート歯車を作ろう

🍮買ってからブログを一年放置してました。基板は届きましたがまだ改造していません。自作キーボードも塩漬けしてます。草

GeometryNodesの練習で歯車を作ってみました。あまり作例がネットに転がってなかったのとネタになりそうだったのでブログに書くことにしました。

 

2.93~3.0でめっちゃ更新入ってたり機能も開発中で色々戸惑いましたがいい感じに作れた...

と思いきやそんなことはなかった

f:id:tevasan:20211228004812p:plain

うんち

はい。ポリ割りがダメダメです。

 

同一平面上でブーリアンかけた時特有のポリ割りの崩壊が発生しています。まぁ設計のあたりをつける分には十分だし実際にモデルを使う際はその時に修正すればいいのでとりあえず放置します。三角面化するとポリ割りは改善しますが謎の穴が発生します。

何か良い方法あったらコメントまで

 

以下サイトを参考にしました。

How to Model Geometrically Correct (Involute) Gears in Blender

歯車の転位|小原歯車工業株式会社

 

2.79くらいの頃はOtvinta.comの歯車計算機に非常にお世話になってました。当時はAdd Mesh Extra ObjectsアドオンのMath Functionからインボリュート曲線を生成して複製して...と面倒な手順を踏んで作っていました。

 

いちいち曲線から作らなくてもノードで一発で生成できるなんていい時代になったなあ...と言いたかったんですがポリ割りを直す手間を考えたら大して変わらない気がする...

 

ノードの中身は上のURLのYoutubeの手順をそのまま移植し、計算式は歯車計算機のhtmlソースと小原歯車工業さんのHPに書いてあることを写しただけです。特に難しい部分はありません。 

ただ一点、ジオメトリノード内で円周上に並ぶような配置を作るのに苦労しました。

f:id:tevasan:20211228010941p:plain

力技of力技

メッシュラインで(0,0,0)~(1,0,0)に頂点を配置

→ポイント化してインスタンスを作成

インスタンスのX座標を角度0~2πに変換して回転

→位置設定でインスタンス位置を(0,0,0)に戻す

 

という手順で円周配置しています。絶対もっといいやり方あると思うんですが...

 

NiagaraでいうところのExecutionIndexみたいな情報が取れれば楽になるんですがインスタンスの順序を取るのは現状では無理そうなので今後の更新に期待。

 

たぶんこの辺はGeometryNodes内で完結させるよりもモディファイアと組み合わせたり複数オブジェクトを使ってやる方が楽だしBlenderの設計思想としてはそちらの方が正道だと思いますがノードグループ一つで歯車ポンと出したかったのでこれでいいんだよ うん

 

ひととおり機能をさらってみましたがGeometryNodesの発展途上感と可能性を感じました。出来合いのモデルを良い感じにばら撒いたりモデル同士を組み合わせてのは現状でも十分可能で非常に優秀なツールですがプロシージャル生成周りやメッシュを直接弄るあたりの機能はまだまだ出揃っていないように思いました。

 

おわり