Repairing the Cogs of Morrowind No. 17

Post » Mon Mar 08, 2010 9:08 am

Sneak toggle seems to be working as expected. Thank you for this one! Life for thieves just became much easier =)

Say Hrnchamd, it seems you are uncovering more and more about the inner workings of morrowind engine. Is there still lots of space for additions? how much space in the .exe does it currently occupy (extra code that is)? Also what is next on your plate? Maybe I shan't ask, you are always so full of surprises that I really shouldn't. Also what is your current status? Bug reports ok? Suggestions for added functions ok?

I can hardly imagine (well I've actually tried myself at one time) to understand how to work like this with code and you have my deepest respect oh you binary(assembly?) wizard =)
User avatar
Horror- Puppe
 
Posts: 3376
Joined: Fri Apr 13, 2007 11:09 am

Post » Mon Mar 08, 2010 10:01 pm

Thanks to the MCP I now really want to play a stealthy archer using self-enchanted arrows. :D
User avatar
Jade Muggeridge
 
Posts: 3439
Joined: Mon Nov 20, 2006 6:51 pm

Post » Mon Mar 08, 2010 8:00 pm

There's about 128 bytes free space left, enough for two or three bug fixes.

Createmaps fix still needs testing, it should catch all exterior cells and end properly but someone must test with TR. There's still inventory bugs which I'm having a hard time finding, and may be mod-related.
User avatar
Everardo Montano
 
Posts: 3373
Joined: Mon Dec 03, 2007 4:23 am

Post » Mon Mar 08, 2010 11:27 pm

Any possibility of doing anything with bones for Axel with that 128b? It would make him ecstatic!
User avatar
Joey Avelar
 
Posts: 3370
Joined: Sat Aug 11, 2007 11:11 am

Post » Mon Mar 08, 2010 10:59 am

I don't have any real animation data to test with, and I did ask. Renaming bones isn't enough, if you want twist bones I have to test it with the animation pose mixer. Anything could explode at any moment.
User avatar
Erich Lendermon
 
Posts: 3322
Joined: Sat Nov 03, 2007 4:20 pm

Post » Mon Mar 08, 2010 7:34 pm

I'll try and give Axel a nudge. He's been off the radar a bit. RL I presume.
User avatar
Matt Gammond
 
Posts: 3410
Joined: Mon Jul 02, 2007 2:38 pm

Post » Mon Mar 08, 2010 11:12 am

I seem to have found an interesting issue with PCSkipEquip that causes the last item picked up to stick in the inventory, even after it's removed by script. It would probably only occur when using torch equip, teleport ring or similar mods. Looks like that's the source of the bug anyway, I have to confirm with people who reported it.
User avatar
Nadia Nad
 
Posts: 3391
Joined: Thu Aug 31, 2006 3:17 pm

Post » Mon Mar 08, 2010 10:50 pm

I am here, and I was here. I have no problems with twist bones: they are working fine, at least some of them (exported from Max thigh twist bones are not working f, but NifTools as well as CivIV original nif exporter create an odd skeleton hierarchy in this case that might be not supported by the game engine – I have never seen such skeleton structures in any NetImmerse/Gamebryo games).
My request was “simple”: is it possible to remove bone names check for NPCs/PCs? In order to test that any bone (e.g. “Bip01 Spine2” to “MyBone”) can be renamed to something arbitrary. This should be done in all three animation files (.nif, x.nif, x.kf) that are attached to a specific NPC in the TESCS. Of cause this bone renaming should be done also in all meshes containing nifs (e.g. custom race) that will be used with these “new” animations. All job can be done solely in NifScope in few minutes. I can do that and PP you the files (I have only nvde variant of BB that I cannot be posted here and it is not reasonable to add clothes, etc. for these tests).
I have also offered to do that: my words - “I can rename them in NiFScope to the names suggested by you.”. You were silent and I concluded not that interested in this problem.
IMHO that (bone renaming) is “enough”; otherwise I do not understand what kind of “real animation data” should be prepared. Unfortunately, I have no idea what kind of “animation pose mixer” you are talking about. I would be happy to send you any test animation files in case I have clear instructions what they should be

Another request I have posted was the “fixing” of PlayGroop/LoopGroop functions for NPCs. There is no need of any special animation – just try to script with these functions any original one e.g. Idle9 or use dancing girls animations.

I am NOT the only one how is interested in the solutions. Yes, animations are not textures and less popular: everybody are using them in the game but few are modding them.

:)
User avatar
Alexis Acevedo
 
