Jump to content

Display Case with Destruction Data but no collision troubles


GamerRick

Recommended Posts

I created a static collection mesh from a grocery display counter and some window meshes from the DCInteriors mod. I gave it destruction data, so that if you shoot it, it plays a small explosion and disables the object. It is then replaced with a static version of itself with the glass texture replaced to look broken. This part works fine.

 

When I bump into the counter it starts playing some animation loop, where it starts 4 feet up and then falls about 8 feet. It does this until it crashes the game. I have spent hours trying to get the thing to act like a static object and not react to collision.

 

  1. Setting its mass to a huge number like 500000
  2. Trying other settings in the bhkRigidBody node that look possible
  3. Creating the object as a Movable Static or an Activator (the only two that accept the Destruction Data)
  4. Putting a collision box around the entire thing.
  5. Playing with and recreating the bhkCollisionObject in NifSkope (like editing the vertices of the bhkConvexVerticesShape manually)
  6. Turning off collision in the BSXFlags node and/or removing all collision nodes (it becomes static and the collision box works, but it no longer responds to the gun shots)

This doesn't happen with various other objects I have made, including one from the grocery cube mesh. It's only the ones made from the grocerydisplaycounter01.nif or with the grocerydisplaycounterhalfL01.nif/grocerydisplaycounterhalfR01.nif meshes and the two end caps.

 

I can't find what is different with those meshes than the ones create from the grocerydisplaycountercube01.nif mesh.

 

Here is the NIF file.

 

Thanks for any help.

Link to comment
Share on other sites

The tensors are already 0, but setting the mass to 0 worked for that mesh!

 

I have another display counter mesh that I did weeks ago and thought was working fine, but I didn't try to collide with it to see what would happen. I tried the mass=0 setting on it hours ago with no success. But I tested it just now that the newer ones are working, and it works. The only thing that makes sense is that I must have loaded a save back then that had it already in there, even though I could have sworn otherwise. I have no other clue why it works now, unless my taking a shower has something to do with it. :sleep:

 

I still need the collision boxes to keep some of the items in the glass case from being take able. It seems that some objects have havoc that extends why beyond their visible forms, like armors and the Chinese sword. Like for this piece of raider armor, I get the grab icon when I move the cursor a foot or two to the tight of it, which is a good foot beyond the right edge of the case. The broken cases work fine (letting the player grab at will from it, because the collision for them only covers the counter part.

 

Well, I figured it would be you that had the answer. I was at wits end, and can now feel my wit slowly recuperating, Thanks.

 

EDIT: The tensors and mass are not 0 on the cube shaped case and yet it doesn't respond to collision and has no collision box on it. :confused:

Edited by GamerRick
Link to comment
Share on other sites

Destruction Data & Damage states are baked into save games (which can cause bloat save if too much are used).

 

"Extended" collision can appear when the object has been resized/moved via transform into NifSkope but the transformation has not been applied. Or if the Collision object is much larger than the mesh.

 

I'm heading home now, where my Modding compy is, I'll study your mesh and let you know what I've found when I get back.

Link to comment
Share on other sites

Apart from the Mass not set to 0, several factors might make your mesh move as if it was possessed:

- The Motion System in the bhkRigidBody should be set to MO_SYS_FIXED for a Static.
- the NiStringExtraData UPB having a string Data "Unyielding = 0 ". Either remove it or set it to 1 (to be experimented)

Also, but not related to the moving issue, the Radius in the bhkConvexVerticesShape should be of a value of 0.100, always.

I've sent you a PM with some notes.

Link to comment
Share on other sites

Thanks.

 

I took the mesh of the DLC4ShackCabinet10DoorSingle to make my own glass cabinet door with a wood frame. It is really small. So I used Transform -> Scale vertices to make it 1.5 larger on all axes. The collision didn't get scaled with it. It is a bhkBoxShape, and I manually adjusted the Dimensions until it looked right on NifSkope. However, in the GECK, the colored lines it shows when the object is selected still look really small. I restarted the GECK to make sure it was using my latest settings in that NIF.

 

I did the same thing to the officeshelfwoodcomp128b2.nif to make the shelf smaller (on the X-axis) and wider (on the y-axis), but again the collision didn't adjust. This one is a bhkConvexVerticesShape, and I manually adjusted its vertices until it looked right.

 

Is there a way to get NifSkope to adjust the collision too?

 

Thanks!

Edited by GamerRick
Link to comment
Share on other sites

When using Scale vertices to transform, there's one more step to do: select the NiTriStripsData of the node you've transformed, RClick, update Center/Radius. Otherwise the game will still cull the object at its older size.

 

Scaling Collisions can be tricky. If you want to scale a complete collision, the bhkCollisionObject has to be converted into bhkCollisionObjectT (select, RClick, convert) then used its Transform settings.

 

Some collisions can be adjusted that way in combination with changing the dimension of the box, like you did.

Other times building a new one or creating a convex one is a better option. (Procedure described in the notes sent)

Link to comment
Share on other sites

I did and don't see the center or radius change at all afterwards. I noticed that my ability to select the object in the GECK render window depends on the collision as I move the mouse cursor over it. It does seem accurate when the cursor is over the object and then leaves it.

 

I tried following your guide for creating collision, but I get to "Go to the existing Collision & right click on its bhkRigidBody & select - Block - Paste Over." and there is no such option "Paste Over".

 

Thanks!

Edited by GamerRick
Link to comment
Share on other sites

I assume you refer to the last point of "Creating convex collision in NifSkope"
I've never used this manipulation myself, it is straight copy/pasted from an explanation I received.

"Paste over" means copying an element in one instance and pasting it directly over the existing similar element in the other instance by Rclick. Context menu is not involved.

In opposition With "Paste" or "Paste Branch", which require to access the context menu.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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