本日は Blender の小ネタ枠です。
Blenderで利用可能なアニメーションのキーフレームの補間タイプを試してみたの記事にします。
前回記事
以下の前回記事の続きです。
bluebirdofoz.hatenablog.com
ELASTIC(弾性)のパラメータ変更
補間タイプ:ELASTIC(弾性)では以下のパラメータで弾性のカーブ量を調整可能です。
・amplitude
・period
docs.blender.org
amplitude:0.0, period:0.0
amplitude:1.0, period:1.0
amplitude:1.0, period:0.0
amplitude:0.0, period:1.0
amplitude:0.1, period:1.0
サンプルスクリプト
試験に利用したサンプルスクリプトを以下に添付します。
・Script_change_keyframe_interpolation_TypeTest_Bounce.py
# bpyインポート import bpy # アニメーションのキーフレームの補間タイプを変更する def change_keyframe_interpolation( arg_actiondata:bpy.types.Action, arg_interpolationtype:str, arg_amplitude:float, arg_periodtime:float) -> bool: """アニメーションのキーフレームの補間タイプを変更する Keyword Arguments: arg_actiondata {bpy.types.Action} -- 指定アクションデータ arg_interpolationtype {str} -- 指定補間タイプ arg_amplitude {float} -- 弾性量 arg_periodtime {float} -- 弾性時間 Returns: bool -- 実行成否 """ # 引数をチェックする if arg_actiondata == None: return False # アクション内の全アクションカーブを走査する for fcurve in arg_actiondata.fcurves: # カーブ内の全キーポイントを走査する for keyframe_point in fcurve.keyframe_points: # キーフレームの補間タイプを変更する # Keyframeアクセスのマニュアル # (https://docs.blender.org/api/current/bpy.types.Keyframe.html) keyframe_point.interpolation = arg_interpolationtype keyframe_point.amplitude = arg_amplitude keyframe_point.period = arg_periodtime # 更新したキーフレームに合わせてカーブを更新する fcurve.update() return True # 関数の実行例 actiondata = bpy.data.actions.get('Action') interpolationtype = 'ELASTIC' amplitude = 1.0 periodtime = 1.0 change_keyframe_interpolation( arg_actiondata=actiondata, arg_interpolationtype=interpolationtype, arg_amplitude=amplitude, arg_periodtime=periodtime)