Jump to content

Blockhead


Symon

Recommended Posts

Version 7 has just been released. This adds customized mesh swapping. Scripted body transformations!

 

I can see I may have to rewrite a chunk of ASX.

What is this ASX you speak of? I have some clue what it might be but no sure... I think I saw somewhere the thread for it...

Link to comment

It's a biggy. SetBody reloaded would be a prime candidate for a radical rework with this.

If that's true, it could easily solve the current performance issue of SetBody Reloaded. We could omit the crapload of OnActorEquip/Unequip event handler..

Link to comment

 

It's a biggy. SetBody reloaded would be a prime candidate for a radical rework with this.

If that's true, it could easily solve the current performance issue of SetBody Reloaded. We could omit the crapload of OnActorEquip/Unequip event handler..

 

Damn you, you mod programmers.  :D

Could you explain the difference because I have no clue why this one is better.  :D

Link to comment

You know Nepro. Bodies in Setbody mod are just clothings. Setbody needs to know when an npc unequip an equipment so it registers an OnActorUnequip event handler. Whenever the event handler is fired, Setbody equips the actor with 'naked' clothing item. To achieve this process we need several tokens, several big ugly arrays, script that should run once every frame, etc.

But with this plugin, we can simply set different 'base body mesh' for different npcs. No background script, just set the body type and forget.

 

Additionally, any potential conflict issues with Break Armor / TamagoSetbody Reloaded should be gone.

Link to comment

Additionally, any potential conflict issues with Break Armor / TamagoSetbody Reloaded should be gone.

 

So basically the Blockhead script is fired only once after the game loads? Instead of arrays that cause lags? I dunno if I understood correctly. Don't worry I may not get the things today. I've been working since last Saturday straight graveyard shifts to which I am not used to and now when finally I got used to they switched my shifts again.

Link to comment

Of course it cannot be done without arrays. At least we need two, one is the list of body mesh path, and one is the list of npcs we're tracking. When the game is loaded, we'll assign the preset body type to each npc on the list. Then we forget about it til we load a save later!

Link to comment

That's a good description by Movomo of how any body transformation system needed to work up till now. Not really transformations but forcing the wear of invisible (in the inventory) clothing when appropriate. Takes a lot of scripting to make it work.

 

Now, do it once and forget about it. In short, instead of faking a transformation with clothes, the game engine really uses different meshes and or textures for an NPC or the player until told to use different, different ones. In game transformations are here.

 

As for ASX, I've given the thread for it a not quite gratuitous bump. It's in Oblivion-General

 

 

Link to comment

Since downloading the latest version of Blockhead on Friday and fiddling with my favourite NPCs, I have uninstalled Setbody (except for the meshes...)  Setbody is no longer needed. Would be nice if someone smarter than me could create spells for Blockhead to assign meshes and textures, but it only takes a minute to do it manually - and the changes are permanent ( changes can be undone, of course...)

 

Blockhead works instantaneaously with no apparent lag or slowdown. Its brilliant. 

 

I am going to convert all my personal custom races today and - if I get some beer and free time later this week - I might try rebuilding MBP using Blockhead.

 

Bashed Patch? How about custom races that need no esp at all?

Link to comment

Garcemac, you do the work and I'll buy the beer, how many cases do you need?  :D

Probably more than I can actually drink all once lol

 

I am going to get more familiar with Blockhead this week by "experimenting" with my own custom races and a few others before I tackle MBP.

Link to comment

Why bother with backward compatibility?  Would it not be faster and much more stable not to?

You're true. I'd love to.

I've taken a quick lookup on the current Setbody Reloaded code. For example there were a few codes to keep compatibility with Sexlivion. Wow, how old it is? :s

 

*Things to be done*

 

- First and foremost we must rebuild the menu array. Gosh, they are so many!

- Delete all the clothing items in the mod. Gosh, they are so many!

- Delete all the junk functions, token system, etc

- Keep old callback functions intact so it will still work with other dependant mods.

- maybe? implement 'SetSkin' feature.

 

Unlike the former Setbody mods, which require hell of scripting, this would be some kind of a spell-based ingame configuration add-on.

Link to comment

My advice would be to start from scratch. That way you can leverage all the recent advances in OBSE. Maybe look at MenuQue for the menus?

 

For example, I needed body part swapping functions for ASX. Tricky, but I was very pleased with the end result. I'm busy tearing it all out now and replacing it with tiny, simple functions, much better. Don't be afraid to discard that which now doesn't work so well.

 

There's much that could be looked at. For example every token should be looked at and the question asked 'is this really needed?' Any use of PickIdle should be replaced with PlayIdle.

 

Oh, have you noticed that the texture swapping module, WORKS with the skins on armour and clothing meshes too? Tattoos and scars end up visible when you wear clothes, not just when nude!

Link to comment

I have a couple of questions then..

 

My advice would be to start from scratch. That way you can leverage all the recent advances in OBSE. Maybe look at MenuQue for the menus?

Mods that require setbody use 'GetFormFromMod' function and should explicitly specify formID of the function. If I rewrite thd mod from empty plugin, would they still work if I change the formID of those functions with Tes4Edit? If so that's easier than modifying the existing one, I guess.

 

So what else mod requires setbody, other than TamagoSetbody? Anybody seen any?

 

For example, I needed body part swapping functions for ASX. Tricky, but I was very pleased with the end result.

 

 

One more.. what do you do to update the actor after calling SetBodyAssetOverride? Haven't tested this yet. I don't want to use Update3D as it resets animations, should find another way. Equipping/unequipping a no-slot clothing would work?

Link to comment
Mods that require setbody use 'GetFormFromMod' function and should explicitly specify formID of the function. If I rewrite thd mod from empty plugin, would they still work if I change the formID of those functions with Tes4Edit?

 

One more.. what do you do to update the actor after calling SetBodyAssetOverride? Haven't tested this yet. I don't want to use Update3D as it resets animations, should find another way. Equipping/unequipping a no-slot clothing would work?

 

It would depend what those mods are calling. (Not really looked at set body). If it's a function, it might be possible to rewrite it to take the same parameters and have the same formid as the current version. Pity Gerra6 is still absent.

 

As to Update3D, it's required and I use it in ASX extensively. You only need to call it once though when you set a mesh or texture override and usually it would be called very early (so to speak), so I'd imagine you ought to be able to arrange it not to disrupt a running animation. (e.g. before any animations start).

 

Link to comment

I'm already done with the basic stuff. I've tested a few bodies and it works. It's promising.

-Deleted all the junk items including tokens. We'll track them using array, no more token. Though we will lose previously set body type informations with this way(as if make a clean save). I can probably resurrect the token system if folks really don't want to lose it.

-Added a function that returns currently set body type for an npc. Needs testing. With this function, some kind of 'Auto Set Cloth' framework should be easier to write. Well, if I use Pluggy this function should become more powerful, but I want to avoid adding even more dependency than already has.

 

I'll upload the beta plugin on the Setbody Reloaded thread once I'm set with the data array. (It's awfully many..)

Then, I shall fix some body meshes that are known to have seams or asymmetry issue, and implement texture swap feature later.

 

By the way I decided to delete 'Setbody by tag' spells, as I have no idea what they do or why they exist. Any thoughts?

Link to comment

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

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

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use