Symulator EU07 (i nie tylko) > Na warsztacie
Skrypty do Blender-a
firleju:
Specyfikacja t3d nie ma takiego parametru.
Jeremi:
Stworzył mi się błąd i nie mam pojęcia z czym on jest związany i co poprawić aby działało;/
--- Kod: ---for face in mesh.polygons:
i = 0 #liczymy kazdy wierzcholek w kazdym face od 0 do 2
if face.use_smooth:
file.writelines(list_smooth_groups[0][face.index].__str__() + lend)
else:
file.writelines("0" + lend)
for vert_index in face.vertices:
tmp = list(mesh.vertices[vert_index].co.to_tuple())
if has_texture:
tmp.extend(mesh.uv_layers.active.data[face.loop_indices[i]].uv.to_tuple())
else:
tmp.extend((0,0))
file.writelines("%.6f %.6f %.6f %.6f %.6f \n" % tuple(tmp)[:])
i+=1
--- Koniec kodu ---
Jak rozumiem jest to powiązane z mapowaniem tekstur... Zaczęło się eksportować jak wywaliłem teksturę z materiału, tyle że teraz tekstura się nie nakłada w Maszynie. Miałem obiekt, który korzystał z materiału i tekstury w innym obiekcie ale nie miał zrobionego mapowania UV do tej tekstury, po dodaniu innego materiału, zaczęło działać.
Dodatkowo skrypt wywala się przy odznaczeniu widoczności obiektu.
firleju:
Nie miałeś zrobionego mapowania na teksturze. Na tym Ci wyłożył.
--- Kod: ---tmp.extend(mesh.uv_layers.active.data[face.loop_indices[i]].uv.to_tuple())
--- Koniec kodu ---
W tym przypadku błąd był w braku obecności obiektu uv_layers (NoneType) więc nie mógł się odwołać do active_data (rzutuje na aktywną mapę uv). Po dodaniu mapy UV będzie działać.
Pytanie: dodać zabezpieczenie? Bo szczerze nie za bardzo wiem jak exe będzie się zachowywać bez mapy.
Jeremi:
Jeżeli można dodać aby używało materiał źródłowy (kopiowało?) i nie korzystało z tekstury lub ją pomijało przy nie zmapowanym obiekcie, to może byłby w tym sens. Pytanie czy nie stworzy to problemu, że później nie będzie wiadomo czemu nie ma tekstur na obiektach. ;) Ewentualnie jeżeli dany obiekt nie ma mapowania, to jeżeli da się go zidentyfikować, to aby wywalało błąd który to obiekt.
firleju:
Wiesz, ja napisałem eksporter nie za bardzo wiedząc jak się z tego korzysta ;) Mogę ewentualnie zrobić w tym miejscu pułapkę i wyrzucać do log-a na którym obiekcie mi wywaliło. Nie wiem czy się uda z opisem błędu, no ale powiedzmy, że twórca już dojdzie po strukturze danych :D
Dodano: 07 Lutego 2016, 21:35:35 Popatrzyłem sobie w kod. Jeśli się zdarzy taki błąd trzeba otworzyć konsolę (menu window) i tam jest napisany jaki obiekt jest aktualnie eksportowany. Może nawet lepiej, że się sypie. Jeśli komuś wadzić będzie to proszę sobie dopisać i wystawić w wątki dla potomności.
Nawigacja
[#] Następna strona
Idź do wersji pełnej