Converting Assets to COLLADA
Use this script to "fix" the asset in 3ds max.
Converts the NeLMaterial into a StandardMaterial
so that the exporter can make sense of it.
fn fix_texture_file_name t = ( if t == undefined then return "unknown.png" return "c:/database/textures/" + (getFilenameFile (filenameFromPath t)) + ".png" ) fn find_nel_bitmap_texture t = ( -- we should log the textures we skip here if (t.bitmap1FileName != "") then return t.bitmap1FileName if (t.bitmap2FileName != "") then return t.bitmap2FileName if (t.bitmap3FileName != "") then return t.bitmap3FileName if (t.bitmap4FileName != "") then return t.bitmap4FileName if (t.bitmap5FileName != "") then return t.bitmap5FileName if (t.bitmap6FileName != "") then return t.bitmap6FileName if (t.bitmap7FileName != "") then return t.bitmap7FileName if (t.bitmap8FileName != "") then return t.bitmap8FileName return "unknown.png" ) fn fix_bitmap_texture t = ( local bt if classof t == NelBitmapTexture then ( bt = BitmapTexture() bt.filename = find_nel_bitmap_texture t bt.filename = fix_texture_file_name bt.filename return bt ) else if classof t == BitmapTexture then ( t.filename = fix_texture_file_name t.filename ) return t ) fn fix_material t = ( local m local i if classof t == NelMaterial then ( m = StandardMaterial() m.twoSided = t.bTwoSided m.ambient = t.cAmbient m.diffuse = t.cDiffuse m.opacity = t.pOpacity m.specular = t.cSpecular m.specularLevel = t.pSpecularLevel m.glossiness = t.pGlossiness m.selfIllumColor = t.cSelfIllumColor m.selfIllumAmount = t.pSelfIllumAmount m.useSelfIllumColor = t.bUseSelfIllumColor -- if t.bAlphaTest then print "alpha-test" m.diffuseMap = fix_bitmap_texture t.tTexture_1 m.specularMap = fix_bitmap_texture t.tTexture_2 return m ) else if classof t == MultiMaterial then ( for i = 1 to t.count do ( t[i] = fix_material t[i] ) return t ) return t ) fn kill_nel_mats = ( local g, m for g in geometry do ( g.material = fix_material g.material ) ) fn fix_asset = ( unfreeze geometry kill_nel_mats() actionMan.executeAction 0 "40021" -- Selection: Select All actionMan.executeAction 0 "311" -- Tools: Zoom Extents All Selected actionMan.executeAction 0 "63508" -- Views: Standard Display with Maps actionMan.executeAction 0 "40043" -- Selection: Select None ) fix_asset()
For batch conversion, just loop through the max files and use
exportFile "foo.dae" using:OpenCOLLADAExporter