Inheritance |
|
メソッド ¶
asJSON(brief=False, save_keys_in_frames=False)
→ dict
キーフレームを記述したJSON辞書を返します。この辞書には、キーフレーム時間とエクスプレッションが含まれます。
save_keys_in_frames
パラメータをTrueに設定すると、時間の代わりにフレーム番号が使用されます。
fromJSONメソッドも参照してください。
fromJSON(keyframe_dict)
JSON辞書からキー/値のペアを使って、キーフレーム時間とエクスプレッションを設定します。
asJSONメソッドも参照してください。
evaluatedType()
→ hou.parmData列挙値
キーフレームで評価された値のデータタイプを返します。 文字列キーフレームに関しては、このメソッドはhou.parmData.Stringを返します。
Methods from hou.BaseKeyframe ¶
asCode(brief=False, save_keys_in_frames=False, function_name=None)
→ str
キーフレームの作成を実行することができるPythonステートメントのスクリプトを返します。
このスクリプトを実行するには、Pythonのexec
またはexecfile
の関数のどちらかを使用します。
brief
briefがTrueの時、出力されるスクリプトには、未使用の値、スロープ、アクセラレーションを設定するコマンドが省略されます。 このパラメータは、文字列以外のキーフレームにのみ適用されます。 briefの値は、TrueまたはFalseのどちらかでなければなりません。
save_keys_in_frames
save_keys_in_framesがTrueの時、asCode
はチャンネル設定と秒ではなくサンプル(フレーム)でのキー時間を設定するコマンドを出力します。
save_keys_in_framesの値は、TrueまたはFalseのどちらかでなければなりません。
function_name
function_nameを指定した場合、出力されるスクリプトが、指定した名前のPython関数定義内にラップされます。 function_nameは、英数字とアンダースコアの文字だけで構成された非ゼロ長文字列でなければなりません。 無効な文字は内部的にアンダースコアに変換されます。
この関数は、新しく作成されたキーフレームオブジェクトの参照を返します。
ここでは、その出力をファイルに保存して、それをHoudiniに読み込むサンプルを載せています:
# ターゲットキーフレームの参照を取得します。 tx_parm = hou.parm("/obj/geo1/tx") key = tx_parm.keyframes()[0] # asCodeを実行し、出力されたスクリプトをファイルに書き出します。 script = key.asCode() f = open("create_key.py", "w") f.write(script) f.close() # そのスクリプトを実行します。新しいキーフレームが # 'hou_keyframe'変数に保存されます。 execfile("create_key.py") # そのキーフレームをノードパラメータに確定します。 tx_parm.setKeyframe(hou_keyframe)
ここでは、出力を関数に保存して、それをHoudiniでコールするサンプルを載せています:
# ターゲットキーフレームの参照を取得します。 tx_parm = hou.node("/obj/geo1").Parm("tx") key = tx_parm.keyframes()[0] # asCodeを実行し、関数定義をファイルに書き出します。 func = key.asCode(function_name="createKeyframe") f = open("keylib.py", "w") f.write(func) f.close() # その関数定義をコールします。 import keylib hou_keyframe = keylib.createKeyframe() # そのキーフレームをノードパラメータに確定します。 tx_parm.setKeyframe(hou_keyframe)
expression()
→ str
キーフレームのエクスプレッションを返します。例えば、キーフレームに2つの値が設定されていた場合、その補間関数(例えば、“bezier()”, “spline()”など)が返されます。
エクスプレッションが設定されていなかった場合、この関数はhou.KeyframeValueNotSetを引き起こします。
setExpression()
とisExpressionSet()
を参照してください。
expressionLanguage()
→ hou.exprLanguage列挙値
キーフレームのエクスプレッションの言語を返します。
エクスプレッション言語が設定されていなかった場合、この関数はhou.KeyframeValueNotSetを引き起こします。
setExpression()
とisExpressionLanguageSet()
を参照してください。
frame()
→ double
キーフレームのフレーム番号を返します。
フレームまたは時間が設定されていなかった場合、この関数はhou.KeyframeValueNotSetを引き起こします。
setFrame()
とsetTime()
を参照してください。
isExpressionLanguageSet()
→ bool
キーフレームエクスプレッションの言語が設定されているかどうか返します。
setExpression()
とexpressionLanguage()
を参照してください。
isExpressionSet()
→ bool
キーフレームのエクスプレッションが設定されているかどうか返します。
setExpression()
とexpression()
を参照してください。
isTimeSet()
→ bool
キーフレームの時間が設定されているかどうか返します。
setTime()
とtime()
を参照してください。
setExpression(expression, language=None)
キーフレームのエクスプレッションと言語を設定します。
language
がhou.exprLanguageの値でなかった場合、この関数はTypeErrorを引き起こします。
expression()
, expressionLanguage()
, isExpressionSet()
, isExpressionLanguageSet()
を参照してください。
setFrame(frame)
キーフレームのフレーム番号を設定します。1秒あたりのフレーム数(hou.fps())を使用し、フレーム番号を設定すると、その時間も設定されます。 例えば、24のFPSを使用し、フレーム番号を49に設定すると、その時間が2秒に設定されます。
frame()
を参照してください。
setTime(time)
キーフレームの時間を秒で設定します。1秒あたりのフレーム数(hou.fps())を使用し、時間を設定すると、そのフレーム番号も設定されます。 例えば、24のFPSを使用し、時間を2秒に設定すると、そのフレーム番号が49に設定されます。
time()
を参照してください。
time()
→ double
キーフレームの時間を秒で返します。
時間やフレームを設定しなかった場合、この関数はhou.KeyframeValueNotSetを引き起こします。
setTime()
とsetFrame()
を参照してください。