アルゴンUE4/UE5&アプリ開発日記

UE4/UE5の機能やプラグインを紹介します。初心者や中級者向けになってます!!

【houdini】勉強して覚えるべきと思うこと(備忘録)

houdiniという沼を見てみないかい?

今回はhoudiniのチュートリアルで、

私が思ったここは絶対に覚えておかないと応用は難しいかなと思った、

機能や画面説明など書いて時々思い出す用の記事です。

※今回はUE(UnrealEngine)の記事ではありません!!

※専門家じゃないので書いてることが正しくないこともあります。

houdiniとはなんぞや?

houdiniとは3DCGツールの一つでノードベースに手続き的に処理をつなげて、

様々な形状の作成や物理的なエフェクトや、

レンダリングなどを作れるツールになります。

無料版では出力制限があるのでUEとの連携は不可です。

ある程度作りたいものを作れるようになったら、

Steam版やSideFXで購入をしようかなと思います。

・目次に戻る

各画面の説明と画面の役割・操作について

画面についても覚えることが多いので、

私がよく使う画面や設定をなど覚えるべき点を説明します。

まずデフォルトの画面になります。

デフォルト画面

大まかに作ったものを表示する場所・パラメータや情報などの場所

ノードの設定などを表示する場所の3つが表示されています。

実はその各画面でもタブで分かれています。

作業結果が表示される画面はSceneViewというタブで表示されています。

それとよく使うタブの画面としてGeometrySpreadsheetの画面です。

SpredSheetでは各Attribute(設定情報)をリストで見るためのものです。

設定したパラメータをリストで見るためのものです。

作業結果画面のタブ

設定やパラメータの画面ではParamatersタブとTakeListをよく使います。

設定値やパラメータ設定画面のタブ

ノードの接続表示画面では/objタブのノード表示画面と、

TreeViewタブでノードをツリー上に表示することをよく使います。

ノード表示画面のタブ

それからSceneViewで幾つか表示の切り替えなどを、

右メニューと左メニューで使うのでよく使うボタンの画像になります。

右メニューの方は表示関連のボタンとなります。

左メニューの各種ボタン

左はGeometryの操作になります。

左メニュー動作

それから上のメニューですが一部見慣れない、

ドロップダウンがあるかと思います。

左が画面構成ドロップダウンです。

Gamesやモデリングなど用途に応じた画面構成が用意されており、
それに合わせて変更するのが良いです。

右はショートカット選択ドロップダウンです。

様々な機能があるためショートカットもモデリング用だったり、

変更できるようになっています。

上のメニュー

Houdiniの簡単な画面の説明は以上になりますが、

私がHoudiniを使っていく上でよく使うなと思った、

ショートカットキーをいくつか紹介します。

〇SceneView(作業結果が表示される画面)でのショーカット

ESCキー → カメラ操作への変更

Sキー → モデルの面などを選択するモード

Tキー → 選択した箇所を移動するモード

Rキー → 選択した箇所を回転するモード

Eキー → 選択した箇所を拡大縮小するモード

※T・R・EのショートカットはSキーで面などを選択して使うことが多いかと。

Enterキー → ハンドラの表示

〇各画面共通のショートカット

ALT+[ キー → 画面の左右分割

ALT+] キー → 画面の上下分割

画面の説明はまだまだいろいろありますがよく使う部分は以上です。

・目次に戻る

Attributeや各ノードなどの紹介

ここからは実際に処理を作っていく上でのAttributeの話や、

一部これを覚えておかないと始まらない系のノードをメモしておきます。

まずAttributeのお話をします。

AttributeとはジオメトリのPointやVertices、Primitiveなどに、

記憶させる名前が付いた値のことです。

細かい説明は下記公式リンクがとても分かりやすいです。

ジオメトリのアトリビュート

Attributeにはちゃんと優先順位があり、より低い階層の設定が優先されます。

頂点(Vertex) → ポイント → 面(Primitive) → ジオメトリ全体(Detail)

こちらもしっかり把握しておかないと、

優先順位の影響でうまく設定が反映されないこともあります。

簡単な例を作ってAttributeがどう使われるのか紹介します。

右下のノードを表示する画面で右クリックをして、

ノード検索を開き「gr」と入力してみます。

「Grid」という候補がでてくるのでそちらを選択します。

gridでの候補選択

grid1というGeometryのノードが出来上がるので、

そちらをダブルクリックするとgrid1というノードがあるかと思います。

