ビボロク。どこかで誰かのためになるWebのTIPS・ノウハウ。備忘録として残しておきます
   
           

【geometry node】ジオメトリノードで正確な時計を作る【サンプルファイル配布中】

  • 投稿日/更新日
  1. home
  2. blender

たとえばBlenderで部屋を作って壁時計なんかを飾ったとき、針の角度は正確に表示したくなりますよね(よね?)。ってことで、ジオメトリノードで時計を正確に動かしてみましょう。サンプルファイルは一番下にあります。

用意するオブジェクト

今回用意するオブジェクトは時計本体・長針・短針の3つ。原点を時計本体は中心に、針は底辺の中央に設定しておきます。

ジオメトリノード

時計本体にジオメトリノードを作成します。ノードは下記のとおり。

クリックで多少拡大します

グループ入力を追加する

まずはノードグループのグループ入力に項目を追加します。グループ入力ノードを選択してサイドパネルのグループソケット+ボタンで追加できます。

時間を管理するソケットは「hour」という名前にしました。0時から11時までを指定するので、タイプは整数で、最少は0、最大は11です。

分を管理するソケットは「minute」という名前にしました。0分から59分までを指定するので、タイプは整数で、最少は0、最大は59です。

ソケットを追加すると、モディファイアーのプロパティに表示されます。これでいちいちジオメトリノードの画面を開いて数値を変えなくてもよくなります。

分のノード

長針の角度は、1分ごとに6度(360度÷60分)進みます。なのでminuteで設定した値に「6」を掛け算(乗算)すればいいことになります。例えば37分なら6(度)×37(分)で222(度)が算出されます。ジオメトリノードでは角度ではなくラジアンで扱うことが多いので、これをラジアン変換します。軸角度の回転化は特定の軸だけ回転を制御できるノードで、座標軸を0・1・0と指定することでY軸だけに回転の数値が影響するようにできます。これをポイントにインスタンス作成に繋ぐことで、オブジェクト情報で設定した長針(オブジェクト名はminute hand)が回転します。

時のノード

短針の角度は、1時間ごとに30度(360度÷12時)進みます。なのでhourで設定した値に「30」を掛け算(乗算)すればいいことになります。ここまでは分と同じ考え方です。

0分であればこれでOKですが、分が進むと短針もじわじわと進んでいきますね。そこで、minuteで設定した値を短針にもプラスしていきます。1分進むごとに、1時間の範囲内である30度÷60分=0.5度が加算されていくので、minuteで設定した値に「0.5」を掛け算(乗算)します。

あとはこれらを加算ノードで足し算すれば、短針の角度が算出されます。

完成

あとは任意の数値を設定してあげるだけで、時計の針が正確なところを指すようになります。かなり簡単なノードですが、グループ入力の仕方や角度の制御など、ほかにも応用ができるものだとおもいます。

ファイルのダウンロード

フェンスのBlenderファイルはこちらからダウンロードできます。念のためにセキュリティスキャン等してくださいね。なお何かあっても責任は一切持ちません

サンプルファイルのダウンロードはこちらから

                   

備忘録として残しておきます。