16 posts / 0 new
Last post
qwertyasdfgh
qwertyasdfgh's picture
Moderator
Offline
Last seen: 4 months 3 weeks ago
Joined: 12/15/2011 - 05:50
Karma: 1820
[WIP] Fixing collision for statics

Bad collision is one of the long-standing issues for Morroblivion. Hashmi fixed a lot of meshes in his Collision Redone mod, but there's still more (a lot more, in fact).

Probably about 70% of Morroblivion meshes still use collision from nif converter, which is uncompressed bhkNiTriStripsShape and is VERY BAD. In addition to that some of the settings at bhkRigidBody block are incorrect.

For statics this collision should be replaced with MOPP shapes and in some cases made more precise. The reasons for that are:

  • Performance. I'm betting collision is responsible for 2\3 of performance issues with Morroblivion.
  • In some interiors there are Havoked items on shelves very close to walls. When collision on the wall is imprecise like it is now, such items clip into it and then end up moving in strange positions or falling outside the cell altogether.
  • Havok materials. This is what defines footsteps and weapon sounds and whether or not arrows will stick in object or bounce off. Not the biggest issue, but still.

Unfortunately, collision must be fixed manually, one model at a time (or at least I don't know of any automated utility which could help). PyFFI can convert collision to MOPP shapes, but it makes things even worse in some cases.

We are talking about thousands of models here (hundreds if we reduce it to only the most essential ones).

I have written a tutorial on it.

Model sets, which still need fixing are listed below.

AttachmentSize
File Vivec Exteriors2.6 MB
Edited by: qwertyasdfgh on 07/03/2014 - 11:03
Brainslasher
Brainslasher's picture
Contributor
Offline
Last seen: 4 months 1 week ago
Joined: 05/19/2013 - 11:46
Karma: 718
I know how to create convex,

I know how to create convex, box and sphere shaped collisions in Blender using the Hull script and assigning Havok Materials to them. I can also create collisions using the exact mesh measurements which is probably very bad for performance, but sometimes reducing poly counts on these collisions helps. I haven't really created any unique collisions from scratch though. I would be willing to help with this but I can't say for sure how fast and how many models I can do in my time. Also, is there a list of very bad or already fixed models?

And the performance gain in the Manor district is immense, good job.

qwertyasdfgh
qwertyasdfgh's picture
Moderator
Offline
Last seen: 4 months 3 weeks ago
Joined: 12/15/2011 - 05:50
Karma: 1820
Hashmi's Collision Redone

Hashmi's Collision Redone uses exact collision. Ironically, exact collisions in MOPP shapes would've been better than current ones - simplified in geometry, but unoptimized in nif format.

And in most cases you don't need to create collision from scratch. There could be several variants:

  1. Easy. You can use already exisiting collision shape. All you need to do in Blender is make several tweaks and re-export the model.
  2. Moderate. This is when collision needs to be more precise for reasons I described in the first post. Here you can mix and match existing collision shape with parts derived from full-detail model.
  3. Complicated. Could be any of the above, but when model needs multiple Havok materials, i.e. parts are wood and parts metal. This can't be done solely in Blender and requires some NifSkope magic.

Hashmi has already done flora, Hlaalu, Redoran and Telvanni exterior sets and rocks (except Solstheim ones) and ingredients. This means that almost everything in 'morro\f' and 'morro\i' folders as well as part of 'morro\x' folder is still not done. Lots of things to choose from, as you can see :)

Personally I think it would be better to start from models used in neutral areas rather than dungeons, because player generally visits them more often.

If you're interested you can choose a small group of meshes to start, like, for example "Redoran furniture" - everything waht starts with 'furnUredoran...' in 'morro\f' folder. I'll try to get a small tutorial out this weekend to better explain what needs to be done.

Brainslasher
Brainslasher's picture
Contributor
Offline
Last seen: 4 months 1 week ago
Joined: 05/19/2013 - 11:46
Karma: 718
Which tweaks do I have to

Which tweaks do I have to make in Blender to use the existing collision object? I assume it's also about changing the properties and object types?

And how do I see if a model has "bad collisions"? Are those usually the collision objects classified as "bhkNiTriStripsShape"?

grumpycat
grumpycat's picture
Moderator
Offline
Last seen: 20 hours 2 min ago
Joined: 12/08/2012 - 06:41
Karma: 3383
Make sure you have a chat

Make sure you have a chat with Ormin. He has a deep understanding of Oblivion collisions and works with tools around it.

