toxikノード解説回です。今回は"Merge Streams"と"Extract Streams"の2つです。セットで使うことが多いと思うのであわせて解説です。Streamsとは、処理ラインとでもいいましょうか。複数の素材で、まとめて同じ処理をしたい場合、"Merge Streamsノード"を使うことで一旦ひとまとめにすることができます。処理後に再び素材をバラバラに分けるとき、"Extract Streamsノード"を使います。どんな時にこのノードを使うかと言うと、たとえば立体視の映像で右目用と左目用の画像をカラコレする際に、一旦"Merge Stream[...]
read more
今回は3dsMax回。3dsMaxのスキャンラインでAO素材を出力する方法。教えていただいたので備忘録もかねてです。サンプルシーンとして次のようなシーンを作成しました。①:マテリアルは標準マテリアルを使用。周囲光/拡散反射光を白に設定する。②:スカイライトを一つ作成。③:レンダラを”規定値のスキャンライン”に設定レンダリング設定のアドバンスドライティングをライトトレーサーに変更。④:レンダリングすると↓Vray使える時はVrayのElementsでAO素材を出力すればよいのですが、必ずしも常にVrayが使えるとは限らないので、こう[...]
read more
Houdini勉強回。Python SOPに実行ボタンをつける。例として、ボタンを押すと`hogehoge`とメッセージウィンドウを表示するPython SOPを作ります。1:Python SOPを作る & Python Codeを記述するPython(SOP)を作成します。ここでは、簡単なメッセージを表示するPython関数にしました。def message(): hou.ui.displayMessage("hogehoge")2:ボタンを作るボタンを作ります。Edit Parameter[...]
read more
Houdiniノード勉強回。Match Size(SOP)ノードを使うと、容易にオブジェクトを原点に配置できることを、最近知りました。使い方は簡単、Match Size(SOP)にジオメトリを繋ぐだけ。”原点に配置”したいって時、けっこうあるので、「ノードいっこで簡単にできたのか!」、と思った次第でした。Transform(SOP)のパラメータにある"Move Centroid to Origin"でも、ジオメトリを原点に配置できるのですが、それだとプロシージャルでないし(異なるジオメトリに適応できない)、かといってExpressionを書くのも面倒くさい。なので、[...]
read more
Houdiniノード勉強回。更新に困ったときの、こんなノードあったのか回。このノードは、任意の条件でエラーや警告を発生させられるノード。つまり自分ルールでErrorやWarningを追加できるってこと。エラーをねつ造もできそう。パラメータは少ない。"Number of Errors"発生させたいエラーや警告の数。"Error Message"表示させたいメッセージを記述。"Severity"重要度。Massage / Warning / Errorの3つから選ぶ。"Report This Error"値が0の時はデ[...]
read more
Houdini回ですぜ、旦那!今回はrippleです。こういうヤツ。波紋っぽいのを作るます、はい。ネットワークはこんな感じ。パーティクルと連携させていっぱい波紋を作ってみた。また、Ripple objectノードの”Use Deforming Rest”を有効にして、上ネットワーク例のメタボールを動かすと、こうなる。以上、文字少なめ、絵多めでおおくりしました。間違い等ありましたら、ご指摘を。では、また次回。使用バージョン:Houdini13[...]
read more
Houdini"こんなシェルフがあったのか回"。先日、シェルフに"Bake Constraint"なるシェルフを見つけて吃驚しました。シェルフの"Constraints"タブにありました。いつから、追加されたのだろう。名前の通り、CHOPsで作られたコンストレイントの動きをキーフレームにベイクしてくれる機能のようですね。例えば、こんな感じに球体の周囲を回る箱を作って、箱は常に球体の方を向くようにコンストレイントを設定したとします。Bake Constraintの使い方は簡単。ベイクしたいオブジェクトを選択して、シェルフボタンを押すだけ[...]
read more
Houdiniで迷路生成。前回とはまた違った手法で作ってみました。これHoudini上でのプレビュー。前回は通路を掘り進んでゆくような手法でしたが、今回は壁を構築してゆく手法です。この手法もいろいろやり方があるようですが、ここでは一番簡単そうなのを選びました。 図のようなグリッドで考える。まずグリッドの外側のマスに壁(緑)を、内側に1マス間隔でスタート地点(赤)を配置する。 スタート地点(赤)からランダムなマスを選択する。 現在のマスで上下左右の方向をランダムに選び、その方向の2マス先までを壁にして移動。 3を繰り返す 既存の壁[...]
read more
Houdini回。Wrangle(SOP)のVEX例文。メモより抜粋その3。脈絡はないです。あと、時々コードが文字化けしてます。すいません。ローカル変数のマッピングi@test = 0;addvariablename(geoself(), "test", "TEST");自分で作ったアトリビュートをローカル変数として定義する。ここで定義したローカル変数は、このaddvariablenameという関数をサポートしたノードで利用可能らしい。最近の仕様では、あまりローカル変数使わないようになってるんだっけ[...]
read more
Houdini回。Houdiniにはopから始まるエクスプレッションがたくさんあります。個人的に紛らわしいと思ってるのはopinput~とか、それに類するやつらです。opinputとかopinputpathとか。さらにはop:`opinputpath(".",0)`とか合わせ技っぽいのまで。似たような名前と機能で、モヤモヤしてたのでスッキリさせようと思って取り上げました。opinputpath指定したノードの入力に接続されたノードのフルパスを取得できる。opinputpath("参照ノードのパス", &[...]
read more