2017年11月19日日曜日

[Houdini] 鎖の作成

どうも。こんばんは。
今回は前回作成した鎖のリングをつなげて鎖自体を作成してみたいとおもいます。
前回のリングを作成した記事は「こちら

全体の流れ

鎖作成の手順は、カーブを作成してそのカーブにそって部品のリングを並べていくという流れ。
完成のノードグラフはこちら。


RingをSubnetに

では前回の続きから開始。
まずグラフをすっきりさせるためリングを構成するノードを1つのノードにまとめます。
ノードをすべて選択した状態でネットワークビュー上部の箱のアイコンをクリック。


単一のノードになるので名前を「Ring」に変更。


このノードは「Subnet」といって複数のノードをひとまとめにしたもの。
これにより複数のノードによる一連の処理を1つのノードとして扱うことができるようになります。
ダブルクリックすることで中に入りそのまとめたノードを確認、編集することが可能。
他にもデジタルアセットとしてどのシーンからも呼び出せるようにできたりします。
この辺の解説はまた別の機会にでも。

カーブの作成

では先程のノードグラフの番号にそってすすめていきます。

①まず部品を並べるカーブを作成します。
SOP階層に「curve」SOP を追加。


そのままビューポート左の「Show Handle」アイコン(下図オレンジ矢印)を押してからビューポートをクリックすることでカーブがビューポートに作成されます。
「Curve」ノードを選択しているのにビューにカーブを描けないということを初心者の僕はよくやるのだけれどそんなときはこの「Show Handle」がオンになっているかチェックするとよいです。
ちなみにその下の磁石アイコン(白矢印)はグリッドへの吸着設定で、オンにしておくと作成されるカーブポイントがグリット上に制限される。

カーブの種類を「NURBS」にして滑らかなカーブに変更。










②次に「Resample」SOP を作成
カーブが細分化されます。

これでリングを配置カーブの準備ができました。

リングの配置と調整

③細分化でできたこのカーブ上のポイントにリングを配置していくわけだけど、この時「Copy to Point」SOPを使ってもいいのだけど「Sweep」SOP を使うと向きの設定が簡単なのでそちらを使用します。
図のように「Ring」を左のインプットに、カーブ(「resample1」)を右のインプットに接続。
カーブの各ポイントにリングが配置されます。


「resample1」の「Length」を調整すると細分化してポイントの間隔を調整することでリングの位置を調整。


そして「sweep1」の「Twist」パラメータを調整してリング同士の角度を調整すれば完成。




最後の2つのパラメータ「Length」と「Twist」等にエクスプレッションを設定することでリングサイズや鎖の長さに合わせたより正確なコントロールもできますが今回は簡単に済ませました。

プロシージャル

これで鎖は完成ですがHoudiniのプロシージャルの凄さを見てみましょう。
カーブを再編集してみても鎖のつながりがしっかり維持されるあたり、完成までの手順の簡単さも相まってなかなかインパクトがあります。


カーブに続けて「Carve」(Curveじゃないよ) SOP をつなぐとこんなことも可能。


他のCGツールではカーブはあまり使わないのだけどHoudiniのカーブはなにかと便利で出番が多いです。

というわけで今回はここまで

2017年11月4日土曜日

[Houdini] 鎖のリングのモデリング

ゲーム分野のCG技術の共有を主な目的としてブログを始めます。
主に Unreal Engine 4, Substance Designer, Houdini 等の情報を共有していきますので、どうぞよろしくおねがいします。

第一回目の話題はHoudini。
今回は簡単なモデルを作成しながらHoudiniでのモデリングのオペレーションを共有したいと思います。

Houdiniのモデリングの特徴

Houdiniではノードをつなぐことでモデル形状を作成していくというモデリングの仕方をします。
このノードのことを「オペレータ」と呼びそれぞれいろんな機能をもっています。それらをつなげて処理を行っていき、その処理の履歴をすべて残していくことで以前行った工程に戻って再編集したりといったノンリニアなワークフローが可能になります。
これによる恩恵は様々ですが、大きな利点として、修正の早さ、データの再利用のしやすさなどをよく耳にします。
修正が早いというのは設計図だけでは完結できないゲーム開発において非常に大きなメリットになります。

モデリングを行うSOPという作業階層


Houdiniでのモデリングは、SOPレベルという作業階層で行います。
新規シーンを開くとobj階層というワークスペースからシーンはスタートしますが、ここではモデリングは行いません。

モデリングを行うにはobj階層で何かしらモデルを作成し、そのモデルをダブルクリックすることでSOPレベルに入る必要があります。
そのSOP階層がいわゆる「モデラー」になります。

今回のモデリングのながれ

では簡単なモデリングを行いながら Houdini での Modeling を紹介します。
例として鎖を構成する1つのリングを作成します。

完成までのノードグラフはこちら。

完成までの流れとしては、リング状のカーブ(下図A)を作成しそのカーブに沿って円(下図B)を押し出すというものになります。


では開始

①まず新規シーンを開く。
ここに円オブジェクトを配置する。
画面上部の「Create」タブから「Circle」アイコンをクリック。
そのままマウスカーソルをビューポートに移動しEnterキーを押す。

これでシーンの原点に円オブジェクトが現れる。

このときワークスペースは自動的にobj階層からSOP階層に移る。
ノードネットワークパネルに「Geometry」という記載があるのがSOP階層にいる目印。
ここが、先程話したモデリングする場所になる。

まず作成した「circle1」のパラメータを以下のとおりに設定。

すると円オブジェクトが半円のラインに変わる。


②次に「mirror」SOP を作成し「circle1」と接続。
「mirror1」のプロパティで「Direction」欄を以下のように設定。3つ目のボックスに1を入力することで反転方向をZに設定している。

さっき作成した半円が「mirror」SOP で反転コピーされる。
このように上から下への処理の流れがHoudiniのモデリングの基本になる。


反転コピーされた状態↓。次の工程でこの2つの半円を連結させます。


③「join」SOP を作成&接続しプロパティの「Blend」をオフに。




これで2つの半円が連結する。


④さらに「ends」SOP を接続し図の通り設定。

これでリング状のカーブが完成する。


⑤このリングに通す円は今までの処理の流れとは別に作成。
「Circle」SOP を作成しパラメータを設定。




小さな円ができる。


⑥次に「Sweep」SOP を作成し「circle2」を左側のインプットに接続。また「ends1」を真ん中のインプットに接続。

「Sweep」SOPの「Output」タブの Skin Output を Skin with Auto Closure に設定すると出来上がり。



以上、シンプルな形状のモデリング例でした。

ちなみに「circle1」や「circle2」のパラメータを変えることでプロシージャルの一端を見ることができる。


このように後から形状をかえるといったことがより複雑な形状でも可能になるようなのでなかなかHoudiniは興味深い。
自分は目下Houdini勉強中なので勉強しながらその情報を共有していきたいと思います。
どうぞよろしくお願いします。

次回はこのリングをつなげて鎖を作ります。