Blenderから提供されているBlender Python API (bpy)を用いて、フルテキストで操作するBlenderによる3D CGモデリングとして備忘録的にまとめていきます。

部分的にbpyを用いて手順を簡略化したり、アドオンを実装しているものは見かけますが、全手順をテキストベースで実装しているものについては意外と見かけないので、かなり手探り状態にはなりますが徐々に更新していきます。

▼ テキストベース実装例
Design Refs: https://www.youtube.com/watch?v=MKmesHxUs60

上記モデルの作成で、約1万行程度です。


Full TextでBlenderを扱えるようにすることで主に以下の利点が挙げられます。

POINT!
  • Gitなどのバージョン管理システム(VCS)で行程/成果物を管理
  • 複数人での共同作業
  • コピペで他プロジェクトへ流用
  • Blender特有の操作感に慣れる手間の削減
  • 手順の再現性
  • 作成途中段階への変更


Blender設定・環境初期化


Blender 4.2

  • 外部ファイルの読み込み設定とimport
【bpy】PythonファイルをimportしてMainコード内で使用する|Text Base Blender

  • Blenderの設定と環境の初期化
    • アイテムの削除、未使用のアイテムの削除
    • NoUsedアイテムのCleanUp Purge
    • テキストベースモデリングに必須の3D Viewの表示設定など
    • preference設定
    • すべてのオブジェクトの削除(環境の初期化)
    • コンテキストをオーバーライドするための辞書を取得
【bpy】テキストベースでモデリングを行う際の初期設定 | Text Base Blender



3Dモデリング


Blender 4.2

  • アクティブオブジェクトとして選択
【bpy】オブジェクトのアクティブ化処理をまとめておく | Text Base Blender

  • 面、辺、頂点など要素の選択
【bpy】面・辺・頂点要素のインデックスを用いた選択処理実装 | Text Base Blender

  • 左半分の頂点を全て選択
【bpy】オブジェクト片側の頂点・辺・面を選択する|Text Base Blender

  • 基本的な変形操作
【bpy】オブジェクト変形の基本操作方法まとめ|Text Base Blender

  • オブジェクト回転
【bpy】回転軸を指定したオブジェクト/メッシュの回転処理 | Text Base Blender

  • モディファイア
    • モディファイア適用
    • モディファイア優先順位変更
    • ベベル
    • Array
    • ソリッド化
    • ミラー
【bpy】ベベル/配列/ソリッド化/ミラーモディファイア追加の基本|Text Base Blender

  • コレクションの整理
【bpy】コレクション新規作成およびオブジェクト移動|Text Base Blender

  • ベジエ曲線の操作
【bpy】ハンドルとインデックスによるベジェ曲線の変形・操作|Text Base Blender

  • テキストオブジェクト作成
【bpy】テキストオブジェクトの生成と編集|Text Base Blender

  • カーブのメッシュ化
  • テキストオブジェクトのメッシュ化
【bpy】カーブおよびテキストオブジェクトのメッシュ化|Text Base Blender

  • 円形にオブジェクトを配置
【bpy】円形にオブジェクトを複製配置する|Text Base Blender

  • ピボットを指定してリサイズ(コンテキストの上書き)
【bpy】ピボットを指定してリサイズ(コンテキストの上書き)|Text Base Blender



UV展開


Blender 4.2

  • UV展開(シームによる手動)
  • UV展開(自動化)
【bpy】シームのマークおよびUV展開の方法を考える|Text Base Blender

  • ベイク
(Pending)


マテリアル・テクスチャ


Blender 4.2

  • マテリアル追加
    • マテリアル新規追加
    • 既存マテリアル割り当て
    • 既存マテリアルのコピー/複製
【bpy】マテリアルの新規追加/既存マテリアル割り当て・複製|Text Base Blender

  • ノードの値を変更
【bpy】マテリアル・テクスチャノードの変数値を設定する操作|Text Base Blender

  • テクスチャ
    • テクスチャ追加
    • テクスチャノード間のリンク/接続
【bpy】テクスチャノードの追加と接続方法|Text Base Blender

  • ガラスマテリアル設定(Node)
【bpy】ガラス表現のテクスチャノードの追加を自動化|Text Base Blender

  • イメージテクスチャ設定
【bpy】イメージテクスチャノードで画像をオブジェクトに貼り付け|Text Base Blender

  • UV Editor操作
【bpy】インデックスを用いたUV Editor操作と画像の割り当て|Text Base Blender



アニメーション


Blender 4.2

(Pending)


汎用処理


Blender 4.2

  • 要素(面、辺、頂点)インデックスの固定 (随時更新)
  • 3D カーソルの移動
【bpy】ランダムな面・辺・頂点インデックスを固定する方法|Text Base Blender

  • 選択した面、辺、頂点のインデックスリスト取得
【bpy】選択した面・辺・頂点のインデックスリストを取得する|Text Base Blender

  • 視点切り替え
    • 視点変更
    • 透過ビューのON/OFF
    • プレビューの切り替え
【bpy】プレビュー・視点の切り替え|Text Base Blender

  • ファイルのエクスポート(GLTF)
  • ファイルのエクスポート(GLB)
【bpy】GLTF・GLBファイルエクスポート設定自動化|Text Base Blender

  • アドオンの読み込みと有効化
【bpy】add-on・Extensionの読み込みと有効化と使用例|Text Base Blender

  • 全適用
【bpy】全適用・全トランスフォームはこまめに入れられるように関数化しておく | Text Base Blender



関連記事


  • Blender
【Blender】Python APIと一般的な3Dモデリング手順を比較|テキストベースモデリング入門

  • Three.js
【Three.js】Blenderで作成したglTFやvrmモデル読み込んで表示

  • GLSL
(Pending)

  • Unity
(Pending)

このエントリーをはてなブックマークに追加
コメントを閉じる

コメント

コメントフォーム
記事の評価
  • リセット
  • リセット