スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
フレームレートが低いと分かりやすいのですが
Maya でパーティクルのエミッタを作って
適当に移動させて動きをつけたとき
エミッタは常に曲線を描いて動くことができますが
発生されるパーティクルは整数フレーム同士の間は直線的に補間されます。

2013061401.png

例えば上の図で、これはエミッタ[緑]をパス[青]に沿ってアニメーションさせています。
これは(パーティクル[ピンク]を全て放出しきった後の)
6.5 フレームという整数ではないフレームでの様子をキャプチャしたものですが
エミッタは確かにパス上にあるはずなのにパーティクルはそうではありません。
発生場所の軌跡が角張っていて非常に不自然です。
もちろんモーションパスを使わずとも曲線的な動きさえ与えていればこの現象は起こります。

これを回避するには、Dynamics メニューセットの
Solvers > Edit Oversampling or Cache Settings... をクリックして
開かれる Attribute Editor で dynGlobals ノードの Over Samplies の値を上げれば
綺麗になるようです。

2013061402.png

うぅむ… Maya もまだまだ分からないことばかり。
しかし仮にメニューにある機能を全てシラミ潰しに調べて勉強したところで
Dynamics の Solvers なんていうところにある機能が
(しかもヘルプには「ダイナミック シミュレーションをオーバーサンプリングします。
 としか書かれていない)、
この問題が解決できるなんて分かりようがないので…、

そういう意味でもやっぱりユーザ同士の情報提供は大事だなと思いました。
スポンサーサイト
連載中の『男性キャラクタの制作』は
わからなければ調べながら最後までやりきる、がテーマなので
苦手なシェーディング関連のこともきっちり調べます。

レンダラは mental ray を使う予定です。
なかなか国内のサイトだけでは情報が拾いづらい mental ray ですが
最近 Houdini を始めたこともあり外国のサイトを調べる癖がついたおかげで
以前よりも大分楽に知りたいことに行き着くようになりました。
むしろ知らないことが多すぎて、調べ始めるとキリがないほどです。

今予定している方法では Hair をレンダリングするには
どうも Raytracing を使えないようなので、Render Layer で
Hair とその他を分けて出力することになりそうです。

となると必要となってくるのが Use Background。
今まで一度も mental ray で Use Background を使う機会がなかったので調べてみましたが
やはり他のノード同様に Maya の標準ノードでは望ましくないようです。

mental ray で Use Background と同じ機能を持たせるには、
mib_color_alpha の Factor を 0 にして
mip_matteshadow の Background に接続すればいいみたいです。

MEL で記述するなればこんなかんじ。

{
string $selList[] = `ls -sl`;
string $alpha = `mrCreateCustomNode -asUtility "" "mib_color_alpha"`;
string $matte = `mrCreateCustomNode -asShader "" "mip_matteshadow"`;
string $sg = `sets -r 1 -nss 1 -em -n ($matte + "SG")`;

setAttr ($alpha + ".factor") 0;
setAttr ($matte + ".ao_on") 0;

connectAttr -f ($alpha + ".outValue") ($matte + ".background");
connectAttr -f ($matte + ".result") ($sg + ".miMaterialShader");
connectAttr -f ($matte + ".result") ($sg + ".miShadowShader");

for($sel in $selList)
{
string $shp[] = `listRelatives -s -path $sel`;
sets -e -fe $sg $shp;
}
}


20120428_01.png20120428_02.png


アサインしたオブジェクトの部分のアルファがちゃんと0になりました。
mip_matteshadow の使い方は初めて知りましたが、用途はこれだけに限らず
mip_rayswitch_environment と併用すれば入力を2次レイに限定したりもでき
特定のパスを出力したい時などに幅広く使えそうです。


先日どうもレンダリング結果がおかしいと思って
簡単なシーンで調べてみたところまた妙なことが分かりました。

試しに、Maya で適当なオブジェクトを obj 形式で Export して
そのファイルをそのまま Import します。
そして Import 前のものとシェイプノードのアトリビュートを比較すると

