You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
napisałem prostą metodę która sprawdza czy obiekty hipoly mają materiały, jeżli nie to wyświetli nazwę obiektu i przerwie skrypt:
def is_empty_mat(self,context):
mds = bpy.context.scene.meltdown_settings
pair = mds.bake_job_queue[self.job].bake_queue[self.pair]
pair_list = mds.bake_job_queue[self.job].bake_queue
if pair.highpoly != "":
if pair.hp_obj_vs_group == "GRP":
for object in bpy.data.groups[pair.highpoly].objects:
if len(object.material_slots)==0 or object.material_slots[0].material is None:
self.report({'INFO'}, 'Object: '+object.name+' has no Material!')
return True
else:
if len(bpy.data.objects[pair.highpoly].material_slots)==0 or bpy.data.objects[pair.highpoly].material_slots[0].material is None:
self.report({'INFO'}, 'Object: '+bpy.data.objects[pair.highpoly].name+' has no Material!')
return True
return False
Były by super gdybyś wrzucił to do mastera.
funkcję tą najlepiej wywołać w głównym operatorze MeltdownBakeOp zaraz na starcie funkcji execute:
def execute(self, context):
if self.is_empty_mat(context):
return {'CANCELLED'}
The text was updated successfully, but these errors were encountered:
Skrypt powinien nie tyle wyświetlać komunikat i nazwe obiektu, co poradzić sobie niezależnie od tego czy jest materiał, czy nie. Jeśli nie ma, przypisać (tylko w scenie tymczasowej oczywiście).
To ja jednak sobie zostawię to tak jak jest. Wolę wiedzieć, że obiekt nie miał materiału i przypisać mu ręcznie materiał z dobrym ID. Automat nie bedzie wiedział czy tu miało być drewno, metal czy coś innego.
Swoją drogą super skrypt. Tylko wolno wypieka i wygląda jakby nie używał wszystkich rdzeni.
napisałem prostą metodę która sprawdza czy obiekty hipoly mają materiały, jeżli nie to wyświetli nazwę obiektu i przerwie skrypt:
def is_empty_mat(self,context):
mds = bpy.context.scene.meltdown_settings
pair = mds.bake_job_queue[self.job].bake_queue[self.pair]
pair_list = mds.bake_job_queue[self.job].bake_queue
if pair.highpoly != "":
if pair.hp_obj_vs_group == "GRP":
for object in bpy.data.groups[pair.highpoly].objects:
if len(object.material_slots)==0 or object.material_slots[0].material is None:
self.report({'INFO'}, 'Object: '+object.name+' has no Material!')
return True
else:
if len(bpy.data.objects[pair.highpoly].material_slots)==0 or bpy.data.objects[pair.highpoly].material_slots[0].material is None:
self.report({'INFO'}, 'Object: '+bpy.data.objects[pair.highpoly].name+' has no Material!')
return True
return False
Były by super gdybyś wrzucił to do mastera.
funkcję tą najlepiej wywołać w głównym operatorze MeltdownBakeOp zaraz na starcie funkcji execute:
def execute(self, context):
if self.is_empty_mat(context):
return {'CANCELLED'}
The text was updated successfully, but these errors were encountered: