Still haven’t been able to get this to work. When I fire a missle at an enemy plane, I want it to destroy it no matter where on the wings it hits. Right now it only destroys it in the exact center.
Someone said to create a mesh cube, and make it invisible, parent it to the plane, and make it a box bounds. When I do that the plane shoots up into space. I’ve tried all kinds of things for the mesh cube.
When you add the mesh cube, make the plane’s bounds Compound, and it should work. Or, use a simple collision mesh with bounds set to Convex Hull (or even the plane, if you can’t deal with it, though complex meshes would really hurt the physics rate).
Here is what I have now, and it sends the plane straight up in the air.
The plane mesh doesn’t have to be a dynamic or rigid body object… does it? It could be a no collision object or a static ghost. Whatever physics or actuators operate the plane can be given to a very low poly mesh which is dynamic or rigid body. It could be box modelled around the plane and might only need to be about 80 vertices. Then a triangle face collision boundary wouldn’t be a problem and would be way better than a convex hull, because a planes got sticky out bits. If missiles from underneath were passing through the “wings” without being detected you’d just make a wing thicker by dragging a few vertices. That could save you from turning your physics checks per frame up, or you might be on max already.
I think SolarLune would agree that a single simple mesh could do the job of nicely wrapping the plane and be low poly enough to be triangle bounded. And be invisible of course and be the “real” rigid body object.
@Equip - Yes, I most certainly do agree that a single mesh can do the job fine. I personally don’t work with multiple collision objects when making objects - I usually just use one single mesh that represents the area.
Yeah, the general Idea behind moving an object is centered around the parenting order. For a human character, for example, it should be:
Mesh > Armature > Collision bounds
The mesh is parented to the armature, but you move and perform code / logic bricks on the collision bounds. For your plane, it probably should be:
Mesh > Collision bounds
Where the complex plane mesh is parented to the collision bounds, and you move / perform collision checks on the bounds.
Could you explain how to go about doing this? Kind of a step by step? I mean I am not so much a beginner anymore on logic blocks, but need a sort of do this first, then this next. Thanks
Okay. Here it comes:
Make the plane mesh a No Collision object.
Parent the plane mesh to the plane collision bounds object.
Make the collision bounds object have the Convex Hull bounds type (under the Bounds button, select the bounds type and select Convex Hull type).
Make the collision bounds object dynamic / rigid body - this will be the ‘actual plane’.
Do whatever game logic you wish on the collision bounds - the plane’s mesh will follow it around perfectly, and you will be able to test the bounds for collision.
That should work fine.
I must have missed a step, the missles are going right through it as if it was a ghost.
and I am just putting it on the wings to test it for now, probably will alter it for the entire plane later.
I just reviewed the whole thread and wasn’t able to find anything useful in it.
Is it the missile thing? If a missile is going fast compared to the size of a target it might never touch it. On one frame be this side, next frame on the other side. Try scaling your missiles in the direction they are travelling. Or have your missiles carry a long invisible object to ensure collision. Or try increasing physics sub steps. If ^ sub steps works you should probably still provide a longer collision mesh and back off substeps if you can.
The missles are pretty slow, All the changes I made for the first plane didn’t help, now it can never be shot. The other ones destroy only if you hit the exact middle of the planes.
Looks like a nifty little game. Um … check that your objects and collision boundaries are sized and scaled to represent what’s going on. Also remember that collision doesn’t necessarily mean automatic rebound or destruction. Your plane/collision mesh or your missiles/collision meshes might be static ghosts. Blender will still register a collision but nothing will appear to happen. Often that’s the way you want it. It’s then up to you to program the response you want.
Ensure that your objects have their scaling applied. Also, perhaps you should just use a Box collision type - that will make the missiles register when they hit any part of the plane (though the empty portion between the wing and the nose tip will also register).
Woo hoo finally seems to be working. I changed the bullet from static to dynamic and now it hits and destroys any part of the plane. Only weird part is, that when the missle gets close, the missle slows to half the speed, like when it gets to the collision bounds part it really slows down. But at least it’s working for the most part for now.
Also I have it where when the missle touches the bounds, it’s linked to the plane to end object.
I’m not sure if that’s a good way to do collisions - it’s probably best if you just sent a message to the plane. As for the slowing down problem, I noticed that when missiles get close in your video, the game slows down a lot - this is most likely because the objects in your game are very small. Try enlarging them, just to see if it helps.