meltdown icon indicating copy to clipboard operation
meltdown copied to clipboard

Skrypt meltdown nie sprawdza czy obiekty hipoly maja przypisane materiały przez co się wysypuje

Open JoseConseco opened this issue 10 years ago • 2 comments

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'}

JoseConseco avatar Aug 21 '15 21:08 JoseConseco

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).

MadMinstrel avatar Aug 22 '15 06:08 MadMinstrel

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.

JoseConseco avatar Aug 22 '15 11:08 JoseConseco