Posts: 3330
Joined: Sat Oct 27, 2007 8:58 pm

Post » Mon Mar 08, 2010 4:29 pm

Wow, only about 128 bytes left in the EXE for you to play around with? I suppose that means the Morrowind Code Patch is almost perfect, then :)

Obviously I don't know about how your process works, or how you're able to edit the binary in a meaningful way and keep your sanity (you must have pages upon pages of notes), but I'm guessing it isn't possible to just allocate more space at the end of the file or else you wouldn't have said how much was "left." If you do track down those last few bugs and the Code Patch becomes "finished," well, it's been fun watching from the sidelines!


Looking forward to trying out the new beta version. Toggle sneak by fixing the problem at its source? Yes please!
User avatar
Lew.p
 
Posts: 3430
Joined: Thu Jun 07, 2007 5:31 pm

Post » Mon Mar 08, 2010 12:26 pm

Yes, action! Please send me some animation files by a real animator ;) so I don't miss anything. The animation pose mixer is where the spell ready or bow aiming animation is played on top of the normal upper body animations, and (maybe) also causes playgroup to only affect certain parts. If the mixer behaves wrong, then extra bones may or may not sync with the correct animation. At least I know the aiming pose code directly affects the spine bones, could be other places where the same happens.
User avatar
Samantha hulme
 
Posts: 3373
Joined: Wed Jun 21, 2006 4:22 pm

Post » Mon Mar 08, 2010 10:40 pm

I am NOT the only one how is interested in the solutions.


You definitely aren't, twist bones would be a godsend.
Though I think this should interest modellers a lot too, if it means they can reduce distortions on their skinned models.

The animation pose mixer is why I doubted the bone name check could be plainly removed, instead of extended. Is this the case then?
User avatar
Love iz not
 
Posts: 3377
Joined: Sat Aug 25, 2007 8:55 pm

Post » Mon Mar 08, 2010 5:30 pm

I am not “real animator” but a hobbyist and a bad one.
So, “animation pose mixer” is a “part” of the MW game engine (and I was thinking about “Motion mixer” that is a part of CS in 3ds Max).

Here is a plan: I am creating a small plugin (dancing NPC of a “new” BB race in Seyda Neen, original dancing file with renamed bones (“Bip01 Spine2” to “MyBone”); no scripts at this moment) and post that here.

I am on it.

:)
User avatar
Roberta Obrien
 
Posts: 3499
Joined: Tue Oct 23, 2007 1:43 pm

Post » Tue Mar 09, 2010 1:35 am

Here it is:

https://www.yousendit.com/download/OHo2QmtkNEhqV0R2Wmc9PQ

I have renamed “Bip01 Spine2” to “MyBone” and “Bip01 R Thigh” to “Bip01 R MyThigh”.
I do not observe CTDs, but animations are odd. Interestingly when only “Bip01 Spine2” was renamed and she was playing only Idle9 (AI package Wander all 0 but Idle9 100) her animations were nearly correct (some strange head rotations, this original animation is odd by itself and, probably, not the best choice). But when she switched to other animations e.g. walking (I changed AI settings) – girls’ head starts to rotate.
With renamed “Bip01 R Thigh” all animations are bad.

Extract the zip in your MW “Data Files” directory, the girl is in Seyda Neen.

