max collada plugin feedback

when I wrote d3x9 shader, I meant the material that comes with Max 7 entitled “DirectX 9 Shader”. Currently the collada exporter does not even note that it IS a material of this type, let alone enumerating it’s attributes.

good news about the vertex animation.

Another thing, can you guys export the “User Properties” text field in an <extra> block? The User Properties field is crucial for engine specific hints and structures.

thanks
-john

oh, and what is ColladaFX?

I never realized that ColladaFX was never properly announced. The information is there, if you look carefully enough: http://www.khronos.org/collada/presentations/

Suffice it to say that ColladaFX should fulfill your need for the export of the D3DX9 shader/material.

I`ve just implemented the export of the user properties, without any processing. I assumed the user properties you were interested in are the ones editable in the “Edit->Object Properties->User Defined” text box.

Here’s an example of what should be in one of the future releases:

   <scene id="unnamed_scene" name="unnamed_scene">
      <node id="Box01" name="Box01">
         <translate>4.91908 4.82957 0 </translate>
         <instance url="#Box01-obj"></instance>
         <extra>
            <technique profile="MAX3D">
               <param name="USER_PROPERTIES" type="Name" flow="IN">Testing UD Properties.</param>
            </technique>
         </extra>
      </node>
   </scene>

Sincerely,

Thanks Guillaume,

Thanks for pointing me to ColladaFX. I just downloaded it, but haven’t read it yet.

the properties handling will be perfect for me.

thanks
-john

In the specs for collada it mentions command line support.

“Command-Line Operation
It must be possible to run the full-featured exporter entirely from a command-line interface. This
requirement’s purpose is to preclude exporters that demand user interaction. Of course a helpful
interactive user-interface is still desirable, but interactivity must be optional (as opposed to necessary).”

Is there any documentation for this in max? I’d like to know how and/if I can power this exporter via Maxscript so that we can begin creating a batch exporter for assets and animations into the Unreal Engine. What’s the interface like and what methods are provided via script to access the exporter and setup custom options for batch processing? Where can I find this documentation. The Maya plug-ins MEL interface is seems fairly well documented but we can’t find anything on the Maxscript side.

About Command-Line operation, we are using MAXScript right now for the conformance testing. You can import/export using the typical MAXScript functions, but you cannot yet change export options with it. In the upcoming COLLADA 1.4 version of the plug-in, the export options will be saved, but that’s not in current releases. For the documentation on how to use MAXScript with any importer/exporter, you should refer to the MAXScript compiled help: \3dsmax7\help\maxscript.chm.

Here are a few sample scripts snippets that we are using for the conformance testing:

loadMaxFile "01_ExportOptions\simple_000_TriangleList_00.max" useFileUnit:true quiet:true
outfile_name  = "01_ExportOptions\simple_000_TriangleList_00_E-Max.dae"
exportFile outfile_name #noprompt
resetmaxfile #noprompt

resetmaxfile #noprompt
my_importfilename = "01_ExportOptions\simple_000_TriangleList_00_E-Max.dae"
importFile my_importfilename #noprompt
saveMaxFile "01_ExportOptions\simple_000_TriangleList_00_E-Max_I-Max"

Any plans for supporting morph targets in the max exporter?
Currently a controller is exported but much of consists of just the word “ERROR”.

Hi Muzza,

The export of morph targets seems to work fine on my machine, in 3dsMax 7 (SP1) and with the latest exporter. I’ve attached a zipped file containing a test case, albeit an extremely simple one. If you experience the same export issue with this test case, please email me more information: glaforte@feelingsoftware.com. Please email me, also, if you can export this test case without issues, but your own scene has a similar construct but doesn’t work.

(EDIT) Seems like I lost attachment rights on this forum. Here’s the steps needed to create the simple test case:

  1. Create two spheres, side by side
  2. Add the “Noise” modifier on Sphere01, with Scale=1, Strength=(3,3,3)
  3. Add the “Morpher” modifier on Sphere02.
  4. Click on “Load Multiple Targets…”
  5. In the dialog’s listbox, click on Sphere01.
  6. Enable Autokey
  7. Move the timeline to 100
  8. Set the Sphere01 morph weight to 100.
  9. Export.

Sincerely,

Thanks, I’ve tried your example, but it doesn’t appear to work either.
Please note that I am using Max 8 NOT 7.
I am using v2.07 of the collada max exporter.

The morph data I get is this:


   <library_controllers>
      <controller id="morph-Sphere02-obj">
         <morph source="Sphere02-obj" method="NORMALIZED">
            <source id="morph-targets-Sphere02-obj">
               <Name_array id="morph-targets-Sphere02-obj-array" count="1"> ERROR</Name_array>
               <technique_common>
                  <accessor source="#morph-targets-Sphere02-obj-array" count="1">
                     <param name="TARGET" type="Name"></param>
                  </accessor>
               </technique_common>
            </source>
            <source id="morph-weights-Sphere02-obj">
               <float_array id="morph-weights-Sphere02-obj-array" count="1"> 0</float_array>
               <technique_common>
                  <accessor source="#morph-weights-Sphere02-obj-array" count="1">
                     <param name="WEIGHT" type="float"></param>
                  </accessor>
               </technique_common>
            </source>
            <targets>
               <input semantic="TARGET" source="#morph-targets-Sphere02-obj"></input>
               <input semantic="WEIGHT" source="#morph-weights-Sphere02-obj"></input>
            </targets>
         </morph>
      </controller>
   </library_controllers>

EDIT:
Actually, perhaps this is correct as it stands.
I think I was originally thrown off by the way it outputs ERROR for the names of the morph targets.
However, if the data IS correct, then can you please explain where the actual morph target data is? All I seem to get is the actual original sphere mesh, and then a single ‘weight’ value as seen in the above code.
I was expecting another array of vertex positions and normals.

Thanks

Right, I’ve seen this “ERROR” before. This is a restriction in the 3dsMax exporter that happens in 3dsMax 7 as well as 3dsMax 8: your morph targets must be instantiated. That’s noted by the “green” colored rectangle besides the morph target. If the colored rectangle is blue, your morph target is valid, but not instantiated. If you are getting the “ERROR” token and your morph target is instantiated in the scene graph, please send me a test scene: glaforte@feelingsoftware.com.

When exporting an instantiated morph target, the “ERROR” will be replaced by the ‘id’ of the <geometry> object that fully describes the target.

Sincerely,

The plugin download version 2.07 for Max7.1 is version 2.06!
Also the date in the filename is wrong also for the MAX8 version.

Chris

Ok, I was wrong. Just the readme file state the wrong version.
But I’ve still gut a problem:
I’ve exported a plane with normals, 1 texture with uv channel and vertexcolors.
I got this in the .dae file:

<triangles material=“My_Material” count=“2”>
<input semantic=“VERTEX” source="#Plane01-obj-vertex" offset=“0”></input>
<input semantic=“NORMAL” source="#Plane01-obj-normal" offset=“1”></input>
<input semantic=“COLOR” source="#Plane01-obj-mapchan-0" offset=“2” set=“0”></input>
<input semantic=“TEXCOORD” source="#Plane01-obj-mapchan-0" offset=“3” set=“0”></input>
<input semantic=“TEXCOORD” source="#Plane01-obj-mapchan-1" offset=“4” set=“1”></input>

2 0 0 0 6 0 1 1 1 4 3 2 2 2 7 1 3 3 3 5 3 2 4 4 7 0 1 5 5 4 </p>
</triangles>

so one texture channel is wrong, seems to point to the vertex color channel.
When I reimport the file, the 2nd uv channel has mapping on it.

Chris

Hi Chris,

This is a known issue with the current public version of the 3dsMax COLLADA tools. It has been fixed in the upcoming version, which should be released soon.

Sincerely,

As I was going through and testing the <extra> capabilities of the Max Collada tools I encountered a few problems. I’m using Max 7.1 with the Collada plugins available here.

(1)

  • New scene.
  • Add a cone to the scene.
  • Export to Collada using the default options (“triangles” should not be checked).
  • Reset scene.
  • Import the Collada file you just exported.
  • Notice that the normals on the cone are all messed up.
  • Try to render the scene. Kaboom.

Note that if you check “triangles” under geometry, everything works fine.

(2) If you add some text to the “user defined” properties area of a node, that text will be exported to the Collada file as <extra> data. Sweet. But if I import that Collada model back into Max, the text isn’t imported. Any particular reason?

Thanks,
Steve

Hi Steve,

(1) This is a known issue with the N-sided polygon export option. The N-sided polygon export option should not be used if you want the correct normals or if you are exporting a skinned character.

(2) This is a new issue. I can definitely look at it for an upcoming release of the plug-in.

Sincerely,

Quick bug report:

After upgrading to Max8 SP1, none of my DAE files output any textures!
Is this a known bug?
Any quick fixes?
Don’t want to reinstall Max 8 right now… :slight_smile:

Thanks