I think it should be a Dummy type Helper (create->helpers->dummy). A bone could work or a tiny triangle if all else fails (can be set to hidden in the egg file so it won’t render).
The max exporter likes to bake transforms into vertex position, but I do see the transform entry from time to time, not sure when or why (for actors mayhaps?). Thing.getPos(render) is a good way to get a useable position (unless you do something fancy).
Another cool trick is to write down the pos from max on a piece of paper/txt file/clipboard and then reuse it in your code. 1max unit =1 panda unit.
A “Point Object” is in fact a Point Helper (create->helpers->point). It gets exported as a named group with a Matrix4 transform.
A bone gets exported as a joint, but unless you export it as a ‘model’(actor) it has no position or orientation.
Dummies, lines and lights do not get exported… and to my surprise a mesh/polygon with just one vertex gets exported just like a Point helper, but the transform matrix gets the objects’ pivot, not the position/rotation of the lone vertex.
‘Model’ = animated actor (for loading via Actor)
If it’s a model… em, bad word… if it’s a mesh/polygon that’s not rigged with any bones or biped systems, then you should use the ‘static’ export option.
If it is an actor/model - use bones as placeholders.
I understand that CollisionNodes are by default hidden, but I need to visualize the level in the game. Should I get rid of the User Defined Properties? It is unclear to me if those properties which generates a CollisionNode are needed for only Panda3D’s internal physics engine, or if the other physics engines can utilize it (like Bullet).
If it’s only used for Panda3D’s internal physics engine, I’m still a bit curious as how one would show the level mesh properly? I know there is a show() which will show the CollisionNode, but that is for debugging purposes and is likely improper if one wants to put the game in production.
I’m guessing that since there are two worlds we have to maintain: physics and scenegraph, the 3ds max exporter will export the mesh as a collision mesh IF I have specified the user defined properties.
That means I will need two egg files: one that holds the collision mesh (attached to the physics world), and another which will be the visible geom in the game (attached to the scenegraph).
I remember reading about how you can’t mix collision shapes from panda3d’s physics engine with collision shapes from other physics engines like Bullet.
Then, does this mean that defining the user properties in 3ds Max is pointless if I want to use Bullet rather than panda’s built-in physics engine? In other words, is the CollisionNode created not usable in Bullet?
If you want to use Bullet then taging objects in max is pointles.
You can have the visible geometry and the collisions in one file, but you would need to tell Bullet what geoms are for the collisions and hide them so they don’t get rendered. Nothing to gain here, I’d use 2 files…unless you use the same objects for rendering and physics.
Mind that I’ve never used Bullet (my signatures is true, not just a Zappa quote).