Jump to content

Sexout, facial expressions, and you


prideslayer

Recommended Posts

Posted

I don't see how it's an ugly hack. Sounds like a more advanced version of slapping outfits and weapons together in nifskope.

It's an ugly hack because lets say the default "animation compiler" copies a doggysyle anim and adds a grimace to one version and a grin to another. Somebody else wants one, for their scene, with a gritted-teeth or tongue lolling out and zombified or.. whatever.

 

If the engine was doing things the way we want, you'd just be able to pick your facial expression in the sexout call and it could apply it then, any facial animation with any sex animation, any time. With this backup plan, once you have found the expression you want, I need to create a 'category' for it and release a new sexout core with a new build script that creates all the combinations over again, which brings us to...

 

 

x facial anims times x sex anims might take some reorganizing though.

Yeah. This is just a brainstorm right now for something that's technically possible though it may not be desirable. If I had a tool that could create the idle animations and groups for me without having to do it in the GECK that would make things a lot simpler, but I don't think any of the libs are up to that level of sophistication yet. With the current tools I think I'd have to copy all the expression records to a new ESP, change the name of the anim group, and merge the esp back in -- then go through and edit all the new ones to point to the new combo animation files for that expression.

 

Adding one new expression means duplicating the entire idle anim tree as it exists now.

Posted

 

 

x facial anims times x sex anims might take some reorganizing though.

Yeah. This is just a brainstorm right now for something that's technically possible though it may not be desirable. If I had a tool that could create the idle animations and groups for me without having to do it in the GECK that would make things a lot simpler, but I don't think any of the libs are up to that level of sophistication yet. With the current tools I think I'd have to copy all the expression records to a new ESP, change the name of the anim group, and merge the esp back in -- then go through and edit all the new ones to point to the new combo animation files for that expression.

 

Adding one new expression means duplicating the entire idle anim tree as it exists now.

 

 

Entertaining this a little longer - just for the hell of it - what would be helpful in that scenario would be a function that lets you dynamically set a filepath for the anim entry's kf. The anim version of SetModelPathEX. Then with string var functions and a playidle system you'd be all set on the geck side of things as long as the KFs are organized in a sensible way that lets you automate all that - wouldn't even need more than a handful anim entries in the anim tree.

Posted

^ I want this. But for groupanims. It's already on top of Santa's list of gifts.

Posted

Provided pride can merge facial anims with sex anims during install, and we can magically end up with a function like SetAnimModelPathEX, here's how I see the geck side of things working:

 

 

Let's say you manage to modify the fomm install to merge the facial anims with the sex anims (this being juju that I don't understand; I'll just assume it's possible)
and install them like:
data/meshes/characters/_male/idleanims/Sexout/602A.kf ; for the non-facial versions
and then for each facial variant:
data/meshes/characters/_male/idleanims/Sexout/facialvariant/602A.kf

the kfs in that case should just be named after the anim number and the actor role:
602A.kf

Now, let's say the facial anim is specified by modders as an EVST that corresponds to the "facialvariant" folder name
NX_SetEVFL "Sexout:Start::Anim" 602
NX_SetEVST "Sexout:Start::Facial" "FacialVariant"

you construct the filepath for a non-facial path like this
string_var filePathA
let filePathA := "Characters\_male\idleanims\Sexout\" + $iAnimNumber + "A.kf"
and if a facial is specified
let facialpathA := NX_GetEVST "Sexout:Start::Facial" + "\"
let filePathA := "Characters\_male\idleanims\Sexout\" + facialPathA + $iAnimNumber + "A.kf"

Taking into account that we can have multiple sex acts going on (but not an infinite number), I'd say each role (A/B/C) could have around 10 different anim entries.
Under a playidle system, all you need for them is to exist somewhere between 'GeneralIdles' and 'Loose':

-GeneralIdles
-Sexout
    SNGA0

    ...
    SNGA9
    SNGB0

    ...

    SNGB9
    SNGC0

    ...
    SNGC9
-LOOSE

with the right looping flag etc, but no filepath specified for the kf or any conditions that mean anything or any tiering/subfoldering.
You track the number of ongoing acts, and according to that when picking an anim tree entry for an actor to use, you choose it from an array that you construct on start-up:
let ar_A := ar_List SNGA0, SNGA1, ... SNGA9 ; you could have up to 20, really
let ar_B := ar_list SNGB0, SNGB1, ... SNGB9
let ar_C := ar_list SNGC0, SNGC1, ... SNGC9

