Jump to content

"Proper" khajit and argonian bodyshapes/animations


MarkInMKUK

Recommended Posts

Hey! I¡m back... I've learned how to retexture with the Gimp and Nifskope and found out it was actually great fun! I can offer my services as retexturer now. Here some shots of the retex I did with the vanilla dog, to make it look like a Lapponian Herder. It's still on beta tho.

 

 

 

 

 

 

Link to comment
Share on other sites

  • Replies 311
  • Created
  • Last Reply

Top Posters In This Topic

Very impressive work so far! This project is really looking very promising and I can't wait to watch it come along.

 

While I was aware of all this for quite a while already I just so happened to stumble into this thread today. I guess not much free time at all also means not much checking online forums and such, and checking my own comments sections and PMs already takes its time. My apologies for that. On weekends workload seems to subside a little though... at least during the nights.

 

I don't know if I can be of much help here, but I thought giving a short summary of things I did, why I did them this way and not that way and facts about the limitations we're fighting couldn't hurt. So people get an idea what this all is really about and what it means to do these things they're requesting.

 

Facts first, the limitations of the game engine:

  • While skeleton files can be assigned on a per-actor basis, the skeletons the player will be using can't be assigned even on a per-race basis. There are scripted ways to change them while ingame, especially nowadays with recent OBSE development, but there are still some limitations the OBSE devs still try to overcome, especially regarding changes to apply "on-the-fly".
  • There is only 1 single set of body meshes, male and female, for all races the same. So the only way to get one race use a different body or body meshes than all the others will be by scripting.
  • Replacing the default skeleton files is easily done, but there can only be 1 skeleton file each in their place. Due to the number of mods replacing your skeleton files already for features like bouncing boobs, high heels, clothing or hair bones, "skeletal variation" and the like, only 1 of these mods will survive, the one installed last.
  • In Oblivion your body comes with your clothing. It doesn't matter what body mods you installed, if you're not using the fitting Stock Clothing and Armor Replacers either (or even wearing an item done for a different body), you'll have a Vanilla body mesh again while wearing these items and it will use Vanilla textures (if present, purple/black/<insert-random-error-indicator> otherwise).
  • I'm not yet far enough into it myself, but it seems animations are skeleton-bound. By changing the skeleton file used you can change the animations used, given everything's in a different folder. This is a future approach I was investigating, getting away from skeleton "replacements", thus getting away from incompatibility and towards really "unique" skeletal structure/anatomy.
  • Before skeleton-swapping on-the-fly became possible there was no way to alter the skeleton/animations for one race without this also affecting all others, especially when aiming towards "playable" races.

 

Now, what's the basic idea of my scripting approach:

  • Abusing the fact that body comes with clothing I utilized the approach to "equip" custom bodyparts via scripting.
  • While you can alter the anatomy of those "equippable" bodyparts, you can only go so far until it becomes impracticable for a regular humanoid skeleton lying underneath, which is what I was still limited to. The degree of "digitigrade'ness" (horrible word, I know) the meshes in Scripted Argonian Feet/Argonian Beautification or even my Anthro-Dragon Race show is about as far as you can go until things start looking, and acting, weird.
  • Only equipping custom bodyparts while not wearing anything in the respective slot though is already done on a regular basis in other mods and by far not enough for me. I designed an automated way to swap an items' appearance with one fitting the custom bodyshape by switching the NIF files the equipped item uses, given there is such an alternative file present, and otherwise force-unequipping the item with offending appearance.
  • Later approaches also involve so-called Replacer Templates, that is rather generic appearances to be used instead for the time being until a real replacement file gets added into the folders. Which appearance gets used by which item is determined by factors like item value, class, armor type, or whatever else you can think of as factors. (This was so far only done for my Anthro-Dragons, because they are what it all started with and are my testing ground for new features which will later migrate into Scripted Argonian Feet or whatever one makes of this scripting resource, the Cloth Wraps there being the only appearance set so far.)
  • First I tried it with altering the NIF path of the item equipped directly. This however was bound to clash with many other things, as you can only alter "base" items' NIF files, as in every single instance of an item in the game "at once" (like every leather boot suddenly becomes an Argonian counterpart). Of course getting the changes to show required the items to be unequipped and reequipped (something the OBSE guys are still working on to overcome as far as I remember), making it very unlikely, almost impossible, for the changes to show on anything else than the affected actor, but still the possibility itself was enough to disqualify this as a valid approach for me. And coming to think of it, you could not have 2 mods of this kind affecting 2 different races at once when they end up trying to alter the appearance of one and the same item.
  • That's why my approach uses CloneForm to create copies of the base items it's going to alter the NIF files of, applies the changes to the copies, exchanges the items in the inventory of the affected actor and reequips them afterwards. A clever system of Pluggy arrays was keeping track of already adapted items, so there aren't just more and more Cloned Forms of the same base created each time an Argonian equips something. (This was back then when there was no array functionality in OBSE itself, yet. Nowadays Pluggy should not be required anymore, if just I could rewrite my scripts for this.)

 

