Blenderで同じ種類のオブジェクトが増えると、Cube.001のような名前だけでは中身を探しにくくなります。
ここでは、選択したメッシュをpart_001、part_002と連番にする小さな拡張機能を作ります。
Pythonの処理に加え、3Dビューのサイドバーにボタンを置くところまで扱います。
作例の拡張機能をダウンロード(ZIP)できます。
ZIPにはblender_manifest.tomlと__init__.pyが入っています。
既存の制作ファイルではなく、新規の練習用ファイルで動作を確かめてください。
作業の流れ
作業を始める前に、全体の順番を確認しておきます。
ボタンの表示とダイアログの操作、Ctrl+Zでの取り消しは、2026年10月15日にBlender 5.2.1 LTSの画面で確かめました(ZIPと同じ中身をBlenderのセッションに登録して確認)。
下の3(ZIPのインストールと有効化)は、確認に含めていません。
お使いのBlenderの版で、新規の練習用ファイルを使って確認してください。
- まず、新規の練習用ファイルを用意する。既存の制作ファイルでは試さない。
- 作例のZIPをダウンロードする。ZIPは展開せずに保存する。中には、blender_manifest.tomlと__init__.pyが入っている。
- Blenderの「編集」→「プリファレンス」→「アドオン」を開き、「ディスクからインストール」でZIPを指定して、拡張機能を有効にする。
- 新規ファイルで、立方体などのメッシュを2個作り、オブジェクトモードで2個を選択する。
- 3Dビューの右サイドバー(Nキー)のCGMタブで、「選択メッシュを連番にする」を実行し、接頭語と開始番号を指定して確定する。
- アウトライナーで名前を確認する。元に戻したい場合は、Ctrl+Zを使う。
ボタンが見えない場合は、拡張機能が有効か、3Dビューでオブジェクトモードになっているかを確認してください。
作る機能と変更範囲
- オブジェクトモードで選択したメッシュだけを名前変更する。カメラ、ライト、選択していないメッシュは変えない。
- 名前は変更前の名前順に並べ、指定した接頭語と開始番号で連番にする。
- 同じ名前が選択外のオブジェクトにあるときは、変更前に止める。
- 変更を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ビューでオブジェクトモードになっているかを確認してください。
既存名と衝突した場合はエラーで止まり、別の接頭語または開始番号に変更して再実行できます。
このページのZIPと同じ中身で試した結果(2026年10月15日)
2026年10月15日に、Windows 11 Pro上のBlender 5.2.1 LTS(日本語表示)で、ボタンからの操作を確かめました。
使ったのは、このページのZIPに入っている__init__.pyと、中身が1バイトも違わない同じファイルです。
ZIPのインストールはせず、Blenderを起動したあとでスクリプトからそのセッションだけに登録したため、上の手順のうち、ZIPを指定してインストールし、拡張機能を有効にする操作は確認に含めていません。
新規の練習用ファイルに、1辺1.4 mの立方体を3つ(Leg、Seat、part_003)と、カメラを1つ置きました。
オブジェクトモードでLeg、Seat、Cameraを選び(アクティブはSeat)、part_003は選ばずに残しました。
3Dビューの右サイドバーに「CGM」タブが出て、「連番リネーム」のパネルに「選択メッシュを連番にする」のボタンが表示されました。

ボタンを押すと、「接頭語」と「開始番号」を入れるダイアログが開きます。
まず、接頭語をpart、開始番号を2にしました。
名前順で2つ目のSeatがpart_003になる条件なので、選択外のpart_003と名前が重なります。

OKを押すと、「既存の名前と重複します: part_003」と表示され、どのオブジェクトの名前も変わりませんでした。

もう一度ボタンを押し、開始番号を1にしてOKを押すと、Legがpart_001、Seatがpart_002に変わりました。
選択していたCameraと、選択していないpart_003の名前は変わりませんでした。
画面の下には、「2個のメッシュの名前を変更しました」と表示されました。

