CollisionShapeFactory weirdness

Hello, I’m trying to create a pretty simple world (i’m still a programming nube!), basically taking the HelloCollision tutorial and switching in my own mesh (think a box with the top cut off). However after turning on the collision debug, I find that there is a proper mesh in place, but also a smaller second mesh, and a bunch of random lines.

Can the CollisionShapeFactory not handle concave shapes? Or am I doing somthing wrong?


Alpha-4? Then you can just ignore the lines, its a debug view issue. Should be fixed in nightly since quite a while.

Thanks for the reply! I do have one other problem, I have a cylinder in the world (using the CapsuleCollisionShape, cause I couldn’t figure out what halfextents are for the CylinderCollisionShape). However the collision mesh and the Spatial are in different locations. setLocalTransform and setPysicsLocation doesn’t seem to move it. Is there a way to get these two to line up?

Thanks again.

Probably you generate the collisionshape while the spatial has a localTranslation. This doesn’t happen in nightly either. In alpha-4 simply create the collisionshape with a non-attached and null-translation object.

Hmm, I can’t even seem to get the collision mesh to appear in a new file. I copied the HelloCollision tutorial, and created a second character (called baton) and turned on the debug. However the collision mesh doesn’t seem to have been created.

pre type="php"
public class HelloCollision extends SimpleApplication

  implements ActionListener {

  private Spatial sceneModel;

  private Material white;

  private BulletAppState bulletAppState;

  private RigidBodyControl landscape;

  private CharacterControl player;

  private CharacterControl baton;

  private Vector3f walkDirection = new Vector3f();

  private boolean left = false, right = false, up = false, down = false;

  public static void main(String[] args) {

    HelloCollision app = new HelloCollision();



  public void simpleInitApp() {

    bulletAppState = new BulletAppState();



    white = new Material(assetManager, “Common/MatDefs/Light/Lighting.j3md”);



        white.setFloat(“Shininess”, 5f);

    viewPort.setBackgroundColor(new ColorRGBA(0.7f,0.8f,1f,1f));




    sceneModel = assetManager.loadModel(“Models/landscape.j3o”);


    CollisionShape sceneShape =

      CollisionShapeFactory.createMeshShape((Node) sceneModel);

    landscape = new RigidBodyControl(sceneShape, 0);




    CapsuleCollisionShape batonShape = new CapsuleCollisionShape(1.5f, 6f, 1);

    baton = new CharacterControl(batonShape, 0.05f);


    baton.setPhysicsLocation(new Vector3f(0, 0, 0));

    CapsuleCollisionShape capsuleShape = new CapsuleCollisionShape(1.5f, 6f, 1);

    player = new CharacterControl(capsuleShape, 0.05f);


    player.setPhysicsLocation(new Vector3f(0, 10, -20));







What am I missing?

Spatials. You just have controls hanging in thin air basically.

Thanks for your patience, I found the problem. The object wasn’t centered at 0,0,0 in Maya when I made it. I had assumed that didn’t matter after exporting it with OgreMax. At least I have a little hair left that I haven’t torn out!