ここのところノードの話ばかりだったので、今日はScriptの話にしてみました。次のようなスクリプトを作ってみました。以前、Twitterでちょこっとツイートしたのですが、下の絵のように、2Dドット絵から3Dのドット風絵に変換するスクリプトです。(あくまで、ドットをCubeに置き換えるだけで、凸凹させるのはできません。あしからず)試しにレンダリングすると・・・もっとつくってみた。調子に乗って、さらに作ってみた。ピクセルってたら彼かな、と。えーと、スクリプトね。画像を制御するモジュールとしてPIL(Python Imagein[...]
read moreブログでプログラムのコードを綺麗に表示する方法を覚えたので、今回はそっち系です。再帰関数を使用して、複雑な親子階層からオブジェクトのみ取得するMayaのスクリプトを書いてみました。親を選択してこのスクリプトを実行すると、親以下すべての階層を検索してMeshのリストを作成します。ちなみにpymelです。#再帰関数使ってMeshのみを取得import pymel.core as pm#再帰関数def getMeshList(Node, MeshList): #選択したノードの子供をリストで返す children = Node.ge[...]
read moreHoudini回。前回に引き続き、Fog Rayを作る方法、別解!普通にVolume使ってもFog Ray作れるのでは、と思ってやってみた。アルファめちゃ薄いけど、っぽいものは出来たかなと。以下、手順をStep by Stepで。1:スポットライトを作成する。Fog Rayの光源ですね。基本、この光に照らされた範囲がFog Rayになります。2:Volume(SOP)でFogを作成するFogRayを作りたい領域にFogを作成する。ここでは、安直にVolume(SOP)を使った。普通にBox型でも良いですが、ライ[...]
read more前回に引き続き、「user_ibl_env」ノードのパラメータを確認していきます。Texture環境光として使いたいテクスチャをコネクトします。テクスチャが違えば当然ライティングも変わります。Sampleサンプル数。少ないとノイズが出る。デフォルトは0。0だと環境光は計算されないってことなのかな?64以上は欲しいところかな?ColorTextureに色が乗算(?)される。黒だと環境光が無くなる。Intensity強度。デフォルトは1。Shadow Mode0=影なし。 1=ソリッド。 2=透明。Ro[...]
read moreAfterEffectsで作るこゆヤツ。作成過程をStep by Stepで!Step1:花の形状のマスクを用意するIllustoratorで作ったパスを持ってくるなり、AEで下絵をトレスするなりでアニメーションさせたい形状のマスクを用意します。Illustorator->AEは、コピー&ペーストでVectorパスがマスクとしてコピーできます。1レイヤにつき1つのパーツがよいと思いますです。レイヤー数は沢山になります。(サンプルのはだいたい50レイヤーくらいありいます)地味な作業ですがガンバリます。[...]
read moreHoudiniノード勉強回。Path Deform(SOP)。カーブに沿った変型をしてくれるノード。とっても便利。変型だけでなくカーブに沿った移動もしてくれる。複数のカーブにも対応しているのもうれしい点。またオフセットのタイミングもアトリビュートで個別に制御出来るし、当然のようにScaleとRotateにも対応している。優秀。これはもう、動かせるcopyノードと言ってもよいのでは。使い方はいたって簡単で、1番目の入力に変型させたいジオメトリ、2番目の入力にカーブを繋ぐだけ。パラメータの詳細はドキュメント参照。作例として次のよう[...]
read more今回はMayaTips回。Mayaで普通のパーティクルをループさせる方法です。ここではMaya標準のFireを使って試してみます。方法はシンプル。ループさせたい最後のフレームに移動、パーティクルを選択して、「選択したパーティクルの現在の状態を初期状態として使用する」ってのが、この操作の意味なのですが、これで1フレームからInitial Stateを実行したフレームまでのループが出来ます。あくまで、動きだけですが、上例の方法で簡単な炎や煙のループは作れるのでは?それにしても、Initial Stateを設定するだけでなぜループが[...]
read moreHoudini、VEX勉強回。neighbour系について。このneighour()系のVEX関数、よく使う割にいつもマニュアル見るので備忘録もかねてまとめです。neighbour()とかneighbours()とか、似た名前の関数があり紛らわしい。私的「つづり間違うランキング」も結構上位です。まず、neighbourと名の付く関数は隣接ポイントに関する情報を取得するものです。そもそも隣接ポイントとは、隣り合ったポイントです。上左図のように、エッジ(線)でつながったポイントを隣接ポイントといいます。上右図のように繋がってないものは隣接ポイントではない[...]
read morePythonには”リスト内包表記”なるものがあるそうな。初めて目にした時は、「なんじゃこのケッタイな書き方は!」と思ったものです。リスト内包表記をザックリ説明すると、『for分とかif分とか使って複数行必要だった処理が一行ですむよ。しかも処理が早いよ。でもちょっと読みづらいよ』っていう書き方でしょうか。ものの本によると、”リスト内包表記とは、あるリストを元にして別のリストを作るための記法のことです”、だそうです。ちょっとMayaのpyemlで普通の書き方と、それを内包表記で書いた例を作ってみました。選択したオブジェクトのうち、Meshのみをリストで返[...]
read moreHoudiniノード勉強回。Point Velocity(SOP)。ポイントにVelocity(速度)アトリビュートを付与してくれる。単にVelocity(速度)を計算するだけではなく、任意の方向の速度を足したり、ノイズを追加したりできるらしい。パラメータを見ると沢山タブがありました。どうやら、速度計算やノイズの追加などがタブで分かれているようです。詳細はマニュアルを見るとして、気になるパラメータや各タブの内容をざっと確認してゆきます。パラメータ上の方 Add Velocity・・・任意のベクトルを追加する。この値は最後に足されるら[...]
read more