MRが楽しい

MRやVRについて学習したことを書き残す

Blenderで利用可能なアニメーションのキーフレームの補間タイプを全て試す その3(BACK(戻り)のパラメータ変更)

本日は Blender の小ネタ枠です。
Blenderで利用可能なアニメーションのキーフレームの補間タイプを試してみたの記事にします。

前回記事

以下の前回記事の続きです。
bluebirdofoz.hatenablog.com

BACK(戻り)のパラメータ変更

補間タイプ:BACK(戻り)では以下のパラメータでオーバーシュート量を調整可能です。
・back
docs.blender.org

python スクリプトで試した結果を以下に示します。

back=1.0


back=2.0


back=0.0


back=-1.0


サンプルスクリプト

試験に利用したサンプルスクリプトを以下に添付します。
・Script_change_keyframe_interpolation_TypeTest_Back.py

# bpyインポート
import bpy

# アニメーションのキーフレームの補間タイプを変更する
def change_keyframe_interpolation(
    arg_actiondata:bpy.types.Action,
    arg_interpolationtype:str,
    arg_back:float) -> bool:
    """アニメーションのキーフレームの補間タイプを変更する

    Keyword Arguments:
        arg_actiondata {bpy.types.Action} -- 指定アクションデータ
        arg_interpolationtype {str} -- 指定補間タイプ
        arg_back {float} -- Backのオーバーシュート量

    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.back = arg_back
        # 更新したキーフレームに合わせてカーブを更新する
        fcurve.update()

    return True

# 関数の実行例
actiondata = bpy.data.actions.get('Action')
interpolationtype = 'BACK'
back = 1.0
change_keyframe_interpolation(
    arg_actiondata=actiondata,
    arg_interpolationtype=interpolationtype,
    arg_back=back)