BlenderPython learning begins to accelerate
I found a BlenderPython learning reference book that was perfect for my learning level. For the first time in a while, I feel like my learning is accelerating.
自分の学習レベルにピッタリあったBlenderPython学習参考図書を見つけました。久しぶりに学習加速を実感しています。
1 BlenderPython完全ガイド
ぬっち著 BlenderPython完全ガイド
秀和システム 2024.01.01発行
これまでBlender、Python、BlenderPythonの学習を深めてきたつもりですが、PythonとBlenderPythonの実力が身に付かない状況がつづいてきました。ChatGPT支援によりBlenderPythonスクリプトを高度に活用しているにもかかわらずです。そのような苦しい状況のなかで、たまたまwebでみつけた本書を入手して学習し始めたところ、自分の学習レベルにピッタリで、久しぶりに学習加速感を実感しています。Python学習、BlenderPython学習が自分なりにステップアップしそうです。これまで学習して入手してきたバラバラ知識が有機的に組織だってきたような感覚が生まれています。
2 学習用Blender画面
「BlenderPython完全ガイド」学習はPythonプログラムをBlenderのPythonコンソールあるいはテキストエディターに入力して行っています。次のような学習専用画面つくり、ファイル→デフォルト→スタートアップファイルを保存で確定させて、利用しています。
学習用Blender画面
この画面は使っている4枚のモニターのうち、2枚のモニターを使います。
3 BlenderにおけるPythonコマンド取得
本書学習のなかで、Blender操作においてPythonコマンド取得が可能なことを知りました。とても便利です。
Pythonコマンド取得例
4 既作成BlenderPythonスクリプトの応用展開
これまでChatGPT支援により次のようなBlenderPythonスクリプトを作成し、趣味活動で活用してきています。
既作成BlenderPythonスクリプトのリスト
手作業では到底できないような複雑作業、多量作業をBlenderPythonスクリプトで行ってきています。しかし、そのBlenderPythonスクリプトを自分は十分に理解できない状況がつづいてきました。ところが、今回の学習が進めば、これらスクリプトの内容はそれなりに理解できそうです。スクリプトの内容が理解できれば、その改変もできるようになり、スクリプトの使いまわし、応用発展が大いに期待できます。BlenderPythonスクリプト資産増大により、趣味活動発展が期待できそうです。
5 参考 ぬっち著 BlenderPython完全ガイド(秀和システム 2024.01.01発行)目次
目次(秀和システムwebサイトから入手)
Chapter1 BlenderではじめるPython
1-1 BlenderとPython
Blender
Python
BlenderとPythonの関係
まとめ
1-2 準備
Blenderのインストール
Blender UIの基礎
Blender UIの日本語化
Pythonプログラム開発者向けの設定
BlenderにおけるPythonプログラム実行環境
Pythonコンソールとテキストエディター
はじめてのBlender Pythonプログラム
まとめ
Chapter2 Python基礎
2-1 変数と演算子
事前準備
メッシュオブジェクトを操作する
変数と代入
演算子
メッシュオブジェクトの名前を変更する
データ型
まとめ
2-2 制御文
事前準備
リストと連想配列
オブジェクトを軸に対して整列する
for文
if文
インデントとブロック
論理演算子
メッシュオブジェクトのみを整列する
まとめ
2-3 関数
事前準備
立方体のメッシュオブジェクトを作成する
関数とオペレータ
タプル
デフォルト引数
さまざまなオペレータ
テキストエディターの活用
さまざまな色の立方体を配置する
組み込み関数
独自関数の定義と呼び出し
関数化のメリット
ローカル変数とグローバル変数
まとめ
2-4 クラス
事前準備
クラス
クラス化のメリットとオブジェクト指向
ロボットを作成する
歩行能力を持つロボットを作成する
継承
武器を持ったロボットを作成する
Python APIとクラスの関係
まとめ
2-5 モジュールとパッケージ
ソースコードを複数ファイルに分割するメリット
事前準備
ソースコードを分割する
モジュール
エスケープシーケンス
パッケージ
Blender Python APIとパッケージ、モジュールの関係
まとめ
Chapter3 Blender Python
3-1 Blender Python APIの構成
モジュール構成
contextモジュール
dataモジュール
opsモジュール
typesモジュール
bmeshモジュールを利用したPythonプログラム
まとめ
3-2 Blenderのデータ構造
事前準備
bpy.data
bpy.typesモジュール
blendファイル
カメラの視野角や焦点距離を取得する
エリアの幅と高さを取得する
まとめ
3-3 Blenderのオペレータ
オペレータのカテゴリ
オペレータの探し方
コンテキストオーバーライド
情報の内容をテキストエディタ-にコピー
テキストエディターの内容をテキストオブジェクトにコピー
特定スペースを持つエリア以外を閉じる
まとめ
Chapter4 Blender アドオン開発
4-1 アドオンの基礎
アドオンの提供形態
アドオンのソースコード保存先
アドオンのソースコード構成
アドオンのインストール方法
アドオンの有効化
アドオンの無効化
アドオンのアップデート
アドオンのアンインストール
まとめ
4-2 アドオン開発の基礎
事前準備
はじめてのアドオン
システムコンソール
変数bl_info
関数register、関数unregister
まとめ
4-3 カスタムオペレータの作成
事前準備
カスタムオペレータを作成する
オペレータクラス
オペレータの登録/登録解除
星形メッシュ作成アドオン
星形メッシュ作成アドオン(機能改良版)
オペレータプロパティ
まとめ
4-4 カスタムUIの構築
事前準備
メニューにオペレータを追加する
メニューへのオペレータ登録
サブメニューを作成する
メニュークラス
メニューのUI
サイドバーにアドオンの機能を追加する
パネルクラス
サイドバーにプロパティ編集機能を追加する
パネルのUI
独自アイコンの活用
ツールバーにアドオンの機能を追加する
ワークスペースツールクラス
ツールのUIを変更する
ツールでの独自アイコン利用
ツールのサブメニュー
プリファレンスにUIを追加する
アドオンプリファレンスクラス
アドオン設定へのアクセス
まとめ
4-5 イベント
イベントの種類
モーダルオペレータ
事前準備
クリックでオブジェクト生成
メンバ関数invoke
メンバ関数modal
座標変換
キーボード入力でオブジェクト移動
修飾キーの状態取得
モーダル状態中のイベント処理
モーダルオペレータとツール
時刻を表すオブジェクト
タイマ
bpy.props.PointerProperty
まとめ
4-6 描画
描画の流れ
マウスでカーブオブジェクト作成
描画関数
self.report
gpuモジュールを用いた描画処理
作業時間計測
blfモジュールを用いたテキスト描画
まとめ
Chapter5 Blender Pythonをより深く理解するために
5-1 Blender Pythonの情報源
Blender Documentation
Blender付属のテンプレート
Blender Pythonプログラム開発の参考サイト
Blenderコミュニティサイト
まとめ
5-2 多言語対応
Blenderの翻訳機能
多言語対応アドオン
翻訳辞書
翻訳
まとめ
5-3 ライセンス
ライセンス
代表的なライセンス
Blenderのライセンス
Blender向けに作成したPythonプログラムのライセンス
ライセンスの明示方法
まとめ
5-4 Visual Studio Code連携
Visual Studio Codeの入手
拡張機能『Blender Development』
Pythonパッケージ『fake-bpy-module』
まとめ
5-5 プログラムの公開
公開時の注意事項
プログラムの公開方法