Using CloneForm and force-equipping/-unequipping comes with its limitations as well, of course. Which is what I was working on last time I could work on anything not job-related.

  • A Cloned Form might have all attributes, scripts and the like from the original item, but it won't be recognized "as" the original by its FormID, obviously. So any scripts checking for ItemCount of QuestItemXYZ will fail as there is no longer QuestItemXYZ in the inventory but CloneOfFormXYZ instead. The same goes for GetEquippedObject or GetEquipmentSlotMask and the like, of course. I was talking to scruggsywuggsy the ferret about this back then and he said it could be possible to implement some kind of "alias"-based approach making Cloned Forms recognized as the originals where intended, but I don't know what was done in this regard, yet, as my laptop died and I more or less "left the scene" involuntarily.
  • Not quite long ago equipping an item via EquipItem or EquipItemNS did "not" trigger any "OnEquip" blocks of attached scripts, while unequipping via UnequipItem or UnequipItemNS very well "did" trigger the "OnUnequip" blocks. In Vanilla Oblivion many toggle-type checks work by setting some flag to true when the item is equipped and setting it to false when it's unequipped, as is the case for the Arena Raiments for example. This mechanism will break, because equipping the Arena Raiment will set the flag to true, it getting unequipped by my scripts will set it to false, my scripts equipping the adapted one then will "not" set it back to true, and the whole check is useless. Luckily this was changed by the latest OBSE release with the clever alternatives to EquipItem and UneqipItem which "will" trigger those "On..." blocks when wanted. I only need to incorporate these into my scripts next.
  • Adding an item to your inventory means you end up with a perfectly clean and polished instance at 100% health and 100% charge (where applicable). This means just by unequipping and reequipping an item Argonians could "fully repair" it with no cost. The functions for getting and setting an item's health or charge back then were only working on "equipped" items, so I could very well store the health of the item about to be unequipped and then set the health of the adapted item once equipped, but the other way round I was in a little trouble as items could also have been exchanged between actors at the same time the unequip took place and the new owner couldn't possibly know the stored health value. Plus it was impossible to define which of the 5 or so Iron Boots in the inventory should be replaced, equipped or whatever, as most functions could only affect "base" items, yet again. It could even happen that the equipped item was 1 of 5 Iron Boots but the swapped one was "not" the equipped one (really bad thing!). I think I took precautions for this case and just can't remember them anymore... but still EquipItem or RemoveItem was acting quite unpredictable with multiple instances of the same item in the inventory. As far as I'm informed (which is close to not at all anymore) there was some development for OBSE into this direction as well, like addressing even non-equipped items in inventories and the like... but I don't know.

 

Getting rid of these last limitations was what I was working on mainly before my laptop died and I was forced out of business. The new scripts used by my Anthro-Dragons were meant to replace the old and very much out-dated approach used in SAF... but the latest version has never seen the light of the day then up to now. I still need to iron out some flaws.

 

