Houdini sidefx official Lesson5 Procedual Animation

エクスプレッションのフレームナンバー表記

$F :フレームナンバーをint型で計算
$FF :フレームナンバーをfloat型で計算

Global Animation Optionsでシーンの時間をfloat型にする

下記オプションで変更可能

20140419_01_0

チャンネルエディタのカーブ精度を変更する

Settings > Curve Quality > 任意の精度レベル

エクスプレッションで使う変数やエイリアスを設定する

Edit > Aliases and Variables

20140419_01_1

ウインドウ下部の入力ボックス左側が名前、右側が値。
入力してエンターキーで変数を作成できる。

実際にここで作成した変数は、エクスプレッションなどで$マークに続けて変数名を書くことで使用できる。

Houdini shell terminal

Houdini同梱版のshell?
Applications>Houdiniインストールフォルダ内にある

hconfigなど、Houdini独自のアプリが立ち上げられるようだ。
mayapyみたいな存在だろうか?
もう少し使いこなせるようになってから覚えるのでも遅くはなさそうなので、とりあえずこういうものがあるということだけ覚えとく。

タイムレンジに関する変数名

$RFSTART:プレイバックレンジのスタートフレーム
$RFEND:プレイバックレンジのエンドフレーム
$FSTART:設定されている実際のタイムレンジのスタートフレーム
$FEND:設定されている実際のタイムレンジのエンドフレーム

textport

Houdini内のシェルウインドウのようなもの。
exhelp 関数名 などと入力しエンターキーで実行すると関数のヘルプが見れたりする。コマンドを知るにはかなり重要になりそうなウインドウ。

表示
20140419_01_2

Alt+5などでも表示可能。

opname関数

fileノードでの例
実際のモデルファイルは、「tree_01〜16.bgeo」という名前で、このシーンファイルの保存されているフォルダと同階層にある「Lesson5_Tree」というフォルダに格納されている。

また、このファイルノードを格納しているgeometryノード名はtree_01

そこで、Geometry Fileパラメータに以下を書く

$HIP/Lesson5_Tree/opname( “..” ).bgeo

このエクスプレッションでは、以下のようにエクスプレッションが解釈される。

$HIP:シーンファイルが保存されているフォルダパス
opname( “..” )このfileノードを格納しているgeometryノードの名前
“..”は相対パス表記で、親ノードを指す。

よって、親のgeometryノード名を変更すると読み込むモデルファイルのパスも自動的に変化するようになる。

文字列を受け取るパラメータで計算を行うエクスプレッションを書く

例えば、fontノードのTextパラメータなどで$F-1を単純に入力した場合、-1の部分は文字として単純に表示されてしまう。

これを防ぎ、計算結果の文字列を使用したい時は数式部分を「“」で囲む

また、定義済みの数値型変数を使用するような場合は、この必要はない。

便利そうな変数

$OS:この変数名が記載されたノード自身の名前

Houdini sidefx official Lesson4 Keyframe Animation

キーフレームの打ち方

任意の時間でパラメータを設定し、パラメータボックスなどをAlt+クリック
キーがあるフレームは、緑色のマーカーで表示。

20140419_02_1

プレイバック方法の指定

数のボタンを長押しし、サブメニューから選択

20140419_02_2

アニメーション関連ホットキー

↑:順再生 / +command 先頭フレームに戻る
↓:逆再生
←:1フレーム戻る / +command 前のキーフレームへ移動
→:1フレーム進む / +command 次のキーフレームへ移動

ドープシート的キー操作

タイムラインをShift+右クリックドラッグ:操作範囲指定
範囲を中ボタンドラッグ:キー移動
範囲の左右端の数値ボックスShift+中ボタンドラッグ:キータイミングスケール
Shift+右クリック:選択解除

その他のキーフレーム操作

各パラメータボックスをShift+左クリックでチャンネルエディタ表示

オブジェクト選択状態でKキーを押すと移動回転スケールにまとめてキーを打つ

チャンネルエディタ

キーを選択後…
キーの中心ドラッグ:値変更
キーを通る縦ラインドラッグ:時間変更
0キー:タンジェントをフラットにする
9キー:タンジェントをスムースにする

・各種キーコマンドボタン

20140419_02_3

キー選択状態で押すと、タンジェント操作やサイクル方法の設定などができる。色々押して効果を確かめる。

キーフレームにエクスプレッションを指定

