シーン内にある 2 つのオブジェクトの親オブジェクトが異なる場合は、それら 2 つのオブジェクトに同じ名前を付けることができます。このようなオブジェクトのアトリビュートをエクスプレッションで参照する場合は、オブジェクトのパス名を含む、より完全な名前を使用する必要があります。
オブジェクトのパス名の形式は、次のとおりです。
pathname|objectname.attributename
ここで、pathname は親ノードの名前、objectname はオブジェクトの名前、attributename はアトリビュートの名前です。
パイプ記号(|)は、パス名とオブジェクト名を区切るセパレータ文字です。パイプ記号(|)の前後には空白を入れないでください。
たとえば、1 つのシーンの中に、GroupA の子オブジェクトである Ball.tx と、GroupB の子オブジェクトである Ball.tx が存在する場合があります。次のような文を書くと、
Ball.tx = time;
どちらの Ball.tx に時間(Time)の値を代入するのか判断できないため、エラーが発生します。
このようなエラーを解決するには、次の例に示すように、アトリビュートのパス名を指定する必要があります。
GroupA|Ball.tx = time;
GroupA と Ball.tx の間にあるパイプ記号(|)は、左側のオブジェクトが右側のオブジェクトの親オブジェクトであることを示します。パイプ記号(|)の前後に空白を入れないでください。
エクスプレッション エディタ(Expression Editor)では、このようなオブジェクトについてはパス名が表示されます。たとえば、オブジェクト(Objects)リストに GroupA|Ball と表示されます。