カテゴリー別アーカイブ: モデリング

プロシージャルモデリング超入門

今回はhoudiniのプロシージャルモデリングの初歩的なお話をしようと思います。

グリッドの端っこだけ外側に押し出して上にちょっと上げただけの簡単な例です。

まずgridSOPを出します。端っこのエッジを一つダブルクリックしてボーダーエッジ全部を選びます。

Mayaとかで結構ありがちな罠ですよね。履歴のパラメータをいじるとグチャります。houdiniでも同じことが起きます。

これは迂闊な非プロシージャルな作り方ですね。houdiniらしくないです。

では何故グチャったのでしょうか?それは

polyExtrudeSOPのGroupのところに元のボーダーエッジを表すエッジナンバーが固定値で羅列されているのが原因です。最初のgridSOPのRowsやColumnsを変更すると番号はコロコロと変わっていきます。これではずれますよね。

RowsやColumnsを変えてもグチャらせない為にはボーダーエッジを正しく取得してpolyExtrudeに渡してやる必要があります。

ではどのようにすれば良いのでしょうか?

同じことをhoudiniらしくプロシージャルにやってみましょう。

常に正しいボーダーエッジを得る為にはgroupSOPを使います。

gridSOPのすぐ下にgroupSOPを追加して

これで常に正しいボーダエッジのグループが取れました。

このグループ名を使ってpolyExtrudeSOPにボーダーエッジを渡してあげられます。

polyExtrudeSOPには生成した内容を幾つかのGroupとして記録してくれる機能があります。FrontGroupをチェックしてGroupとして登録しておけば上に持ち上げる時に利用出来ます。

手動でエッジを移動するのではなくtransformSOPに先程登録したグループを渡して上げてtranslateYの値を入れて持ち上げてあげましょう。

これで最初のgridSOPのRowsやColumnsをいくら変えてもグチャらなくなりました。

後からの変更に強く臨機応変に対応出来るプロシージャルモデリングの簡単な例をご紹介致しました。

他のDCCツールとは考え方が全然違いますね。

Softimageで言う所のロトスコープをHoudiniで

16もそろそろ出ようかという時にhoudini15.5メモ:
ビューポート上でdを押してdisplay optionをだしておいてから

この様に指定すればいい
perspではビルボード的な挙動になるがAuto-Place Imageのチェックを外すとXY平面になる。

実モデルの板でやりたい場合はgridにconstantシェーダを指定。
tgaではαが抜けなかったがpic(indie版ならpiclc)にすればαは抜けてくれる

新スクリプトの人柱募集中

えー、だいぶ更新も滞っておりましたがまだなんとか生きておりますよ。
相変わらず本業は綱渡りですが。

つい最近houdiniが15.5.565辺りからpolyBevelにカーブの角を丸める機能を追加して来ました。
SideFXのサイトのチュートリアル動画
ついこの間までの15.5.448とかでは使えなかったんですよ。
マイナーバージョンアップなのにかなりアグレッシブですよね。どこかのAutodeskにも見習って欲しいものですが。

BuR3ILOCIAAiDT2

で「これは便利だ…mayaにも欲しい…」(常日頃からhoudiniを買う様に上司に説得しているが聞き入れてもらえない)
という訳でリニアカーブの角を丸めるスクリプトを書きました。

リニアカーブ(直線のみで構成されたカーブ)を選択して実行すると
「元のカーブ名+Rounded」という名前のカーブと「ConstHistory」というグループが出来ます。
※このグループを消すと後から角の丸みの半径を編集出来なくなります。
ezRoundCornerOfLinearCurve

角の丸みの半径をいじるにはミニウィンドウでスライダを調整するか新しく生成された
Roundedという名前の付いたカーブのエクストラアトリビュートを中ボタンバーチャルスライダでグリグリいじって下さい。

スクリプトはココからダウンロードしてください。
CreativeCrashにも登録中(モデレート待ち)です

使い方はリニアカーブ(直線のみで構成されたカーブ)を選択してから
import ezRoundCornerOfLinearCurve
reload( ezRoundCornerOfLinearCurve )
ezRoundCornerOfLinearCurve.ezRoundCornerOfLinearCurve()
を実行して下さい。

現状ちょっと危ういんですが一番短いエッジの半分を角の半径の最大値としているのですが
たまにバーチャルスライダでグリグリやってるとmayaが落ちます。
シーンのバックアップ取るよーとかそんな生易しい事は言わずに全力で無言で即落ちます。
ヘタすると実行した瞬間に落ちる事があります。
いろいろ原因を探ってみたのですがよく分からないので一旦公開してどの辺りで落ちるのか
分かる方に見てもらった方が良いかなという結論に至りました(他力本願モード発動)
0a8e885a5563d0c5e6c35cdd20f6224b40995f061418017255

危険を承知で使いたい方もしくはバグ取り大好きな方は是非お試し下さい。