オブジェクトまたはコレクションにアトリビュートのセットを追加します。特定の属性定義のカスタム アトリビュート セットのうち、オブジェクトに追加できるのは 1 つだけです。ただし、異なる複数の定義から取得したさまざまなアトリビュートを、必要な数だけ持つことができます。
custAttributes.add() 関数を使ってオブジェクトにカスタム アトリビュートを追加する場合、オプションの #unique キーワードを 3 番目の引数として指定できます。これを実行する場合、追加先の各オブジェクトには、定義の独自プライベート コピーを含むカスタム アトリビュートが追加されることになるため、元の定義は共有 されません 。元の属性定義を後で再定義しても、これらのカスタム アトリビュートは更新されません。個々のオブジェクトのアトリビュートを更新するには、 custAttributes.getDef を使ってオブジェクトから一意の定義を取得し、次の 2 つの方法のいずれかを使用して再定義します。
オプションのキーワード引数 baseObject が true (既定値)に設定されている場合、指定されているオブジェクトがノードであれば、そこでは基本オブジェクトが動作します。 false の場合、ノードそのものがそこで動作します。
例 |
[修正]パネルで $weapon01 を開くと、「Weapon Parameters」ロールアウトが表示されます。これらのパラメータは、通常のオブジェクト パラメータと同じように編集できます。属性定義を使用して、定義済みのアトリビュート セットをいつでもオブジェクトに追加できます。スクリプト プラグインの場合と同様に、適切なタイプであればどのパラメータでもアニメートできます。 |
custAttributes.add() 関数をオブジェクト コレクションに適用して、オブジェクト グループにアトリビュート セットを一度に追加することができます。
スクリプト プラグイン と同様に、属性定義はパラメータおよびロールアウト句のセットを任意の数だけ保持できるため、追加されたアトリビュートを必要に応じて複数のロールアウトに整理できます。
MAXScript では、オブジェクトまたはモディファイヤに追加されたスクリプト カスタム アトリビュートにアクセスできます。これらには、追加先のオブジェクトのプロパティとして直接アクセスできます。カスタム属性のすべての名前がホスト オブジェクトの既存のプロパティと同じ名前の場合、カスタム属性に直接アクセスしようとしても、カスタム属性は実際には表示されません。代わりに、その属性定義名によって追加された各カスタム属性ブロックにアクセスできます。その際、個々の属性にはブロック内のプロパティとしてアクセスできます。