When running optimize on meshes/dlc05/clutter/torturedevice/dlc05mztorturedeviceanimated.nif (from Mothership Zeta's "Zeta - Main.bsa"), an IndexError is thrown:
pyffi.toaster:1841:INFO: ~~~ NiTriShape [DrillArm:1] ~~~
pyffi.toaster:1841:INFO: removing duplicate vertices
pyffi.toaster:1841:INFO: (num vertices was 1364 and is now 1364)
pyffi.toaster:1841:INFO: optimizing triangle ordering
pyffi.toaster:1841:INFO: (ATVR stable at 1.000)
pyffi.toaster:1841:INFO: optimizing vertex ordering
pyffi.toaster:1841:ERROR:TEST FAILED ON fixes/dlc05mztorturedeviceanimated.nif
pyffi.toaster:1841:ERROR:If you were running a spell that came with PyFFI, then
pyffi.toaster:1841:ERROR:please report this as a bug (include the file) on
pyffi.toaster:1841:ERROR:http://sourceforge.net/tracker/?group_id=199269
Traceback (most recent call last):
File "/usr/bin/niftoaster.py", line 195, in <module>
NifToaster().cli()
File "/usr/lib/python3.2/site-packages/pyffi/spells/init.py", line 1232, in cli
self.toast(self.top)
File "/usr/lib/python3.2/site-packages/pyffi/spells/init.py", line 1365, in toast
for filename in file_pool)))
File "/usr/lib/python3.2/concurrent/futures/_base.py", line 542, in map
yield future.result()
File "/usr/lib/python3.2/concurrent/futures/_base.py", line 398, in result
return self.get_result()
File "/usr/lib/python3.2/concurrent/futures/_base.py", line 350, in get_result
raise self._exception
IndexError: list index out of range
The error is thrown when branch.get_vertex_weights() is called in optimize.py. It's due to the weights list in get_vertex_weights() having a length of 1364 (num_vertices), but there is a skinweight with index 1429 in bonenum 0.
I don't understand why that is, so that's as far as I got in investigating it. Thanks :)
Looks like a corrupted nif - I would guess that we can safely throw away invalid skin weights. Can you email me the nif?
Thanks for the nif - I'll have a look at this as soon as time permits!