MRが楽しい

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

Blender2.8で利用可能なpythonスクリプトを作る その66(特定アドオンの有効/無効化)

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

アドオンの指定方法

python スクリプトからアドオンを有効化する場合、addon_enable のオペレータを利用します。
本オペレータの module 引数で有効化するアドオンを指定します。
docs.blender.org

module 引数にはアドオンのフォルダ名を指定します。
これはアドオンのファイルパスで確認することができます。
f:id:bluebirdofoz:20200917032242j:plain

このため、指定アドオンはビルトインアドオンか、事前に参照先のアドオンフォルダにインストールしておく必要があります。
bluebirdofoz.hatenablog.com

特定アドオンの有効化する

スクリプトではビルドインの Rigify アドオンを有効化します。
有効化した後、Human(Meta-Rig) オブジェクトを追加します。
スクリプト実行前に、Rigify アドオンが有効化済みである場合でも正常に動作します。
・Script_rigify_addon_enable.py

# bpyインポート
import bpy

# Rigifyアドオンを有効化して Human(Meta-Rig) を追加する
def rigify_addon_enable() -> bool:
    """Rigifyアドオンを有効化して Human(Meta-Rig) を追加する

    Returns:
        bool: 実行正否
    """

    # Rigify アドオンの有効化
    bpy.ops.preferences.addon_enable(module='rigify')
    
    # Human(Meta-Rig) を追加する
    bpy.ops.object.armature_human_metarig_add()

    return True

# 関数の実行例
rigify_addon_enable()

f:id:bluebirdofoz:20200917032301j:plain

特定アドオンの無効化する

スクリプトではビルドインの Rigify アドオンを無効化します。
アドオンの無効化には addon_disable と addon_remove の2つのオペレータが利用できます。
addon_disable はアドオンの無効化のみを行い、addon_remove はアドオンのファイル自体を削除します。
・Script_rigify_addon_disable.py

# bpyインポート
import bpy

# Rigifyアドオンを無効化する
def rigify_addon_disable() -> bool:
    """Rigifyアドオンを無効化する

    Returns:
        bool: 実行正否
    """

    # Rigify アドオンの無効化
    bpy.ops.preferences.addon_disable(module='rigify')

    # アドオンのファイル自体を削除する場合は以下の remove を使用する
    # bpy.ops.preferences.addon_remove(module='rigify')

    return True

# 関数の実行例
rigify_addon_disable()

f:id:bluebirdofoz:20200917032311j:plain