MRが楽しい

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

Blender2.8でUIパネルの処理にエラーメッセージの表示を追加する

本日は Blender2.8 の python 利用の技術調査枠です。
Blender2.8でUIパネルの処理にエラーメッセージの表示を追加する方法を記事にします。
f:id:bluebirdofoz:20191209090115j:plain

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

メッセージ例

例えば、追加UIの[execute]ボタンをクリックしたとき、画面に以下のようなエラーメッセージを表示します。
f:id:bluebirdofoz:20191209090126j:plain

サンプルスクリプトの内容は以下の通りです。
・AddMessagePanelTest.py

このメッセージ表示にはレポート機能を利用しています。

レポートの表示方法

レポートを表示するには以下の bpy.types.Operator.report の API を利用します。
docs.blender.org

ボタン実行時にレポートを表示するには以下のように、self.report に表示メッセージを設定します。

def execute(self, context):
    # メッセージ表示処理
    self.report({'ERROR'}, "error message !!")
    return{'FINISHED'}

レポートの種別には 'ERROR' の他に以下の 9 種類があります。
・DEBUG
・INFO
・OPERATOR
・PROPERTY
・WARNING
・ERROR
・ERROR_INVALID_INPUT
・ERROR_INVALID_CONTEXT
・ERROR_OUT_OF_MEMORY

表示したいメッセージのレベルや内容に合わせて種別を選択します。

種別ごとの表示例

・INFO(情報)
f:id:bluebirdofoz:20191209090207j:plain

・WARNING(警告)
f:id:bluebirdofoz:20191209090217j:plain

・ERROR_INVALID_INPUT(異常な入力エラー)
f:id:bluebirdofoz:20191209090225j:plain

・ERROR_INVALID_CONTEXT(異常なコンテクストエラー)
f:id:bluebirdofoz:20191209090234j:plain

・ERROR_OUT_OF_MEMORY(メモリ不足エラー)
f:id:bluebirdofoz:20191209090243j:plain