Houdini:MatchSizeとTransform by Attribute(SOP)
Houdini勉強回。 前回、MatchSize(SOP)について取り上げましたが、そこで紹介しなかった機能があります。それが、Restore/Stash Transformのパラメータです。 これらを使うことで、MatchSize(ROP […]
toxikノード解説回です。今回は「Garbage Maskノード」です。これがtoxik上で作るマスクですね。項目が多いため全部解説は無理なので、大事なところに絞って解説していきます。↓がGarbage Maskの設定項目です。ザックリABCの三つの領域に分けました。左側が現在作成されているマスクの一覧が表示され、右側に現在選択されているマスクの詳細が表示されています。マスクの作成は真ん中あたりAの領域のアイコン群から作成できます。次にBの領域の、マスク一覧の見方から。①の領域から。S・・[...]
続きを読むNukeノード勉強回。Flareノード。レンズフレアを作るノードです。ざざっとパラメータ周りを見ていきます。 Flareタブpositionフレアの中心Offset画像の中心からのオフセット。0はオフセットなし。radiusフレアのサイズ。inner / middle / outerの3種類で調節。size multスケールの係数anamorphフレアの縦横比。inner color / outer colorouter falloff[...]
続きを読むHoudini回。Houdiniにはopから始まるエクスプレッションがたくさんあります。個人的に紛らわしいと思ってるのはopinput~とか、それに類するやつらです。opinputとかopinputpathとか。さらにはop:`opinputpath(".",0)`とか合わせ技っぽいのまで。似たような名前と機能で、モヤモヤしてたのでスッキリさせようと思って取り上げました。opinputpath指定したノードの入力に接続されたノードのフルパスを取得できる。opinputpath("参照ノードのパス", &[...]
続きを読むノードあれこれ#選択中のノードをすべて取得(リスト取得)oNodeS = hou.selectedNodes()#最初の一つを取り出すoNode = oNodes#ノードのロックがかかっているか否か確認するoNode.isLocked()#ノードのバイパスのON/OFFを確認するoNode.isBypassed()#ノードの入力を取得する(タプル取得)oNode.inputs()#子供のノードを取得します(リスト取得)oNode.children()ノード検索(glob)obj = hou.node[...]
続きを読むHoudini回ですぜ、旦那。今回は「Volume Slice」と「Volume Trail」を使って、Velocity(速度)フィールドを可視化する方法。※流体エフェクトの作り方ではありません。(ところで流体の動きって見てて飽きないよね)FLIPのキャッシュから、Velocityを確認したい時とかに使う・・・かな?確認用ってことで。ネットワークは下の感じ。以上!また来週!使用バージョン:Houdini13[...]
続きを読む若干、いまさら感のあるDifferential Curve Growthです。日本語だと・・・なんでしたっけ?Differential Growth系は手法が沢山あるのですが、今回はその中で最も簡単でシンプルな、Relax(SOP)とSolver(SOP)を使う方法を採用しました。めんどくさい処理は全部Relax SOPがやってくれます。わたし好み。いずれ、Differential Growthについてまとめたいなと思っているので、詳細はその時にでも。と、思いましたが、Entagma先生が解説されてましたね。そちら載せときます。他の処理で、少し手[...]
続きを読むHoudiniを使っていて、NDCという座標系に触れる機会が増えました。なので、そのメモ。NDCは「Normal Device Cordinates」の略で日本語にすると、標準デバイス座標というらしい。もっと噛み砕いて言うと、カメラを基準にした座標系、だそうです。カメラからのdepthを作ったり、ベクターブラ―を作ったり、ともかくカメラ基準で何かしたいときに重宝してます。カメラの位置が原点で、x座標とy座標は、それぞれカメラに映る領域が0~1の範囲に収まるようになっています(正規化)。Z座標は、カメラから被写体方向にマイナス値で大きくなっていきます。遠ければその[...]
続きを読む今回はプログラム系、特にユーザーインターフェース周りのお話です。 ここでは、Python & QtDesigner & Pysideを使った作例をば。最近の3DCG系ソフトはだいたいPythonをサポートしているので、多少の違いはあれど、どのソフトでも応用がきくのではなかろうかと思いまして書きました。ただしあくまでCG屋が書くプログラムなので、そこのところあしからず。いくつかある作例の中の一つとして捉えていただければ。流れは下のようになります。①:Qt DesignerでUI作成↓②:PySideに変換↓③:コードを好きにいじる[...]
続きを読む今回は、簡単な破壊エフェクトについて手順も踏まえて書いてみようと思います。最終的にこういうのを作ります。出来るヒトは見なくてよろしwここでは事前にジオメトリを破片に分割して、それをシミュレーションするという手順で進めたいと思います。ざっくり書くと、1:ボロノイ分割での破片の作成2:RBD Fractureでシミュレーションです。 1:破片の作成まず、破壊したいオブジェクトを細かい破片に分割します。ここではboxを破片に分割しています。(Houdiniに限らず)破片の分割には、ボロノイという分割方法を使うのが一般[...]
続きを読むHoudini勉強中につき私的メモからの抜粋システム単位とグリッドについてのメモ。システム単位についてマニュアル曰く、「Houdiniダイナミックスはキログラム、メートル、秒の単位を使う」とのこと。システム単位を確認&変更する場合は、Unit Lenght(m)=1Unit Mass(kg) =1Houdini先生が、"長さ1"って言ったらそれは1メートルのことで、"重さ1"って言ったら1kgのこと。例えばデフォルトでSphereを作成すると、radius=1の球ができる、これは半径1mの球。boxを作成すると、siz[...]
続きを読むHoudini勉強回。 前回、MatchSize(SOP)について取り上げましたが、そこで紹介しなかった機能があります。それが、Restore/Stash Transformのパラメータです。 これらを使うことで、MatchSize(ROP […]
Houdiniノード勉強回。 Match Size(SOP)ノードを使うと、容易にオブジェクトを原点に配置できることを、最近知りました。 使い方は簡単、Match Size(SOP)にジオメトリを繋ぐだけ。 ”原点に配置”したいって時、けっ […]