ブログでプログラムのコードを綺麗に表示する方法を覚えたので、今回はそっち系です。再帰関数を使用して、複雑な親子階層からオブジェクトのみ取得するMayaのスクリプトを書いてみました。親を選択してこのスクリプトを実行すると、親以下すべての階層を検索してMeshのリストを作成します。ちなみにpymelです。#再帰関数使ってMeshのみを取得import pymel.core as pm#再帰関数def getMeshList(Node, MeshList): #選択したノードの子供をリストで返す children = Node.ge[...]
read more
Lightstorm3Dの無料ツールライブラリ「L3Library」にある機能の一つ、GeoLocatorが面白かったので備忘録も兼ねて。GeoLocatorという機能は、どうやらコンストレイン+追従の動きにノイズやDynamicsを加味するというものらしいです。試しに作ってみました。まず、インストール方からざっくりと。①サイトからL3Libraryをダウンロード。(※登録必要)②任意の場所にファイルを解凍。③Maya起動④ScriptEditorを起動しPythonタブに切り替え、↓のスクリプトをコピー&ペースト[...]
read more
Houdini回!Geometry Wrangle(DOP)で強制的に、アトリビュートvとwを減衰させる方法です。「RBD PackedでPOP Drag Spin(DOP)使うとおかしなことになる」、というので、代わりになるものはないかと調べたらodforceに減衰についてのスレッドが立ってました。ありがたや。何もしないのとの比較動画を作ってみました。上が通常、下がWrangleでのDamping有効。DOPネットワークは標準的なRBDの組み方。赤く色付けたノードGeometryWrangle(DOP)に以下のようなVEXコードを書いて、減衰させているそう[...]
read more
Houdiniノード勉強回。Match Size(SOP)ノードを使うと、容易にオブジェクトを原点に配置できることを、最近知りました。使い方は簡単、Match Size(SOP)にジオメトリを繋ぐだけ。”原点に配置”したいって時、けっこうあるので、「ノードいっこで簡単にできたのか!」、と思った次第でした。Transform(SOP)のパラメータにある"Move Centroid to Origin"でも、ジオメトリを原点に配置できるのですが、それだとプロシージャルでないし(異なるジオメトリに適応できない)、かといってExpressionを書くのも面倒くさい。なので、[...]
read more
今回は、MayaのWrapデフォーマノードについて調べてみました。たまには基本に立ち返るのも大事かと。ここではマニュアルに従って、制御する側のオブジェクトをラップインフルエンス(オブジェクト)と呼ぶことにします。Wrapデフォーマ適応方法1:変形したいオブジェクトを選択 2:ラップインフルエンス(制御に使いたいオブジェクト)を選択 3:Animationメニューから、□作成時のオプションは、Wrapノードのアトリビュートと同じなのでそちらを参照。Falloff ModeVolumeとSurfaceの二択。Soft SelectionのVolume[...]
read more
「せっかくHoudiniインストールしたのに、起動したらメニューとかアイコンとか小さい!」って声があちこちで聞こえたので。以下、対応方法。1:Preferencesを開くメニューからを選択2:Global UI Sizeの項目を変更Global UI Sizeの項目を、"Large"もしくは"High DPI"に変更。3:Houdiniを再起動Houdiniを再起動すると設定が反映されます。以下、各サイズの参考ちなみに、これは私のモニタ(解像度2736x1824)での見え方です。FullHD解像度のモニタとかだと、Normalでも[...]
read more
今回はプログラム系、特にユーザーインターフェース周りのお話です。 ここでは、Python & QtDesigner & Pysideを使った作例をば。最近の3DCG系ソフトはだいたいPythonをサポートしているので、多少の違いはあれど、どのソフトでも応用がきくのではなかろうかと思いまして書きました。ただしあくまでCG屋が書くプログラムなので、そこのところあしからず。いくつかある作例の中の一つとして捉えていただければ。流れは下のようになります。①:Qt DesignerでUI作成↓②:PySideに変換↓③:コードを好きにいじる[...]
read more
Houdini、VEX勉強回。neighbour系について。このneighour()系のVEX関数、よく使う割にいつもマニュアル見るので備忘録もかねてまとめです。neighbour()とかneighbours()とか、似た名前の関数があり紛らわしい。私的「つづり間違うランキング」も結構上位です。まず、neighbourと名の付く関数は隣接ポイントに関する情報を取得するものです。そもそも隣接ポイントとは、隣り合ったポイントです。上左図のように、エッジ(線)でつながったポイントを隣接ポイントといいます。上右図のように繋がってないものは隣接ポイントではない[...]
read more
Houdini Advent Calendar2016 15日目に参加しました。Houdiniノード勉強回。テーマはL-System。反復処理されるルールによって、枝分かれする現象を表現できるヤツ。使えそうに見えて使いどころが難しい、そんな機能かと。基本的にL-system(SOP)ノードだけで、作ることができます。まずは概要から。L-Systemの作成には大きく3つの工程があると、私は思っています。1:どのようなルールで作るか(パターン)2:どのような数値を設定するか(長さ、角度、減衰、増幅など)3:それを何回繰り返すか1:[...]
read more
Vimeo行くと大きいのが見れます。MayaのView上ではこんな感じ。機械兵の欠けや、木の凸凹は大部分がディスプレイスメントマップ。ツタは、『Ivy Generator』というソフトを使って。コケっぽいのが欲しかったので、Furで木と地面を覆いました。数種類混ぜようかとも思ったのですが、今回は一種類のみにしました。Furは普通にレンダリングすると時間がかかったので、RenderSettings のPrimary Renderを "Rasterizer(Rapid Motion)"に変更してレンダリングしてます。出力Pas[...]
read more