Scripted Argonian Feet was always intended to be just "1 of many" mods of this kind. I purposely kept, and keep, my scripting approach as universally applicable as possible. Just look at my dragons' scripting. There's a big config array in the main quest script defining which race gets which bodyparts for which controlled slots and which replacer templates etc. and even in which way fitting clothing is enforced for a specific slot and if at all and if combined-slot items (items occupying more than 1 slot at once) are an exception or not etc. etc. etc. This was even intended to become externalised into an ".ini" file at some time in the future. Neither SAF nor my dragons or any other of the mods I do will ever conflict with each other, this I'm taking special care of. Altering Scripted Argonian Feet so it becomes Scripted "Khajiit" Feet should just be a matter of seconds to me. I invent a new "tag" for the filenames of adapted NIFs ("ABfeet" from "Argonian Beautification feet" likely will not serve for Khajiit, but as it's just a matter of changing some strings in the scripts it could be anything else basically) and alter my scripts accordingly, and all it then needs would be custom bodyparts and adapted NIFs for some items, just like I added to SAF for proof of concept.

 

The only cause for me not having done this, yet, apart from the obvious being unable to do any modding or at least not much at the moment, is that as I said the SAF scripts are far out-dated already and far inferior to my dragons'. But the latter need some tweaking as well first before I can release them for anything else than test-releases... and SAF was far beyond the point of a test-release already.

 

Oh, and in answer to some questions/comments which came up regarding my mods:

Argonian Beautification is only a "compilation" of mods from others made compatible and support for many different bodies added.

Even the original Slof's Better Beasts only supported Robert's Male, Female and TFF mesh-wise, so I had to adapt the spiked tails and the fingerclaws to fit all the others myself.

jdayT's mod was also only intended as a proof-of-concept rather. He's given you the Argonian Feet so many other mods took up to create their own beast feet from. His plugin was just a simple way to put them into the game. He created a few nice clothing items with those feet in and hand-placed them into all Vanilla Argonian NPCs' inventories, removing their regular shoes/boots in the process.

This only affecting Vanilla NPCs and none from mods or even the player or companions was one of the main causes for "Scripted" Argonian Feet's creation. I wanted something which does the same for just about "all" Argonians, no matter if coming from the original game or a mod. As long as they're either of RaceID "Argonian" or affected by the Argonian Racial Ability "Poison Immunity" my scripts will be running on them and do their magic.

