もきもき3D

アクセスカウンタ

zoom RSS ItemMotionでのNodeEditor

<<   作成日時 : 2010/03/07 21:38   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

 DPontのNodeItemMotionはLW9.0でなら妥当な結果を得られるけど、9.2からはMotionPluginで動いてる物を参照するノードを含んでいると正常な結果を返さない。

 で、代替品を作ってのメモ。
 結果的には、Motion->Eval内でEditor->Init/NewTime/Clean(Eval後)を呼んで、各Nodeに処理を促してからRootNode->Evalする事で、9〜9.6でMotionPlugで動く物を参照していても妥当な結果を得られるようになった。

 Eval内でRootNode->evalするだけでは妥当な値は返ってこない。
 RootNodeにNewTime関数を充てて、そこで(Mot->Evalから呼び起こされて)iteminfo->paramを取ると時間のずれた結果しか取れない。

 EvalでinstUpdate(LWNODE_HCLASS)しても、エディタを開いていないと、editor->updateFuncは呼ばれない。

 パネルを開いても、9.0ではFrame移動/NewTimeでPreviewFuncは呼ばれない。
 RootNodeにNewTimeを充てて、そこでinstanceUpdate(LWNODE)を掛ければPreviewが呼ばれる。
 instUpdateで起こされるEventFuncからnode->UpDatePreviewする必要はない。
 RootNodeのinstUpdateをしないと各Nodeの評価も起こらない。

 92からはOption:Autoの場合は、Mot->Eval、(Evalで呼んだなら)Edit->NewTime、Node->Previewの順で呼ばれる。 RootNode->NewTimeは不要(中からのinstUpdateも不要)。
 Editor->NewTimeさえ呼んでいれば(RootNode含む。それ故に)各Nodeは評価される。

 要件かどうか未確認だけど、item->useItemでLWITEM_ALLにしている。
 データ取得(iteminfoとnodeInput->eval)はMot->Evalだけで行ってinstanceに保持し、Previewではinstからの読み出しだけにしている。 一応、(Mot-Evalを経た)PreviewからのnodeInput->evalはMot->Evalでの結果と同じ。
 変数を保持しなくても問題ないかも。

 9.0でMot->Evalが正常でPrevが異常、9.2からはMot->Eval,Prev共に異常という状態を再現出来てないけ、まぁいいか('A`)

----
 ルートノードへの接続/解除時に応じたプレビュー更新。
 ルートのinputIDにConnectEventを付ける。

 Prev内でnodeI->evalするなら、Event内でLWNODEとLWITEMMOTIONをinstUpdate()する。
 nodeI->evalしないで、instUpdateするだけでは解決にならない。

 evalせずにMot->Evalで取る値を表示するだけなら、Event内でRefershコマンドを発行する。
 Mot->Evalが再評価されてモーションの適用と表示、プレビュが更新される事になる。
 instUpdateで起こるRefreshとは結果が異なるのが味噌?

 Prevでevalすると、同一時において常にMot->Evalでのevalと2回行う事になるから、Refreshでごり押しが無難か。
 LWS/.nodesのロードにConnectInputが呼ばれない事については目を瞑っていいかも(呼ばれたらinputIDの数だけRefreshの空打ちが起こって無駄になるし)。

----
 ItemMotionでのNodeEditorの特殊性はおいといて、ChannelHandler版は至極素直な本来こうなんだろうなという感じに出来た。
 特別な事はしないで済んだ。 Verによる分岐すらもいらない( ^ω^)

 前から少し進んだけど、ItemMotionはまだまだ詰めないとあかんな('A`)

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
ItemMotionでのNodeEditor もきもき3D/BIGLOBEウェブリブログ
文字サイズ:       閉じる