プリンのサンプルで学ぶBlender3.6
経緯
Blenderをまともに触れずにかなり経過してしまった
3.6という数字とBlenderの進化の速さに驚かされる
追いつくためにBlender3.6のGeometry Nodesのシミュレーション機能を試してみる
手始めに、Blenderのサイトにあるプリンのサンプルの中身を解析して学ぶことにした
プリンのサンプルを編集して遊ぶ
プリンのサンプルを少し編集して作ったもの
リグなどに対して、キーフレームを打ってアニメーションさせるより
計算でアニメーションさせるのが個人的に好きだ
かなりどうでもいいが、お皿は揺れの挙動(バネの挙動)をしないように修正したい
お皿の作り方「概要」
お皿の部分はGeometry Nodesでプロシージャルに作られている
全体の流れは、円を作って
円の一部を持ち上げて、お皿にしている
お皿の作り方「詳細」
以下のスクリーンショットを使って解説する
まず、Coneノードで円を作る
Radius Bottomを0、Depthを0にする、とコーンではなく円になる
円の中心からの距離を使って、お皿の縁を持ち上げる
Positionノードで各頂点の位置を取得する
Lengthノードに接続して、各頂点の中心からの距離を取得する
これをMap Rangeノードに接続する
右下の「白色の吹き出し」を見ていただきたい
距離が「1.760-~1.81」の部分が傾斜になる
1.76未満は、0になり
1.81以上は、0.26になる
この値が「持ち上げる量」となる
「持ち上げる量」をZ成分のみにして、Set PositionのOffsetに接続することで、お皿の縁部分が上に持ち上がる(Zのプラス方向に移動する)
注意点
この作り方をした場合、上側の面が裏面になり(赤)
下側の面が表面になる(青)
両方の面を描画する場合は問題ない
プリンのサンプルでは、表と裏で異なるシェーダーを設定している
プリンの作り方
以下のスクリーンショットを使って解説する
Curve Lineノードで、+Z方向に伸びる1mのカーブを作る
Resample Curveノードで、5分割して、5つのポイントを作る
Set Curve Radiusノードで、カーブの5つのポイントに対して、異なる半径を設定する
Spline ParameterノードのFactorで、カーブの開始点が0で、終了点が1になる値を取得する
この値を、Map Rangeノードで変換する
ToMinを0.9、ToMaxを0.5とすることで、開始点:下が0.9、終了点:上が0.5にすることができる
Curve To Meshノードを使ってメッシュにする
Profile Curveに円を設定することで、カーブに沿って円が連続でつながったメッシュになる
Fill Capsにチェックをつけて蓋をする
次回
Simulationについてもサンプルを見て、おおよそ理解できたので、次回、まとめることにする(肝心なところに行く前に力尽きてしまい、すみません)
マテリアルの設定も参考になりそうなので、余力があればまとめる
皿にこぼれたシロップもプロシージャルに作られている
さいごに
プリンのサンプルで、Geometry Nodesでメッシュが上書きされて見えないが、Geometry Nodesを無効にするとスザンヌ(チンパンジー)が登場する(ちょっとした隠し要素まであって面白かった)