The following warnings occurred:
Warning [2] Undefined array key "extra" - Line: 100 - File: inc/plugins/google_seo/url.php PHP 8.1.28 (Linux)
File Line Function
/inc/plugins/google_seo/url.php 100 errorHandler->error
/inc/plugins/google_seo.php 317 require_once
/inc/class_plugins.php 38 require_once
/inc/init.php 239 pluginSystem->load
/global.php 20 require_once
/printthread.php 16 require_once
Warning [2] Undefined variable $location - Line: 1250 - File: inc/plugins/google_seo/url.php PHP 8.1.28 (Linux)
File Line Function
/inc/plugins/google_seo/url.php 1250 errorHandler->error
/inc/plugins/google_seo/url.php 174 google_seo_url_hook
/inc/plugins/google_seo.php 317 require_once
/inc/class_plugins.php 38 require_once
/inc/init.php 239 pluginSystem->load
/global.php 20 require_once
/printthread.php 16 require_once
Warning [2] Undefined array key "lockoutexpiry" - Line: 94 - File: global.php PHP 8.1.28 (Linux)
File Line Function
/global.php 94 errorHandler->error
/printthread.php 16 require_once
Warning [2] Undefined array key "lockoutexpiry" - Line: 573 - File: global.php PHP 8.1.28 (Linux)
File Line Function
/global.php 573 errorHandler->error
/printthread.php 16 require_once
Warning [2] Undefined variable $can_access_moderationqueue - Line: 752 - File: global.php PHP 8.1.28 (Linux)
File Line Function
/global.php 752 errorHandler->error
/printthread.php 16 require_once
Warning [2] Undefined array key "avatartype" - Line: 892 - File: global.php PHP 8.1.28 (Linux)
File Line Function
/global.php 892 errorHandler->error
/printthread.php 16 require_once
Warning [2] Undefined array key "avatartype" - Line: 892 - File: global.php PHP 8.1.28 (Linux)
File Line Function
/global.php 892 errorHandler->error
/printthread.php 16 require_once
Warning [2] Undefined variable $newpmmsg - Line: 34 - File: global.php(956) : eval()'d code PHP 8.1.28 (Linux)
File Line Function
/global.php(956) : eval()'d code 34 errorHandler->error
/global.php 956 eval
/printthread.php 16 require_once
Warning [2] Undefined variable $messagestyle - Line: 45 - File: global.php(959) : eval()'d code PHP 8.1.28 (Linux)
File Line Function
/global.php(959) : eval()'d code 45 errorHandler->error
/global.php 959 eval
/printthread.php 16 require_once
Warning [2] Undefined variable $boardmessage - Line: 45 - File: global.php(959) : eval()'d code PHP 8.1.28 (Linux)
File Line Function
/global.php(959) : eval()'d code 45 errorHandler->error
/global.php 959 eval
/printthread.php 16 require_once
Warning [2] Undefined array key "style" - Line: 1024 - File: global.php PHP 8.1.28 (Linux)
File Line Function
/global.php 1024 errorHandler->error
/printthread.php 16 require_once
Warning [2] Undefined property: MyLanguage::$lang_select_default - Line: 5342 - File: inc/functions.php PHP 8.1.28 (Linux)
File Line Function
/inc/functions.php 5342 errorHandler->error
/global.php 1024 build_theme_select
/printthread.php 16 require_once
Warning [2] Undefined property: MyLanguage::$bottomlinks_returncontent - Line: 7 - File: global.php(1059) : eval()'d code PHP 8.1.28 (Linux)
File Line Function
/global.php(1059) : eval()'d code 7 errorHandler->error
/global.php 1059 eval
/printthread.php 16 require_once
Warning [2] Undefined array key 1 - Line: 606 - File: inc/plugins/simpleckeditor.php PHP 8.1.28 (Linux)
File Line Function
/inc/plugins/simpleckeditor.php 606 errorHandler->error
/inc/plugins/simpleckeditor.php 517 simpleckeditor_is_allowed
/inc/class_plugins.php 142 setCKeditor
/global.php 1253 pluginSystem->run_hooks
/printthread.php 16 require_once
Warning [2] Undefined array key 1 - Line: 606 - File: inc/plugins/simpleckeditor.php PHP 8.1.28 (Linux)
File Line Function
/inc/plugins/simpleckeditor.php 606 errorHandler->error
/inc/plugins/simpleckeditor.php 233 simpleckeditor_is_allowed
/inc/plugins/simpleckeditor.php 521 simpleckeditor
/inc/class_plugins.php 142 setCKeditor
/global.php 1253 pluginSystem->run_hooks
/printthread.php 16 require_once
Warning [2] Trying to access array offset on value of type null - Line: 833 - File: inc/plugins/google_seo/url.php PHP 8.1.28 (Linux)
File Line Function
/inc/plugins/google_seo/url.php 833 errorHandler->error
/inc/plugins/google_seo/url.php 1381 google_seo_url_cache
/inc/functions.php 6219 google_seo_url_forum
/printthread.php 213 get_forum_link
/printthread.php 67 makeprintablenav
Warning [2] Trying to access array offset on value of type null - Line: 833 - File: inc/plugins/google_seo/url.php PHP 8.1.28 (Linux)
File Line Function
/inc/plugins/google_seo/url.php 833 errorHandler->error
/inc/plugins/google_seo/url.php 1381 google_seo_url_cache
/inc/functions.php 6219 google_seo_url_forum
/printthread.php 213 get_forum_link
/printthread.php 67 makeprintablenav
Warning [2] Undefined array key 71 - Line: 833 - File: inc/plugins/google_seo/url.php PHP 8.1.28 (Linux)
File Line Function
/inc/plugins/google_seo/url.php 833 errorHandler->error
/inc/plugins/google_seo/url.php 1381 google_seo_url_cache
/inc/functions.php 6219 google_seo_url_forum
/printthread.php 213 get_forum_link
/printthread.php 218 makeprintablenav
/printthread.php 67 makeprintablenav
Warning [2] Undefined array key 72 - Line: 833 - File: inc/plugins/google_seo/url.php PHP 8.1.28 (Linux)
File Line Function
/inc/plugins/google_seo/url.php 833 errorHandler->error
/inc/plugins/google_seo/url.php 1381 google_seo_url_cache
/inc/functions.php 6219 google_seo_url_forum
/printthread.php 213 get_forum_link
/printthread.php 218 makeprintablenav
/printthread.php 218 makeprintablenav
/printthread.php 67 makeprintablenav
Warning [2] Undefined array key 4 - Line: 833 - File: inc/plugins/google_seo/url.php PHP 8.1.28 (Linux)
File Line Function
/inc/plugins/google_seo/url.php 833 errorHandler->error
/inc/plugins/google_seo/url.php 1412 google_seo_url_cache
/inc/functions.php 6251 google_seo_url_thread
/printthread.php 124 get_thread_link
Warning [2] Trying to access array offset on value of type null - Line: 833 - File: inc/plugins/google_seo/url.php PHP 8.1.28 (Linux)
File Line Function
/inc/plugins/google_seo/url.php 833 errorHandler->error
/inc/plugins/google_seo/url.php 1412 google_seo_url_cache
/inc/functions.php 6251 google_seo_url_thread
/printthread.php 124 get_thread_link
Warning [2] Undefined array key "showimages" - Line: 160 - File: printthread.php PHP 8.1.28 (Linux)
File Line Function
/printthread.php 160 errorHandler->error
Warning [2] Undefined array key "showvideos" - Line: 165 - File: printthread.php PHP 8.1.28 (Linux)
File Line Function
/printthread.php 165 errorHandler->error
Warning [2] Undefined array key 1 - Line: 833 - File: inc/plugins/google_seo/url.php PHP 8.1.28 (Linux)
File Line Function
/inc/plugins/google_seo/url.php 833 errorHandler->error
/inc/plugins/google_seo/url.php 1347 google_seo_url_cache
/inc/functions.php 6136 google_seo_url_profile
/inc/functions.php 6204 get_profile_link
/printthread.php 177 build_profile_link
Warning [2] Trying to access array offset on value of type null - Line: 833 - File: inc/plugins/google_seo/url.php PHP 8.1.28 (Linux)
File Line Function
/inc/plugins/google_seo/url.php 833 errorHandler->error
/inc/plugins/google_seo/url.php 1347 google_seo_url_cache
/inc/functions.php 6136 google_seo_url_profile
/inc/functions.php 6204 get_profile_link
/printthread.php 177 build_profile_link
Warning [2] Undefined array key "showimages" - Line: 160 - File: printthread.php PHP 8.1.28 (Linux)
File Line Function
/printthread.php 160 errorHandler->error
Warning [2] Undefined array key "showvideos" - Line: 165 - File: printthread.php PHP 8.1.28 (Linux)
File Line Function
/printthread.php 165 errorHandler->error
Warning [2] Undefined array key 550 - Line: 833 - File: inc/plugins/google_seo/url.php PHP 8.1.28 (Linux)
File Line Function
/inc/plugins/google_seo/url.php 833 errorHandler->error
/inc/plugins/google_seo/url.php 1347 google_seo_url_cache
/inc/functions.php 6136 google_seo_url_profile
/inc/functions.php 6204 get_profile_link
/printthread.php 177 build_profile_link
Warning [2] Undefined array key "showimages" - Line: 160 - File: printthread.php PHP 8.1.28 (Linux)
File Line Function
/printthread.php 160 errorHandler->error
Warning [2] Undefined array key "showvideos" - Line: 165 - File: printthread.php PHP 8.1.28 (Linux)
File Line Function
/printthread.php 165 errorHandler->error
Warning [2] Undefined array key 1030 - Line: 833 - File: inc/plugins/google_seo/url.php PHP 8.1.28 (Linux)
File Line Function
/inc/plugins/google_seo/url.php 833 errorHandler->error
/inc/plugins/google_seo/url.php 1347 google_seo_url_cache
/inc/functions.php 6136 google_seo_url_profile
/inc/functions.php 6204 get_profile_link
/printthread.php 177 build_profile_link
Warning [2] Undefined array key "showimages" - Line: 160 - File: printthread.php PHP 8.1.28 (Linux)
File Line Function
/printthread.php 160 errorHandler->error
Warning [2] Undefined array key "showvideos" - Line: 165 - File: printthread.php PHP 8.1.28 (Linux)
File Line Function
/printthread.php 165 errorHandler->error
Warning [2] Undefined array key "showimages" - Line: 160 - File: printthread.php PHP 8.1.28 (Linux)
File Line Function
/printthread.php 160 errorHandler->error
Warning [2] Undefined array key "showvideos" - Line: 165 - File: printthread.php PHP 8.1.28 (Linux)
File Line Function
/printthread.php 165 errorHandler->error
Warning [2] Undefined array key "showimages" - Line: 160 - File: printthread.php PHP 8.1.28 (Linux)
File Line Function
/printthread.php 160 errorHandler->error
Warning [2] Undefined array key "showvideos" - Line: 165 - File: printthread.php PHP 8.1.28 (Linux)
File Line Function
/printthread.php 165 errorHandler->error



