Jump to content

Dual wielding... Engine limitation?


Amessagetoyou

Recommended Posts

Hi everyone :happy:
I really hope at least some of you experienced modders out there will provide insight on this topic.
Searched the whole forum, there wasn't even one :ohdear:

As the title implies, I'm gonna talk about "dual wielding"
Now, most of the mods that claim to have "dual wielding" are either fake, game-breaking or simply impractical.
Almost everytime the reason is explained as "Game engine registers shield only for left hand, it is not for attacking etc." type of stuff.

So, I'm terribly sorry If what I'm gonna suggest is stupid or impossible, but please even if it is, mention it here :biggrin:
STEP 1:

  • OK, the first part of Dual wielding is easy and it is ALREADY done practically successfully by the mod "Unnecessary Violence 2" It is the transferring of weapons to the left hand.

 

  • Optionally "Unnecessary violence also adds the way to change the grip of weapons (From 1 hand to 2 hand and vice versa). This feature was a little buggy on some weapons. For example (changing the grip of "Akaviri Katana" makes its enchantment (of course if there's any :biggrin: ) disappear. It might be this way with other weapons too but I only noticed it with Akaviri Katanas. Generic weapons seems to work fine.

 

  • The even more optional feature added by UV2 was rotating the weapons' grip by 180 degrees. This was completely impractical as what it does is just drastically reducing the range of the weapon.

STEP 2: Animations:
There isn't much to tell on this one BUT few considerations should be made:

  • The left handed attacks should be similar to the right hand one, i.e. regular swings should mimic the right hand one when it comes to their SPEED, RANGE and their ANIMATION itself, so should the power attacks (both standing and directional ones). These 3 attributes mentioned above were all problematic on UV2 especially the range and the speed. Animations MUST have the same speed as the vanilla ones so you can freely swing with either hand you want :cool:

STEP 3: Damage Formula:
The BIGGEST problem for UV2 left handed attacks was this one. There was NO way of using the same weapons on both hands and getting the same damage.
So few considerations need to be made:
As I mentioned the engine limitation case earlier, We have to accept that game CANNOT use left hand for attacks directly. But there IS a workaround of getting the same outcome indirectly:
- As shown in the STEP 1, the transferring of weapons is already done practically successfully.
So we need a script like this:
1) We transfer a weapon, let's say "Silver Longsword" to the left hand
2) A script which calculates the damage "as if" the same attack is made by using a vanilla one, i.e. it calculates what damage that "Silver Longsword" on the left hand could have done if it was transferred back to right hand.
This way we ensure that the damage from the same weapons on different hands do EXACTLY THE SAME damage :happy:
3) The modifiers for power attacks MUST also be taken into consideration, i.e. just as vanilla power attacks done by the left hand would benefit from the same perks (Damage multiplier, Disarm, Knockdown and paralyze) depending on the skill level of the player on a particular weapon (Novice, Apprentice, Journeyman, Expert and finally The Master)

4) The minor stuff that's left is how the left handed attacks increase skill which should be calculated the same way as its right handed counterpart respectively

That's probably it, Please modders, provide your insight, comments and suggestions
and above all THANK YOU guys for taking time to read and hopefully telling your opinion :biggrin:

Edited by Amessagetoyou
Link to comment
Share on other sites

I know this isn't really what u requested but more an suggestion, i'm using these 2 mods (animation replacer and dual wield weapon imports)

 

http://oblivion.nexusmods.com/mods/16459 (attack animation replacers for sword, 2h sword, sword+shield)

http://oblivion.nexusmods.com/mods/33170 (dual wielding weapon imports)

 

The first one simply changes the animations when using sword attacks.

The second one adds dual wielding weapons to random enemy's and as loots, however like i said this isn't completely what u requested. This mod simply adds dual wield weapons as an combination of sword+shield as standalone items (both swords look the same though) but isn't really two swords.

Using these both mods u add dual wielding weapons as new items in the game and using the animation replacer makes the animations of sword+shield attacks look like dual wielding attacks.

 

Again like i said, this isn't what u requested but merely an suggestion. This is my personal favourite of what's coming nearest to good looking dual wielding, in terms of animation and good working.

Edited by SirNibbles
Link to comment
Share on other sites

I know this isn't really what u requested but more an suggestion, i'm using these 2 mods (animation replacer and dual wield weapon imports)

 

http://oblivion.nexusmods.com/mods/16459 (attack animation replacers for sword, 2h sword, sword+shield)

http://oblivion.nexusmods.com/mods/33170 (dual wielding weapon imports)

 

The first one simply changes the animations when using sword attacks.

The second one adds dual wielding weapons to random enemy's and as loots, however like i said this isn't completely what u requested. This mod simply adds dual wield weapons as an combination of sword+shield as standalone items (both swords look the same though) but isn't really two swords.

