ここでは、いくつかの一般的な構文エラーを示し、その原因について説明します。
アトリビュート名のスペルが間違っているか、アトリビュートがシーン内に存在しないか、または変数名の前に $ を付け忘れています。
エクスプレッションでパーティクル配列のアトリビュートを使用しましたが、パーティクルのシェイプ ノードがエクスプレッション エディタ(Expression Editor)で選択したオブジェクト(Selected Objects)に入っていません。パーティクル配列のアトリビュートを使用する場合は、パーティクルのシェイプ ノードを選択する必要があります。パーティクル配列のアトリビュートは、パーティクル単位のアトリビュートとも呼ばれます。
アトリビュートの値を設定しようとしましたが、そのアトリビュート値は次のいずれかの手法ですでに設定されています。
指定した object.attribute が、2 つ以上の親オブジェクトで存在しています。同一シーンの 2 つのオブジェクトの親オブジェクトが異なっていれば、同じオブジェクト名を付けることができます。
たとえば、1 つのシーンの中に、GroupA の子オブジェクトである Ball.tx と、GroupB の子オブジェクトである Ball.tx が存在する場合があります。「Ball.tx = time;」のような文を記述すると、Maya はどちらの Ball.tx に設定するのかを認識しません。
このようなエラーを防止するには、アトリビュートのフル パス名として GroupA|Ball.tx を入力します。パイプ記号(|)は、左側のオブジェクトが右側のオブジェクトの親オブジェクトであることを示します。
Maya の定義済み変数である time と frame は読み取り専用であり、値を設定することはできません。
string 型または matrix 型のアトリビュートの値を設定または読み取りしようとしました。たとえば、アトリビュート名として移動 X (Translate X)、移動 Y (Translate Y)、移動 Z (Translate Z)ではなく移動(Translate)を使用しました。
上のエラー メッセージの場合、worldMatrix はトランスフォーム用のアトリビュートですが、Maya の内部使用専用であるため、ユーザがこのアトリビュートを使用することはできません。
0 に等しいアトリビュートまたは変数で割り算を行おうとしました。これは通常、グリッド スナップ(Snap to grids)ボタンがオンで、オブジェクトをドラッグして X、Y または Z 軸を通過する場合に、オブジェクトの移動 X (Translate X)、移動 Y (Translate Y) または移動 Z (Translate Z) アトリビュートで割り算をするエクスプレッション文で発生します。グリッド スナップ(Snap to grids)がオンの場合、移動 X (Translate X)、移動 Y (Translate Y)、または移動 Z (Translate Z)アトリビュートは、該当する軸を横切ってオブジェクトをドラッグしたポイントで、完全に 0 になります。
このエラーを防ぐには、グリッド スナップ(Snap to grids) ボタンをオフにします。スナップをオフに設定すると、オブジェクトをドラッグして軸を通過させても、アトリビュートが完全に 0 になる可能性は低くなります。
パーティクルのシェイプ ノードに関するエクスプレッションをコンパイルしたときに、オブジェクト内の各パーティクルごとに同じエラー メッセージが表示される場合は、一部のアトリビュート名や変数、関数が未定義か、またはスペルが誤っている可能性があります。
古い Maya シーン ファイルをロードするのに -style フラグが使用されている場合、この警告メッセージは無視しても問題ありません。これは、グリッド コマンドの機能が改善されたために表示される警告メッセージです。したがって、-st/style フラグは廃止されました。Maya 4.0 以降のファイルを保存してロードしたときには、この警告メッセージは表示されません。