出力 ¶
プラグインは、インスタンスの出力に対応しています。 インスタンスは、パックプリミティブまたはインスタンサーオブジェクトの2通りの方法で出力することができます。 以前は、インスタンスを出力する方法はインスタンサーオブジェクトのみでした。 しかし、パックプリミティブ対応が追加されてからは、インスタンスの出力にはパックプリミティブの使用が推奨されています。 Mayaでは、パックプリミティブはパーティクルインスタンサーまたはトランスフォームインスタンスの2通りの方法で表現することができます。 パーティクルインスタンサーは大量のインスタンスを処理することができ、トランスフォームインスタンスを使用するよりも効率的なため、パーティクルインスタンサーの使用が推奨されています。
パーティクルインスタンサー ¶
インスタンスを出力するには、Mayaのパーティクルインスタンサーを使用する方法がお勧めです。 これは、Mayaのパーティクルインスタンスに使用されているInstancerノードを使用してパックプリミティブを出力します。
インスタンスを追加および削除するのにMayaシーンの変更は不要なため、インスタンスを追加または削除した時に同期する必要はありません。
パックプリミティブのPointおよびPrimitiveアトリビュートもInstancerノード上で利用可能です。
トランスフォームインスタンス ¶
トランスフォームインスタンスは、DAG親子化を使用してインスタンスを作成します。 これにより、Mayaシーン内にジオメトリのDAGインスタンスが作成されます。 状況によってはこれが適している場合もありますが、大量のインスタンスには、パーティクルインスタンサーを使用する方が効率的です。
DAG親子化ではMayaシーンの変更が必要になるため、インスタンスを追加または削除する際には同期する必要があります。
現時点では、パックプリミティブのPointおよびPrimitiveアトリビュートは使用できません。
入れ子状のパックプリミティブ ¶
入れ子状のパックプリミティブを出力することも可能です。 これは、パックプリミティブに別のパックプリミティブが含まれたものです。
パーティクルインスタンサーを使用する場合、入れ子状のパックプリミティブは平坦化され、インスタンス化される各ジオメトリは各自のインスタンサーに格納されます。 これは、パーティクルインスタンサーは別のパーティクルインスタンサーのインスタンス化をサポートしていないからです。
トランスフォームインスタンスを使用する場合、入れ子状のパックプリミティブは正確に表現されます。 これは、DAG親子化では他のDAGインスタンスをインスタンス化できるためです。