Using these both mods u add dual wielding weapons as new items in the game and using the animation replacer makes the animations of sword+shield attacks look like dual wielding attacks.

 

Again like i said, this isn't what u requested but merely an suggestion. This is my personal favourite of what's coming nearest to good looking dual wielding, in terms of animation and good working.

Thanks anyway :)

But I'm not looking for dual wielding mod, In fact I looked at every single mod, which mimics/fakes/claims dual wield :)

Unnecessary Violence 2 was the best of them so far.

But the purpose of this topic is different.

I'd like to learn the opinion of a modder about what I wrote above

Link to comment
Share on other sites

You are right, dual wielding is an engine limitation. Theoretically. It would be infeasible to mod the wielding mechanics directly, but you will find that with most engine limitations there are workarounds, circumventions and simulacra. We can give a mod the appearance of being 100% real, we can convince the player that we have successfully made Oblivion our b**ch, but in the end we all have to tiptoe around Oblivion's various quirks and create something that only looks and feels like we have directly modded the game. Almost all engine limitations are not changed; they still exist, but we use indirect means to circumvent them.

 

Dual wielding is an engine limitation, and its terrifying to even think about how to create it. We can create offhand weapons to give the appearance of a weapon in our left hand, but it's still a shield. We can create animations to give the appearance of hitting with our left hand, but the only thing the game cares about is what the player holds in their right hand. After that, everything gets complicated. Prepare yourself for a long answer :mellow:

 

 

As you said in step 1, UV managed to do the impossible (with the help of NifSE I believe) to modify the mesh and turn it into a shield, giving the appearance of a weapon in the left hand. So it's been proven that meshes can switch hands, although their functionality (ie, weapon or "shield") changes also.

 

Step 2 is awkward, since I'm not sure how UV even managed to accomplish separate animations when a secondary weapon is equipped. I've got theories, but this thread is not about that. Keep in mind that certain weapon characteristics are obscure, and hard to replicate exactly on something that isn't even a weapon. I'm not sure how UV managed to create alternate animations that run concurrently with the right hand, unless those alternate animations are not in the "attack group" of engine-recognised animations. Animations, beyond idles, are not a speciality of mine, so maybe it is possible to conditionalise alternative animations within one group.

 

Step 3 depends on how step 2 is handled. If animations are within the "attack group" and are somehow conditionalised to run according to what key is pressed, then the weapon on the right hand would need to have its stats, enchantment and poisons adjusted to match the left hand, since only the right hand counts. If it was done this way then the engine would do all the calculations itself, and attacks on the left hand would work exactly like attacks on the right hand. If you were to look into the menu while attacking with your left hand though, your right hand weapon's stats would be the same as your left, but this could possibly be fixed. If on the other hand, left handed "attacks" did not share an animation group with real attacks, damage done would have to be calculated internally by the mod, and applied to the target in some obscure way, although modders have managed to approximate the complete damage formula very well. Speed and reach would be harder to handle, as I don't think that their effects on attacking are as well documented. The mod description says UV calculates damage internally, so I'm guessing the second method is used. The author will have accomplished all 3 stages of step 3 that you mentioned, but there will likely be a small level of disparity between what the engine calculates and what the author calculates. It may be a matter of your own perception as to whether you are doing more or less damage.

 

Step 4 was probably just overlooked. XP can be given for any skill, although certain mods do change how xp is given for attacks, leading to minor incompatibility.

 

 

Long story short (too late), dual wielding is always going to be an engine limitation. We can create systems that look like dual wielding, we can create systems that feel like dual wielding, but at the end of the day the only way to make them completely accurate is to rely on the game's own mechanics to accomplish it. Then we have NPCs to consider, and how to make them use dual wielding properly :ermm:

So yeah, getting it bang on and making it feel natural at the same time is probably not going to happen. With the help of NifSE, UV has already bent the laws of the universe, but Oblivion yields to no-one ;)

Link to comment
Share on other sites

You are right, dual wielding is an engine limitation. Theoretically. It would be infeasible to mod the wielding mechanics directly, but you will find that with most engine limitations there are workarounds, circumventions and simulacra. We can give a mod the appearance of being 100% real, we can convince the player that we have successfully made Oblivion our b**ch, but in the end we all have to tiptoe around Oblivion's various quirks and create something that only looks and feels like we have directly modded the game. Almost all engine limitations are not changed; they still exist, but we use indirect means to circumvent them.

 

Dual wielding is an engine limitation, and its terrifying to even think about how to create it. We can create offhand weapons to give the appearance of a weapon in our left hand, but it's still a shield. We can create animations to give the appearance of hitting with our left hand, but the only thing the game cares about is what the player holds in their right hand. After that, everything gets complicated. Prepare yourself for a long answer :mellow:

 

 

