Blenderで同じ種類のオブジェクトが増えると、Cube.001のような名前だけでは中身を探しにくくなります。
ここでは、選択したメッシュをpart_001、part_002と連番にする小さな拡張機能を作ります。
Pythonの処理に加え、3Dビューのサイドバーにボタンを置くところまで扱います。
作例の拡張機能をダウンロード(ZIP)できます。
ZIPにはblender_manifest.tomlと__init__.pyが入っています。
既存の制作ファイルではなく、新規の練習用ファイルで動作を確かめてください。
作る機能と変更範囲
- オブジェクトモードで選択したメッシュだけを名前変更する。カメラ、ライト、選択していないメッシュは変えない。
- 名前は変更前の名前順に並べ、指定した接頭語と開始番号で連番にする。
- 同じ名前が選択外のオブジェクトにあるときは、変更前に止める。
- 変更をUndoで戻せるよう、オペレーターに
UNDOを指定する。
例えば「Seat」と「Leg」を選んで接頭語part、開始番号1を指定すると、名前順にpart_001、part_002へ変わります。
選択していないpart_003はそのままです。
拡張機能の2つのファイル
Blender 4.2以降の拡張機能は、パッケージのルートにマニフェストとPythonの入口を置きます。
今回のZIPも次の構成です。
cgm_selected_renamer-1.0.0.zip ├─ blender_manifest.toml └─ __init__.py
blender_manifest.tomlには、ID、版、対応するBlenderの下限、ライセンスを記します。
__init__.pyに実際の名前変更処理とパネルを置きます。
配布サンプルはBlenderの拡張機能ビルド・検証コマンドを通したZIPです。
オペレーターで選択中のメッシュを処理する
オペレーターは、ボタンを押したときに実行する処理です。
次の部分が変更対象を選んでいます。
メッシュだけに絞り、名前で並べることで、同じ選択状態なら連番の順序が分かります。
selected = sorted(
(obj for obj in context.selected_objects if obj.type == 'MESH'),
key=lambda obj: obj.name,
)
if not selected:
self.report({'WARNING'}, "メッシュを選択してください")
return {'CANCELLED'}
targets = [f"{self.prefix}_{self.start + i:03d}" for i in range(len(selected))]この先で、選択外の名前との衝突を調べます。
衝突があれば変更を始めずに止めます。
選択中のオブジェクト同士で名前が一時的に重なる場合に備え、いったん仮の名前へ変更してから最終名を付けます。
bpyでは同名があると自動的に末尾が調整されるため、この順序を省くと意図した連番にならないことがあります。
全文はZIP内の__init__.pyで確認できます。
ボタンを登録する
パネルはVIEW_3DのUI領域に置き、CGMタブへボタンを追加する構成です。
Blenderが拡張機能を有効にするとregister()でオペレーターとパネルを登録し、無効にするとunregister()で逆順に解除します。
CLASSES = (CGM_OT_rename_selected_meshes, CGM_PT_selected_renamer)
def register():
for cls in CLASSES:
bpy.utils.register_class(cls)
def unregister():
for cls in reversed(CLASSES):
bpy.utils.unregister_class(cls)ZIPを導入して試す
- ZIPを展開せずに保存し、Blenderの編集 → プリファレンス → アドオンを開く。
- 「ディスクからインストール」を選び、ダウンロードしたZIPを指定する。
- 拡張機能を有効にし、新規ファイルで立方体などメッシュを2個作る。
- オブジェクトモードで2個を選択し、3Dビューの右サイドバー(Nキー)のCGMタブで「選択メッシュを連番にする」を実行する。
- 接頭語と開始番号を指定して確定し、アウトライナーの名前を確認する。元に戻したい場合はCtrl+Zを使う。
ボタンが見えない場合は、拡張機能が有効か、3Dビューでオブジェクトモードになっているかを確認してください。
既存名と衝突した場合はエラーで止まり、別の接頭語または開始番号に変更して再実行できます。
今回確認した結果と残る確認
2026年10月3日にBlender 5.2.1 LTSの背景実行で拡張機能を登録し、選択した2メッシュがpart_001・part_002になることを確認しました。
選択外にpart_003がある場合は、同名への変更を拒否して既存名を保持しました。
メッシュが未選択の場合も変更せずに終了し、登録解除も完了しました。
ZIPはBlenderのビルドとマニフェスト検証を通しています。
GUIでのZIP導入、ボタン表示、ダイアログ操作の画面撮影は今回まだ実施していません。
上の導入手順はBlender公式のアドオン設定に基づきます。
実装の説明はOperator API、Panel API、拡張機能の開発構成を参照しています。
繰り返し配置を自動化したい場合は、ジオメトリノードで面に球を散らす作例も参考になります。