MRが楽しい

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

Blender3.0で利用可能なpythonスクリプトを作る その118(アクションデータを新規作成する)

本日は Blender の技術調査枠です。
Blender3.0で利用可能なpythonスクリプトを作ります。

アクションデータを新規作成する

新規アクションデータは bpy.data.actions.new(NAME) オペレータで作成可能です。
docs.blender.org

アクションデータは作成後、ユーザの参照がないとプロジェクトを閉じた際に自動で削除されてしまいます。
自動削除されないようにするにはフェイクユーザの設定を行います。
docs.blender.org

サンプルスクリプト

指定名のアクションデータを新規作成します。
アクションデータには作成の際、デフォルトでフェイクユーザの設定を行います。
・Script_make_actiondata.py

# bpyインポート
import bpy

# 指定名のアクションデータを作成する(デフォルトではフェイクユーザを設定する)
def make_actiondata(
    arg_makeactionname:str,
    arg_fakeuser:bool = True) -> bool:
    """指定名のアクションデータを作成する(デフォルトではフェイクユーザを設定する)

    Keyword Arguments:
        arg_targetaction {bpy.types.Action} -- 対象アクションデータ
        arg_fakeuser {bool} -- フェイクユーザの設定(デフォルト:True)

    Returns:
        bool -- 実行の正否
    """

    # 引数のNoneチェック
    if arg_makeactionname == None:
        return False

    # 指定名のアクションデータを作成する
    # アクションコレクションの操作マニュアル
    # (https://docs.blender.org/api/current/bpy.types.BlendDataActions.html#bpy.types.BlendDataActions)
    # 同名のアクションが存在した場合、"指定名.001"の修飾子が付いたアクション名で生成される
    makeaction = bpy.data.actions.new(arg_makeactionname)

    # フェイクユーザを設定する
    # IDの操作マニュアル
    # (https://docs.blender.org/api/current/bpy.types.ID.html#bpy.types.ID.use_fake_user)
    makeaction.use_fake_user = arg_fakeuser

    return True

# 関数の実行例
# 指定名のアクションデータを作成する(フェイクユーザを設定する)
make_actiondata(arg_makeactionname="NewAction")

f:id:bluebirdofoz:20220401233737j:plain
f:id:bluebirdofoz:20220401233813j:plain