最大フレーム数1048574
さて、以前に記事にした「セルの片隅にコマ数とか秒数が乗っているヤツ」はドライバからあらかじめ用意した(Pythonの)関数をコールする形のものでした。
新しいバージョンのBlenderではGeometry Nodeで文字列を扱えるようになったので、その辺をうまいこと出来ないかな、と少しゴニョゴニョしてみました。使ったバージョンは 3.4.1。
それがこちら。1から最大のコマ数と対応する秒数をテキストとして3Dビューポートに表示させる感じです。
作っている過程で「コマ数の最大は1048574」というのが分かったので安直にもタイトルにしてみましたということですね。
以下何か解説チックな感じで書いてますが単純に"what I've learned"をメモっただけの代物です(にっこり)。
"h:mm:ss.nnn" を作りましょう。
最初の入力: Scene Time ノード
よく Value ノードに #frame と入力して計算するというのが古より伝わっていますが、最近のジオメトリノードではフレーム数と秒数を得るためのノードがあります。
時: "h"
Seconds ÷ 3600 を切り捨てて整数桁のみ文字列に、という形ですね。なのでこう。
分:"mm"
ノードの構成を先に。2桁固定、"00~09"の表示が必要となります。
秒数を60で割る
小数点以下を切り捨てる
60の剰余を得る
数値を整数部のみ文字列化する
先頭に"0"を追加する
上記4の結果から文字を切り出します。位置=文字長さ-2、長さ=2
秒.ミリ秒: "ss.nnn"
基本的に"mm"でやっていることと同じですね。数値から文字列にするときに小数点以下の3桁を含む指定をしているくらいが差分になりますね。
文字列をまとめる Join Stringsノード
さて、"h"、"mm"、"ss.nnn"の文字列が出来たのでこれをまとめます。間に":"を挟みたいので Delimiter=":"ですね。
文字を3Dビュー空間に表示させるためには?
さて、文字列として"h:mm:ss.nnn"の形になったので、これを3Dビュー上に顕現させましょう。文字列をフォントグリフをもとにしたカーブに変換し、さらにカーブで囲まれた箇所をフィルする、という流れでノードを組みみます。
文字は右寄せで。
結果
ファイル
置いておきます。多分明日になったら忘れている自分用。
どのノードがどんな機能かわかんねえ!
どうなんだろう、自分の場合は「ジオメトリノードやってる人がシェアしている情報を時間があるときに見て少しずつ試してみる」ことで理解(しようと努力)しているんですけど、さあどうなんでしょう、効率的なやり方は…。
Blenderはバージョンごとにジオメトリノード自体、ノードの仕様変更があるので割と追っかけるの大変ですね。まあ進化している証として受け取っておけば良いのでしょうけど。
公式が提供している Blender.today のストリーミングで昨日の概説とかもされていたりするのでアーカイブチェックするのも一つ、ですね。
たまに Tonさんが乱入してくる(?)回もあります、Blender.Today。
3.6からはシミュレーションノード…もうそろそろ3.6公式リリースですね。(RC版はデイリービルドから入手可能)
#geometrynodes ハッシュタグ
なお、Twitterでは #geometrynodes ハッシュタグ。11月になるとイベントありますね。
習得をブロックするもの
Blenderの話題でも、ジオメトリノードでも言えるっちゃ言える事なんですが、マイナーで情報が十分に無いものを学習するときに、一見親切に教えているような体をして「ただの胡乱な情報でした」というかレベルアップを阻害するような情報の提供の仕方をしているものを割と見かける気がする(特にTwitterでなんですけど、ぼかしているのはお察しください)ので、以下の2点、「ん?」と少しでも疑問に思ったらその自分の直感を信じてあげると良いでしょう。
「これだけやっておけば大丈夫です」の適用できる割合が低い
「○○は△△です」と定義しているスコープが違う、誤っている
ただ、独学の始めの段階では最初に見たものが正しいかどうかの判断がつかなくて、結果的にそれを正しいと思い込みがちではあるので、「可能であればメンターを付ける」とか「複数の情報を総合的に判断する」とかそういう「冷静かつ視野を広くする」というのが大事だと思います。
ひとこと
最近「フォローチャーン」っていうコトバを知りました。なるほど。
See Also:
お読みいただきありがとうございます。サポートいただいた分はおやつのグレードアップに使おうかと思います。スキ、SNSにシェアもよろしくお願いします!