続けてCtrl+Zを1回押すと、名前がLegとSeatに戻りました。
各段階で保存したファイルを、別に起動したBlenderで開いて調べると、Ctrl+Zのあとの状態は、名前・頂点・面・位置・選択・アクティブのオブジェクトまで、操作前と同じでした。
名前を変えたときに変わったのはオブジェクトの名前だけで、メッシュのデータの名前と位置は変わりませんでした。
メッシュを1つも選ばずに押したときの警告と、選んだオブジェクト同士で名前が一時的に重なる場合は、今回の画面での確認に含めていません。
既存の制作ファイルや、リンクしたデータでは試していません。
アドオンの管理画面と別のサンプル(2026年10月12日)
2026年10月12日に、Blender 5.2.1 LTSの日本語表示で、画面を確認しました。
拡張機能やアドオンは、「プリファレンス」の「アドオン」で管理します。

次の2枚は、このページのZIPではなく、同じ考え方で作った別のサンプルです。
サイドバーに「Sequential Rename Sample」のタブが出て、「Rename Selected Meshes」のボタンで、選択したメッシュの名前を連番にします。
実行する前は、選択した3つのメッシュが「RenameDemo_1」から「RenameDemo_3」の名前でした。

ボタンを押すと、アウトライナーの名前が「Sample_001」「Sample_002」「Sample_003」に変わりました。

今回確認した結果と残る確認
2026年10月3日にBlender 5.2.1 LTSの背景実行で拡張機能を登録し、選択した2メッシュがpart_001・part_002になることを確認しました。
選択外にpart_003がある場合は、同名への変更を拒否して既存名を保持しました。
メッシュが未選択の場合も変更せずに終了し、登録解除も完了しました。
ZIPはBlenderのビルドとマニフェスト検証を通しています。
2026年10月15日には、このページのZIPと同じ__init__.pyをBlenderのセッションに登録し、ボタンとダイアログの操作、名前が衝突したときの停止、Ctrl+Zでの取り消しを画面で確かめました。
このページのZIPを「ディスクからインストール」で導入して有効にする操作は、まだ確認していません。
2026年10月12日の画面の「Sequential Rename Sample」は、同じ考え方で作った別のサンプルです。
上の導入手順はBlender公式のアドオン設定に基づきます。
実装の説明はOperator API、Panel API、拡張機能の開発構成を参照しています。
繰り返し配置を自動化したい場合は、ジオメトリノードで面に球を散らす作例も参考になります。
よくある質問:Blenderアドオンの連番リネームで迷ったときのチェックリスト
このアドオンは、何をしますか?
オブジェクトモードで選択したメッシュだけを、指定した接頭語と開始番号で連番に名前変更します。カメラ、ライト、選択していないメッシュは変えません。
名前は、どの順番で付きますか?
変更前の名前順に並べて、連番にします。例えば「Seat」と「Leg」を選んで、接頭語part、開始番号1を指定すると、名前順にpart_001、part_002へ変わります。
同じ名前が、選択外のオブジェクトにあるときは?
変更前に止まります。2026年10月15日の確認では、選択外にpart_003があるときに開始番号2を指定すると、「既存の名前と重複します: part_003」と表示され、名前は変わりませんでした。別の接頭語または開始番号に変更して、再実行できます。
変更を元に戻せますか?
変更をUndoで戻せるよう、オペレーターにUNDOを指定しています。元に戻したい場合は、Ctrl+Zを使います。2026年10月15日の確認では、名前を変えたあとにCtrl+Zを1回押すと元の名前に戻り、位置や選択の状態も操作前と同じでした。
どのBlenderで使えますか?
ページでは、Blender 4.2以降の拡張機能の構成を説明しています。ZIPにはマニフェストがあり、対応するBlenderの下限が記されています。
ページの内容は、画面で確認済みですか?
2026年10月3日にBlender 5.2.1 LTSの背景実行で、拡張機能の登録と名前変更を確認しました。2026年10月15日には、このページのZIPに入っている__init__.pyと同じファイルをBlenderのセッションに登録し、ボタンとダイアログの操作、名前が衝突したときの停止、Ctrl+Zでの取り消しを画面で確かめました。ZIPを導入して有効にする操作は、まだ確認していません。2026年10月12日の画面は、同じ考え方で作った別のサンプルです。