:)
User avatar
Cody Banks
 
Posts: 3393
Joined: Thu Nov 22, 2007 9:30 am

Post » Mon Mar 08, 2010 5:15 pm

I am not “real animator” but a hobbyist and a bad one.

You're a damned good animator, Axel, and I don't want to hear you deny it. :P

New bones would be nice; that way more of the body could be animated and lead to new animations.
User avatar
Schel[Anne]FTL
 
Posts: 3384
Joined: Thu Nov 16, 2006 6:53 pm

Post » Mon Mar 08, 2010 9:08 pm

That was very helpful, it only happens if you exclusively use touch spells. The data I was relying doesn't get updated when you do that, so I have to find another way.

Glad I could help :)

BTW, sneak toggle works for me too: I forgot it was on and my lvl 1 char got killed after accidentally pickpocketing a guard :facepalm: :laugh:
User avatar
Emma
 
Posts: 3287
Joined: Mon Aug 28, 2006 12:51 am

Post » Tue Mar 09, 2010 12:10 am

Createmaps fix still needs testing, it should catch all exterior cells and end properly but someone must test with TR. There's still inventory bugs which I'm having a hard time finding, and may be mod-related.


Createmaps fix?
User avatar
Jennifer Munroe
 
Posts: 3411
Joined: Sun Aug 26, 2007 12:57 am

Post » Mon Mar 08, 2010 9:42 pm

Jac, I am not an animator-artist like RX31, Mr. Cellophane, Raflod, Dirnae, Arcimaestro…I know some animation techniques and tools, can polish mocaps, make primitive animated poses. But long animations from the scratch, that’s too much for me.

Though I think this should interest modellers a lot too


I am not sure: for “local” (NPC) projects, maybe. Mesh reskinng is required.

:)
User avatar
Marlo Stanfield
 
Posts: 3432
Joined: Wed May 16, 2007 11:00 pm

Post » Mon Mar 08, 2010 5:25 pm

I have renamed “Bip01 Spine2” to “MyBone” and “Bip01 R Thigh” to “Bip01 R MyThigh”.
I do not observe CTDs, but animations are odd. Interestingly when only “Bip01 Spine2” was renamed and she was playing only Idle9 (AI package Wander all 0 but Idle9 100) her animations were nearly correct (some strange head rotations, this original animation is odd by itself and, probably, not the best choice). But when she switched to other animations e.g. walking (I changed AI settings) – girls’ head starts to rotate.

She has a serious case of Exorcist-head. It's not a good example of test data, because those bones are part of the skeleton already. You shouldn't want to affect existing bones because it breaks things. Making good data that tests everything is an art as well, you should think of as many things as you can that an animator would change. I can only suggest adding extra bones to the skeleton, maybe an extra pair of arms (perhaps also with clavices) attached to the spine somewhere.

While I was testing I found one way to exploit the playgroup command so it plays on upper body parts; if you walk up to someone and they do their hello voice-over and turn to face you, then you can use playgroup to play animations on the whole body. You have to wait until the current idle animation finishes, then it works. Looping animations seem to reset to default pose for one frame in between loops, some animations look glitchy.
User avatar
Anthony Rand
 
Posts: 3439
Joined: Wed May 09, 2007 5:02 am

Post » Mon Mar 08, 2010 11:13 pm

Jac, I am not an animator-artist like RX31, Mr. Cellophane, Raflod, Dirnae, Arcimaestro…I know some animation techniques and tools, can polish mocaps, make primitive animated poses. But long animations from the scratch, that’s too much for me.


Stop being modest. :hehe:
You're a great animator, I have the utmost respect for you, and without your animation thread I would have never tackled MW animation.

I am not sure: for “local” (NPC) projects, maybe. Mesh reskinng is required.

:)


