On this page |
これらの関数は“HOM固有”の関数の一部ではありません。そのため、hou
パッケージ内になく、オブジェクトモデルに統合されていません。将来のHoudiniのバージョンで統合していくことでしょう。
このモジュール内の関数を使用するには、hython
を起動して、_alembic_hom_extensions
をインポートします。
>>> import _alembic_hom_extensions as abc >>> print abc.alembicGetSceneHierarchy("panda.abc", "/") ('ABC', 'unknown', (('Geo', 'cxform', ...
役立つ情報 ¶
-
このモジュールのインポートには、Houdiniライセンスを 使用しません 。
-
関数がファイルパスを扱っている間は、関数は、コールされる度にファイルを開閉しません。そのコードが開いたAlembicファイルの内部キャッシュを保持することで、同じファイルを繰り返してコールするように効率を良くしています。
-
getLocalXform
やgetWorldXform
が返す16個のfloatのタプルを直接hou.Matrix4コンストラクタに渡すことで、トランスフォームを表現したhou.Matrix4を作成することができます。
共通の引数 ¶
abcPath
Alembicファイルのファイルパス。
objectPath
Alembicファイル内のオブジェクトへのパス。
name
読み込むアトリビュートの名前。
sampleTime
値を計算するアニメーション時間。これは秒単位の小数値です。フレーム数で考えるなら、関数に値を指定する前に1秒あたりのフレーム数でその値を割算しなければなりません。
関数 ¶
alembicArbGeometry(abcPath, objectPath, name, sampleTime)
→ (value, isConstant, scope)
オブジェクトアトリビュートの値を取得します。None
またはアトリビュート値のタプル、アトリビュートが時間軸で一定値かどうかを意味するブール値、アトリビュートのスコープを意味する文字列(varying
、vertex
、facevarying
、uniform
、constant
、unknown
)を返します。
alembicBoundingBox(abcPath, objectPath, sampleTime)
→ (value, isConstant)
オブジェクトの境界ボックスを取得します。None
または境界ボックスのタプルとブール値を返します:
-
境界ボックスを6個のfloatのタプルで表現します。
-
境界ボックスはXformノードとRootノードのオプションプロパティです。指定したオブジェクトパスにこのプロパティが存在しない場合、戻り値はNoneです。
-
境界ボックスが時間軸において一定である場合、2番目の項目が
True
になります。
alembicClearArchiveCache()
開いたAlembicファイルの内部キャッシュをクリアします。
alembicGetArchiveMaxCacheSize()
→ int
キャッシュに保持する開かれるAlembicファイルの最大数を返します。この制限値を設定するには、alembicSetArchiveMaxCacheSizeを使います。
alembicGetCameraDict(abcPath, objectPath, sampleTime)
→ dict
指定したオブジェクトのカメラパラメータを辞書で返します。
alembicGetObjectPathListForMenu(abcPath, objectPath, sampleTime)
→ tuple
メニューコールバック用に必要な形式の文字列をタプルで返します。各オブジェクトはトークン/ラベルの組で表現しています。
alembicGetSceneHierarchy(abcPath, objectPath)
→ (object_name, object_type, children)
タプルの階層を返します。各タプルは以下の形式です。
item = ("object_name", "object_type", (item, ...))
object_type
は以下のどれか:
cxform
一定のトランスフォームノード。
xform
アニメーションのトランスフォームノード。
camera
カメラノード。
polymesh
ポリゴンメッシュのシェイプノード。
subdmesh
サブディビジョンサーフェスのシェイプノード。
faceset
フェースセットのシェイプノード。
curves
カーブのシェイプノード。
points
ポイントのシェイプノード。
nupatch
NuPatchのシェイプノード。
unknown
不明なノードタイプ。
alembicSetArchiveMaxCacheSize(number_of_files)
キャッシュに保持する開かれるAlembicファイルの最大数を設定します。
abc.alembicTimeRange(abcPath)
指定したAlembicファイルのタイムレンジを返します。
alembicUserProperty(abcPath, objectPath, name, sampleTime)
→ (value, isConstant)
ユーザプロパティの値を取得します。None
またはアトリビュート値とアトリビュートが時間軸で一定かどうかを示すブール値のタプルを返します。
alembicUserPropertyMetadata(abcPath, objectPath, sampleTime)
→ value
Noneまたはユーザプロパティ名 –> ユーザプロパティメタデータのマップを含んだJSON辞書を返します。
alembicUserPropertyValues(abcPath, objectPath, sampleTime)
→ value
Noneまたはユーザプロパティ名 –> ユーザプロパティ値のマップを含んだJSON辞書を返します。
alembicUserPropertyValuesAndMetadata(abcPath, objectPath, sampleTime)
→ (values, metadata)
JSON辞書のタプルを返します。1番目の項目には、ユーザプロパティ名とユーザプロパティ値のマップ、2番目の項目には、ユーザプロパティ名と1番目の辞書の解釈に使用するユーザプロパティメタデータのマップが含まれます。
alembicVisibility(abcPath, objectPath, sampleTime, check_ancestor=False)
→ (value, isConstant)
オブジェクトの可視性を取得します。None
または整数値とブール値のタプルを返します:
-
1番目の項目は、非表示なら
0
、表示なら1
、“親のオブジェクトの可視性を使用”なら-1
です。 -
2番目の項目は、可視性が時間軸で一定なら
True
です。
check_ancestor=True
を指定すれば、関数は、1番目の項目の-1
を返さずに上流のオブジェクトの可視性をチェックして、既知の値(0
または1
)を返します。
getLocalXform(abcPath, objectPath, sampleTime)
→ (xform, isConstant, inherits)
オブジェクトのローカルトランスフォームを取得します。以下のタプルを返します:
-
トランスフォーム(16個の浮動小数点のタプル)。
-
アトリビュートが時間軸で一定かどうかを示すブール値。
-
オブジェクトが親のオブジェクトのトランスフォームを継承しているかどうかを示すブール値。これが
False
なら、オブジェクトはトランスフォーム階層から接続解除されています。
getWorldXform(abcPath, objectPath, sampleTime)
→ (xform, isConstant, inherits)
オブジェクトのワールドトランスフォームを取得します。以下のタプルを返します:
-
トランスフォーム(16個の浮動小数点のタプル)。
-
アトリビュートが時間軸で一定かどうかを示すブール値。
-
オブジェクトが親のオブジェクトのトランスフォームを継承しているかどうかを示すブール値。これが
False
なら、オブジェクトはトランスフォーム階層から接続解除されています。