Jump to content

Underwater air pockets...


phinix

Recommended Posts

I have searched for some time for the answer to this however a lot of the information is outdated or not specific.

 

Basically I want to have a water plane (similar to how Build Your Own Pool works) but be able to create an "air pocket" at a certain depth. For example, say I wanted to have an underwater room where you could walk around like in a submarine. Or be able to swim through a pipe and come out into a normal space.

 

I was hoping there would be a way to create specific dimension water volumes. Like a certain width, length, AND depth.

 

My other thought was some sort of collision plane or occlusion culling trick.

 

If you look in the CK under Miscellaneous -> Collision Layer, you can create a new object and add type L_WATER. I don't know if my understanding of this is correct but would this allow creating an area inside a water volume where the player wouldn't swim or drown?

 

It doesn't even matter if the water continues below the air pocket. I can work around that. So if there is a way to create an occlusion plane that blocks ALL water under an area, that would work too.

 

Any ideas/suggestions would be greatly appreciated!

 

EDIT: Not a solution but just a random discovery. If you open the water plane .NIF in NifSkope and expand the NiNode tree until you find BSMultiBoundNode -> BSMultiBound -> and then click on BSMultiBoundOBB, if you set the Z value for Size to any negative number, the water will show but it will have no effect at any height (you pass through it like air without swimming).

 

I guess this might be useful for a cosmetic-only settlement feature where you wanted a pool on a roof. But it obviously isn't a functional solution.

Link to comment
Share on other sites

I don't know why it happens, there you have an air pocket in vanilla fallout 4, you'll need find out what circumstances produce it, but even if it is taking advantage from a bug, its possible.

 

yeUHA8.jpg

Link to comment
Share on other sites

I was hoping there would be a way to create specific dimension water volumes. Like a certain width, length, AND depth.

 

My other thought was some sort of collision plane or occlusion culling trick.

 

If you look in the CK under Miscellaneous -> Collision Layer, you can create a new object and add type L_WATER. I don't know if my understanding of this is correct but would this allow creating an area inside a water volume where the player wouldn't swim or drown?

 

There was a post about this years ago and I think someone mentioned the 'BSMultiBoundOBB', as if changing its size (Z-axis) changes the water depth as well.

Link to comment
Share on other sites

@LarannKiar - Sadly that was one of the first things I tried and it appears to have zero effect. I looked at the water plane in question in NifSkope next to some of the game's water meshes, specifically looking for differences between types. Pretty much all the game waters use 0,0,0 for Center and X, Y, 0 for size in BSMultiBoundOBB. The exception was TroughBathWater.nif, which uses -3.948433, 2.125265, 27.988432 for center and 65.033737, 25.203144, 0.000002 for size. I tried many combinations of these on my water... I tried first setting size Z to the height I wanted. Then I tried using the tiny 0.000002 value from TroughBathWater.nif thinking maybe there was some range beyond which the game calculates infinite height. Still no change.

 

I actually used setpos z on the plane in-game to set the z value incredibly high, to see if there was some conceivable limit as some have suggested below which players could "fall out" of the water column. I got as high as setpos z 999000 and was still swimming when I walked through the area below it.

 

My only hope now is if there is some way to set up a collision plane that will occlude the behaviors of water below it, but I am unsure atm how to set up a test for that theory. Kind of hoping someone has another idea.

 

@DieFeM - It might be worth checking out if it is reliable there between saves. If so it may lend credence to my occlusion plane theory and the game is somehow using a collision plane there with L_WATER enabled that actually turns off water behaviors where it clips into those coordinates. Or it could be something completely different!

 

Kind of hoping someone with more experience can shed some light if I am even on the right track with this thinking.

Link to comment
Share on other sites

Not a solution but just a random discovery. If you open the water plane .NIF in NifSkope and expand the NiNode tree until you find BSMultiBoundNode -> BSMultiBound -> and then click on BSMultiBoundOBB, if you set the Z value for Size to any negative number, the water will show but it will have no effect at any height (you pass through it like air without swimming).

 

I guess this might be useful for a cosmetic-only settlement feature where you wanted a pool on a roof. But it obviously isn't a functional solution.

Link to comment
Share on other sites

It is beginning to look like the Fallout 4 version of Creation Engine simply does not read the variables from the .NIF file that define the vertical depth for water planes.

 

As previously mentioned, all built-in Fallout 4 water planes the game uses have the BSMultiBoundNode -> BSMultiBound -> BSMultiBoundOBB in the .NIF file that defines the XYZ size of the swim-able area created by water planes, however the engine appears to ignore the Z value completely making the depth infinite at any positive value, and non-existent at any negative value for Z. So a simple on/off ignoring the depth parameter completely.

 

In Skyrim they seemed to update this to use some new nodes. In every Skyrim water plane .NIF, there is a bhkSPCollisionObject -> bhkSimpleShapePhantom -> bkhTransformShape -> bhkBoxShape that defines the XYZ parameters of the invisible swim-able area created by water planes. However, Fallout 4 does not recognize these node types and will simply show a missing mesh error in-game.

 

I am still testing to see whether there might be some other .NIF values that could potentially apply to Fallout 4 water. None of the built-in Creation Kit collision primitives are coded to block water as far as I can tell, and relate instead to how water behaves when things like bullets hit it or stuff falls in (generate splashes, change speeds, etc.).

 

It is beginning to look like the engine doesn't support the .NIF format values for defining water plane generated volumes. I don't know if this is a limitation of the version of Havok it uses or just that the engine was never coded to read this value.

Link to comment
Share on other sites

Interesting. I would love to dig into that and see if I can learn what they did. Is this a private mod though? I checked and user "Robboten" on Nexus doesn't have any mods posted related to this, and I am not finding anything related to Cliff's Edge Hotel water on Google.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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