QC Batch Importer Error

Started by atrblizzard, November 06, 2014, 05:42:56 AM

Previous topic - Next topic

atrblizzard

Hello,

I'm not sure if it's a bug what I've encountered or something else is causing said issues, but here's the log while importing QC/SMD within the batch importer through MarioKart's SMD. I'm currently running 3ds Max 2015.

"S:\Steam\Steamapps\common\SourceFilmmaker\game\ResurgenceSFM\models\"
"\modelsrc"
"scenery\structural\cemetery\"
"\modelsrc\scenery\structural\cemetery\"
""
"\modelsrc\"
"D:\Projects\ProjectVaulderie\SMD\cemetery\stonek\"
"\modelsrc\D:\Projects\ProjectVaulderie\SMD\cemetery\stonek\"
"D:\Projects\ProjectVaulderie\SMD\cemetery\stonek\\stonek_phy_physbox.smd Imported"
-- Error occurred in wallworm_update_qcobject(); filename: C:\Program Files\Autodesk\3ds Max 2015\scripts\WallWorm.com\importers\Mario_Kart_SMD_Importer.ms; position: 31603; line: 1221
--  Frame:
--   ind: undefined
--   newbg: undefined
--   str: " stonel.tga  "
--   unclassed: #("$ikchain", "$alwayscollapse", "$root", "$poseparameter", "$weightlist", "$definebone", "$hboxset", "$hbox", "$attachment", "$eyeposition", "$bbox", "$proceduralbones")
--   hasFoundFile: undefined
--   startPos: 729
--   val: "skinfamilies"
--   qc: (wallworm_qc_struct wwmt:undefined model:"stonel" phys:undefined staticprop:true modelName:"scenery/structural/cemetery/stonel.mdl" shortModelName:"stonel" materialp:"models/scenery/structural/cemetery" surfaceprop:undefined concave:undefined opaque:undefined mostlyopaque:undefined mass:undefined inertia:undefined damping:undefined rotDamping:undefined jointconstrain:false shadowlod:false texgroupname:"skinfamilies" texturegroup:#() bodygroups:#() sc:1.0 lods:#() lodvals:#() seqvals:#(#("$sequence", ""idle"", ""idle"", "loop", "fps", "1")) sequences:#() paths:#("D:\Projects\ProjectVaulderie\SMD\cemetery\stonel\") importedFiles:#("stonel.qc") includesToAdd:#() unclassified:#("$bbox -39.041203 -60.273499 -40.031601 39.041203 60.273499 40.031601", "$hboxset "default"", "$hbox 0 "static_prop" -39.041203 -60.273499 -40.031601 39.041203 60.273499 40.031601"))
--   ld: (qclod val:"25" replacemodels:#() qciincludes:#() replacematerials:#())
--   skipLODS: true
--   bg: undefined
--   theQC: <MixinInterface:memStream>
--   theLine: "$texturegroup skinfamilies {"
--   endPos: 760
--   param: "$texturegroup"
--   fsource: "D:\Projects\ProjectVaulderie\SMD\cemetery\stonel\stonel.qc"
--   texGstr: <MixinInterface:memStream>
--   choicesarray: #()
--   lineArray: #("$texturegroup", "skinfamilies", "{")
--   splitStr: undefined
--   theFlagLine: undefined
--   texLine: undefined
--   newTextures: undefined
--   newld: undefined
--   called in wallworm_parse_qc(); filename: C:\Program Files\Autodesk\3ds Max 2015\scripts\WallWorm.com\importers\Mario_Kart_SMD_Importer.ms; position: 39966; line: 1572
--  Frame:
--   skincount: undefined
--   uniqueNames: false
--   collapseMeshes: true
--   extraSequences: ""
--   extaPath: undefined
--   OLDdfltOutTangentType: undefined
--   staticprop: true
--   deepSearchMaterials: false
--   removeUnweightedBonesFromSkin: false
--   xf: true
--   wwmt: undefined
--   qcistr: undefined
--   autoimportseqs: undefined
--   rotateModel: false
--   rotationAmount: 90
--   scaleMesh: false
--   skipLODS: true
--   physsmd: undefined
--   zeroRotations: true
--   CustomQCFile: undefined
--   mshphy: undefined
--   bgMapNames: undefined
--   fsource: "D:\Projects\ProjectVaulderie\SMD\cemetery\stonel\stonel.qc"
--   scaleSMDs: undefined
--   toScale: undefined
--   newMultiMat: undefined
--   smd: undefined
--   buildMesh: true
--   dfltInTangentType: #step
--   dfltOutTangentType: #step
--   OLDdfltInTangentType: undefined
--   called in runQCImporton(); filename: C:\Program Files\Autodesk\3ds Max 2015\scripts\WallWorm.com\rollouts\SMDImport.ms; position: 10790; line: 268
--  Frame:
--   wwmt: undefined
--   fsource: "D:\Projects\ProjectVaulderie\SMD\cemetery\stonel\stonel.qc"
--   called in fsource loop; filename: C:\Program Files\Autodesk\3ds Max 2015\scripts\WallWorm.com\rollouts\SMDImport.ms; position: 12970; line: 340
--  Frame:
--   wwmt: undefined
--   fsource: "D:\Projects\ProjectVaulderie\SMD\cemetery\stonel\stonel.qc"
--   called in batchImportFromPath.pressed(); filename: C:\Program Files\Autodesk\3ds Max 2015\scripts\WallWorm.com\rollouts\SMDImport.ms; position: 13126; line: 346
--  Frame:
--   mdlqclist: #("D:\Projects\ProjectVaulderie\SMD\cemetery\gate\gate.qc", "D:\Projects\ProjectVaulderie\SMD\cemetery\moswndw\moswndw.qc", "D:\Projects\ProjectVaulderie\SMD\cemetery\obeliska\obeliska.qc", "D:\Projects\ProjectVaulderie\SMD\cemetery\pillar\pillar.qc", "D:\Projects\ProjectVaulderie\SMD\cemetery\pillarb\pillarb.qc", "D:\Projects\ProjectVaulderie\SMD\cemetery\stonea\stonea.qc", "D:\Projects\ProjectVaulderie\SMD\cemetery\stoneb\stoneb.qc", "D:\Projects\ProjectVaulderie\SMD\cemetery\stonec\stonec.qc", "D:\Projects\ProjectVaulderie\SMD\cemetery\stoned\stoned.qc", "D:\Projects\ProjectVaulderie\SMD\cemetery\stonee\stonee.qc", "D:\Projects\ProjectVaulderie\SMD\cemetery\stonef\stonef.qc", "D:\Projects\ProjectVaulderie\SMD\cemetery\stoneg\stoneg.qc", "D:\Projects\ProjectVaulderie\SMD\cemetery\stoneh\stoneh.qc", "D:\Projects\ProjectVaulderie\SMD\cemetery\stonei\stonei.qc", "D:\Projects\ProjectVaulderie\SMD\cemetery\stonej\stonej.qc", "D:\Projects\ProjectVaulderie\SMD\cemetery\stonek\stonek.qc", "D:\Projects\ProjectVaulderie\SMD\cemetery\stonel\stonel.qc", "D:\Projects\ProjectVaulderie\SMD\cemetery\stonem\stonem.qc", "D:\Projects\ProjectVaulderie\SMD\cemetery\stonen\stonen.qc", "D:\Projects\ProjectVaulderie\SMD\cemetery\stoneo\stoneo.qc", ...)
--   p: "D:\Projects\ProjectVaulderie\SMD\cemetery"
>> MAXScript Rollout Handler Exception:
-- Unknown system exception <<


Hopefully the log above proves to be useful, but if any additional information is required, I'm more than happy to assist.

wallworm

#1
A couple things.

I) I just loaded a minor update that fixes the SMD Importer from not loading if you happened to update WW late last night.

2) Can you post the contents of the QC here? In this case, it looks like it was: ...\SMD\cemetery\stonel\stonel.qc

