Houdini:Python memo Part04
ノードあれこれ ノード検索(glob) 名前でノード検索。よく使う。 ノード検索(recursiveGlob) 名前とタイプでノード検索。再帰的に子ノードも検索。 上記サンプルは、任意の名前のカメラを検出する。 hou.nod […]
Houdini回。Cloth系です。忘れては調べてを繰り返すので備忘録も兼ねて。Clothの一部分をターゲットオブジェクトの動きに完全に拘束する。オブジェクトに"pintoanimation"というPointアトリビュートを持たせることで、そのポイントをターゲットポイントに完全拘束出来る。この"pintoanimation"という名前がなぜだか私は覚えられない!ここでは布に見立てたグリッドを用意。ポイントアトリビュートpintoanimationを作り、布のはじっこは値1、それ以外は0にしている。ここでは暫定的にpintoanimation=1に赤、0に[...]
続きを読むPythonには”リスト内包表記”なるものがあるそうな。初めて目にした時は、「なんじゃこのケッタイな書き方は!」と思ったものです。リスト内包表記をザックリ説明すると、『for分とかif分とか使って複数行必要だった処理が一行ですむよ。しかも処理が早いよ。でもちょっと読みづらいよ』っていう書き方でしょうか。ものの本によると、”リスト内包表記とは、あるリストを元にして別のリストを作るための記法のことです”、だそうです。ちょっとMayaのpyemlで普通の書き方と、それを内包表記で書いた例を作ってみました。選択したオブジェクトのうち、Meshのみをリストで返[...]
続きを読むNukeノード勉強回。Flareノード。レンズフレアを作るノードです。ざざっとパラメータ周りを見ていきます。 Flareタブpositionフレアの中心Offset画像の中心からのオフセット。0はオフセットなし。radiusフレアのサイズ。inner / middle / outerの3種類で調節。size multスケールの係数anamorphフレアの縦横比。inner color / outer colorouter falloff[...]
続きを読むHoudini回です。ポイントコンストレイントってみた、改!赤い球がトーラスの表面にくっついてるでしょ↓以前、 「copyノードを使ってコンストレイントっぽい事が出来た!」と書いたのですが、それ用の機能がちゃんとあったのです。Rivetノードを使うとまさに、ポイントコンストレイントができました。しかも、これShelfにあるし。見落としてました。ちなみにRivetは日本語では鋲(びょう)らしい。使い方は次の通り、1:Shelfにある"Rivet"をクリック。2:くっ付ける先のオブジェクトを選択+Endter [...]
続きを読むHoudiniノード備忘録。Wedgeノード(ROP)同じROPノードを異なる設定で複数回実行できる。以下、使用手順。1:Output Driverで出力したいROPノードを指定指定先のノードの出力パスにWedge変数($WEDGE)もしくはWedgenum変数($WEDGENUM)を入れるのを忘れないように。これないと、出力が上書きされる。●Wedge変数($WEDGE)"Prefix"_"Wedge Parameter Name"_"Wedge Num"."Parameter"で構成される例:`$OS`_$WEDGE.$F4.[...]
続きを読むmib_amb_occlusionとRampノードを使って、オクルージョンを任意のグラデーションで出力する方法でっす。RampノードとSamplerInfoノードを使ってフレネルっぽい効果を出す方法はよくあるので、今回はその変則ということで。レンダリング画像を先に出すとこんな感じ。パッとみ分かりづらいかもだけど、赤や黄色の部分がオクルージョンの効果が強い部分。青や紫はオクルージョンの効果があまりない部分。mib_amb_occlusionのみだと、通常白黒のグラデーションですが、Rampノードを間に挟むことで任意のグラデーションにすることができます。それを何に使[...]
続きを読むHoudini Python、ダイアログ系のサンプル。シェルフにでも張り付けてポチると出てくる・・・たぶんね。ポップアップメッセージhou.ui.displayMessage("hoge")テキストフィールド付きダイアログimport houDialog = hou.ui.readInput(message ="Text Field Dialog\n",title = "TextField Dialog",severity=hou.severityType.Warning,b[...]
続きを読むTwitterで流れてたgifが面白かったので、Houdiniでマネして作ってみた。2つの形状をブレンドして、変形の際にJiggleを適応したもの。Jiggleについてはこっちの記事でサンプルファイルをアップしています。反省点としては、作り方とネットワークが力技だったなぁ、と。形状大きさ間隔速度に依存しないスマートな作り方ができたはずだ、と。いずれリベンジを、と。[...]
続きを読むHoudini"こんなシェルフがあったのか回"。先日、シェルフに"Bake Constraint"なるシェルフを見つけて吃驚しました。シェルフの"Constraints"タブにありました。いつから、追加されたのだろう。名前の通り、CHOPsで作られたコンストレイントの動きをキーフレームにベイクしてくれる機能のようですね。例えば、こんな感じに球体の周囲を回る箱を作って、箱は常に球体の方を向くようにコンストレイントを設定したとします。Bake Constraintの使い方は簡単。ベイクしたいオブジェクトを選択して、シェルフボタンを押すだけ[...]
続きを読む若干、いまさら感のあるDifferential Curve Growthです。日本語だと・・・なんでしたっけ?Differential Growth系は手法が沢山あるのですが、今回はその中で最も簡単でシンプルな、Relax(SOP)とSolver(SOP)を使う方法を採用しました。めんどくさい処理は全部Relax SOPがやってくれます。わたし好み。いずれ、Differential Growthについてまとめたいなと思っているので、詳細はその時にでも。と、思いましたが、Entagma先生が解説されてましたね。そちら載せときます。他の処理で、少し手[...]
続きを読むノードあれこれ ノード検索(glob) 名前でノード検索。よく使う。 ノード検索(recursiveGlob) 名前とタイプでノード検索。再帰的に子ノードも検索。 上記サンプルは、任意の名前のカメラを検出する。 hou.nod […]
Houdini Python、ダイアログ系のサンプル。 シェルフにでも張り付けてポチると出てくる・・・たぶんね。 ポップアップメッセージ テキストフィールド付きダイアログ テキストフィールド付きダイアログ(Multi) &nb […]