私の散歩論

ページ

2024年2月5日月曜日

BlenderPython学習が加速しだす

 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 プログラムの公開

  公開時の注意事項

  プログラムの公開方法


0 件のコメント:

コメントを投稿