There may be something unexpected in the file.

I have discovered that if the importer runs across an SMD with NaN values (for the Normals in the triangles) it will crash. I will have to catch that somehow... but of course the normal data will be wrong in that case.

atrblizzard

First of all thanks for the prompt reply.

Wasn't aware about the update from yesterday, which I've managed to upgrade to and try the SMD importer once again, details are at the end of the post.

Contents of the for stonel.qc as requested:

// Start of QC script
$modelname "scenery/structural/cemetery/stonel.mdl"

$cd "."
$cdmaterials "models/scenery/structural/cemetery"
$scale 1.0
$cliptotextures

$bbox -39.041203 -60.273499 -40.031601 39.041203 60.273499 40.031601
$cbox  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000
$illumposition 0.000000 -0.000000 0.000000

$model "Body" "stonel"

// 2 LOD(s)
$lod 25 {
replacemodel "stonel.smd" "stonel_lod1"
}

// 1 hit boxset(s)
$hboxset "default"
// 1 hit box(es)
$hbox 0 "static_prop" -39.041203 -60.273499 -40.031601 39.041203 60.273499 40.031601

$staticprop

// 0 shared animation model(s)

// 1 animation sequence(s)
$sequence "idle" "idle" loop fps 1 

// 1 skinfamily
$texturegroup skinfamilies {
{ "stonel.tga"  }
}