SetAnimModelPathEX ar_A[ongoingactsnumber] filepathA ; assuming the function exists
ActorA.playidle ar_A[ongoingactsnumber]; or ehm, maybe park that anim form on the actor as an evfo and just cast a spell that does the playidling from that evfo

 

Posted

Yeah, I thought a little along those lines as well.. now I'm missing two NVSE functions, not just one! ;)

 

I've also considered taking it in an entirely different direction. If I can combine the animation files into a single kf during package activation, then I can also do it from inside NVSE/NX, and construct whatever animation the system wants, on the fly. My original thought was to just keep a list of N dynamic animation 'slots' and overwrite the files they point to with the new one, when needed. This would put a hard cap on the # of simultaneous animations that could play at once, but setting that to 15-20 is probably high enough to be fine.

 

My concern there was that the kf's might be cached by the system after being loaded once. I haven't tested this yet but it should be easy enough to do -- play the animation, connect to file share with laptop and replace it with a different one, and play it again. See if it changes to the new one or not.

Posted

My concern there was that the kf's might be cached by the system after being loaded once. I haven't tested this yet but it should be easy enough to do -- play the animation, connect to file share with laptop and replace it with a different one, and play it again. See if it changes to the new one or not.

 

While playing with groovatron, I used to go back to the desktop, replace the animation file with another one, then going back to the game: re-triggering the animation, it was playing the previous one. Is this what you mean with cache?

Posted

 

Yeah. This is just a brainstorm right now for something that's technically possible though it may not be desirable. If I had a tool that could create the idle animations and groups for me without having to do it in the GECK that would make things a lot simpler, but I don't think any of the libs are up to that level of sophistication yet. With the current tools I think I'd have to copy all the expression records to a new ESP, change the name of the anim group, and merge the esp back in -- then go through and edit all the new ones to point to the new combo animation files for that expression.

 

Adding one new expression means duplicating the entire idle anim tree as it exists now.

 

 

Well, that's horrifying.

Posted

The way I interpreted this is: the first time an animation is called on a skeleton, all the animations pertaining to that skeleton are loaded and cached.

 

Still I need to find the time to dig deaper and test theories.

 

@prideslayer: "now I'm missing two NVSE functions" Which ones ?

Posted

The way I interpreted this is: the first time an animation is called on a skeleton, all the animations pertaining to that skeleton are loaded and cached.

 

Still I need to find the time to dig deaper and test theories.

 

@prideslayer: "now I'm missing two NVSE functions" Which ones ?

SetAnimModelPathEX as doc suggested.. and an NX_CombineNifs or something like that. Was just a half joke. As you said, need more digging to get ahold of the actual anims. Getting ahold of the skeleton instance would be nice as well, as I've discussed with you previously.

 

Being able to programatically do things like scale bones without needing an anim/morph to begin with would be nice.

Posted

 How about having a 3 groups of facial animations - Consensual, Non-Consensual and Oral, and

assign them to the sex animation using a random picker. This way you get more unique combinations

and appropriate expressions for different scenarios, and you can apply them to sex animations that don't

already have expressions.

Posted

 I can 'see' your point; an expression such as 'fear' within FAFF actually has the eyes darting from side to side;

quite effective. It can be hard to tell the difference between pleasure and pain sometimes with expressions, which

could make the selection process a bit simpler. Back when the FAFF facial expression still worked in my New Vegas

Sexout install I used to load expressions in ahead of some of the ZAZ bondage animations, and found FE 27 'yawning'

to be a pretty useful expression for the pleasure/pain crossover, as an example.

 

Eyes can communicate a lot.  I think that with oral, you would still have/need con and non-con.

 

Posted

You guys still have 1 thing to worry about. The animation it self. As i posted previously way up in this thread the priority an animation plays the higher that number is then the other animation has no chance of playing on there own. How do you fix this if the animator made his animation priority 99 ?? like have seen in many of those older animations ???

 

By making it 99 if you make an animation and make it 50 or something then your animation will never play because the others will playing first.

 

Almost all the animation has the headanims set to 99, so if you combine other facials and the priority is lower then they will never play anyway. So the facial will always reset back to default facials.

 

