見出し画像

Labs Unreal Pivot Painter を読む

Unreal Pivot Painter ノードの機能を知りたい

ドキュメントによれば Pivot Painter には Motion Mask に該当するアトリビュートを追加できるらしい。
これは Unreal Engine のドキュメントに記載されている Custom Alpha Value と同等で、これに速度などのデータを入れることで、更に複雑な表現ができそうだ。

この Motion Mask はAlphaというアトリビュートで出力される。Unreal Pivot Painter ノードで生成されるが、困ったことにジオメトリのインプットにAlphaを接続しようが、ピボットのインプットに接続しようが、出力されるAlphaの値が変わることはない。ドキュメントにも特に情報がないので、Unreal Pivot Painter ノードの中を読んで見ることにした。

Alphaの値があるが常に1.0
このままではデータとして使えない

ノードの読み方

一部のノードはダブルクリックで開いて中を読むことができる。
また、Allow Editing of Contents で編集することも可能。
(編集状態にしたほうが ディム表示ではなくなるので見やすい)

Labsなどのノードは編集することができる

今回はどこでAlphaアトリビュートが作られているか読めば良い。Houdiniはアトリビュートの変化を見るのは非常に簡単なので追っていくと、Unreal Pivot Painter の中の Unreal Pivot Painter 、さらにその中のPIVOTPAINTER_1.0という Attribute Wrangle で作られていることがわかる。

Alphaが作られているこのタイミングを見つければいいだけ!簡単!
どうやらこのノードで作っているらしい

Attribute Wrangle の関連しそうな箇所を探してみると、VertAlphaという変数があり、VertAlphaは頂点カラーのRチャンネルを使っていることがわかる。
えええぇ…(どこかに書いてくれ…)

//PROCESSING
float VertAlpha = vector(point(0, "Cd", @ptnum)).r; //len(vector(point(0, "Cd", matchingPoint))) > 0.0 ? 1.0 : 0.0;

//Set Motion Mask
f@`chs("../motionMask")` = VertAlpha;

頂点カラーを与えてみる

予測通り、ジオメトリに頂点カラーをランダムに与えると、Alphaの値が変化した。

Alphaの値を変化させることができた

いいなと思ったら応援しよう!