通常通りキーを打ち、キーの打たれた時間でターゲットパラメータボックスにエクスプレッションを書くと、次のキーまでの間そのエクスプレッションが有効になる。
この機能により、一定時間の間、ベースになるキーフレームにsin波を足しあわせたモーションを作ることができる。
キーごとに全く違うエクスプレッションで動くモーションも作れる、これはものすごく便利。

Maya絶対はこれを真似るべき。

キーのバウンディングボックス

キーをまとめて選び、Yキーでバウンディングボックス表示

チャンネルグループ

任意のパラメータに打たれたキーの可視性をグループで管理できる
20140419_02_4

グループの作り方はいくつかある

パラメータボックスやラベルを直接チャンネルグループエリア(チャンネルエディタの左上ブロック)にドラッグで作成

左下のチャンネル名右クリックからAdd Channel(s)など

Look AtとPathモーション

HoudiniのGeometryノードは、必ずLook AtパラメータとPath Objectパラメータを持つようだ。
Look Atで指定されるオブジェクトに対し常に一定の軸を向けることができる。(Mayaでいうと Aim Constraint)
Path Objectに指定されたカーブの上に沿うようにオブジェクトを移動させることができる。(Mayaで言うと、Motion Path  )

blendノード

変換マトリクスのブレンドノード
コンストレイン等の動作を行えるようだ。

Houdini sidefx official Lesson3 Digital Assets

ROP Output Driverノード

ROPは、多分Render OPeration
モデルの出力で使った

Output File で指定したフォルダに、Valid Frame Range で指定した範囲の各フレームのモデル形状を個別のモデルファイルとして出力する。

諸々設定したらRenderボタンで書き出し

モデル名は、例えば

$HIP/Lesson3_Rocks/geom/rock_$F3.bgeo

などと指定する。

エクスプレッションで使用するフレームナンバー

通常の文字列フォーマットのように$F3などとすると、ゼロパディングされた数値に置き換えられる。

GPlay(Geometry Viewer)

Houdiniのインストールフォルダにある。

Point Jitterノード

つないだオブジェクトのポイント位置をランダム化する

20140419_03_0

20140419_03_1

instanceノード

オブジェクトインスタンスのためのノード
pointを持つ形状ノードを含めると、それぞれのポイントにオブジェクトのインスタンスが作成されるようだ。
複数オブジェクトを含め、全ポイント上にオブジェクトを配置する場合は、mergeノードを使用し、必要なオブジェクトをマージしたあとで、mergeノードを有効化する。
オブジェクト階層に移動することで結果が確認できる。

インスタンスするオブジェクトは Instance Objectパラメータによって指定する。

Instance Objectパラメータには、Network Viewから直接ノードをドラッグ&ドロップしてオブジェクトを指定することもできる。

Reference Copy

ノードの右クリックからReference Copyを選択すると、コピー元のすべてのパラメータを参照した状態でコピーオブジェクトが作成できる。
必要に応じてパラメータの参照をきってノードをユニーク化すると便利。

subnetノード

小さなネットワークを組み立てるためのコンテナノードを作成できる
20140419_03_2

入力プラグは4つで固定のようだ

Edit Parameter Interface…

任意タイプのパラメータを作成するためのツール。
Mayaで言うところのAdd Attributeのようなもの。

20140419_03_3

操作したいノードを選んだ上で、パラメータパネルの歯車ボタンから呼び出す。

3ペインあり、左から順に

追加するパラメータのタイプ
追加先
パラメータの詳細

となっているようだ。

Rangeパラメータなどを使用して値の範囲を設定することもできる。

パラメータを追加したらApplyボタンを押して変更を適用する。

ここで追加したパラメータは任意のアトリビュートへのエイリアスとして使うととても便利。

Digital Asset

作成したノードネットワークをファイルに纏め、あとから別のシーンに流用することができる。このファイルをDigital Assetファイルと呼ぶ、拡張子はotl。

File > Install Digital Asset Library > 登録したいotlファイルを選択

こうすることで、Network Viewなどで

Tab > Digital Asset > 保存されたノード

という手順で呼び出せるようになる。

シェルフ

シェルフはシェルフエリアの+ボタンから行う。
シェルフへは、ノードを直接ドラッグするなどしてコマンドを登録できる。他にも細かい挙動を設定できそうなので、よく調べる必要がある。

20140419_03_4