Houdini回です。
今回はカメラとスケールについて。
前提として、Maya→Houdiniにデータを持ってくると、Unitの単位の違いからスケールをかけることになります。
Mayaは1unitが1cm、Houdiniは1unitが1mなので、実寸で作成されたモデルの場合、Houdini上で1/100にします。
私は安直にNullを使ってスケールをかけることが多いです。
この時、カメラにもスケールがかかるとレンダリングの絵に影響がでて困る。
具体的にはVolumeのDensityへの影響がでて困る。
こんな感じに。
これが困る(。-`ω´-)ンー
かといってスケールかけないのは、シミュレーションを実尺でやりづらくなるのでイヤだ。
これを回避するために、別にカメラを作り位置と回転のみ継承するようにします。
CHOPsのObjectノードを使います。
ネットワークはこんな感じになります。
CHOPsのObjectノードのTarget Objectのみ指定し、Reference Objectを空にすると、指定したオブジェクトのワールド座標情報を取得できる。これを利用し、位置と回転のみ元カメラから別カメラへ継承させる。
具体的な手順としては以下の通り。
chopnetノードを作成し、その中にobject(Chop)を作成。
object(Chop)の”Target Object”にスケールをかけたカメラを指定、”Compute”を”Position and Rotate”に設定。
exoirt(Chop)を作成し、Export先(Node)を別カメラに指定し、ChannelsとPathに位置と回転チャンネルを設定(t[xyz], r[xyz])。
これで、スケールに煩わされずに位置と回転を継承可能!
以上!
2016/04/23追記
サンプルファイルをアップしました。 CameraScale_sample.hiplc
ちなみに、新規でカメラを作るとパラメータにScaleが見当たらない。
これはパラメータが非表示にされているから。
表示するには、まずギアアイコンから”Parameter Interface”を開いて、下の絵の赤枠にある”Show invisible Parameters”を有効にする。
しかる後、出てきたScaleパラメータのInvisible(下の絵の緑枠)をOFFにする。
これでScaleを任意に変更できるようにして、Expressionによってスケールの逆数を設定して相殺する方法もあるみたいですが、個人的にはスケールは操作しないのが良いと思うので、Chopを使ってスケールを継承しないってのが良いかと思います。
ほんとに以上!
間違い勘違い等ありましたらご指摘を!
途中で送信されてしまった。
Fetchの後にblendを入れてスケールを無効にしないとダメだった。失礼。
あと、rivetつかってコンストレインするって手も。
両方ともどっかの質問の答えだったんだけど、どこだったかな。
回答してくれてた人に感謝。
いろんな方法があるんですね、勉強になります。
私の方、追記でサンプルファイル上げときました。
また、なんかあったら教えてくださいm(_ _)m
こんちは。なるほど、こんな手もあるのね。勉強になります。
と思ったらうまく動作しなかった。うーん、何かやり方が悪いのだろうか。
書いてある通りにやってみたのだが…。
それはそうと、Fetchを使うのが簡単だったよ。
上の例でいえば、FetchノードをRender_camの親にして、Maya_camを参照するだけ。
これで同位置に持って行ける。
他にもrivet