Are external effects possible?

I’m using COLLADA 1.4 Tools version 2.08 to export and import my models in max because ColladaMax 1.05 wouldn’t load in max 8 sp3 for some reason.

Anyways… I’m wondering if external references to effects are allowed or if it’s just this version of importer/exporter which doesn’t work properly.

This is what I did. I drew a box and textured it and saved as a .max and a .dae. I reset max and then xreferenced an object in the original max file. It comes in no problem. I then exported that as a second .dae with relative paths.

I then opened the second .dae in a text editor and noticed that although the mesh was external, the effects for the textures on it were not. So I copied the part of the url which mattered from the geometry and then pasted it in the material library portion:

   <library_materials> 
      <material id="Tire" name="Tire"> 
         <instance_effect url="./tire%20box.dae#Tire-fx"></instance_effect> 
      </material> 
      <material id="Tire2" name="Tire"> 
         <instance_effect url="./tire%20box.dae#Tire2-fx"></instance_effect> 
      </material> 
   </library_materials>

I saved that and then tried importing it back into max and I got this error:

Error: Externally referenced effects are not supported. Material: Tire
Error: Externally referenced effects are not supported. Material: Tire2
Warning: Unable to retrieve ‘Geometry’ instance for scene node: Box01

Is that just the plugin not supporting it or did I do something wrong?

What you are doing is fine. It’s actually what we want to see more people doing. Unfortunately not all tools (actually most of them) aren’t up to par on their implementations supporting external references. I think Maya currently has the best support for this.

Also some tools may be picky about what they can externalize. Maybe instead of just externalizing the effects try and externalize the effects and materials (put in the same document). Then when you do <instance_material> in <instance_geometry><bind_material> you can put the external reference as the target attribute.

-Andy

Ah okay then. I tried what you said but the importer that I currently have installed doesn’t import xref’d collada files, it just puts a max dummy object in its place which is fairly useless to see if it works. Until the importer is beefed up or I find another one (I’m waiting for colladaMax 1.06) then I can’t do much.