But isn't that what twist bones are for, skinning? Sorry, I'm not sure what else they'd be used for.
I'd prefer meshes to use twist bones if we have them, but we'd have to make sure the animations can use them first.
The limitations with animating certain movements, because it would cause a nasty deformation, are off putting, I'd really like smooth mesh movements.

Thigh twist bones are less important imo, so if they don't work I'd just leave them. A twist bone at the shoulder and on the forearm would be great if possible.
Also optional bone additions, like ponytail bones (for hair), perhaps bones for capes too, and more finger and toe bones too would be great, though I'm grateful for any additions.
Thanks Hrnchamd and Axel! :thumbsup:
User avatar
Robert Jackson
 
Posts: 3385
Joined: Tue Nov 20, 2007 12:39 am

Post » Tue Mar 09, 2010 2:09 am

For my on hold WIP I have a complete set of base animations with forearm twist bones and one extra briast bone (renamed with “valid” MW bone names –fingers). That works in my tests. I will see what I can prepare from that for your testing. I have other files somewhere on my HD, I need time to find them.
I have also realized that the posted files (renaming original bones) were not good for such tests. The second pair of arms requires new meshes that I do not have at the moment. My assumption was that if to remove the “check” for valid bone names the attached to an NPC (mesh with renamed bones) animation that contained renamed bones would be displayed correctly. In original MW that does not work (e.g. with renamed thigh bone). I was not talking about the switch to original animations that contain original(different) bone names, this switch should definitely creates a mess.

While I was testing I found one way to exploit the playgroup command so it plays on upper body parts; if you walk up to someone and they do their hello voice-over and turn to face you, then you can use playgroup to play animations on the whole body. You have to wait until the current idle animation finishes, then it works. Looping animations seem to reset to default pose for one frame in between loops, some animations look glitchy.


I wish I could understand that. Yes, game engine introduces some secondary animations (e.g. head rotations in the direction of close standing actors (PC, other NPC, creature). I have no idea how to deal with them, in some cases these animations significantly interfere with the execution of the desired animation sequence.
Looping. Are you talking about loop text keys, or looping script function (LoopGroup), or about game engine looping? Do you think that it might be possible to fix that with correct scripts? I tried to “reset” animations by introducing AIWander Idle call without any success. I am not a scripting expert and cannot exclude that I did scripting not in an optimal way.

Dirnae. He-he, you are right bones are for skinning. Interesting that in case of twist bones a mesh should be skinned for the twist bone and the “original” bone is not used for skinning at all, it only drives not-twist rotations of the child twist bone.

What if to set you awesome Minotaur (that is a good example of a really artistic animation from the scratch) as an NPC/new race for these “bone” tests? Could you do that? Head, probably, should be separated in a new nif.

Thigh twist bones are less important imo


I cannot agree with that: hip joint has naturally a lot of rotation freedom and definitely requires twist bones (I tested that in Max – improvement was very noticeable).

Importance of twist bones in order (IMHO):

1. Forearms (wrists).
2. Hips.
3. Shoulders.
4. Ankles (feet).

FYI Oblivion skeleton has forearm and shoulders twist bones.

:)
User avatar
ONLY ME!!!!
 
Posts: 3479
Joined: Tue Aug 28, 2007 12:16 pm

Post » Mon Mar 08, 2010 9:28 pm