And not really play what it suppose to.

 

Let me explain this further:

 

Let review some of the combat animation. you walk and then you press R and the weapon will be visible. you keep walking while still having your weapon in your hands. Let's say you make a new walk animation and make it 99 for all the bones and you press R key to make your weapon visible this will not work since the animation hands will stay to where you placed it because the walk animation has a higher priority for hands so the Holster and animation will not work since the priority for that animation is lower for hands.

 

So when animating making priority is really important if you still want other animation to work right with the one you built. That is why those tutorials say to keep to priority to what vanilla animations are set too. So there will be no conflict during transition.

Posted

D_Manxx

I don't think it's a matter of priority. I concluded that FAFF and SO use specialidles and you can't mix them together because the engine reset it - anyway these are my conclusions and I still hope someone can deny them; while walking and wielding/unwielding a weapon uses group anims which I noticed they are affected by priority

Posted

Actually everything is done through the skeleton that is why headanims are incorporated within them. Head anims is what FAFF uses. like face morphs etc..

 

So the group does not really matter. The system itself is based on all of this so you can combine different animation at different times etc.. So in eventually priority will play an important roll so that is why they say too keep the priority to like Bethesda made so every other animations are able to play. But i noticed that sexout animations has all the bones priority set 99 witch will make any other type of animation to be able to play fully mute so the moment sexout anims play nothing else will play.

 

So even if you force Faff to play with sexout animation will still reset it to default because the priority for sexout is way higher then Bethesda has indented.

 

The only real way so far that has proven to work is the way tutorial works, is to add faff directly into the animation of sexout so faff will play correctly when sexout plays. anything else will plain fail.

 

But this will require niscope in order to copy paste faff into sexout kf file.

 

They have fully changed this from oblivion to fallout.

That is why there is no easier way to fix this.

 

Currently the way Oblivion works is to just add the txt keys within blender and your done. Facials work fully correctly when oblivion animation plays. They have either removed this or fully change the structure in fallout so that is why this easy work around for oblivion does not work.

Posted

It's not what I mean. FAFF will reset when SO trigger and vice-versa because the engine does that in NV. In FO3 it seems you simply can't trigger them.

 

I incorporated HeadAnims yesterday with nifskope in an animation and I think it's the only viable solution, using a single kf, after all the tries I did, because really it seems 2 kf can't work in the same Anim Group. And I also think it's quite realistic if it's done in the right way.

 

In my opinion, the fact you could see a facial animation if you manually were triggering FAF BEFORE SO, it happens only because it's a glitch, FAFF is overridden by SO but the face remains morphed because there are no HeadAnims which reset that inside a SO animation.

 

I arrived to the conclusion that bone priority is only effective when you mix Anim Groups, but not special idles, because the engine doesn't let you to trigger 2 of them together, the second one will reset the first one. But since we have no tools to play with Anim Groups, I don't see any other solutions. If you can demostrate I'm wrong, I'll be VERY VERY glad.

Posted

Then how else are they combining running animation from sheething and unsheeth weapons ?? If you can figure that part out. then it will be possible to combine both facials and sexout together.

 

 

Posted

because they are Anim groups. And we don't have tools to use them. All we have is PlayGroup which allows to trigger one of them, but we can't replace them with custom ones which point to a different file, all we can do is replacing vanilla which of course doesn't make sense

Posted

Then maybe we are missing something obvious or, nifscript is missing stuff oblivion had.

Because i can still import head facials in blender and modify the head mesh with shape keys. just like oblivion. if i can get that work i will be able to export a normal animation correctly even with facials imbeded withing the same animation. No need for even nifscope.

 

 

 

 

post-160974-0-96481700-1395329623_thumb.jpgpost-160974-0-14517400-1395329627_thumb.jpg

 

post-160974-0-42070300-1395329647_thumb.jpgpost-160974-0-44671400-1395329650_thumb.jpg

 

 

Posted

