Blender Python API

参考:

Blender Python API Documentation [Official]

使い方

参考:

Blender 2.63 での Python の使い方についてまとめてみた | 凹みTips

Blender でプログラミング 導入編 | 三日坊主のエンジニアBlog

Blender Python の基本 | 三日坊主のエンジニアBlog

Blender 2.80 で UI のスクリプトを書く | dskjal

Blending Into Python Cookbook – Wikibooks

導入

参考:

Blender を python で動かす – Qiita

Blender と Python で 3D モデルを動的生成してレンダリングする | pixiv inside

Python で始める Blender | Rafka の実験室

bpy モジュールを使ってみよう | Rafka の実験室

Blender 2.8 で Python スクリプトを実行してみる | 金子邦彦研究室

Blender × Python でお気楽 3DCG! | Adways エンジニアブログ

Quickstart Introduction | Blender Python API [Official]

エディター/コンソール

参考:

Blender 2.8 では、テキストを import できないので as_module() を使う | hzuika

テキストエディタとコンソール | Blender で Python スクリプト (Takosuke)

Importing Text | Blender Developer Wiki [Official]

Text Editor | Blender Manual [Official]

Python Console | Blender Manual [Official]

bpy.types.Text.as_module | Blender Python API [Official]

PyAPI: remove support for importing text blocks as modules (rBdc8dd2435146) | Blender Developer [Official]

自動実行

参考:

Security | wiki.blender.jp

Scripting & Security | Blender Manual [Official]

View scripts so you can know if to trust them – Blender Artists Community

Python auto-execution disabled error – Blender Stack Exchange

データアクセス

参考:

Data Access | Blender Python API [Official]

bpy_struct.path_resolve | Blender Python API [Official]

What is bpy_struct for? – Blender Stack Exchange

set a property via its data path stored in a string – Blender Stack Exchange

プロパティ

こちらのページを参照

参考:

スクリプトにおいてクラス間で変数を共有する方法 | dskjal

オペレータプロパティを活用する | はじめての Blender アドオン開発

EnumProperty の選択項目を動的に設定する方法 – Qiita

Properties | wiki.blender.jp

Property Definitions (bpy.props) | Blender Python API [Official]

オペレーター (Operators)

こちらのページを参照

参考:

Operators (bpy.ops) | Blender Python API [Official]

Example Operator | Blender Python API [Official]

ハンドラ

  • depsgraph_update_post
  • depsgraph_update_pre
  • frame_change_post
  • frame_change_pre
  • load_factory_preferences_post
  • load_factory_startup_post
  • load_post
  • load_pre
  • redo_post
  • redo_pre
  • render_cancel
  • render_complete
  • render_init
  • render_post
  • render_pre
  • render_stats
  • render_write
  • save_post
  • save_pre
  • undo_post
  • undo_pre
  • version_update
  • persistent

参考:

コマ数を画面に表示する | MITSUDA Tetsuo

Application Handlers | Blender Python API [Official]

ツールバー/サイドバー

こちらのページを参照

参考:

Get current editor toolbar tab via Python? – Blender Stack Exchange

Tabs in Properties sidebar of the 3D view? – Blender Stack Exchange

コンソールに出力する

参考:

How can I display what happens in the system console inside blender’s console? – Blender Stack Exchange

Blender script run print to console – Blender Stack Exchange

外部から呼び出す

参考:

blender を python のモジュールとして使う – Qiita

Blender を Python で試してみた | gangan の技術備忘録

マクロ (Macro)

参考:

Blender でマクロを作る (Edit, Object Mode 用マクロの例) | Blender とか 3DCG とか (masayuki-osaka.hatenablog.com)

How Use Macro in 2.8? – Blender Developer Talk

Alternate between user input and automation in one-step script – Blender Stack Exchange

Macro operator children are not called from python – Blender Stack Exchange

コマンドラインから実行する

こちらのページを参照

参考:

3D モデルから 2D 画像を自動生成する方法について – Qiita

Python を使ったバッチ処理まとめ | Jun Ito

OpenGL

参考:

3Dview 上のオブジェクト頂点位置を取得して OpenGL で表示する | soramame 式

OpenGL Wrapper (bgl) | Blender Python API [Official]

入門

参考:

Python for Blender クックブック 〜はじめに〜 – Qiita

チュートリアル

参考:

Advanced Tutorials/Python Scripting/Introduction – Wikibooks

スニペット/コード断片

参考:

Python for Blender クックブックのレシピ一覧 – Qiita

Blender 2.79 の UI スクリプト集 | dskjal

スクリプト集 | QCGANIME

Code snippets | wiki.blender.jp

Code snippets/Interface | wiki.blender.jp

print

print の出力を見るためには Windows の場合はシステムコンソールを開く。Mac の場合はターミナルからバイナリを実行する。

Windows の場合

メニューから「ウィンドウ > システムコンソール切替え」 (Window > Toggle System Console)」を選択して、システムコンソールを開く。

Mac の場合

ターミナルからバイナリを直接実行する。

$ /Applications/Blender.app/Contents/MacOS/Blender

参考:

ターミナルから Blender を起動 | K-Blender Laboratory

Mac で Blender の Print 結果を表示する | 3DCG と映像と INTERACTIVE

コンソールウィンドウの開き方 | Blender.jp フォーラム 

Blender で Python 実行時にエラーを見れない – teratail

Blender の Python から出力されるログを見たい – teratail

Where is the system console? – Blender Stack Exchange

Where does console output go – Blender Stack Exchange

How to open system console to get output from Blender on Mac OS 10? – Blender Stack Exchange

redirect_stdout

参考:

How to redirect output from ‘bpy.ops.*’? – Blender Stack Exchange

logging

参考:

Logging from Python code in Blender | Blender Developers Blog

Print method isn’t displaying results in the Blender Python Console – Blender Artists Community

UTF8 character issues – Blender Developer Talk

メッセージを出力する (report)

こちらのページを参照

参考:

Blender 2.8 で UI パネルの処理にエラーメッセージの表示を追加する | MR が楽しい

bpy.types.Operator.report | Blender Python API [Official]

RNA

参考:

Blender の RNA プロパティと ID プロパティとの違い | dskjal

驚くべき後方互換性を持つ Blender DNA-RNA システム | Blender.jp

Writing a custom modifier for Blender | exppad

命名規則

クラス名はカテゴリーを大文字で書き、続けて要素の種類をアンダースコアで挟み、操作や要素の名前を小文字 (スネークケース) で続ける。

  • パネル (Panel)CATEGORY_PT_name_xxx
  • メニュー (Menu)CATEGORY_MT_name_xxx
  • オペレーター (Operator)CATEGORY_OT_name_xxx
  • UI リスト (UIList)CATEGORY_UL_name_xxx

bl_idname は全て小文字で、カテゴリーの後ろにドット . を付けて操作や要素の名前を続ける。

bl_idname = 'category.name_xxx'

参考:

Class naming conventions in Blender 2.8 Python API | Interplanety

What are the class naming conventions for blender? – Blender Stack Exchange

export addon and bl_idname – Stack Overflow

コーディングスタイル

参考:

Requirements for Contributed Scripts | Blender Developer Wiki [Official]

Tips

こちらのページを参照

参考:

Best Practice | Blender Python API [Official]

Tips and Tricks | Blender Python API [Official]

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。

Protected by reCAPTCHA