Problem with finding grouped elements in Egg files

Hello,
I have two different egg files from which I am trying to print the name of the component on which the character Ralph is standing. This is similar to the Roaming Ralph example where Ralph moves only if he is standing on the “terrain” component of the world.egg file.

I am able to receive the component name in the first egg file (generated from Maya) by the following code:
for i in range(self.groundHandler.getNumEntries()):
entry = self.groundHandler.getEntry(i)
print entry

The output I receive is :

CollisionEntry:
from render/Ralph/ralphRay
into render/road.egg/-PandaNode/-PandaNode/road1 []
at -22.1978 -6.88054 -2.5079
normal 0 0 1
respect_prev_transform = 0

Here road1 is the component on which Ralph is standing.

However, for the second file(generated from 3d Studio Max), the only output I receive for all components is:
CollisionEntry:
from render/Ralph/ralphRay
into render/sceneReducedWholeExport_v1.egg/devVersion_least_exportScene/-GeomNode []
at -10.3188 -18.5233 -2.28275
normal 0 0 1
respect_prev_transform = 0

where I get “GeomNode” for all the components on which Ralph is walking.
I have prepared a group called “road” which is present in the egg file and was expecting to see “road” instead of GeomNode.

Is there a problem with the egg file? I have used the 3d studio max exporter for creating the egg file in which I am facing problems. The first egg file is converted from Maya.
Please give your feedback on what I might be doing wrong.

Thank you & Regards,
Dev.

use

nodepath.ls() 

to get better view of your model.

egg loader mashes stuff stuff if it has no special flag.
You can set

"egg-flatten 0 " 

to stop this behavior globally in your prc file or use the

"<Model> { 1 }" 

on the node you want to keep.

see for more info: discourse.panda3d.org/viewtopic.php … eggflatten

Thank u for replying to my query Treeform. I tried using " { 1 }" in the egg file but there is no change in the result. I have checked the egg file and there is a group “road” present in it.
Also, I tried using Nodepath.ls but am getting the following error:
NameError: global name ‘nodepath’ is not defined
I guess I am not implementing it correctly.

Also, I tried another egg file converted from Maya just to check and that too does not display the components. So I guess its a problem not related only to 3d Studio Max.

Please advise on what I need to do next to get the components displayed.

Thanks and regards,
Dev.

You need to call the .ls() function on the object where your model is stored, actually.
For example, if you loaded your model into “self.myModel”, you would do:

self.myModel.ls()

Hi,
Thanks pro-rsoft for replying. I tried using myModel.ls() and the following appears:

++++++++++++++++++++++
ModelRoot sceneReducedWholeEx
port_v2.egg T:(pos 0 0 -2.5)
Character devVersion_least_exportScene
GeomNode (20 geoms: TextureAttrib TransparencyAttrib)
+++++++++++++++++++++++

I am still trying to display the name of the objects on which Ralph is standing from the egg file Dont know what to do :frowning:
Please advise.

Regards,
Dev.

You must have exported your file from Max as an animated character. Be sure you choose the correct options to export as a static mesh instead. There’s a big difference in the way Panda loads the two.

David

Hello David,
I have exported the mesh as a static mesh from 3d Studio max.

Regards,
Dev.

Do you mean to say, you have changed the way you were exporting it, and now you are correctly exporting as a static mesh and everything is working correctly? Or are you rather saying that you have been exporting as a static mesh all along and that my diagnosis is incorrect?

Let me point out this line in your above output:

This is a Character node, which is only created when you load an egg file that was exported as an animated character.

Open your egg file with a text editor. Look for a line of the form:

If you see such a line, or really any line with in it, then the egg file represents an animated character. (“Dart” is the egg keyword that represents an animated character.) If you don’t know why that’s there or how to make the Max plugin not put it there, you might simply delete it in your text editor.

David

BRAVO!!! :smiley:
Great David…Thank u soooo much. I have no idea what that DART was doing there. I was exporting it as a static mesh right from the start but the character concept u explained was not known to me.

This is what I was dying to see:
++++++++++++++++++++++++++++++++
CollisionEntry:
from render/Ralph/ralphRay
into render/sceneReducedWholeExport_v2.egg/devVersion_least_exportScene/-PandaNode/road []
at 0 -33.4511 -1.90584
normal 0 0 1
respect_prev_transform = 0

++++++++++++++++++++++++++++++++

Thank u very much.

Regards,
Devang.