Silgrad Tower from the Ashes
Blender collision export help request - Printable Version

+- Silgrad Tower from the Ashes (https://www.silgradmodding.net/forum)
+-- Forum: Modding for Silgrad Tower TES IV (on hold) (https://www.silgradmodding.net/forum/Forum-Modding-for-Silgrad-Tower-TES-IV-on-hold)
+--- Forum: All Categories of Development (https://www.silgradmodding.net/forum/Forum-All-Categories-of-Development)
+---- Forum: Visual Development (https://www.silgradmodding.net/forum/Forum-Visual-Development--72)
+---- Thread: Blender collision export help request (/Thread-Blender-collision-export-help-request)



Blender collision export help request - morcroft - 01-29-2010

I've googled 'til I'm blue and searched the fora, I keep coming back to the same two or three tutorials, and it doesn't work!! I know I'm doing something dumb, but I can't find it! Is anyone in here familiar with collision export in Blender? And have time for a newbie?

Assuming the answer is yes (and if it isn't then you don't want to read the rest of this post) then here's the setup:

I'm using:
Blender 2.49b
NifTools blender_nif_scripts-2.5.1
PyFFI 2.1.2

I'm modelling a bunch of carpenter's tools - mostly simple enough convex shapes, and for the collision I've hulled them with the script as convex poly and exported to nif: works a treat.

Then there's the drawknife - that's the blade on two handles in the pic. It's definitely concave. I started with a convexpoly and that was fine, but obviously it behaved unrealistically. So I've created a trianglemesh like this:

[Image: th_BlenderCollision.jpg]

Exported that to nif, which has a Mopped collision tree and everything - but now it acts like there's no collision, or maybe a very dodgy one.

I've tried small radius, big radius, Ridid Body - nothing seems to make a difference.

Can anyone spot the schoolboy error? It would be much appreciated!


- shewter - 01-30-2010

Hmm, not sure if I can help.So what Tutorial are you following? Is it this one.

http://niftools.sourceforge.net/wiki/Blender/Collision.

Thats the one I pretty much use. If it's something low poly I just duplicate it and follow this tut.Looking at my actor tab I don't even see "Concave Triangle Mesh" Will D/L nif when I get home and have a looksy.And what do you mean behaved unrealistically?


- Koniption - 01-30-2010

Hi there Morcroft,

I don't use Blender, but I know what is going on and what you can do to fix it:

Good collision for havoked/animated objects (are "simple" shapes):

*bhkcapsuleshape (is capsule shaped)
*bhksphereshape (is the sphere shape)
*bhkboxshape (shaped like a box/rectangle)
*bhkconvexshape (can sort of form fit around odd shaped objects, but a mesh with spaces will have the collision fill in those spaces and prevent things from going through those mesh's gaps)

BAD collision for havoked/animated objects:

*bhkPackedNiTriStrip/Shape (bad to use on anything)
*Mopped collision (like the collision above - is form fitting - but better for game performance <bhkMoppBvTreeShape>)

So for your object you're trying to use convex shape on, try using a bhkListShape with bhkTransformShapes under it, that in turn, each have a bhkboxshape under them. Yes, you can use multiple simple collision shapes under the same bhkCollisionObject/bhkRigidBody, by using the above that I just mentioned.

I think three box shapes will do nicely for your tool there, one on each side and one on the middle, horizontal part of your mesh. You can look at certain vanilla weapon nifs to see how it was done (like the great axes).

Sometimes, using this method will cause the item's havok properties to behave weird in the game. But to fix this issue the majority of the time, I use the bhkCollisionObject & bhkRigidBody of said vanilla weapon nif that also uses a bhkListShape (copy and paste into your nif), and I also copy over the NiStringExtraData from that vanilla nif.

You can change the havok material type to "OL_Clutter" in the bhkRigidBody that you just copied over to your new nif, but you don't really have to - both weapons and clutter collision material layer roughly act the same when grabbed/moved and both go into/out of inventory.

I don't know how to export multiple simple shapes from Blender, but I do know of this tutorial:

http://niftools.sourceforge.net/wiki/Blender/Collision

If you look at the pics of the tutorial I linked to, you'll see that it seems like the collision exported with a bhkListShape, with all the simple shapes already under it. You might still need a vanilla nif, though, for getting the bhkRigidBody/etc, because Blender and Max, to the best of my knowledge, still export bhkRigidBodys that lack certain necessary data for certain setups.

I made a ropecoil mesh for Blackmarsh's WIPz Quicksand mod, and used 13 bhkboxshapes under the collision object. I exported it this way from Max. but in game it acted funky. So I copied the vanilla data from an axe nif, then hooked my bhlListShape up to it, and the rope coil behaved excellent in the game.

Koniption


- morcroft - 01-30-2010

@shewter: Yes, that's the best tutorial I've found. The answer's probably even in there - I'm just not seeing it! And I watched a rather good You-Tube one that helped me figure out the basics.

"Unrealistic" as in "invisible force-field between the handles that sweeps things off the table..." Nothing unexpected, just what you'd think would happen when you fit a convex shape to a concave object.

"Concave TriangleMesh" is definitely what my version of Blender's calling a freeform mesh collision object. I'm guessing it's a newer name for the "Static TriangleMesh" referenced in the tutorial - that or there are some other settings I haven't played with yet.

I probably don't totally need that complex a mesh for this simple object, but I'd rather figure it out now than later when I really need it!

@Koniption: I'm deliberately avoiding working out how to fix this in NifSkope, if I can. Those nice people at NifTools are making a Blender plugin - and they're not monkeys so I want to work out how they expect me to use Blender and do it that way to get the best out of the toolset.

That said, you're absolutely right: three boxes, job done. Well, apart from the fact that I tried that earlier and had other problems which I think were about object centres but I'm not sure. I'll try that again too.

Mostly, though, I want to work out how to get the Mopped objects to work so I can use them when I need them.

You've come back to the best tutorial I found on my own - I think it's the only one out there that's really worthwhile.

I'm going to study your post some more in the morning (its 1:30am and I've had a few beers :cheers: )

BTW: Thanks both of you for looking into it: 'preciated.


- Koniption - 01-30-2010

Quote:Originally posted by morcroft
[...] That said, you're absolutely right: three boxes, job done. Well, apart from the fact that I tried that earlier and had other problems which I think were about object centres but I'm not sure. I'll try that again too.

Oh, getting the object center to behave realistically is easy enough if you follow this tip:

In Blender, center the mesh and its collision directly in the center of the three axis(s), even if by "centering", the mesh/collision have to go under the other two axis slightly (X,Y - aka partially negative on the Z axis). Then export all, and in Nifskope, make sure the bhkRigidBody has the "Center" coordinates at all zeroes (it might automatically export from Blender with all zeroes, not sure). This usually works for most object.

Quote:Originally posted by morcroft
Mostly, though, I want to work out how to get the Mopped objects to work so I can use them when I need them.

The game engine does not handle havoked/animated items together with Mopped/bhkPackedNitriStrips on those items real well. I don't know if this is something that Niftools team can fix (though it can't hurt for them to try). Yeah, those collision types will seem to work in the game for such objects, but it does hurt game performance. With animated objects, for instance, Mopped collision has the tendencyy of having people fall through it when the animation starts (like elevators and such).

If you look at vanilla Oblivion nifs, you'll notice that the developers did not use Mopped collision nor bhkPackedNitriStrips/Shapes on animated or even havoked items - they only use simple shapes instead. If an animated nif, has a static part that is not directly animated within the nif, then Mopped collision can be used on that static part..but the animated parts in same nif can't use that type:

Look at the "meshes\dungeons\misc\dreamstairs01.nif", to see such a setup.

Koniption


- morcroft - 01-30-2010

OK, so Mopp is for statics only; and even then it's better to use one of the collision primitives you listed or the bhkconvexshape if necessary.

That's fine, I've played around with those already. The other problems were getting a bhkListShape, and getting the origin right. I found the solution to the first - in the most obvious place! There's a "use bhkListShape" button when you get to the NIFTools export screen. Duh!

The "Center" of the object was way off, though, leading to strange behaviour in-game (object "falls" to an angle off the floor, that kind of thing).

Reset the center of the bhkRigidBody to 0,0,0 in Nifskope: perfect in-game.

I can't seem to get the origin right in Blender. I manually manipulated the objects until their common centre is in the right place - but the exported centre is way off. I can't quite see how the two are related.

So unless someone knows how to move a bunch of objects in Blender so that their common centre is at the right origin for NifTools, I've failed in my goal of avoiding NifSkope. On the other hand, it looks like I just have to edit 3 integers in the bhkRigidBody node, which I think I can live with!

Thanks very much, Koniption. Really couldn't have done it without you.