// collision model
$renamebone "stonel_phy" "static_prop"

$collisionmodel "stonel_phy_physbox" {
$concave
$mass 50.0
$inertia 1.00
$damping 0.00
$rotdamping 0.00
}


Apparently the same issues show up in the latest version when importing them, version 2.34.

"H:\modelsrc\scenery\structural\cemetery\tomba\\tomba.smd Imported"
"S:\Steam\Steamapps\common\SourceFilmmaker\game\ResurgenceSFM\models\"
"\modelsrc"
"scenery\structural\cemetery\"
"\modelsrc\scenery\structural\cemetery\"
""
"\modelsrc\"
"H:\modelsrc\scenery\structural\cemetery\tomba\"
"\modelsrc\H:\modelsrc\scenery\structural\cemetery\tomba\"
"H:\modelsrc\scenery\structural\cemetery\tomba\\tomba_phy_physbox.smd Imported"
-- Error occurred in wallworm_update_qcobject(); filename: C:\Program Files\Autodesk\3ds Max 2015\scripts\WallWorm.com\importers\Mario_Kart_SMD_Importer.ms; position: 33347; line: 1294
--  Frame:
--   splitStr: undefined
--   qc: (wallworm_qc_struct wwmt:undefined model:"tombb" phys:undefined staticprop:true modelName:"scenery/structural/cemetery/tombb.mdl" shortModelName:"tombb" materialp:"models/scenery/structural/cemetery" surfaceprop:undefined concave:undefined opaque:undefined mostlyopaque:undefined mass:undefined inertia:undefined damping:undefined rotDamping:undefined jointconstrain:false shadowlod:false texgroupname:"skinfamilies" texturegroup:#() bodygroups:#() sc:1.0 lods:#() lodvals:#() seqvals:#(#("$sequence", ""idle"", ""idle"", "loop", "fps", "1")) sequences:#() paths:#("H:\modelsrc\scenery\structural\cemetery\tombb\") importedFiles:#("tombb.qc") includesToAdd:#() unclassified:#("$bbox -94.803703 -83.875305 -86.629204 94.927002 90.623497 93.820602", "$hboxset "default"", "$hbox 0 "static_prop" -94.803703 -83.875305 -86.629204 94.927002 90.623497 93.820602") UpAxis:"z" collapsebones:undefined)
--   skipLODS: false
--   startPos: 937
--   val: "skinfamilies"
--   texGstr: <MixinInterface:memStream>
--   newld: undefined
--   unclassed: #("$ikchain", "$alwayscollapse", "$root", "$poseparameter", "$weightlist", "$definebone", "$hboxset", "$hbox", "$attachment", "$eyeposition", "$bbox", "$proceduralbones")
--   hasFoundFile: undefined
--   theFlagLine: undefined
--   param: "$texturegroup"
--   theQC: <MixinInterface:memStream>
--   theLine: "$texturegroup skinfamilies {"
--   lineArray: #("$texturegroup", "skinfamilies", "{")
--   texLine: undefined
--   newTextures: undefined
--   bg: undefined
--   fsource: "H:\modelsrc\scenery\structural\cemetery\tombb\tombb.qc"
--   ind: undefined
--   choicesarray: #()
--   ld: (qclod val:"90" replacemodels:#() qciincludes:#() replacematerials:#())
--   newbg: undefined
--   endPos: 968
--   str: " tombb.tga  "
--   called in wallworm_parse_qc(); filename: C:\Program Files\Autodesk\3ds Max 2015\scripts\WallWorm.com\importers\Mario_Kart_SMD_Importer.ms; position: 41865; line: 1653
--  Frame:
--   removeUnweightedBonesFromSkin: false
--   deepSearchMaterials: false
--   rotateModel: false
--   dfltOutTangentType: #step
--   scaleSMDs: undefined
--   skipLODS: false
--   dfltInTangentType: #step
--   wwmt: undefined
--   mshphy: undefined
--   toScale: undefined
--   qcistr: undefined
--   xf: true
--   collapseMeshes: true
--   extraSequences: ""
--   CustomQCFile: undefined
--   skincount: undefined
--   smd: undefined
--   YUp: false
--   autoimportseqs: undefined
--   rotationAmount: 90
--   buildMesh: true
--   OLDdfltInTangentType: undefined
--   OLDdfltOutTangentType: undefined
--   fsource: "H:\modelsrc\scenery\structural\cemetery\tombb\tombb.qc"
--   bgMapNames: undefined
--   newMultiMat: undefined
--   zeroRotations: true
--   staticprop: true
--   extaPath: undefined
--   uniqueNames: false
--   scaleMesh: false
--   physsmd: undefined
--   called in runQCImporton(); filename: C:\Program Files\Autodesk\3ds Max 2015\scripts\WallWorm.com\rollouts\SMDImport.ms; position: 11221; line: 271
--  Frame:
--   wwmt: undefined
--   fsource: "H:\modelsrc\scenery\structural\cemetery\tombb\tombb.qc"
--   called in fsource loop; filename: C:\Program Files\Autodesk\3ds Max 2015\scripts\WallWorm.com\rollouts\SMDImport.ms; position: 13421; line: 343
--  Frame:
--   wwmt: undefined
--   fsource: "H:\modelsrc\scenery\structural\cemetery\tombb\tombb.qc"
--   called in batchImportFromPath.pressed(); filename: C:\Program Files\Autodesk\3ds Max 2015\scripts\WallWorm.com\rollouts\SMDImport.ms; position: 13577; line: 349
--  Frame:
--   p: "H:\modelsrc\scenery\structural\cemetery"
--   mdlqclist: #("H:\modelsrc\scenery\structural\cemetery\gate\gate.qc", "H:\modelsrc\scenery\structural\cemetery\moswndw\moswndw.qc", "H:\modelsrc\scenery\structural\cemetery\obeliska\obeliska.qc", "H:\modelsrc\scenery\structural\cemetery\pillar\pillar.qc", "H:\modelsrc\scenery\structural\cemetery\pillarb\pillarb.qc", "H:\modelsrc\scenery\structural\cemetery\stonea\stonea.qc", "H:\modelsrc\scenery\structural\cemetery\stoneb\stoneb.qc", "H:\modelsrc\scenery\structural\cemetery\stonec\stonec.qc", "H:\modelsrc\scenery\structural\cemetery\stoned\stoned.qc", "H:\modelsrc\scenery\structural\cemetery\stonee\stonee.qc", "H:\modelsrc\scenery\structural\cemetery\stonef\stonef.qc", "H:\modelsrc\scenery\structural\cemetery\stoneg\stoneg.qc", "H:\modelsrc\scenery\structural\cemetery\stoneh\stoneh.qc", "H:\modelsrc\scenery\structural\cemetery\stonei\stonei.qc", "H:\modelsrc\scenery\structural\cemetery\stonej\stonej.qc", "H:\modelsrc\scenery\structural\cemetery\stonek\stonek.qc", "H:\modelsrc\scenery\structural\cemetery\stonel\stonel.qc", "H:\modelsrc\scenery\structural\cemetery\stonem\stonem.qc", "H:\modelsrc\scenery\structural\cemetery\stonen\stonen.qc", "H:\modelsrc\scenery\structural\cemetery\stoneo\stoneo.qc", ...)
>> MAXScript Rollout Handler Exception:
-- Unknown system exception <<


And the QC contents for this model:
// Start of QC script
$modelname "scenery/structural/cemetery/tomba.mdl"

$cd "."
$cdmaterials "models/scenery/structural/cemetery"
$scale 1.0
$cliptotextures

$bbox -101.383705 -95.040009 -79.999603 101.383698 95.040009 79.999603
$cbox  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000
$illumposition 0.000000 0.000004 0.000000

$model "Body" "tomba"

// 6 LOD(s)
$lod 20 {
replacemodel "tomba.smd" "tomba_lod1"
}
$lod 40 {
replacemodel "tomba.smd" "tomba_lod2"
}
$lod 60 {
replacemodel "tomba.smd" "tomba_lod3"
}
$lod 80 {
replacemodel "tomba.smd" "tomba_lod4"
}
$lod 90 {
replacemodel "tomba.smd" "tomba_lod5"
}

// 1 hit boxset(s)
$hboxset "default"
// 1 hit box(es)
$hbox 0 "static_prop" -101.383705 -95.040009 -79.999603 101.383698 95.040009 79.999603

$staticprop

// 0 shared animation model(s)

// 1 animation sequence(s)
$sequence "idle" "idle" loop fps 1 

// 1 skinfamily
$texturegroup skinfamilies {
{ "tomba01.tga"  }
}


// collision model
$renamebone "tomba_phy" "static_prop"

$collisionmodel "tomba_phy_physbox" {
$concave
$mass 200.0
$inertia 1.00
$damping 0.00
$rotdamping 0.00
}


wallworm

OK, a couple tests:

1) Can you import these files with the Single QC importer (not batch)?

If not, please try this:

Edit the QC and change:


// 1 skinfamily
$texturegroup skinfamilies {
{ "tomba01.tga"  }
}


to:


// 1 skinfamily
$texturegroup skinfamilies
{
{ "tomba01.tga"  }
}


[EDIT] AND if that fails try:


// 1 skinfamily
$texturegroup skinfamilies
{
{
"tomba01.tga" 
}
}



By the looks of it, this is the  problem. WW isn't expecting the "{" on the same line as the $texturegroup command.

Let me know if changing that in the QC fixes the import. If so, I'll look into updating WW.

atrblizzard

Awesome, that did the trick, thanks! I've originally tried importing these files with the single QC importer and they worked fine without any edits within the QC file. But importing them in random orders (one file at a time) would still result the same issue mentioned above.

A simple grep replace that moves the bracket before skinfamilies down one row fixed the issue. Tried batch importing from several folders and they all worked flawlessly!



SMF spam blocked by CleanTalk