点Aと点Bをm:nに内分する点Pを表す位置ベクトルは、適当な基準点をOとして次の式で求められる。順に考えていく。これは納得できる。比は左右を同じ数で割っても、その比自体は変わらないのでと変形して使ってもOK。これは、ABの長さを1としたとき、APの長さが(m+n)/nとなる事を意味する。ベクトルAPとベクトルABは方向が等しいので定数倍であらわすことができる。この定数が、上記の比である。となる。このことから。この式をどんどん変形してゆく。長さの比が分か[...]
read more
またHoudiniのターン。Group(SOP)とAdd(SOP)のコンボで任意の順番にポイントを繋ぐ方法です。まったくプロシージャルじゃないけど。以下手順。1:シーンビューでポイントをちくちくと選択する。2:Group SOPでグループ化する3:Group SOPのパラメータ"Create Orderded"をONにする。これでポイントを入力順にソートできる。4:Add SOPの設定は"By Group"でGroupに先ほど作ったグループを指定。これで選択した順にラインが作られる。Group SOPのCreate Orderedって、視界には入って[...]
read more
夜な夜なこんなのを作ってました。この記事はこんなの作ったよ~、くらいの内容です。悪しからず。破片の置換の応用です。「形が似てるなら、ポリゴン以外も置換できるな」とふと思い、手始めに煙で作ってみた次第です。以下、ネットワーク抜粋です。手順は以下の通り。A:煙のSIM読み込みB:煙にリタイムをかけて、箱を満たした辺りでストップするC:煙にNameアトリビュート(point)を付与。このNameは、"D"工程のNameと一致させておく。D:箱を落とすシミュレーションする。(Packed)E:煙の位置を箱の位置と一致させる。F:箱と煙を置[...]
read more
Pythonには”リスト内包表記”なるものがあるそうな。初めて目にした時は、「なんじゃこのケッタイな書き方は!」と思ったものです。リスト内包表記をザックリ説明すると、『for分とかif分とか使って複数行必要だった処理が一行ですむよ。しかも処理が早いよ。でもちょっと読みづらいよ』っていう書き方でしょうか。ものの本によると、”リスト内包表記とは、あるリストを元にして別のリストを作るための記法のことです”、だそうです。ちょっとMayaのpyemlで普通の書き方と、それを内包表記で書いた例を作ってみました。選択したオブジェクトのうち、Meshのみをリストで返[...]
read more
Houdini回。ハイモデルからProxyモデルを作る方法のメモ。PolyReduce(SOP)やRemesh(SOP)も、昨今のアップデートで処理速度や制度が向上してますが、それでもまだVDB使った方が早いきがします。ポリゴンを一旦"VDB from Polygon"でVDBに変換してから、"Convert VDB"でポリゴンに戻す。Convert VDBのパラメータ"Adaptivity”を上げることで、ポリゴンを間引ける。PolyReduce(SOP)やRemesh(SOP)はメモリも結構喰うイメージですが、VDB使うこの方法は軽くて結構良[...]
read more
今回は軌跡エフェクトの作り方にしてみました。いろんな作り方があると思うのですが、ここではMayaで作れる「簡単な方法」と「ちょっと難しい方法」の二つを、全2回に分けて紹介してみようと思います。1回目は「簡単な方法」から。こんな感じのものを作ります。3dsMaxの『Ghost Trails』みたいなのです。Mayaは2012の英語版を使用しています。①エッジをポリゴン化まず、軌跡の元となるカーブをポリゴンから作成します。ポリゴンのエッジを選択し、すると、選択したエッジ上にカーブが作成されます。このカーブは(ヒストリを消さない限り)エ[...]
read more
Houdiniノード勉強回。COPで作ったテクスチャをSOPに張り付けた時にも、ちゃんとアニメーションが更新されるようにする方法。こんな感じ。一見普通に見えますが、普通にCOPのテクスチャを貼っただけだと、こんな感じ。タイムスライダをぐりぐりしてもSOP上のテクスチャは更新されません。これは、ビュー上のテクスチャ情報がキャッシュとして保持されており、それが更新されないため(たぶん)これを解決するために、script(SOP)を使っています。script(SOP)は名前の通り、scriptを実行するSOPノードです。ノードが[...]
read more
Houdini回。最近知ったこと。SOP階層で、複数のノードのアウトプットを選択してAlt押しながらドラッグすると、Merge(SOP)が作られる。最近のバージョン更新内容だった気がするけど、あらためて「へ~」って思ったので。以上!これだけ。[...]
read more
Houdini勉強回。今回はSpare Inputについて。"Spare Input"とは、ざっくり言うと「ノード参照のための追加パラメータ」です。たしか、Houdini16くらいから付いた機能だったかと思います。使い方"Spare Input"は次のようにして作成、使用します。例として、Spare Inputを使用してジオメトリの下にグリッドを配置します。あらかじめシーン内にGrid(SOP)とTestGeometry(ぶた)を用意いておきます。Spare Inputを使用して、TestGeometry(ぶた)のジオメトリ情報を取得[...]
read more
今回は『mip_cameramap』のアトリビュートについて調べてみました。このノードはカメラから見たプロジェクションマップを実現するノード、とで言いましょうか。bent_normalの回ではmip_matteshadowと併用して、簡易背景を作るのに使ったりしました。せっかくなので、bent_normalで使ったシーンファイル↓を元に確認していきたいと思います。HyperShadeはこんな感じ↓cameramapを使ってHDR画像を貼り付け、mip_matteShadowで影をキャッチ、その結果をSurfaceShacerに渡すといったことをしてます。案外[...]
read more