Houdini上のPackされたオブジェクトをTranslate, Rotate, Scale, Visibilityの情報として保存してファイルサイズと書き出し時間を削減する方法です。
大量、ポリゴン数多いの破片オブジェクトなどをAlembicで書き出す際に効果を発揮します。
ParticleのAgeや、Deleteノードで削除したものはVisibilityオフとして扱われます。
当然、インスタンスのため毎フレーム値が変わる情報は保持できません。
テストシーンでの比較
Default | Instance | |
---|---|---|
ファイルサイズ | 491.1MB | 1.7MB |
書き出し時間 | 20秒くらい | 1秒くらい |
書き出し方法
Packした状態でAttributeやGroupを整理し、Rop Alembicの以下の箇所を設定します。
この際、設定するPath Attributeはidなどを使用して重複しないようにします。
重複すると読み込み時に自動でリネーム処理が走ったりするため、エラーの元になります。
Mayaへの読み込み
Maya標準のAlembic Importでも読み込めますが、Shapeが大量にできるためMayaが非常に重くなります。
GPU Cacheの方で読み込むとシェイプが1つになるため読み込みやViewportは軽量ですが、 シェーダーのアサインが1つのみになることと、レンダリング時にGPUメモリが少ないとクラッシュします。
GPU Cache使用時はMake Instanceにチェックを入れます。
GPU Cache使用時にメッシュごとに違うマテリアルをアサインする場合は、以下の箇所をダブルクリックして指定したメッシュのみの表示にし
違うメッシュを表示したGPU Cacheをもう一つ読み込みます。
おまけ1
Copy to pointsノードでも、instanceノードでも使用可能です。
Copy to pointsの場合はPack and Instanceのチェックを忘れないようにします。
ともかくPackされていればScatterでも大丈夫です。
おまけ2
最後に残すAttribute