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 で動かす – Qiita

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

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

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

Python スクリプトを実行 | 金子邦彦研究室

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

Introduction – Python Scripting – Wikibooks

入門

参考:

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

エディター/コンソール

ドキュメント:

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)

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

自動実行

ドキュメント:

Scripting & Security | Blender Manual [Official]

参考:

Security | wiki.blender.jp

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

Properties | wiki.blender.jp

オペレーター (Operators)

こちらのページを参照

ドキュメント:

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

Example Operator | Blender Python API [Official]

ハンドラ

こちらのページを参照

ドキュメント:

Application Handlers | Blender Python API [Official]

参考:

ハンドラを使って状態の変化を検知する | MR が楽しい

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

ツールバー/サイドバー

こちらのページを参照

参考:

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 とか

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

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

How can I run Blender from command line or a Python script without opening a GUI? – Blender Stack Exchange

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

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]

参考:

落とし穴 #7 | MR が楽しい

スレッド

ドキュメント:

Strange Errors when Using the ‘Threading’ Module | Blender Python API [Official]

参考:

落とし穴 #8 | MR が楽しい

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]

参考:

T98554 Policy for style guide: remove “<pep8 compliant>” from Python scripts | Blender Developer [Official]

スニペット/コード断片

参考:

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

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

スクリプト集 | QCGANIME

Code Snippets | wiki.blender.jp

Code Snippets/Interface | wiki.blender.jp

チュートリアル

Python Scripting – Wikibooks

サンプル

python_api/examples – GitHub

ドキュメント

Blender Python API Documentation [Official]

Tips

こちらのページを参照

Best Practice | Blender Python API [Official]

Tips and Tricks | Blender Python API [Official]

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA