alembic error exception


Alembic ROP を使ってファイルを出力しようとしたところ、以下のようなエラーが出て、ファイルの出力が出来ない。ここではこの回避方法を紹介する。

使用したバージョン: Houdini 15.5.588

エラーメッセージ

エラーメッセージは以下の通り。

Error: Alembic exception: OCompoundProperty::init()
ERROR: EXCEPTION:
Already have a property named: name
最後に name とあり、これが解決の鍵になる。

Geometry Spreadsheet

  1. file1 ノードを選択、Geometry Spreadsheet を開く。
    • 最初に開いた時点ではクラス は Points (ポイント)
    • 少し右にスクロールすると name というアトリビュートがあることが確認できる。どのポイントにも値はない。
  2. クラスを Primitives (面) に変更。
    • ここにも name というアトリビュートがあるのがわかる。どの面にも値はない。
    Houdini は、Points と Primitives と異なるクラスに同名のアトリビュート name があることを許容するが、Alembic はこれを許容しない。よって、どちらかまたは両方の name アトリビュートを削除する必要がある。

Attribute Delete

  1. Attribute Delete ノードを作成。
      attribdelete1 が出来る。
  2. attribdelete1 を file1 と rop_alembic1 の間に挿入。
  3. attribdelete1 のパラメータビューで Point アトリビュート、Primitive アトリビュートのどちらかまたは両方に name を指定。
      タイプしても右側のプルダウンから選択しても良い。ここでは、どちらのアトリビュートにも実データがなかったので両方削除。
  4. rop_alembic1 を選択、Render to Disk ボタンをクリックすれば、今度はファイルが正しく出力される。

おまけ

  • どちらか片方のアトリビュートに実データが存在し、もう片方には存在しない場合には、データの無い方のアトリビュートだけを削除する。
  • 両方の name アトリビュートに実データが存在し、どちらも削除したくない場合には片方のアトリビュート名を Attribute Rename ノードを使用して変更する。

    例えば上のように Attribute Rename ノードの中の Primitive タブで
    • From に name
    • To に pname
    とすれば、name だった primitive アトリビュートが pname という名前になる。この方法でも出力可能。
おしまい。

0 件のコメント:

コメントを投稿