コールバックを使用し、あらゆる数の関数を実行する複雑なスクリプトにアトリビュートをリンクすることができます。たとえば、コールバック スクリプトを使用し、シーンに影響を与えるようにアトリビュート エディタ(Attribute Editor)コントロールを調整することができます。
次のイメージは、Maya で作成されたタンクを示しています。マスター ノードが選択され、既定のビューが選択された状態でアトリビュート エディタ(Attribute Editor)にこのノードが表示されています。
次のイメージでは、
アニメーション(Animation)というビューが選択されています。このビューは、アニメータのニーズに合わせてカスタマイズされています。たとえば、
ディテール(Details)アトリビュートはオフに設定されています。その結果、タンクの細部はシーンで非表示になっています。
このビューは、
AEtankControlAnim というプロシージャを呼び出す
AETransformTemplate.xml というカスタム テンプレートで作成されました。
AEtankControlAnim は、MEL または Python で作成できます(「カスタム アトリビュート コントロールを作成する」を参照)。AEtankControlAnim には、コールバック スクリプトが含まれます。
このコールバック スクリプトは次の 2 つのタスクを実行します。
- アトリビュート タイプに基づいてコントロールを作成します。
たとえば、
ディテール(Details)アトリビュートには、そのアトリビュート宣言に次のコード行が含まれます。
<attribute name='details' type='maya.bool'>
タイプが
maya.bool であるため、
(Attribute Editor)アトリビュート エディタはチェックボックスを作成します。タイプの一覧は、「
アトリビュート タイプ」を参照してください。
- コントロールの値が変化するときに、2 番目のスクリプト(変更コマンド)を実行します。これにより、アトリビュート エディタ(Attribute Editor)とアトリビュートの同期が保たれます。
ディテール(Details)アトリビュートに変更を加えるために、
AEtankControlAnim プロシージャにコード行がいくつか追加されます。
tankControlAnimCB という変更コマンドが、
(Attribute Editor)アトリビュート エディタレイアウトで
(Details)ディテールチェックボックスがオフになるようにする 2 番目のスクリプトを実行します。