夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

BlenderPythonでBlenderのバージョンによって処理を分ける

本日はBlenderPython枠です。

BlenderのPythonAPIであるbpyはBlenderのバージョンによって若干の挙動が異なります。

今回はBlenderのバージョンによって処理を変える実装を行います。

Blenderのバージョンを取得する

まずは条件分岐を行うためにBlenderのバージョンを取得します。

これはbpy.app.versionを使用することで取得できます。

import bpy

blender_version = bpy.app.version
print(blender_version)

このコードを実行すると実行しているBlenderのバージョンがコンソールウィンドウに出力されます。

またBlenderには2.x,3.x,4.xなどメジャーバージョンと3.0,3.4,3.5といったマイナーバージョンが存在します。

それぞれを取得するには次のように記述します。

import bpy

blender_version = bpy.app.version
major_version = blender_version[0]
minor_version = blender_version[1]
print("ver:", blender_version)
print("major ver:", major_version)
print("minor_ver:", minor_version)

これを実行することでBlenderのバージョンに関しての詳細を取得できます。

〇Blender3.xのみ処理を実行する

では次にBlender3.x系のみ処理を実行するような実装を行ってみます。

次のようなコードで実現できます。

import bpy

blender_version = bpy.app.version
major_version = blender_version[0]
minor_version = blender_version[1]
print("ver:", blender_version)
print("major ver:", major_version)
print("minor_ver:", minor_version)

if major_version == 3 and minor_version >= 0:
    # Blender 3.0.0以降の処理
    print("enable")
    pass
else:
    print("disable")
    # それ以前のバージョン向けの処理
    pass

このコードをBlender3.4で実行すると次のようになります。

では次にBlender2.92で同じコードを実行した結果が次になります。

このようにバージョンを認識して処理を変えることができました。