prideslayer Posted March 19, 2014 Author Posted March 19, 2014 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.
DoctaSax Posted March 19, 2014 Posted March 19, 2014 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.
Guest Posted March 19, 2014 Posted March 19, 2014 ^ I want this. But for groupanims. It's already on top of Santa's list of gifts.
DoctaSax Posted March 19, 2014 Posted March 19, 2014 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 versionsand then for each facial variant:data/meshes/characters/_male/idleanims/Sexout/facialvariant/602A.kfthe kfs in that case should just be named after the anim number and the actor role:602A.kfNow, let's say the facial anim is specified by modders as an EVST that corresponds to the "facialvariant" folder nameNX_SetEVFL "Sexout:Start::Anim" 602NX_SetEVST "Sexout:Start::Facial" "FacialVariant"you construct the filepath for a non-facial path like thisstring_var filePathAlet filePathA := "Characters\_male\idleanims\Sexout\" + $iAnimNumber + "A.kf"and if a facial is specifiedlet 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-LOOSEwith 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, reallylet ar_B := ar_list SNGB0, SNGB1, ... SNGB9let ar_C := ar_list SNGC0, SNGC1, ... SNGC9SetAnimModelPathEX ar_A[ongoingactsnumber] filepathA ; assuming the function existsActorA.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
prideslayer Posted March 19, 2014 Author Posted March 19, 2014 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.
Guest Posted March 19, 2014 Posted March 19, 2014 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?
DoctaSax Posted March 19, 2014 Posted March 19, 2014 Yeah, that could be a problem. We'd need an 'updateAnim' too...
Loogie Posted March 19, 2014 Posted March 19, 2014 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.
jaam Posted March 19, 2014 Posted March 19, 2014 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 ?
prideslayer Posted March 19, 2014 Author Posted March 19, 2014 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.
panthercom Posted March 20, 2014 Posted March 20, 2014 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.
nyaalich Posted March 20, 2014 Posted March 20, 2014 Eyes can communicate a lot. I think that with oral, you would still have/need con and non-con.
panthercom Posted March 20, 2014 Posted March 20, 2014 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.
D_ManXX2 Posted March 20, 2014 Posted March 20, 2014 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.
Guest Posted March 20, 2014 Posted March 20, 2014 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
D_ManXX2 Posted March 20, 2014 Posted March 20, 2014 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.
Guest Posted March 20, 2014 Posted March 20, 2014 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.
D_ManXX2 Posted March 20, 2014 Posted March 20, 2014 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.
Guest Posted March 20, 2014 Posted March 20, 2014 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
D_ManXX2 Posted March 20, 2014 Posted March 20, 2014 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.
Guest Posted March 20, 2014 Posted March 20, 2014 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.
panthercom Posted March 21, 2014 Posted March 21, 2014 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
astymma Posted March 21, 2014 Posted March 21, 2014 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)
Guest Posted March 21, 2014 Posted March 21, 2014 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?
astymma Posted March 21, 2014 Posted March 21, 2014 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.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.