111231.gif

ご覧の通り、Visible In Reflections と Visible In Refractions の
2つのアトリビュートの値が off(0)になっています。

他のソフト(Houdini)で Export した obj ファイルを Import しても
同様にこの結果になったので、
Export ではなく Import する時に起こるようです。

したがって、Maya で obj ファイルを Import し、かつ透明なオブジェクトのあるシーンでは
忘れずに この2つのアトリビュートを on(1)にするよう注意が必要のようです。
珍しく私の最も苦手とするシェーディング関連のポストです。

mental ray でレンダリングする際は
使用するノードをできる限り mental ray に合ったものを使用するか
そのような設定にすることが望ましいのは認識としてありましたが
知識が足りないせいでいつもわりと中途半端なままレンダリングしています。

実は今まで透明なものを mental ray でレンダリングしたことがほとんど無かったのですが
先日その機会があったのでTransparency を上げて
普通にレンダリングしようとするとある問題にぶつかりました。

111029_1.png

このように透過される対象が変にぼけてしまうのです。

試行錯誤を繰り返してしまった結果
テクスチャのフィルタに問題があるようです。

テクスチャには File ノードを使用しているのですが
とりあえず File ノードの Filter Type を Off にしたら
綺麗に表示されるようにはなりました。

111029_2.png

もしくは Filter Type が Mipmap のまま
Advanced Elliptical Filter をオンにしてもできます。

111029_3.png

画像下部のパースがついているところを見るとわかりますが
Filter Type が Off の時より滑らかになっているように見えます。
あまり値を大きくしすぎるとぼけすぎてしまうので注意が必要かも知れません。

シェーディング関連について勉強する気はあまりないのですが
ここまで明らかな問題があるとまずいので
もう少し理解を深める必要はありそうです。
Maya の Particle についていくらか勉強していたところ
以前から「こんなことできたら面白そう」と思っていたものが
思ったよりもずっと簡単にできました。

110917_1.png

こんなものです。
1つ1つは単色の Particle でしかありませんが
全体を見ると1つの絵が構成されています。

やるとしたら Python で画像処理のライブラリ使ってピクセルの RGB 値を読み込んで…
とするしかないのかなぁなんて馬鹿らしいことを思っていましたが
たったいくつかノードを接続するだけで簡単にできました。

110917_2.gif

Emitter の『needParentUV』というアトリビュートを on にして
particleShape の parentU,V というアトリビュートを入力に使うと
放出される位置の UV 値が使えるんですね。
これを File ノードに対応させることで放出した位置の RGB 値になります。

上の例では配置がランダムですが綺麗に整列させたものも作ってみました。

110917_3.png

モザイクアートというよりパッチワークみたいですね。

110917_4.gif

今度は parentU,V ではなく goalU,V を接続しています。
これで goalU,V を出力とする Particle Expression でも書けば
Particle の位置を自由に設定できます。

もちろん適用するのは静止画に限らず動画でもできます。
今回は記載しませんがこれもなかなか面白いことになります。

そしてエミッションやゴール以外は特に制限されないので
emitter や particleShape の他の設定は自由にできます。
ちなみにもちろんこれは nParticle でも同様にできます。
したがって発想次第ではとても面白い映像が作れるんじゃないかと思います。

恥ずかしながら今まで particle に関しては半径や速度を設定してフィールドを適用して…
などという基本的なことしか理解していなかったので
最近になってやっと Particle の Dynamic Attribute の1つ1つの意味などを理解してきて
Maya Particle の奥深さに惹かれてきています。


2014/12/23 追記:
詳しい作成手順をこの記事の ichigo_ichie さんへのコメントにて記述しました。
ご参照くださいませ。

Profile
HN らい

都内某社テクニカルディレクター
都内某専門学校講師
都内某企業講師
元中国某社S3Dスーパーバイザー
Contact
(ENGLISH OK. 可以用中文。)
Categories
Archives
RSS Link
QR Code