MRが楽しい

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

fake-bpy-moduleのオートコンプリートでデータタイプの関数を表示する

本日は環境構築の小ネタ枠です。
以前、Visual Studio CodeBlenderモジュールのオートコンプリートを利用する方法を記事にしました。
そのうちの fake-bpy-module を利用する手順での小ネタです。
bluebirdofoz.hatenablog.com

オートコンプリートの表示

fake-bpy-module を利用していると objects などのデータタイプもオートコンプリートに表示されます。

# シーン内のデータ群を確認する
bpy.context.scene.

f:id:bluebirdofoz:20190621091320j:plain

一方で、以下のようなコレクション型の1データを指定するような場合はオートコンプリートが表示されません。

# オブジェクト群内の1データにアクセスする
bpy.context.scene.objects['Cube'].

f:id:bluebirdofoz:20190621091329j:plain

データタイプのオートコンプリートを表示する

BlenderPython には active_*** のような現在有効化されているデータへのアクセスAPIがあります。
こちらを利用すると fake-bpy-module のオートコンプリートが表示され、データタイプが持つインタフェースが確認できます。

よって、以下のようにアクセス前に対象データをアクティブに変更し、データ操作を行うとオートコンプリートが活用できます。

# 変更オブジェクトをアクティブに変更する
bpy.context.scene.objects.active=bpy.context.scene.objects['Cube']
# アクティブオブジェクトにアクセスする
bpy.context.active_object.

f:id:bluebirdofoz:20190621091337j:plain

マテリアルなど、データによってアクティブ化するAPIは異なります。
それぞれ適切にアクティブ化を行い、データにアクセスします。

# 変更オブジェクトをアクティブに変更する
bpy.context.scene.objects.active=bpy.context.scene.objects['Cube']
# 変更マテリアルをアクティブに変更する
bpy.context.active_object.active_material_index=0
# アクティブマテリアルにアクセスする
bpy.context.active_object.active_material.

f:id:bluebirdofoz:20190621091345j:plain