geometryノード内のGrid選択

この際に一枚の板にか見えない表示設定になっていることがあるので、

SceneView右上のボックスのアイコンをクリックして、

Flat Wire Shaded」という記載があるものを選択してください。

こちらで辺が見えるようになって格子状に区切られていることが分かります。

geometryの辺の表示

次にランダムに変化を加えるためのノード、

「AttributeRandomize」を追加します。

先ほどと同様にノードを表示している画面で右クリックして、

「rand」と検索します。すると候補に出てきます。

attributerandomizeの検索

こちらをクリックしてノードが表示されている画面に配置して、

grid1のノードとattributerandomize1を接続します。

ノードを接続する

それだけだと何も変わらないので表示する状態のノードを、

Attributerandomize1に変更します。

houdiniではノードごとに状態を表示するため、

表示したい状態のノードを指定してあげる必要があります。

実際に表示するとこのようにカラフルになるかなと思います。

いまはAttributeClassの指定がPointになっているためです。

AttributeClassを接続した状態

実際にAttributeの設定を変更したりしていきます。

まずAttributeClassをDetailに変更してみます。

するとジオメトリ全体が同一色になります。

AttributeClassをDetailにした場合

続いてPrimitiveになります。

こちらは面なのでそれぞれ面が違う色になります。

AttributeClassをPrimitiveに変更

最後にVerticesになります。

こちらは頂点の各種面方向に色が付きます。

AttributeClassをVerticesに設定

このようにAttributeで適応するClassに応じて、

結果が変わるので適応する箇所やClassなどを理解するのが、

とても重要なので注意しながら実装しましょう。

今回はCdという色のAttributeを使用しましたが、

他のAttributeも設定できます。下記の画像はPというAttributeで、

形状を変更した場合の結果になります。

AttributeNameをPにしてAttributeClassをPointに設定

簡単な説明は以上になります。

ちなみにAttribute以外にもノードには各種パラメータがあり、

こちらを変更することでも多種多様なことが可能になります。

ジオメトリノードの説明についてはこちらにもリンクもぜひ見てみてください。

ジオメトリノード

まずはテスト用のモデル関係のノードです。

testと検索するとすべて表示されます。

testgeometryのノード

それから普通の箱や球などのモデルに関しては、

Create項目に格納されています。

sphereとかで検索しても出ます。

各種ジオメトリノード

それからAddというポイントを配置したりするノードや、

Poly関連の変形させたり面を分割したりするノードもよく使います。

Addノード

Poly関連のノード

それから連続処理を行わせるためのBlockBeginとBlockEnd、

それと同様にNumberやポイントなど各設定に合わせたForEachノード

Houdiniの連続処理関係のノード

連続処理もBlockBeginとBlockEndの設定が異なることで、

連続処理だけでも結果が違うものになります。

こちらの記事がとても参考になりました!

Houdini はじめてのBlock Begin/End - Qiita

あとは並列処理を効率よく行わせるための

CompileBlockやそれぞれ結合するためのMergeやGroup

Nullなどのノードもあります。

CompileBlockや各種ノード

あと実はVolumeというものもありますが、

これ以上はとても長くなるので説明は以上とします。

・目次に戻る

SOP、VOP、DOPなど「〇OP関連について」

最後にhoudiniやってないと聞くことがない〇OPという言葉について、

少しだけ触れて終わりにします。

SOPとは「SurfaceOperation」の略でジオメトリ関連の処理の命令みたいなものです。

先ほど紹介したAttributeRandomizeやGridなどもSOPに相当します。

VOPは「VectorOparation」の略でパーティクルやポリゴンの動作を、

演算したりして独自の処理を作るためものになります。

SOP同様様々なノードが用意されています。

VOPでのノード作成

DOPは「DynamicOparation」の略で布や水など、

物理的動作のシミュレーションなどを行うためのものになります。

こちらもDOP用のさまざまなノードが用意されています。

DOP関係の処理

※ここではとてもざっくりとした紹介しかしません・・・。

 私以外の人が様々な情報を紹介しているのでそちらを見てみてください。

・目次に戻る

最後に

個人的に書き足りない部分も多かったけど、

とりあえずざっくり説明は以上です。

個人的に今後覚えようと思っていることは、

・各種ノードの活用方法

・Attributeの活用や簡単なモデル作成

・魔法系のエフェクトのつくり方や参考について考える

まあこんなところでしょうか。

今後ももう少し触っていこうと思います。

・目次に戻る