次の項目は別ページに分割しました。
関連ページ:
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
導入
ドキュメント:
Quick Start Introduction | Blender Python API [Official]
参考:
Python で Blender を操作してみる | ほっとここあ
Blender と Python で 3D モデルを動的生成してレンダリングする | pixiv inside
Python で始める Blender | Rafka の実験室
Blender × Python でお気楽 3DCG! | Adways エンジニアブログ
Introduction – Python Scripting – Wikibooks
入門
参考:
Python for Blender クックブック 〜はじめに〜 – Qiita
エディター/コンソール
- テキストエディター → Text Editor
- Pythonコンソール → Python Console
ドキュメント:
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]
参考:
Python Console のショートカットキー一覧 – Qiita
Blender 2.8 では、テキストを import できないので as_module() を使う | hzuika
テキストエディタとコンソール | Blender で Python スクリプト (Takosuke)
自動実行
ドキュメント:
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
プロパティ
ドキュメント:
Property Definitions (bpy.props) | Blender Python API [Official]
参考:
スクリプトにおいてクラス間で変数を共有する方法 | dskjal
オペレータプロパティを活用する | はじめての Blender アドオン開発
EnumProperty の選択項目を動的に設定する方法 – Qiita
オペレーター (Operators)
ドキュメント:
Operators (bpy.ops) | Blender Python API [Official]
Example Operator | Blender Python API [Official]
ハンドラ
ドキュメント:
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
コンソールに出力する
参考:
Blender script run print to console – Blender Stack Exchange
外部から呼び出す
参考:
blender を python のモジュールとして使う – Qiita
Blender を Python で試してみた | gangan の技術備忘録
マクロ (Macro)
参考:
Blender でマクロを作る/Edit, Object Mode 用マクロの例 | Blender とか 3DCG とか
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
コマンドラインから実行する
ドキュメント:
Use Blender without it’s User Interface | Blender Python API [Official]
Building Blender as a Python Module | Blender Developer Wiki [Official]
参考:
3D モデルから 2D 画像を自動生成する方法について – Qiita
How to pass command line arguments to a Blender Python script? – Blender Stack Exchange
Execute script after Blender is fully loaded – Stack Overflow
OpenGL
ドキュメント:
OpenGL Wrapper (bgl) | Blender Python API [Official]
参考:
3D ビュー上のオブジェクト頂点位置を取得して OpenGL で表示する | soramame 式
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 | Blender Developers Blog [Official]
参考:
Print method isn’t displaying results in the Blender Python Console – Blender Artists Community
UTF8 character issues – Blender Developer Talk
メッセージを出力する (report)
ドキュメント:
bpy.types.Operator.report | Blender Python API [Official]
参考:
UI パネルの処理にエラーメッセージの表示を追加する | MR が楽しい
文字コードの扱い
ドキュメント:
Unicode Problems | Blender Python API [Official]
参考:
スレッド
ドキュメント:
Strange Errors when Using the ‘Threading’ Module | Blender Python API [Official]
参考:
RNA
参考:
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'
パネルの bl_idname
は指定しなかった場合、クラス名がそのまま使用される。指定する場合の命名規則は、クラス名に準じる。
リンク:
Class Registration – Release Notes 2.80 | Blender Developer Wiki [Official]
参考:
Class Naming Conventions in Blender 2.8 Python API | Interplanety
T52599 Python API, changes to type registration in 2.8 | Blender Developer [Official]
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]
参考:
スニペット/コード断片
参考:
Python for Blender クックブックのレシピ一覧 – Qiita
Blender 2.79 の UI スクリプト集 | dskjal
Code Snippets | wiki.blender.jp
Code Snippets/Interface | wiki.blender.jp
チュートリアル
サンプル
ドキュメント
Blender Python API Documentation [Official]