I wish I could understand that. Yes, game engine introduces some secondary animations (e.g. head rotations in the direction of close standing actors (PC, other NPC, creature). I have no idea how to deal with them, in some cases these animations significantly interfere with the execution of the desired animation sequence.
Looping. Are you talking about loop text keys, or looping script function (LoopGroup), or about game engine looping? Do you think that it might be possible to fix that with correct scripts? I tried to “reset” animations by introducing AIWander Idle call without any success. I am not a scripting expert and cannot exclude that I did scripting not in an optimal way.

If you walk close to an NPC and she speaks anything like ''Yes, outlander...?' you can open the console, click on her and use PlayGroup and the upper body and head animation will play properly (if you wait a bit). PlayGroup and LoopGroup are the same function, except PlayGroup loops forever; the engine is not great at looping smoothly if you look at all the animations.

Edit: You could also try on an NPC (must be idle already)

aiwander 0 0 0 0 0 0 0 0 0 0 0 0playgroup walkforward2c

You must wait for the current idle animation to finish (up to 15 seconds) before it works.
User avatar
adame
 
Posts: 3454
Joined: Wed Aug 29, 2007 2:57 am

Post » Mon Mar 08, 2010 12:53 pm

So a temporary CS fix would be to make a new greeting with a new silent "greeting" sound and then run a script to force-greet based on certain conditions when you want a specific animation to play. And then run "playgroup". hmm.
User avatar
JR Cash
 
Posts: 3441
Joined: Tue Oct 02, 2007 12:59 pm

Post » Mon Mar 08, 2010 12:18 pm

Here is another test (some sort of cheerleader animation):
https://www.yousendit.com/download/OHo3NnFPZDU1aVpjR0E9PQ

There two sets of files: with MW valid bone names and with one bone renamed to invalid “Bip01 briastBone” (the later four files have suffix “_r”). The plugin is set with the first set: when animations switch to originals twist bones (these bones are correctly named in both sets, there are also several not animated extra bones, just ignore them, they are “leftover” from the model I used as a template) are not animated and the mesh is distorted. But when cheerleader animation is active there is no distortion (this animation is not for twist bone testing but it contains them).
When I switched to the set with “_r” (just delete the suffix) the briast bone animations were simply ignored by the game engine. Interestingly, in MW creatures this is not happening. There should be a flag specific for NPC to ignore such bones.

I tried in the past to reset animations with “AIWander 0 0 0 0 0 0 0 0 0 0 0 0” but without time delay thereafter before PlayGroup execution. This did not work for me.

The idea is to fix somehow (e.g. via clever scripts) PlayGroup/LoopGroup functions and try to use “Idle10” – “Idle1000000” with these functions (“Idle10” – “Idle1000000” would be attached to an NPC in the TESCS). I know that's not like in OB (too clumsy) but better than nothing IMHO. Potential problems: game engine check for correct sequence names and “Idle10” will not work; obligatory delays or “reset to default pose for one frame in between” sequential animation calls that could interrupt a sequence e.g. sitting down (“Idle10”) – sitting doing something (“Idle11”).

:)
User avatar
Phoenix Draven
 
Posts: 3443
Joined: Thu Jun 29, 2006 3:50 am

Post » Mon Mar 08, 2010 11:25 pm

