詳細は、Crowd Animation Clipsを参照してください。
メソッド
__init__(name, filename, rig, keep_external_ref = True)
指定した.bclip
または.clip
のファイルからエージェントクリップを読み込むことで、新しいエージェントクリップを作成します。
クリップ内のチャンネルは、transform_name:channel_name
の形式で指定します。
transform_name
はhou.AgentRig.transformName()が返す値に一致した文字列で、channel_name
はtx
, ty
, tz
, rx
, ry
, rz
, sx
, sy
, sz
のどれかです。
t
で始まるチャンネルは移動、r
は回転、s
はスケールです。
その結果のトランスフォームはローカルトランスフォームとして扱われ、hou.AgentClip.sampleLocal()を通じて読み込むことができます(つまり、そのトランスフォームはエージェントのスケルトン内の該当する親トランスフォームを基準にしています)。
他のチャンネルは、hou.AgentClip.sample()を通じて読み込むことができます。
ファイルが存在しない、または読み込むことができなかった場合はhou.OperationFailedを引き起こします。
name
新しいクリップの名前(例えばwalk
)。
filename
クリップファイルのパス。
rig
クリップと関連付けるhou.AgentRig。 例えばトランスフォームをローカル空間からワールド空間に変換する時に、このリグが使用されます。
keep_external_ref
エージェントをジオメトリファイルに保存した時に外部参照を維持するかどうかを示すbool
。
外部参照を維持した場合、(クリップのパスのみがジオメトリファイルに保存されているので)その保存したジオメトリを使用する時には、そのクリップファイルが利用可能な状態になっている必要があります。
維持しなかった場合、ジオメトリを保存した時に、そのクリップのコピーが埋め込まれるので、元のクリップは、もはや不要です。
__init__(name, chop, rig, frame = hou.frame())
シーン内のCHOPから新しいエージェントクリップを作成します。
name
新しいクリップの名前(例えばwalk
)。
chop
クリップの読み込み元であるhou.ChopNode。
rig
クリップと関連付けるhou.AgentRig。 例えばトランスフォームをローカル空間からワールド空間に変換する時に、このリグが使用されます。
frame
CHOPノードをクックするフレームを指定します。
__init__(name, rig, sample_count)
指定したサンプル数で空っぽの(且つ修正可能な)エージェントクリップを作成します。 これらのサンプルは単位行列のトランスフォームに初期化されます。
name
新しいクリップの名前(例えばwalk
)。
rig
クリップと関連付けるhou.AgentRig。 例えばトランスフォームをローカル空間からワールド空間に変換する時に、このリグが使用されます。
sample_count
クリップのサンプル数。
__init__(clip, rig, name = "")
既存のエージェントクリップのコピーを作成します。 ソースクリップは、別のリグを参照することができます。この場合では、そのリグの新しいジョイントに対して単位行列のトランスフォームが適用されます。
clip
クリップのコピー元であるhou.AgentClip。
rig
クリップと関連付けるhou.AgentRig。 例えばトランスフォームをローカル空間からワールド空間に変換する時に、このリグが使用されます。
name
walk
などの新しいクリップの名前。このパラメータを指定しなかった場合、ソースクリップの名前が使用されます。
addChannel(name, samples)
クリップ内に追加でチャンネルを作成します。 同じ名前のチャンネルが既に存在していた場合は、以前のサンプルが上書きされます。
クリップが修正不可の場合は、hou.GeometryPermissionErrorを引き起こします。
name
チャンネルの名前。
`samples
チャンネルのデータを含んだfloat
シーケンス。
このシーケンス長がhou.AgentClip.sampleCount()と同じでない場合は、hou.InvalidSizeを引き起こします。
channelNames()
→ tuple
of str
クリップ内の追加チャンネル(非トランスフォーム)の名前を返します。 これらのチャンネルは、hou.AgentClip.sample()を使ってサンプリングすることができます。
data(binary, worldspace = False)
→ str
ASCIIまたはバイナリでクリップデータを返します。
binary
クリップデータをASCII(.clip
)またはバイナリ(.bclip
)の形式で保存するかどうか指定します。
worldspace
トランスフォームチャンネルをローカル空間またはワールド空間で保存するかどうか指定します。
fileName(expanded = False)
→ str
クリップが外部参照の場合、ディスク上のファイルのパスを返します。
expanded
パス内の変数(例えば$HIP
)を展開するかどうかを指定します。
freeze()
→ hou.AgentClip
修正可能なクリップのコピーを作成します。 このコピーは外部参照としてマークされなくなります。
isExternalReference()
→ bool
クリップがディスク上のファイルを参照しているかどうかを示したbool
を返します。
length()
→ float
クリップの長さを(秒単位で)返します。
localTransforms(sample)
→ tuple
of hou.Matrix4
指定したサンプルでローカル空間のトランスフォームを返します。 エントリー番号はhou.AgentRig.transformCount()に合致します。
sample
クリップ内のサンプルのインデックス。
name()
→ str
クリップの名前を返します。
sample(time, channel_name)
→ float
time
クリップを評価する時間(秒)。
channel_name
クリップ内のチャンネルの名前。hou.AgentClip.channelNames()を参照してください。
指定した時間のクリップを評価して、その指定したチャンネルの値を返します。 クリップをトランスフォームをサンプリングするには、hou.AgentClip.sampleLocal()またはhou.AgentClip.sampleWorld()を使用してください。
sampleCount()
→ int
クリップ内のサンプル数を返します。
sampleLocal(time, transform)
→ hou.Matrix4
time
クリップを評価する時間(秒単位)。
transform
エージェントのリグでのトランスフォームのインデックス。
指定された時間でクリップを評価して、ローカルトランスフォームを返します。
sampleRate()
→ float
クリップのサンプルレートを返します。
sampleWorld(time, transform)
→ hou.Matrix4
time
クリップを評価する時間(秒単位)。
transform
エージェントのリグでのトランスフォームのインデックス。
指定された時間でクリップを評価して、ワールドトランスフォームを返します。
setLocalTransforms(sample, xforms)
クリップ内のサンプルのローカルトランスフォームを編集します。
このクリップが修正不可の場合は、hou.GeometryPermissionErrorを引き起こします。
sample
クリップ内のサンプルのインデックス。
xforms
リグの各ジョイントのローカル空間のトランスフォームを含んだhou.Matrix4シーケンス。 このシーケンス長がhou.AgentRig.transformCount()と同じでない場合は、hou.InvalidSizeを引き起こします。
worldTransforms(sample)
→ tuple
of hou.Matrix4
指定したサンプルでワールド空間のトランスフォームを返します。 エントリー番号はhou.AgentRig.transformCount()に合致します。
sample
クリップ内のサンプルのインデックス。