オブジェクト名を変更する

エクスプレッションでオブジェクトのアトリビュートが使用されている場合に、そのオブジェクトの名前を変更しても、エクスプレッション エディタ(Expression Editor)は引き続きそのアトリビュートの設定と読み取りを行います。すなわち、アトリビュートとエクスプレッションの関連付けは解除されません。エクスプレッション エディタ(Expression Editor)リロード(Reload)ボタンを再びクリックすると、オブジェクト名が新しい名前に変換されます。

エクスプレッションをリロードすると、エクスプレッション内のアトリビュートのショート ネームがロング ネームに変換されます。たとえば、Ball.ty というアトリビュートショートネームを入力した場合、エクスプレッションをリロードすると、Ball.translateY に変換されます。

あるオブジェクトの名前を変更し、そのオブジェクト名がエクスプレッション内の MEL コマンドで使用されている場合(次のセクションを参照)、エクスプレッション内でその名前を手動で変更する必要があります。エクスプレッション エディタ(Expression Editor)では、MEL 文に存在する名前は自動変換されません。たとえば、エクスプレッションで次の文を問題なく使用していると仮定します。

Cube.translateX = 'getAttr Ball.translateX';
setAttr Ball.translateX 0;

後の段階で Ball を Sphere という名前に変更しても、エクスプレッション エディタ(Expression Editor)では Ball から Sphere への変換は行われず、このエクスプレッションはエラーになります。エクスプレッション内で手動で名前を変更する必要があります。

次のステートメントを使用すると、エクスプレッション エディタ(Expression Editor)によって Ball から Sphere への変換が行われ、エクスプレッションは正常に実行されます。これは、この文では MEL コマンドの文ではなく、標準的なエクスプレッション文を使用しているためです。

Cube.translateX = Ball.translateX;
Ball.translateX = 0;