After running CreateMaps, it appears that all the cells were mapped. However, it left a few odd side effects (these didn't persist after I reloaded a saved game):

1. The sky was black (i.e. blank, not like, dark or night time, but black. Ex: 000000 (or is it FFFFFF?)
2. Probably related to #1, my local view in my minimap was also blank and black.
3. Random parts of my minimap (world view) were a very light grey, while others were normal.
This one might be unrelated to the CreateMaps thing:
4. When I reloaded the game to an earlier point, none of the NPCs were moving. They also did not attack me when I attacked them, or even draw their weapons. However, they did say their hostile sound bites: "There is no escape!" No bounty was added to my character. This persisted across my saved games. I didn't try with a completely re-loaded Morrowind.

I have never experienced any of these things before. They could be from different sources, such as running Morrowind in Windowed Mode, or in a different resolution that normal, or from using the other BETA features in the 1.7 version.

EDIT: I ran Create Maps on TR_Map1.esm. My loading list: MW, TRIB, BM, TR_Data.esm, and TR_Map1.esm.

---
I have a few more things to bring up:
1. Last thread, I made a request that appeared to go unnoticed (except by tronvillain, who verified my report):
Whenever I modify my character's magicka amount via the console (player-> setmagicka X), and you save, or rest, or reload, or any number of things, my magicka is always rest to whatever my intelligence is. This isn't even how magicka is determined to begin with in the game (Intelligence is only a base factor, not the only factor in determining what my magicka amount should be), and it's really annoying to have to re-modify it time and again. This is made even more peculiar by the fact that editing fatigue and health levels works just fine; neither of them get reset like magicka does. So my question is, could the MCP incorporate a fix for this bug, so that it resets using the normal formula for determining magicka levels? (Or better yet, get it to not reset at all, like fatigue and health)

EDIT: While I was at it, I checked up on haplobartow's issue, and I can confirm that my magicka doesn't stay set to what it is changed to with the console.


2. I thought I brought this up somewhere in one of the previous threads but I couldn't find it since I had noticed the problem. It also may be outside the scope of the Morrowind Code Patch. At any rate, here is the issue: In Windows 7 and Vista, the Region Paint screen remains grey until you click on an existing cell (read: by clicking, you are painting a cell). This reoccurs every time you re-open the Region Paint screen/window. This is a problem because it marks the .esp or .esm I am working on as modified, and also paints a random cell with the first active region (Azura's Coast, I think). Naturally, this is a very big problem for landmass mods, or mods that simply modify or make use of regions.

There are easy workarounds, such as minimizing the CS with the Region Paint window open, then maximizing it again, or dragging the window off-screen and then back on-screen, but I'd be much obliged if there were a fix in place so that I could just... use it.
User avatar
Shianne Donato
 
Posts: 3422
Joined: Sat Aug 11, 2007 5:55 am

Post » Tue Mar 09, 2010 12:53 am

Dirnae. He-he, you are right bones are for skinning. Interesting that in case of twist bones a mesh should be skinned for the twist bone and the “original” bone is not used for skinning at all, it only drives not-twist rotations of the child twist bone.


With 1 twist bone, I think you skin half of the mesh to the twist bone, and half to the original bone (unless you're using a 2 or more twist bones, in which case the original bone is probably unnecassary).
Or so I've heard at least, I don't have much experience with twist bones myself. :confused:

What if to set you awesome Minotaur (that is a good example of a really artistic animation from the scratch) as an NPC/new race for these “bone” tests? Could you do that? Head, probably, should be separated in a new nif.


I'm glad you liked the minotaur animation!
The minotaur as a new race might be very tricky. I'd have to rename the bones, seperate the head (which uses a mouth bone to animate the mouth, so I'd have to then morph it), and make some new animations.
I'm too busy to try it myself atm, if anyone else wanted to give it a go I'd be fine with that. I'll try to help out at the end of May, but I can't promise anything, as I've already told a few people I'd help them then.

I cannot agree with that: hip joint has naturally a lot of rotation freedom and definitely requires twist bones (I tested that in Max – improvement was very noticeable).

Importance of twist bones in order (IMHO):

1. Forearms (wrists).
2. Hips.
3. Shoulders.
4. Ankles (feet).

FYI Oblivion skeleton has forearm and shoulders twist bones.

:)


Yeah, that's ok then. I don't use hip rotations much myself, but they would actually help a lot with a sneaking animation I worked on a while back.

Sounds good to me. Forearms are the main one I'd like too, the wrist deformations on the crossbow and spear animations needs to go.
Shoulders would be nice too, to reduce the deformations on some of the chop animations (though perhaps some of that is just the animation?).

Btw, I also share your doubt about using these to create a BB replacement at this time, but I'd love twist bones for personal body mods and NPCs (which I'd be open to sharing with you and Hrnchamd as thanks, but I suppose you've got loads of your own, huh? :D ).
Hope everything works fine. If twist bones don't work in the end, I might have a less than ideal alternative to create the same effect, though I'll have to test it first...
User avatar
Catherine N
 
Posts: 3407
Joined: Sat Jan 27, 2007 9:58 pm

PreviousNext

Return to III - Morrowind