I don't know that part since I don't know how to edit keys in Blender (that's why the Kiss animation had wrong start/end time for example, I modify them in nifskope after the export)

I did the facial animations in nifskope as Labrat showed in his tutorial and it worked very well. But of course doing it in Blender as you are doing would be definetely better since at least you can visualize what you are really doing instead of working with numbers.

 

My point was that even if you animate only certain nodes, and erase the unused ones before the export, you still won't be able to trigger two animations hoping that they will stack together when you will trigger them together, because the second one always will reset the first one. It's not a matter of bones or something inside the kf itself, it's a matter of groups, which we are unable to modify with custom animations and are handled by the engine itself. So you won't be able to do for example a body animation on a kf and a facial animation on another one, even removing the unused bones, hoping that they will blend together in game, because they won't be triggered together by the engine.

 

I really hope someone will find what I say is wrong and will show a way to do that, I had a nice idea on how apply that but I had to stop that project because of this limitation.

Posted

 I've got hundreds of hours of play time in New Vegas Sexout where I successfully

loaded face expressions before or even during sex animations and they stayed in

place until I reset them. Let's say a sex animation is playing and I loaded a face expression;

the sex animation would briefly stop, then continue working with the face expression intact.

 

 Something has happened with Sexout or one of it's requirements recently that has made

this impossible to do anymore. In fact, facial expressions will not stay in place under any

circumstances; they reset within 10 seconds. This has been pissing me off immensely,

because I like to do a lot of screenshots. It's not Sexout NG that's doing it, because I'm

still using the older version that used to work. I did install the latest NVSE with my latest

game installation, and I'm inclined to think it might be the culprit... or SCR. Those are the only

two differences between an install with properly working FAFF and one without.

 

 

EDIT___ see my post on this page of screens I took back when FAFF and Sexout animations

used to work together; I think I'm even using one of D-Mann's Sexout animations.

 

http://www.loverslab.com/topic/16665-sex-screenshots-post-your-ingame-adventures-here/page-17

Posted

Then maybe we are missing something obvious or, nifscript is missing stuff oblivion had.

Because i can still import head facials in blender and modify the head mesh with shape keys. just like oblivion. if i can get that work i will be able to export a normal animation correctly even with facials imbeded withing the same animation. No need for even nifscope.

 

pics removed

I think with Scanti's tools you could create OBJ files of all the expressions you need and then simply append them to the head tri as available expressions.

 

Basically:

  • Load head mesh into FaceGen (full not trial).
  • Assign expression you want to edit.
  • Export expression as OBJ file.
  • Edit OBJ in Blender.
  • Use Scanti's AddMorph utility to add the edited expression to the head TRI file.

Just a thought.

 

EDIT: Er, assuming the expressions achieved through dialogue being played during the sex act still works...

 

EDIT: Attached my instructions I typed up for messing with expressions in TRI files ( was for Head06)

 

 

Posted

I think with Scanti's tools you could create OBJ files of all the expressions you need and then simply append them to the head tri as available expressions.

 

EDIT: Er, assuming the expressions achieved through dialogue being played during the sex act still works...

 

EDIT: Attached my instructions I typed up for messing with expressions in TRI files ( was for Head06)

 

 

Expressions during dialogue, if you mean the "emotions" and not the FE injected in the nif itself, they work, I used them.

Do you mean there's a way to introduce other expressions like these ones? the emotions you select inside the dropdown menu in the dialogue?

Posted

Well, as far as I know... the EGM contains the morphs that are used during character creation, i.e. deforming the head using the sliders to get the shape of the face and its elements like nose and mouth, etc..

 

The TRI file, and this I know for sure since I've edited them, contains the morphs for emotions, facial expressions and phonemes.

 

You can use Scanti's head tools, specifically AddMorph to insert an OBJ file of a head edited into the expression you want as a named morph. As an example, the mod I did of Head06 I edited the named morphs DispHappy1, DispHappy2, DispHappy3 and DispHappy4. Using FaceGen I changed the expression and exported the change as an OBJ file. I then used AddMorph in replace mode to replace the morphs I just listed with the edited OBJ file contents.

 

EGM and TRI files are archives of OBJ file fragments. They contain offsets from the original head NIF which represent morphs from the base mesh.

 

What I was saying is that we can add NEW morphs to a TRI file and, I'm assuming, the dropdown would show them... assuming the dropdown is being populated from the TRI... if it's a  hardcoded list... well, we're boned. My assumption is that they'll show, since FaceGen itself repopulates its morph list directly from the TRI. FaceGen's code was used directly in Beth's products.

 

EDIT: And if anyone is wondering where Scanti's tools are, links to all the tools are in the txt file I attached in the previous post.

Archived

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

  • Recently Browsing   0 members

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