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
Blender 3.3.5
oot_model_classes.py", line 425, in setCurrentTransform
self.currentTransformName = self.getLimbName(self.dlList[int(int(name[4:], 16) / MTX_SIZE)].limbIndex)
IndexError: list index out of range
Traceback (most recent call last):
File "Blender\3.3\scripts\addons\fast64-main\fast64_internal\oot\oot_f3d_writer.py", line 541, in execute
obj = importMeshC(
File "Blender\3.3\scripts\addons\fast64-main\fast64_internal\f3d\f3d_parser.py", line 2166, in importMeshC
parseF3D(data, name, transformMatrix, name, name, "oot", drawLayer, f3dContext, True)
File "Blender\3.3\scripts\addons\fast64-main\fast64_internal\f3d\f3d_parser.py", line 1838, in parseF3D
f3dContext.processCommands(dlData, processedDLName, dlCommands)
File "Blender\3.3\scripts\addons\fast64-main\fast64_internal\f3d\f3d_parser.py", line 1502, in processCommands
self.setCurrentTransform(command.params[0])
File "Blender\3.3\scripts\addons\fast64-main\fast64_internal\oot\oot_model_classes.py", line 425, in setCurrentTransform
self.currentTransformName = self.getLimbName(self.dlList[int(int(name[4:], 16) / MTX_SIZE)].limbIndex)
IndexError: list index out of range
In the main non-SoH version this seems to be fixed as:
def setCurrentTransform(self, name, flagList="G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW"):
if name[:4].lower() == "0x0d":
# This code is for skeletons
index = int(int(name[4:], 16) / MTX_SIZE)
if index < len(self.dlList):
transformName = self.getLimbName(self.dlList[index].limbIndex)
My attempt at porting this that seems to work:
def setCurrentTransform(self, name):
if name[:4].lower() == "0x0d":
index = int(int(name[4:], 16) / MTX_SIZE)
if index < len(self.dlList):
self.currentTransformName = self.getLimbName(self.dlList[index].limbIndex)
I did some more testing and although this does workaround the error and allow DLs to import, there is a possibly unrelated problem causing some of the verts to be importing with wrong positions or linked to the wrong bones. It's very possible that these new problems are unrelated to this fix, but I'm not sure if this workaround is a good idea for SoH Fast64 or not, since the Fast64 version the fix came from has changed so much from the SoH version, and the fix may or may not rely on any of those many changes.
It's basically just checking that the calculated index isn't longer than len(self.dlist) before attempting to access that index.
It's very possible this is a valid fix and those other problems are unrelated, however it's also very possible that porting a fix from another heavily changed Fast64 fork without fully understanding the implications is a bad idea.
I really hope any of this info can be helpful to anyone more experienced.
Blender 3.3.5
oot_model_classes.py", line 425, in setCurrentTransform
self.currentTransformName = self.getLimbName(self.dlList[int(int(name[4:], 16) / MTX_SIZE)].limbIndex)
IndexError: list index out of range
Traceback (most recent call last):
File "Blender\3.3\scripts\addons\fast64-main\fast64_internal\oot\oot_f3d_writer.py", line 541, in execute
obj = importMeshC(
File "Blender\3.3\scripts\addons\fast64-main\fast64_internal\f3d\f3d_parser.py", line 2166, in importMeshC
parseF3D(data, name, transformMatrix, name, name, "oot", drawLayer, f3dContext, True)
File "Blender\3.3\scripts\addons\fast64-main\fast64_internal\f3d\f3d_parser.py", line 1838, in parseF3D
f3dContext.processCommands(dlData, processedDLName, dlCommands)
File "Blender\3.3\scripts\addons\fast64-main\fast64_internal\f3d\f3d_parser.py", line 1502, in processCommands
self.setCurrentTransform(command.params[0])
File "Blender\3.3\scripts\addons\fast64-main\fast64_internal\oot\oot_model_classes.py", line 425, in setCurrentTransform
self.currentTransformName = self.getLimbName(self.dlList[int(int(name[4:], 16) / MTX_SIZE)].limbIndex)
IndexError: list index out of range
Examples of affected displaylist:
Object_skj: gSkullKidRightUpperLegDL gSkullKidRightLowerLegDL gSkullKidLeftFootDL
object_ge1: gGerudoWhiteRightUpperArmDL
The text was updated successfully, but these errors were encountered: