bpyでオブジェクト名から正規表現で複製グループを差し替えるpyhonサンプル

blender上でオブジェクトを編集中に誤って大量のオブジェクトに紐づいていた
複製グループのリンクが切れてしまいました。

数十~100くらいのオブジェクトのリンクがすべて切れてしまったのですが、
1つずつ手で修正するのは骨の折れる作業です。

複製グループのリンクが外れてしまったオブジェクトの名前は”
book3.000(連番)”という規則性がありましたので、下記のような簡単なbpyスクリプトを書いて
一気に作業を終わらせました。

コードを調べながらやったので1時間弱くらいだったので、手作業とそう変わらないかったかも
しれませんが、精神的疲労は軽かったと思います。

また次に同じ様なことが起こっても下記のソースの応用で対処できそうです。

下記のようなソースはblenderのテキストファイル内に記載して「run script」ボタンをおすことで
アドオンではなくても動作できます。

単純動作を何度も繰り返さなければならないときは、スクリプトを使えると便利です。


import bpy
import re

#全ての編集可能なオブジェクトをobjsに入れる
objs = bpy.context.selectable_objects

#objsの中にあるオブジェクトのすべてに繰り返す
for i in objs:
    #"book3."で始まるという正規表現パターン
    pattern = "book3\.*"

    #オブジェクト名が正規表現pattern"book3."にマッチしたら
    if re.match(pattern, i.name): 
        print (i.name)
        #print (i.dupli_group)

        #複製グループがNoneだったら
        if i.dupli_group == None:
            #複製グループに"book3"というグループを設定する
            i.dupli_group = bpy.data.groups['book3']
            print (i.dupli_group)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

5 × 4 =