rekom23
rekom23's picture
Member
Offline
Last seen: 3 years 6 months ago
Joined: 02/08/2014 - 13:54
Karma: 51
Would it be accessible for a

Would it be accessible for a total noob (in moding scene)?

I really enjoy this mod and i have time at the moment, so i'm willing to help.

 

roxon_55
roxon_55's picture
Contributor
Offline
Last seen: 1 hour 1 min ago
Joined: 04/24/2010 - 22:03
Karma: 1788
http://youtube.be/ODISCCudxCY

https://www.youtube.com/watch?v=ODlSCCudxCY

This running on 3.16gig Celeron,,4gig Mem,,1gig Video,,1 Terra byte Drive with 89gig used on Drive..

First part is without New Meshes Game Runs 14--20 Frames.

Second part is With New Meshes Game Runs 25 Frames Constant.

EnvyDeveloper
EnvyDeveloper's picture
Member
Offline
Last seen: 6 days 17 hours ago
Joined: 05/02/2011 - 05:00
Karma: 501
Another thing I noticed - I

Another thing I noticed - I love Oblivion's material system which changes the footsteps sounds to match the material of the static. I tried it in Morroblivion and the Vivec cantons don't have that stone sound (only some grass sounds). Neither do a lot of statics.

qwertyasdfgh
qwertyasdfgh's picture
Moderator
Offline
Last seen: 4 months 3 weeks ago
Joined: 12/15/2011 - 05:50
Karma: 1820
Which tweaks do I have to

Which tweaks do I have to make in Blender to use the existing collision object? I assume it's also about changing the properties and object types?

You'll need to temporarily change collision mesh into a regular one, then make sure it's normals are aligned properly and change it back. If that didn't make sense, wait for the tutorial, I'll post it soon.

And how do I see if a model has "bad collisions"? Are those usually the collision objects classified as "bhkNiTriStripsShape"?

Yep.

Make sure you have a chat with Ormin. He has a deep understanding of Oblivion collisions and works with tools around it.

Thanks, I'll do that.

Would it be accessible for a total noob (in moding scene)?

Yes, I will try to write a tutorial that way.

First part is without New Meshes Game Runs 14--20 Frames.

Second part is With New Meshes Game Runs 25 Frames Constant.

I guess it's working then :)

Another thing I noticed - I love Oblivion's material system which changes the footsteps sounds to match the material of the static. I tried it in Morroblivion and the Vivec cantons don't have that stone sound (only some grass sounds). Neither do a lot of statics.

Yes, this is mentioned in the first post.

rekom23
rekom23's picture
Member
Offline
Last seen: 3 years 6 months ago
Joined: 02/08/2014 - 13:54
Karma: 51
Just to be sure, i copy .7zip

Just to be sure, i copy .7zip in the mod folder and use Wyre Bash to install?

qwertyasdfgh
qwertyasdfgh's picture
Moderator
Offline
Last seen: 4 months 3 weeks ago
Joined: 12/15/2011 - 05:50
Karma: 1820
Yes.

Yes.

qwertyasdfgh
qwertyasdfgh's picture
Moderator
Offline
Last seen: 4 months 3 weeks ago
Joined: 12/15/2011 - 05:50
Karma: 1820
I have posted a tutorial,

I have posted a tutorial, which covers the 'easy' variant of fixing collision.

qwertyasdfgh
qwertyasdfgh's picture
Moderator
Offline
Last seen: 4 months 3 weeks ago
Joined: 12/15/2011 - 05:50
Karma: 1820
Added optimized Vivec

Added optimized Vivec exteriors + a list of exterior tilesets.

zilav
zilav's picture
Contributor
Offline
Last seen: 4 months 1 week ago
Joined: 11/26/2012 - 12:51
Karma: 1338
By the way new NifScope can

By the way new NifScope can display compressed collisions in Oblivion too, and supports loading of textures from BSA archives amongst many other improvements

https://github.com/niftools/nifskope/releases

qwertyasdfgh
qwertyasdfgh's picture
Moderator
Offline
Last seen: 4 months 3 weeks ago
Joined: 12/15/2011 - 05:50
Karma: 1820
Thanks, didn't know there was

Thanks, didn't know there was an update.

Puddles
Puddles's picture
Member
Offline
Last seen: 1 week 6 days ago
Joined: 11/17/2016 - 14:09
Karma: 166
I'm going to start working on

I'm going to start working on these in my spare time. I'll start with the exteriors first I guess, since FPS is a bigger issue outdoors it seems.