As you said in step 1, UV managed to do the impossible (with the help of NifSE I believe) to modify the mesh and turn it into a shield, giving the appearance of a weapon in the left hand. So it's been proven that meshes can switch hands, although their functionality (ie, weapon or "shield") changes also.

 

Step 2 is awkward, since I'm not sure how UV even managed to accomplish separate animations when a secondary weapon is equipped. I've got theories, but this thread is not about that. Keep in mind that certain weapon characteristics are obscure, and hard to replicate exactly on something that isn't even a weapon. I'm not sure how UV managed to create alternate animations that run concurrently with the right hand, unless those alternate animations are not in the "attack group" of engine-recognised animations. Animations, beyond idles, are not a speciality of mine, so maybe it is possible to conditionalise alternative animations within one group.

 

Step 3 depends on how step 2 is handled. If animations are within the "attack group" and are somehow conditionalised to run according to what key is pressed, then the weapon on the right hand would need to have its stats, enchantment and poisons adjusted to match the left hand, since only the right hand counts. If it was done this way then the engine would do all the calculations itself, and attacks on the left hand would work exactly like attacks on the right hand. If you were to look into the menu while attacking with your left hand though, your right hand weapon's stats would be the same as your left, but this could possibly be fixed. If on the other hand, left handed "attacks" did not share an animation group with real attacks, damage done would have to be calculated internally by the mod, and applied to the target in some obscure way, although modders have managed to approximate the complete damage formula very well. Speed and reach would be harder to handle, as I don't think that their effects on attacking are as well documented. The mod description says UV calculates damage internally, so I'm guessing the second method is used. The author will have accomplished all 3 stages of step 3 that you mentioned, but there will likely be a small level of disparity between what the engine calculates and what the author calculates. It may be a matter of your own perception as to whether you are doing more or less damage.

 

Step 4 was probably just overlooked. XP can be given for any skill, although certain mods do change how xp is given for attacks, leading to minor incompatibility.

 

 

Long story short (too late), dual wielding is always going to be an engine limitation. We can create systems that look like dual wielding, we can create systems that feel like dual wielding, but at the end of the day the only way to make them completely accurate is to rely on the game's own mechanics to accomplish it. Then we have NPCs to consider, and how to make them use dual wielding properly :ermm:

So yeah, getting it bang on and making it feel natural at the same time is probably not going to happen. With the help of NifSE, UV has already bent the laws of the universe, but Oblivion yields to no-one :wink:

Excellent post :smile:

But I'd like to say that I'm more than aware of "engine limitation, right hand thing" and I agree with the statement below: :biggrin:

"Left hand is not made for attacks"

 

So, I suggest this principle,

There is a certain thing the game engine cannot handle (in our case dual wielding)

So we have to produce the outcome of "dual wielding" WITHOUT actually resorting to dual wielding.

How would we do that?

I got an idea :cool:

 

1) So as I mentioned above the STEP 1 was already done by UV2, but we need a little more tweaking for that one since all UV2 did was to convert it to a shield and nothing else. The script or whatever you wanna call it allow converted weapons to be different from shields and it will be a trigger mechanism for the new animations. Since game does only care about the right hand, this script (or whatever :biggrin:) will be a condition to perform those new animations. Regarding the animations, they are not necessarily LEFT HAND when it comes to what engine thinks of them. They just make you swing your left hand but they are still attacks, but there is a condition that THERE MUST BE A CONVERTED WEAPON IN YOUR HAND. This way you cannot use those new animations WITHOUT having a converted weapon in your left hand.

So, technically the new animations care only about right hand but there is a NEW condition that "You must have THOSE converted weapons in your left hand" otherwise nothing will occur. In the meantime, engine still cares or thinks of it as "Right-handed" while we produce the outcome of the "imaginary" left-handed attacks.

 

 

2) When it comes to damage formula it should be like this:

 

 

The already-converted weapon in your left-hand are reconverted back to right hand (In theory, not actually converted) and obey [The same calculations as VANILLA ATTACKS obey]

 

 

 

3) The same principle would apply for the speed as I mentioned on step 2:

 

The already-converted weapon in your left-hand are reconverted back to right hand (In theory, not actually converted) and obey [The same calculations as VANILLA ATTACK SPEEDS obey]

 

 

 

4) When it comes attack ranges again the same thing BUT with a couple considerations: :happy:

 

The already-converted weapon in your left-hand are reconverted back to right hand (In theory, not actually converted) and obey [The same calculations as VANILLA ATTACK RANGES obey + A LITTLE ADDED STATIC DISTANCE BECAUSE OF LEFT HAND SIDE BEING MORE IN THE FRONT IN COMPARISON TO THE RIGHT HAND SIDE OF A CHARACTER]

 

