子に親のマテリアルを設定 ~簡単なpythonの活用~
Blender2.55, python3.1使用
オブジェクト同士にParent設定をした際に、子と親のマテリアルが同じであることは多くあると思います。
子の数が多かったりすると後からマテリアル設定をするのは少し大変です。
今回は簡単なpythonを使って子オブジェクトに親オブジェクトのマテリアルを設定する方法を説明します。

オブジェクト同士にParent設定をした際に、子と親のマテリアルが同じであることは多くあると思います。
子の数が多かったりすると後からマテリアル設定をするのは少し大変です。
今回は簡単なpythonを使って子オブジェクトに親オブジェクトのマテリアルを設定する方法を説明します。

画像の様に適当なオブジェクトにParent設定をします。ちなみに、オブジェクトを複数選択して、Ctrl+Pを押すと最後に選択したオブジェクトを親としてParent設定が適用されます。
一番上の階層のCubeと二番目のSphere三番目のMonkeyに違うマテリアルを設定しておきました。
今回のpythonのスクリプトを下に示します。
これだけです。
Blenderのテキストエディタに張り付けてください。
青いCubeを選択して Run Scriptを押すと子オブジェクトが全て青色になります。

Ctrl+Zで元に戻して、赤いSphereを選択して実行するとMonkeyとCubeだけが赤色になります。

さてスクリプトの説明です。
一行目はBlender用のモジュールの読み込みです。
二行目は現在の選択オブジェクト(アクティブなオブジェクト)の子オブジェクトをすべて選択します。
bpy.ops.object.select_groupedはアクティブなオブジェクトに対して、あるグループに属する全ての可視オブジェクトを選択します。
typeを変えることで色々な選択の仕方ができます。
type='CHILDREN':一つ下の階層の子を選択
type='PARENT':親を選択
type='SIBLINGS':兄弟(同じ階層)を選択
type='GROUP':グル―プが同じオブジェクトを選択
type='LAYER':同じレイヤーのオブジェクトを選択
type=’TYPE':同じタイプ(カメラなど)のオブジェクトを選択
他にも'HOOK’‘PASS’‘COLOR’‘PROPERTIES’等が使えます。
Extendは選択を広げるか、つまり前もって選択していたオブジェクトを選択に含めるか除外するかどうかを決定します。Trueで選択に含めます。
選択していたオブジェクトがtypeで示される選択範囲に含まれている場合はFalseにしていようとも選択に含められるようです。
三行目は選択しているオブジェクトに現在のアクティブオブジェクトのマテリアルを設定します。
以上で簡単に子オブジェクトに親オブジェクトの材質を設定する事が出来ました。
関連するタグ Blender 2.55 python マテリアル 親 子 一番上の階層のCubeと二番目のSphere三番目のMonkeyに違うマテリアルを設定しておきました。
今回のpythonのスクリプトを下に示します。
import bpy
bpy.ops.object.select_grouped(extend=True, type='CHILDREN_RECURSIVE')
bpy.ops.object.material_slot_copy()
これだけです。
Blenderのテキストエディタに張り付けてください。
青いCubeを選択して Run Scriptを押すと子オブジェクトが全て青色になります。

Ctrl+Zで元に戻して、赤いSphereを選択して実行するとMonkeyとCubeだけが赤色になります。

さてスクリプトの説明です。
一行目はBlender用のモジュールの読み込みです。
二行目は現在の選択オブジェクト(アクティブなオブジェクト)の子オブジェクトをすべて選択します。
bpy.ops.object.select_groupedはアクティブなオブジェクトに対して、あるグループに属する全ての可視オブジェクトを選択します。
typeを変えることで色々な選択の仕方ができます。
type='CHILDREN':一つ下の階層の子を選択
type='PARENT':親を選択
type='SIBLINGS':兄弟(同じ階層)を選択
type='GROUP':グル―プが同じオブジェクトを選択
type='LAYER':同じレイヤーのオブジェクトを選択
type=’TYPE':同じタイプ(カメラなど)のオブジェクトを選択
他にも'HOOK’‘PASS’‘COLOR’‘PROPERTIES’等が使えます。
Extendは選択を広げるか、つまり前もって選択していたオブジェクトを選択に含めるか除外するかどうかを決定します。Trueで選択に含めます。
選択していたオブジェクトがtypeで示される選択範囲に含まれている場合はFalseにしていようとも選択に含められるようです。
三行目は選択しているオブジェクトに現在のアクティブオブジェクトのマテリアルを設定します。
以上で簡単に子オブジェクトに親オブジェクトの材質を設定する事が出来ました。
- 関連記事
-
- BlenderでのPythonの使い方 (2010/12/04)
- 子に親のマテリアルを設定 ~簡単なpythonの活用~ (2010/12/08)