本日は Blender の技術調査枠です。
Blender3.0で利用可能なpythonスクリプトを作ります。
現在のフレームを指定のフレームに移動する
プロジェクトにおける現在のフレーム番号は Scene 型が保持しています。
frame_current の値を直接変更することで現在のフレーム番号を変更できます。
docs.blender.org
ただし frame_current の変更は即時反映されないため、想定しない動作をする場合があります。
フレーム番号を即時変更したい場合は frame_set を実行してフレーム番号を変更します。
docs.blender.org
サンプルスクリプト
現在のシーンのフレーム番号を任意の番号に設定します。
・Script_control_keyframe.py
# bpyインポート import bpy # 現在のフレームナンバーを指定する def set_currentframe(arg_framenumber:int) -> bool: """現在のフレームナンバーを指定する Keyword Arguments: arg_framenumber {int} -- 指定フレーム番号 Returns: bool -- 実行成否 """ # 指定のフレーム番号を設定する bpy.context.scene.frame_current = arg_framenumber return True # 関数の実行例 set_currentframe(arg_framenumber=10)
frame_set で現在のシーンのフレーム番号を任意の番号に設定します。
・Script_control_keyframe_2.py
# bpyインポート import bpy # 現在のフレームナンバーを指定する def set_currentframe(arg_framenumber:int) -> bool: """現在のフレームナンバーを指定する Keyword Arguments: arg_framenumber {int} -- 指定フレーム番号 Returns: bool -- 実行成否 """ # 指定のフレーム番号を設定する(即時) bpy.context.scene.frame_set(arg_framenumber) return True # 関数の実行例 set_currentframe(arg_framenumber=20)