New to Everything

Hello, i am new to Panda3D but have tried things out in the Manual. I have been reading you forums for quite a while now but couldn’t seem to find the answer to my problem. I’ve had the same problem as ice_rock… it concern about changing the map of Roaming Ralph, somehow i have managed to change the map But ralph couldn’t walk on the said terrain. There must be something that im missing. Im using blender btw.

Hope to Find an Answer.

The Roaming Ralph code specifically checks for collision with a node called “terrain”. You have to be sure to name your new collision terrain correctly.


You could edit Roaming Ralph, take out the DirectStart import, run() call and World() instantiation, import it by your other file, and instantiate its World() class there.

Unless you mean to open another Panda session with Roaming Ralph running in it, while closing the current (like ice_rock wanted to do)? If that’s the case, use the subprocess module to open a new Python process (with the path to the Roaming Ralph script as argument) and then call sys.exit() to terminate the current application.

Also, don’t forget that the map that the Roaming Ralph tutorial loads is used both as the rendered mesh and the collision mesh. This is done by setting the tag of Collide with “polyset keep descend”. You can set this up on your own level by going under Blender, the Logic Properties button tab (F4 I believe) and adding a string property called Collide with that text.

Note that this is not the most optimal way to set up large scale levels.

Now i didn’t get what mr. Pro-rsoft just said, I got confused.

But FenrirWolf, I somehow managed to do exactly what he said, adding a string property and named it Collide. But i get an error message that says about “**//start_point”, i tried removing the line that looks for the start point of ralph,. It did work, but Ralph couldn’t run… He rans on his place, but not exploring.

Sorry for the bAd English.

The start_point is an empty node that is used to position Ralph in the scene.

I don’t have the Roaming Ralph code open before me, but if I recall, he shoots a ray down from his head down towards his feet in order to find the terrain. You need to make sure that Ralph is being created at a spot that is over the terrain. Otherwise, I could see him not colliding with the terrain and then being stuck in one spot.

Mr. FenrirWolf, can you give me certain instructions from creating the empty space, down to LOgic(f4), then to adding the property. I might be missing something. Perhaps a video tutorial would be best. Please. it’s an accomplishment to my part if i do make ralph walk on a new terrain.

Thank you so much FenrirWolf

Sorry, I would love to see more video tutorials for Panda, but my nose is mostly against the grindstone of a different wheel right now.

It would be easier for you to distill your problem down into the absolute smallest terms and then post the Egg on here. Or you can post your .blend file to Pipeline and ask for help on what is wrong there.

OMG, this is very disappointing :frowning:

ok thanks.

if the startpos is your only problem. you dont need to use tags in the egg file. you can set the startpos manualy using code. you might need to experiment a bit with the values till you get the position right. but it avoids the problem of tagging empites in the egg file.

Off the top of my head, it works like this:

  1. Create mesh in Blender and UV map it.
  2. Assign a string property of ‘Collide’ with ‘Polyset keep descend’ under the Logic panel.
  3. Export mesh to .egg using chicken. (Making sure to select all of the objects in the blender file.)
  4. Upon loading into Panda using loader.loadModel, you should have a node that contains a CollisionNode with a bunch of solids under it.

I suggest the section of the manual entitled ‘Egg Syntax’. It explains what the flags that set in an Egg file, and you can check your exported Egg to verify that those match. Then compare that to the Egg file used for the Roaming Ralph sample.