5) This step is how our new attacks will go along with Blade, Blunt skill perks and damage, power attacks, etc and should be EXACTLY the same as vanilla ones.

 

 

So what do you think of the suggestion I made below?

This is my principle:

We want to get A done which cannot be handled by the engine.

Then we tell the engine to do B BUT produce the outcome of A.

 

Thanks for your attention :smile:

Edited by Amessagetoyou
Link to comment
Share on other sites

So what do you think of the suggestion I made below?

This is my principle:

We want to get A done which cannot be handled by the engine.

Then we tell the engine to do B BUT produce the outcome of A.

 

Thanks for your attention :smile:

That's pretty much what I was trying to say, in many more words. The stats on weapons can be modified in game via script, so I suggested using copy/pasting the stats of the left weapon onto the right hand weapon for the duration of any left handed attacks, as this would allow the game engine to do all the work in calculating damage/speed/reach.

 

As it turns out, doing this would probably not work, since only idle animations can be conditionalised it seems - I looked into animations and found that the attack group cannot even be accessed in the CS. This means that since alternate attack animations cannot be used, the attack button cannot be used for the left hand. Long story short, this means that the right hand cannot be used in place of the left where alternate animations are used.

 

This means that UV probably uses idle animations for left handed attacks. Idle animations in vanilla Ob are things like sweeping, dancing, kneeling (like blades in Sancre Tor), etc. Many mods also use idles for quick set pieces; vampire mods use them to allow neck-biting in combat for example. UV likely uses a custom idle, although as far as the game is concerned the player is merely waving their arm. No damage is done as a result of this animation - it all has to be sorted out by the modder, who would have to work out exactly when the weapon would connect during the animation, exactly how far it would reach, and how much damage it would do.

 

Damage is easy enough - the formula is well documented. Speed and reach, not so much. The modder could approximate them by creating some experimental data, but it may never be exact.

 

So while your suggestions are very good, it can't be done as far as I can tell. It was my first thought too, but I could find no way of doing it. I checked the CS to see if I could conditionalise the attack animations - nada; I checked to see if I could rename the animation files in game so that they would be read and used by the engine in an easy way - nada; I checked to see if I could cut short the right handed attack animation, then quickly play a left handed idle and hope that damage would still happen - nada.

 

Idles are the only way to dual wield it seems. It sounds like UV didn't do a bad job, which is better than nothing I guess.

Link to comment
Share on other sites

 

So what do you think of the suggestion I made below?

This is my principle:

We want to get A done which cannot be handled by the engine.

Then we tell the engine to do B BUT produce the outcome of A.

 

Thanks for your attention :smile:

That's pretty much what I was trying to say, in many more words. The stats on weapons can be modified in game via script, so I suggested using copy/pasting the stats of the left weapon onto the right hand weapon for the duration of any left handed attacks, as this would allow the game engine to do all the work in calculating damage/speed/reach.

 

As it turns out, doing this would probably not work, since only idle animations can be conditionalised it seems - I looked into animations and found that the attack group cannot even be accessed in the CS. This means that since alternate attack animations cannot be used, the attack button cannot be used for the left hand. Long story short, this means that the right hand cannot be used in place of the left where alternate animations are used.

 

This means that UV probably uses idle animations for left handed attacks. Idle animations in vanilla Ob are things like sweeping, dancing, kneeling (like blades in Sancre Tor), etc. Many mods also use idles for quick set pieces; vampire mods use them to allow neck-biting in combat for example. UV likely uses a custom idle, although as far as the game is concerned the player is merely waving their arm. No damage is done as a result of this animation - it all has to be sorted out by the modder, who would have to work out exactly when the weapon would connect during the animation, exactly how far it would reach, and how much damage it would do.

 

Damage is easy enough - the formula is well documented. Speed and reach, not so much. The modder could approximate them by creating some experimental data, but it may never be exact.

 

So while your suggestions are very good, it can't be done as far as I can tell. It was my first thought too, but I could find no way of doing it. I checked the CS to see if I could conditionalise the attack animations - nada; I checked to see if I could rename the animation files in game so that they would be read and used by the engine in an easy way - nada; I checked to see if I could cut short the right handed attack animation, then quickly play a left handed idle and hope that damage would still happen - nada.

 

Idles are the only way to dual wield it seems. It sounds like UV didn't do a bad job, which is better than nothing I guess.

Thanks for your in-depth explanation, it really hits all the points.

Perhaps maybe if more people pays attention to this who knows we would have produced a way of working it out :smile:

Link to comment
Share on other sites

  • Recently Browsing   0 members

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