jdayT even went so far and gave you a set of equippable feet, rather digitigrade bent legs and some fitting clothing for your own use in the Ayleid Cask I mentioned in my AB readme (because it was hard to find this information in jdayT's original mod) so you could try his new meshes out all the way you wanted. So, yes, he was serious.

I just went and made it so his feet didn't require their own textures anymore but used the ones of the race they're equipped on and adapted in skin tint and color to the settings you did during CharGen. Then I adapted them to any body AB is supporting, as jdayT originally only did them for Robert's Male and TFF.

What I did "not" do, however, was anything regarding Argonian heads. I was using these mods myself so I added them into the "recommended" section of my readme, but I did not include them or anything. Credit to whom credit is due.

The range of adapted items in SAF as well as the range of supported bodies by SAF is only due to me back then not having had much experience in modeling, yet. Those were among my first creations and far from perfect. I was the scripter mainly but needed something to show-off for a proof of concept. I wasn't always talking of future additions to the range of adapted items and the fact that any adapted NIF file you add will automatically be taken up by my scripts and used, without the need to alter any scripts or plugins, for nothing.

 

On a sidenote: I'm intending to rid SAF of the Pluggy dependance, add in the combined-slot exception so those DB Armors and the like I haven't adapted yet won't be forced off, perhaps remove the whole enforced unequipping deal altogether, and maybe even try to migrate the Replacer Template approach into SAF, even if only with the cloth wraps for Argonian Feet I've done ages ago, just like my dragons. I just can't tell when this will happen or how long it will take. But when it's done it'll still be only a matter of seconds for me to turn it into a Scripted Khajiit Feet for you here, if you'll make use of it or not.

 

On a yet less related sidenote: The next release of my Anthro-Dragons, whenever this will be, will use its very own custom skeleton with its very own custom set of animations, isolated from the rest of the world (ahem, races). If this turns out a feasible approach I intend to make use of it for a new approach to Argonian Feet, of course with "real" digitigrade anatomy/skeletal structure and movement animations. I'll let you know when this yields promising results... hopefully it'll not take me too long to get some time for this.

 

Anyways, I'm watching this thread now with anticipation. I might be mistaken as a lizard guy, given my tendency towards Argonian mods, but it's only my favourite race of the two beasts so I started with it. I'm a beast race fan in general! The poor 'jiit were only left behind by my mods due to the lack of time for attending to two similar projects at once... and because I felt them already nicely dealt with by Slof's mods and others back then. Nevertheless, the catfolk was always intended to follow up once I'm done. :thumbsup:

 

 

I was wondering if there was any way possible to create an Oblivion mod that gave movement to the Khajiit tail - for instance, swishing in combat or when idle having it intermittently move slightly, maybe curl or raise up like real cat's tails do. I have a cat, and when he wants you to follow him to the food bowl, his tail is straight up in the air. When he is mad it swishes in a jerky motion. Sometimes he just curls the tail so it looks like a fish hook. Is there no way to animate the Khajiit tail so it has similar movements to real cats? I would be tickled pink if I could just have it move like that "Cowardly Lion" in the Wizard of Oz's tail did, lol.

 

The only tail movement I was able to find so far was the "idle.kf" for the dogs/wolves in Oblivion - but didn't know if this could be translated to the Khajiit frame somehow or not.

 

So far I have been unable to find any mod that even touches on this, is there one? (or is this even possible?)

Link to comment
Share on other sites

I'm sure some degree of tail movement is possible (although the number of "bones" in the tail skeleton may limit it compared with a domestic cat), as is tying it to emotion in some way (the ears move with emotion, so changing an idle animation should be possible). Remember that with bipedal cats the tail will be down rather than up as it is on a quadrapedal cat, so unless you are in third person view AND scrolled back you won't see your own tail moving.
Link to comment
Share on other sites

  • 2 weeks later...

I'm sure some degree of tail movement is possible (although the number of "bones" in the tail skeleton may limit it compared with a domestic cat), as is tying it to emotion in some way (the ears move with emotion, so changing an idle animation should be possible). Remember that with bipedal cats the tail will be down rather than up as it is on a quadrapedal cat, so unless you are in third person view AND scrolled back you won't see your own tail moving.

 

 

I was thinking that tying it to the emotion would be the easy part, but making it move .... I get lost just opening Blender and NifSkope. JazzJaRa did some incredible work with tail animations in Blender, but there were some issues when the character was moving fast, and possibly some weight issues. I understand what you're saying about the tail raised not working because of the bi-ped, just wish it could still have some movement.

 

Thank you so much for your response, (and sorry it took so long to get back) - and thanks to Drake the Dragon too for your help!

Link to comment
Share on other sites

mALX1 - please feel free to post details of Work-in-progress and bugs with it here - as it's totally relevant to the thread and you've got some of the most talented and Khajiit-friendly people on the Nexus already here. Decently animated tails would REALLY enhance the Khajiit, and I'm sure both the Argonian and Anthro-Dragon races would show emotion through their tails too. Edited by MarkInMKUK
Link to comment
Share on other sites

  • 2 weeks later...
  • 4 weeks later...

IMHO the work continues, at least I still work at the Centaurus

but not everything that look functional in Nifscope, is functional in the game too :wallbash:

 

edit:

Pack sadle for centaurus (there is some problem with gnd model)

http://img98.imageshack.us/img98/6325/packsadleforcentaurus1.jpg

 

http://img710.imageshack.us/img710/7901/packsadleforcentaurus2.jpg

 

Elven armor for male centaurus in NIFscope

http://img855.imageshack.us/img855/8331/kentaur81ea.jpg

 

http://img835.imageshack.us/img835/3043/kentaur82ea.jpg

THX da mage for boots and part of greaves

 

edit2:

Elven armor for centaurus in game test

http://img683.imageshack.us/img683/2763/kentaur83ea.jpg

skirt part of cuirass are missing :confused:

EDIT3

http://img27.imageshack.us/img27/1949/kentaur84ea.jpg

simple - missing textures

Edited by Semtex
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...