2011年9月23日金曜日

Fumefxのパラメーターにアクセスする!~シェーダ編~

まず、FumeFxのコンテナはインスタンスコピーされたものはレンダリングされない模様。
なので、たくさんコピーしたコンテナのパラメーターを一括変換するためスクリプトが必要になった。
コンテナのパラメーターは「showproperties $(選択物)」で確認したり、
リスナーでレコードして確認する。

そこで、RenderタブのSmoke内のOpacityにアクセスしてみたいと思う。
まず、「showproperties $"Smoke*"」でそれっぽいパラメーターを検索。

.SmokeDetailStrength (Smoke_Strength) : float
.SmokeThreshold (Smoke_Threshold) : float
.SmokeFromFuelDensity (Smoke_Density) : float
.SmokeBuoyancy (Smoke_Buoyancy) : float
.SmokeIllumStrength (Smoke_MS_Strength) : float

ん~見当たらない。。

リスナーのレコーダーで見てみる。

$[#Standard].smokedensity = 0.93

とでる。

なので、「$.smokedensity = 1」と入力してみる。
一瞬できたと思ったが、シュミレーションタブのFuelパラメーターのSmokeDensityが1になった。
僕の引き出しはここまで。もう迷子。
適当に「$.smokeopacity = 1」やらいろんなの試したけど駄目。。。



ツイッターでいつものように助けてとつぶやく。
そこでKei Yoneokaさんがいつものようにすぐ助けてくれた。
ほんとに毎度ありがとうございます{%万歳webry%}

-------------------------------

Keiyoneoka
@notchmen あー、あれは最初にFumeのシェーダーを変数として定義しないとだめぽいです。
myshader=(i.getshader()) とやって、myshader.smokedensity=0.1とかする流れです。

--------------------------------

解決!!

私的解釈では
RenderタブのSmoke内のOpacityはFumeFxシェーダのプロパティにあたるらしい。
上記で見られる「$[#Standard].smokedensity = 0.93」の[#Standard]がそうだ。
なのでFumeFXシェーダーを作成して、そのシェーダーのプロパティにアクセスするという流れだ。


キーとなるのはこいつだ。こいつさえ知っておれば。。
↓↓↓↓↓↓↓
[#Standard]

ほんと仕組みがまだまだ理解できてないので勉強しなければ。。。







0 件のコメント:

コメントを投稿