Jump to content

3ds max collisions for Non-Statics issue (falls through floor)


Polyfemus

Recommended Posts

I've spent hours trying to figure it out. I've looked online but I haven't found a solution that works for me. It's possible that maybe my nif export settings in 3ds max is incorrect or something I don't know.

 

The collisions I create for my custom meshes simply do not work. Either the object floats in the air and behaves like a static object or they fall down through the floor!

 

I first tried to make the bhkColProxy with the Packed Strips Shape property. When I inspected the .nif in nifskope I noticed it had no Havok material data thus it behaved like an imovable static. Then I started experimenting with the other bhkColProxy bounding volume properties. I've tried Axis Alligned Box, Strips Shape, Convex Shape in seperate trials. In each trial I inspected the .nif in nifskope to see if there is a Havok material data and there is! However when I run a Havok simulation either in the GECK or in-game the object falls through the floor.

 

I've experimented with various other settings like mass number, Rigid Body layer, but it still phases through the floor.

 

It seems like with 3ds max the only way to have a moveable object collision for my objects is to use an existing collision data from vanilla assets. Otherwise my custom static collisions work no problem.

 

But there's gotta be a way right? Any replies would be greatly appreciated.

Link to comment
Share on other sites

Non-statics usually (if not always) use bhkConvexVerticesShape collision geometry. I've never seen bhkColProxy used by any object type, and it's possible the game's Havok engine doesn't support it.

 

I assume this is the collision object 3ds Max created when you exported the model? I don't use 3ds Max, so I can't say which settings you need to use. If you'd like to try doing it with Blender, I can be of more help.

Link to comment
Share on other sites

I've made some pictures to illustrate my situation. But just to clear things the bhkColProxy isn't the collision geometry. It's object used by the 3ds max Nif plugin to create the collision geometry. Here I've made a picture to show here's the link:

http://i.imgur.com/WBAiMyU.png

 

As the first picture shows all the bhkCollProxy settings I've tried seems to give me either a collision that makes the object float in the air (interacts like a pickupable static object, cannot pass through the object), or makes the object fall right through the floor.

 

So I've then tried to use a vanilla mesh's collision geometry for my gingerbread man model. However I can't get that to work. Here's a picture to illustrate (ignore the capsule collision geometry of my custom model):

http://i.imgur.com/72VWKOP.png

 

As the picture shows when I try to use the collision data of an existing vanilla object (in this case a generic book) when I try to use the .nif in the GECK or even try to view it with the GECK object preview it crashes. I might have a theory for why this happens? When I import my NiTriStrips data of my custom model to the vanilla model, the gingerbread man goes beyond the collision mesh bounds. As this picture shows:

http://i.imgur.com/D0IHuH6.png

 

Could this be what is making it crash? Is the solution then simply for me to reduce the size of my model to fit the collision bounds?

Link to comment
Share on other sites

 

 

Could this be what is making it crash? Is the solution then simply for me to reduce the size of my model to fit the collision bounds?

No. The collision object geometry can be of any size you want and doesn't have to "encapsulate" the geometry of all the other objects nested in its parent node.

I'm guessing it crashes because the NiTriStrips branch you pasted in the vanilla object has a block ID that is referencing a non-existent string index. Double-click in the Value column of the NiTriStrips and try changing the value to 3, then see if it still crashes.

Link to comment
Share on other sites

I admit when I first read your comment I didn't know what you were talking about. However what you said made some sense so I started comparing the string values in my .nif with the string values in the vanilla .nif. And then I changed a particular value and now it works!

 

In my particular case in my NiMaterialProperty under my NiTriStrips there was a numerical value listed as BookGeneric01 [11] while in the vanilla .nif the same value is -1. So I just changed my number to the same value as the vanilla then it worked! Here I've made a pictoral guide of what I'm talking about.

 

http://i.imgur.com/Ab51wml.png

 

http://i.imgur.com/WPK5XyS.png

 

I hope this helps someone else down the line.

 

But I still have one last question. It seems the only solution that works for me is to use the collision mesh of an existing vanila object. Could I customize the shape of this vanilla collision mesh in my 3d modelling program by manipulating the vertices of the collision geometry, then export that .nif with the tweaked collision geometry and then use this NiTriStrips block copy+paste strategy to get a better collision mesh?

Link to comment
Share on other sites

 

 

Could I customize the shape of this vanilla collision mesh in my 3d modelling program by manipulating the vertices of the collision geometry, then export that .nif with the tweaked collision geometry and then use this NiTriStrips block copy+paste strategy to get a better collision mesh?

Yes, you can.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...