ICEをちょろっと
ICETreeで Set Dataしたものは、変数のように格納されるっぽいです。
そのデータのアクセスは
Object.ActivePrimitive.Geometry.ICEAttributes
でアクセスできるようになります。
しかし、ICETreeでSetDataをした場合でも
データーを取得できる場合と
取得できない場合がありました。
タービュランス等の、良く稼働するデーターの
取得はできるのですが、
変化の乏しい、動かさなかったSizeとか
有効になってないようなのです。
理由をマニュアルで調べたのですが
ICEが行う最適化に鍵がありそうです。
以下マニュアルより
----Manual----
ICE 最適化の注意事項
データを設定しても、シーンでまったく使用されていない場合、ICE が最適化される仕組みにより、そのデータが実際に設定されることはありません。これはカスタム属性だけでなく、動的属性にも適用されます。たとえば、[PointVelocity]を設定しても、シミュレート ノードを使用してポイント位置を更新しない場合、[PointVelocity]は実際には設定されません。その他にも、この動作による次のような影響が考えられます。
- ビューポートでデータ値を表示する。「ポートの値を表示する」を参照してください。
データを使用して、シーンの実際のデータを設定する。たとえば、ウェイト マップ値を設定したり、Render Tree でデータを使用したりします。
ほむう、コレが原因のようですな。
ようは、Setしたんだけど使わなかったら別に覚えなくてもいいよねってことらしい。
それは、ICEAttributeの数は膨大だものねぇ。
こんなにデーター格納してどうするの?
ふつう思うわよねぇ〜
ふつう思うわよねぇ〜
膨大なアトリビュートの数 |
原因はわかったので、対処の方法を
・実際に使ってやる
・ビューポートで表示
とりあえずビューポートで
ほむほむ
ということでした。
0 件のコメント:
コメントを投稿