表面材質や背景で使用されていないイメージを選択する(スクリプト)
表面材質や背景ウィンドウなどで読み込まれたイメージは、ブラウザウィンドウのイメージパートへ格納されます。
イメージパート内に表示されたイメージの使用状況はブラウザ下のセパレータをドラッグすると
イメージが、どの表面材質や背景に参照されているか確認することができます。
しかし、イメージパートに多数のイメージが存在する場合、個別に確認するには時間を要し現実敵ではございません。
その場合は、以下のスクリプトを実行することで、使用していないイメージを一括して選択することができ
視覚的に内容を確認することができます。
なお、スクリプトを実行すると未参照のマスターマテリアルは、ブラウザ上で複数選択されます。
その際、右クリックして表示されたメニューより「マーカー色」を指定して内容を後ほど確認するか、
削除を指定して一括削除することもできます。
※使用していないマスターマテリアルの検索方法はこちらをご確認ください。
使用方法:
1・「#Shade Script」から「main()」までを選択し「コピー」してください。
2・表示メニューよりスクリプトを選択してください。
3・スクリプトウィンドウが表示されますので、フィールド上にマウスカーソルを合わせ「貼り付け」を行なってください。
4・スクリプトウィンドウ内にスクリプトが貼り付けられたのち「実行」ボタンをクリックしてください。
これにより、ブラウザウィンドウのマテリアルパートより、どこの形状にも
参照されていないマスターマテリアルが複数選択されます。
#Shade Script
# @title \ja 未使用のイメージの選択 \endja
# @description \ja 形状や背景などで使用されていないイメージを全て選択します。\endja
def get_images (contain_image_set, shape): #shapeの形状、パートの中にあるイメージのuuidを洗い出し
if shape.type == 10: # マスターイメージ.
contain_image_set.append(shape)
if shape.has_son:
son = shape.son
while son.has_bro:
son = son.bro
get_images(contain_image_set, son)
def main():
print("■■「未使用のイメージの選択」を実行します。")
#rootからイメージパートパート探し
r_part = xshade.scene().shape
if not r_part.has_son:
print("■イメージパートはありません")
return
m_image_part = None
crr_shape = r_part.son
while crr_shape.has_bro:
crr_shape = crr_shape.bro
if crr_shape.type == 2:#パート
if crr_shape.part_type == 102:#イメージパート
m_image_part = crr_shape
break
if m_image_part == None or not m_image_part.has_son:
print("■イメージパートはありません")
return
contain_image_list = []
get_images(contain_image_list, m_image_part)
# 参照されていないイメージを抽出.
to_active_list = []
for i in range(len(contain_image_list)):
master_image = contain_image_list[i]
# イメージが参照されていない場合.
if master_image.is_master_image_being_used() == 0:
to_active_list.append(master_image )
if len(to_active_list) == 0:
print("■使用していないイメージはありませんでした。")
return
print("■" + str(len(to_active_list)) +"個のイメージが使用されていません。")
xshade.scene().active_shapes = to_active_list
print("■使用していないイメージを選択しました。")
main()