NODES を使用して以前の変換を取得する方法、または私の場合は翻訳を時間から取得する方法はありますか? これを行う単純な式を作成しましたが、ノードでこれを実現したいと思っています。
$transx =getattr 'objname.tx' -frame time -1;
または、それに似たようなものですが、完全には思い出せませんが、式で getatrr を使用していました。
何か案は?
式ノードはノードであり、式ノード内のタフなgetAttrはノードフローを中断します。ただし、はい、 frameCacheノードを使用して前回の実行の値を保存できます。または、式の属性内に値を格納することもできます。
node.tx = node.cacheTx;
node.cacheTx = objname.tx;
これは、属性評価フローを中断しないため、はるかに高速です。これらのメカニズムは両方とも、フレームの変更の間に変更された場合、時間のコンテキスト外で評価されないという厳しい欠陥があります。これはMayaユーザーが常に行っていることであり、ユーザーからのフィードバックが不十分になります。実際、この種の非常に複雑なカスタムノードの実装でできることはほとんどありません。
これが難しい理由は、MayaユーザーがMayaの時間メカニズムを破る実際的なアクションに成功しているためです。その後、開発者はユーザーのプレッシャーの下で降伏し、これを許可しましたが、Mayaの時間評価サイクルが壊れたため、時間コンテキストシフトですべてを照会できるわけではありません。Mayaで差分方程式ソルバーを作成するのが難しくなります。確かに、この特定のケースでは、ノードを作成するのは特に難しいことではありませんが、ほとんどの場合、実際に機能するノードは難しいです。