スクリプトに対するリンク コールバック

コールバックを使用し、あらゆる数の関数を実行する複雑なスクリプトにアトリビュートをリンクすることができます。たとえば、コールバック スクリプトを使用し、シーンに影響を与えるようにアトリビュート エディタ(Attribute Editor)コントロールを調整することができます。

次のイメージは、Maya で作成されたタンクを示しています。マスター ノードが選択され、既定のビューが選択された状態でアトリビュート エディタ(Attribute Editor)にこのノードが表示されています。

次のイメージでは、アニメーション(Animation)というビューが選択されています。このビューは、アニメータのニーズに合わせてカスタマイズされています。たとえば、ディテール(Details)アトリビュートはオフに設定されています。その結果、タンクの細部はシーンで非表示になっています。
このビューは、AEtankControlAnim というプロシージャを呼び出す AETransformTemplate.xml というカスタム テンプレートで作成されました。

AEtankControlAnim は、MEL または Python で作成できます(「カスタム アトリビュート コントロールを作成する」を参照)。AEtankControlAnim には、コールバック スクリプトが含まれます。

このコールバック スクリプトは次の 2 つのタスクを実行します。
  1. アトリビュート タイプに基づいてコントロールを作成します。
    たとえば、ディテール(Details)アトリビュートには、そのアトリビュート宣言に次のコード行が含まれます。
    <attribute name='details' type='maya.bool'>
    タイプが maya.bool であるため、(Attribute Editor)アトリビュート エディタはチェックボックスを作成します。タイプの一覧は、「アトリビュート タイプ」を参照してください。
  2. コントロールの値が変化するときに、2 番目のスクリプト(変更コマンド)を実行します。これにより、アトリビュート エディタ(Attribute Editor)とアトリビュートの同期が保たれます。
ディテール(Details)アトリビュートに変更を加えるために、AEtankControlAnim プロシージャにコード行がいくつか追加されます。
tankControlAnimCB という変更コマンドが、(Attribute Editor)アトリビュート エディタレイアウトで(Details)ディテールチェックボックスがオフになるようにする 2 番目のスクリプトを実行します。
ヒント: コマンド フラグを使用してシーンのダーティ状態をクリアするには、「コールバックを使用するときに、シーンの不必要なダーティ化を防ぐ」を参照してください。

関連項目