Jump to content

OSex+ The Greatest Virtual Sex Ever


Recommended Posts

Noob question here, but when running the nexus version of the mod, i can press 0 to initiate a scene, but the two characters will glitch into eachother and nothing else happens. I run FNIS in the backround and update everything before launching Skyrim, so i don't know exactly what i am doing wrong.

Did you install XPMSE

I have a question... I couldn't find a solid yes or no towards what I was searching for so hopefully I can get a fair answer here. I would much more prefer as perfect of an alignment as you have in your .GIFs, so is it possible to either get your characters available to the public, the scales and whatnot of your characters so I can make my current match up with yours for a perfect alignment or have a tutorial for a novice to be able slightly modify the animations so they fit their current characters once again, perfectly and for personal use? It's a fantastic mod and I would like to get the best of the best out of it and it seems like a possibility, I would be willing to put a lot of effort into the previously mentioned if needed, thanks!

You should use console command setscale on both actors until you get a "perfect alignment". Use values between 0.90 and 1, so you wont get too big or too small sizes.

Link to comment

 

 

 

 

 

also Pipdude I've located the hud menu "Press E to talk to" That everyone hates during OSex. It's in the hudmenu.swf and the property name is : RolloverNameInstance. I'm assuming this would work:

 

For Entering the scene:

 

 UI.SetBool(HUD_MENU, "_root.HUDMovieBaseInstance.RolloverNameInstance._visible", false)

 UI.SetBool(HUD_MENU, "_root.HUDMovieBaseInstance.Crosshair._visible", false)

 UI.SetBool(HUD_MENU, "_root.HUDMovieBaseInstance.CompassShoutMeterHolder._visible", false)

 UI.SetBool(HUD_MENU, "_root.HUDMovieBaseInstance.EnemyHealth_mc._visible", false)

 UI.SetBool(HUD_MENU, "_root.HUDMovieBaseInstance.Stamina._visible", false)

 

True all on exit

 

Not working exactly but I am able to get:

 UI.SetBool(HUD_MENU, "_root.HUDMovieBaseInstance._visible", false)

to work which does basically what I want anyways. Maybe you have an idea why the smaller one's aren't working just to know, maybe I'm not being specific in the right thing I'm targeting.

 

 

I'm having to sign off for the night now. So, will answer your other post tomorrow. But, quickly on this, the vanilla UI also changes the visibility of those items independently as they are needed. So, there are times that you can turn them off and then Skyrim turns them back on. For example, if you turn them off then click the B button, they get turned back on when you exit back into the game.

 

There are some actionscript tricks using "prototype" that I believe will allow hijacking the _visible functions so that we can force them not to come back on perhaps while a global _HUDisOff flag is set to true. Will work on it soon when I can get some time.

 

 

Following up on this. First attempt was not successful with prototype. It's been a long time since I've used that and I can't recall the nuances needed for overriding getter/setter properties that way. Google isn't helping so far.

 

But, I thought of a simpler solution that might work just as well. Try:

 UI.SetInt(HUD_MENU, "_root.HUDMovieBaseInstance.RolloverNameInstance._alpha", 0)
 UI.SetInt(HUD_MENU, "_root.HUDMovieBaseInstance.Crosshair._alpha", 0)
 UI.SetInt(HUD_MENU, "_root.HUDMovieBaseInstance.CompassShoutMeterHolder._alpha", 0)
 UI.SetInt(HUD_MENU, "_root.HUDMovieBaseInstance.EnemyHealth_mc._alpha", 0)
 UI.SetInt(HUD_MENU, "_root.HUDMovieBaseInstance.Stamina._alpha", 0)

Set all back to 100 on exit.

[Tried in game. That doesn't work completely either. There are preferences in the ini file that can turn a lot of these on and off. So, I'm thinking that there is some variable that can be set that does this "the right way". The immersive HUD mods don't share their source. So, no hints there. Will see if I can find the variables with tracing...]

Link to comment

 

Noob question here, but when running the nexus version of the mod, i can press 0 to initiate a scene, but the two characters will glitch into eachother and nothing else happens. I run FNIS in the backround and update everything before launching Skyrim, so i don't know exactly what i am doing wrong.

Did you install XPMSE

I have a question... I couldn't find a solid yes or no towards what I was searching for so hopefully I can get a fair answer here. I would much more prefer as perfect of an alignment as you have in your .GIFs, so is it possible to either get your characters available to the public, the scales and whatnot of your characters so I can make my current match up with yours for a perfect alignment or have a tutorial for a novice to be able slightly modify the animations so they fit their current characters once again, perfectly and for personal use? It's a fantastic mod and I would like to get the best of the best out of it and it seems like a possibility, I would be willing to put a lot of effort into the previously mentioned if needed, thanks!

You should use console command setscale on both actors until you get a "perfect alignment". Use values between 0.90 and 1, so you wont get too big or too small sizes.

 

I did. installed it and everything it required, opened up FNIS, updated FNIS behavior, ran Skyrim, still didn't work

Link to comment

 

 

Noob question here, but when running the nexus version of the mod, i can press 0 to initiate a scene, but the two characters will glitch into eachother and nothing else happens. I run FNIS in the backround and update everything before launching Skyrim, so i don't know exactly what i am doing wrong.

Did you install XPMSE

I did. installed it and everything it required, opened up FNIS, updated FNIS behavior, ran Skyrim, still didn't work

 

 

If no animations are playing then they were probably not recognized by FNIS. Which means they are installed incorrectly.  So in order to solve this:

What mod manager are you using? NMM or MO?

If MO did you run FNIS through MO?

 

 

Link to comment

 

 

Ok. When all else fails, just launch it into space.

 

To turn UI elements "off":

UI.SetFloat(HUD_MENU, "_root.HUDMovieBaseInstance.RolloverNameInstance._y", -6000)
UI.SetFloat(HUD_MENU, "_root.HUDMovieBaseInstance.Crosshair._y", -6000)
UI.SetFloat(HUD_MENU, "_root.HUDMovieBaseInstance.CompassShoutMeterHolder._y", -6000)
UI.SetFloat(HUD_MENU, "_root.HUDMovieBaseInstance.EnemyHealth_mc._y", -6000)
UI.SetFloat(HUD_MENU, "_root.HUDMovieBaseInstance.Stamina._y", -6000)
UI.SetFloat(HUD_MENU, "_root.HUDMovieBaseInstance.ActivateButton_tf._y", -6000)

To bring them back home:

 

UI.SetFloat(HUD_MENU, "_root.HUDMovieBaseInstance.RolloverNameInstance._y", -41.85)
UI.SetFloat(HUD_MENU, "_root.HUDMovieBaseInstance.Crosshair._y", -115.3)
UI.SetFloat(HUD_MENU, "_root.HUDMovieBaseInstance.CompassShoutMeterHolder._y", -490.45)
UI.SetFloat(HUD_MENU, "_root.HUDMovieBaseInstance.EnemyHealth_mc._y", -490.45)
UI.SetFloat(HUD_MENU, "_root.HUDMovieBaseInstance.Stamina._y", 259.55)
UI.SetFloat(HUD_MENU, "_root.HUDMovieBaseInstance.ActivateButton_tf._y", -42.5)

Don't laugh. It works. :D

 

[PS: Those return values might adjust on various different monitor sizes. But, you could do a UI.GetFloat before sending them to -6000 and store those values to know how to put them back in the right places. Personally, I would put those commands in the swf rather than run from Papyrus. But, probably harmless either way.]

 

----------------------------------

 

I'm testing how animations work now. Basically, just starting up random vanilla animations like "IdleHoe" and "IdleApplaud2" on button press.

 

What I'm seeing is that during certain animations, if another animation is called while they are running will just sort of cancel out and not play either animation. But, others like "IdleApplaud2" and "IdleApplaud3" will allow toggling back and forth between each other. Looks like they even blend into each other in a quick transition.

 

Would you be up to giving me a short primer on what the difference is between those animations (and maybe others if there are other types)? Also, is there any way to know via code when an animation has completed?

 

Link to comment

0seksy 1.6 on nexus has 52 voice files for fem actors. Will the next update be the same amount or should I record more? Thanks! 

 

Hi Arilynn,

The system has got a lot stronger so it can support as many voice files as are available. It doesn't need X amount to function it could work with very few but the more available allow for more intricate variety across various levels and speeds.The main things that decide what sound plays is the, type of action sex vs handjob vs clitrub for example, the intensity of the action( either from their own exertion or from a reaction of what is happening to them) and how aroused the actor is.

 

50 is most likely a good number to shoot for but it can use more or use less, it's up to you, more would just allow for more detailed and special sound reactions to different things or at the least less repetition of the same wavs.

 

 

 

Hi oaklash,

Male I use a body that comes with SoS so that's available.

Fione is basically UNP, (A little curvier in the hips)  you'll get close to the same results on anything unp but obviously in some cases that's not true for exact placement of the hands etc. Once I get 1.08 stable I will try to make a body slide preset for her shape and perhaps just the nif too as a replacer. The issue is OSex tied in with ESG, if stripping aspects matter to you, that I will not be able to provide much armor as I don't have permission to distribute anything that I didn't make myself so for exact alignment with clothes on that will most likely not be possible unless you redo a lot of armors for that shape. She has unp seams so technically she would work fine with every unp armor (just the shape would be different when stuff is equipped)  I reweighted her myself for XMPSE 2.0+ skeleton as UNP didn't get an overhaul for that but UUNP I'm assuming has it. The weighting of the body slide version will not be mine so things still might not align the same with a body slide, (replacer would work fine)

 

I use my own special body system which is split at the waist with a seam but I'll attach her up when I post it as the split requires her to be a custom race which there's no need for in this case. (Adds a huge amount of issues that I wouldn't want to put people through solving)

 

In terms of adjusting the animations it would be a huge project to realign them all for different body sizes, possible but would be weeks of work most likely.

 

 

 

 

 

Pipdude thanks for looking into this and the solutions, awesome!

 

It gets a little complicated and goes beyond what I know but I'll try to explain.

 

------------------------

Quick summary of things I don't understand fully mostly because the tools aren't there for modders to go all the way:

 

The behavior file holds a few things. Most importantly the directory path to where the specific animation (.hkx) is as well as a bunch of flags that go along with it. FNIS backwards engineers the behavior process some but we don't have full access to whatever tools beth used for processing an animation. We have a disadvantage in some ways.

 

There's things called annotations which can be baked into the animation which trigger certain things like footstep sounds, damage happening in a cone in front of you (for weapon swings), etc. Timers that are tied into events basically. While I heard it is possible to somehow add these into the files, it's not documented whatsoever and without being a havok / animation exporting master most likely not possible.

 

Beth also didn't intend for anyone to touch the animations so only provided a finite amount of "events" that can be used. In cases where they are custom made a vanilla one has to be overwritten as a new one can't be added. This applies more to things like custom gates that have the animation included in the nif model, but also effects all animations.

 

I only play animations with the debug.animationevent call, which is what most people do for Skyrim. You can also play them in a non-debug fashion that uses an animation property.

 

In a secret section of the creationkit: you get from the top menu (not the usual forms) you can bring down a long list of animations that show all the behavior files registered and the animations attached to them. They can be assigned conditions etc. this is what Beth uses to set up all of it's animations, which isn't what modders usually use. I believe the reason for this is because we don't have the full tools to combine it with annotations to take it all the way, we can't really add additional animation vars for the game to listen for etc. These things when used by Beth can manage changing animation depending on the direction a character is walking etc. We can overwrite these files to change the animations but couldn't add our own system like this into the game most likely.

 

With animations created in this fashion you can add them as properties when linking up CK forms as they become a selectable Animation form but it also makes it unwieldy in that you need a property per animation instead of being allowed to just enter a string for the animation.

 

------------------------

 

Each animation has flags in the behavior file, we can access some of them with FNIS. Blend time for example you mentioned which blends the current animation to the upcoming animation over X amount of time. Beth uses this for things like crouching animations walk > run for example so they don't have to make a unique animation for entering those actions. Each animation is flagged a little differently so it comes down to just each one's specific purpose and how beth wanted it to play out.

 

If you download from Skyrim Nexus on the FNIS page, about half way down the download section:

"FNIS Documentation For Modders"

 

it has a PDF that covers the all the animations flags, I found it really helpful, Fore goes real heavy on some of the far out stuff which doesn't really effect using FNIS but the information is there for the more complex things (beyond me). It shows what we can access and the flags we can set when making the FNIS text document.

 

---------------------------

 

Certain animations (Can't really tell which, it's some kind of flag beth has access too) has to play all the way through and no animation can interrupt them. I think it's due to some kind of collision processing, like how actors will tell you "Watch IT" if you run in to them etc, a lot of movement related animations they lock out in this way. Weapon Sheathing for example, siting standing no animation can start until these are over.

 

There animations are also set up in a tree sometimes. For example: walking, if you move backwards it plays the walking backwards animation. In the CK these are all called by a single property that holds them all but beth has magic tools to make that one animation able to pick from many sub animations. I don't think modders have access to that ability.

 

--------------------------------

 

To know when it's completed, here's some things:

 

These are a bit to much for me to understand but you're better with this stuff so it might shed some light for you (A lot of this stuff developers don't really have access to)

http://www.creationkit.com/Animation_Events

http://www.creationkit.com/Animation_Events

 

With FNIS 5.5 plus you can add a timed event into the animations. You can put one at 0.0 to know when it starts or -0.01 I believe to get the end of the animation. I mentioned this before in posts but I believe blend time is added in to the calculated time so results seem to vary.

  

------------------------------

 

Here's a quick thing on the animation text registration: one animation from my file:

 

b -a,Tn,T0S_AMST/0.0 0Sx0MF_Ho-KnAdore+00Stand_0 ..\..\..\..\0SA\mod\0Sex\anim\0MF\Ky6Ky9\Ho\KnAdore\0Sx0MF_Ho-KnAdore+00Stand_0.hkx

 

b  (means it's a regular animation that doesn't have an object involved)

-a Animation plays once only and holds on the last frame if you include this.

Tn  (Without this animations T-Pose snap for a frame sometimes, I use it for slightly different reasons then Fore documents it's usage as)

T0S_AMST/0.0   Sends out Animation Event 0S_AMST at 0.0 (Obsolete now in my script but that's the gist of sending timed events, the actor receiving the animation has to register for that specific animation event to hear it.)

 

after that is the papyrus name that is used to call the animation followed by the directory the hkx is located at.

 

-------------------------

 

Summary to this overall rant though is that if you're using animations that Beth wrote the behavior files for as opposed to one's FNIS injected for modders they most likely have access to and use magical things we can't see or do.

Link to comment

 

There's things called annotations which can be baked into the animation which trigger certain things like footstep sounds, damage happening in a cone in front of you (for weapon swings), etc. Timers that are tied into events basically. While I heard it is possible to somehow add these into the files, it's not documented whatsoever and without being a havok / animation exporting master most likely not possible.

 

Thank you for the breakdown.
 
I noticed in your animation guide that you don't really mention annotations. But, I read in another guide that animations don't work without at least the minimum start/end annotations. Can they be skipped entirely? Or, does adding start/end need to be part of the process?
 

 

In a secret section of the creationkit: you get from the top menu (not the usual forms) you can bring down a long list of animations that show all the behavior files registered and the animations attached to them. They can be assigned conditions etc. this is what Beth uses to set up all of it's animations, which isn't what modders usually use. I believe the reason for this is because we don't have the full tools to combine it with annotations to take it all the way, we can't really add additional animation vars for the game to listen for etc. These things when used by Beth can manage changing animation depending on the direction a character is walking etc. We can overwrite these files to change the animations but couldn't add our own system like this into the game most likely.

 

Once you add new animations with FNIS, do they appear in the animations list in CK? And can you at least adjust the various fields that the CK gives there?

 

 

Summary to this overall rant though is that if you're using animations that Beth wrote the behavior files for as opposed to one's FNIS injected for modders they most likely have access to and use magical things we can't see or do.

 

 

Got it. Helpful to know.

 

I wonder if they are going to give more access to animation tools in the Fallout 4 CreationKit. I could see it going either way.

 

Thanks again. Going to check out those links..

Link to comment

 

 

No problem,

-In my process they work without anything else, there's some menus in the Havok Tools exporting process that seem like it might be doing this automatically for me, however in my tests changing around stuff in the menus I haven't really noticed much of them having any effects. I'm not sure the details that are involved overall.I used to use a method exporting out of 3DS 2011 and the process was entirely different without Havok Tools.

 

-Yea to register for FNIS you have to make a text document and then run FNIS for modders on that which turns it into a mini behavior file. I think FNIS then opens up the main Behavior file and inserts in all those mini behavior files into the main behavior file. The animation menu in the CK reads the behavior file I believe to get all it's information. (There's a few like chicken_bahavior cow_behavior but most just stay in the bsa forever since no one wants to animate chickens, I'm just referring to the master behavior file that has humanaoid animations in it.)

 

-You'll have access to the conditions tab at the very least I know. This part is beyond me as I'm not sure how the conditions can be set up, and what else you can do from that point (The menu is kind of weird). There definitely will be stuff that just can't be done even if it looks like it might be able to from Beth's examples.

 

-I think it might have something to do with Havok Licensing as to why they pulled it. All the tools are there basically but it seems like they gutted sections of the CK while leaving some vestiges of what used to work just non-functioning basically. It might only get worse. 

 

I read some legal changes Beth made I'm not exactly clear on it but, it sounded like it gave them more ownership on mod projects released for FallOut4 as opposed to Skyrim. I think enough power to the point where if they didn't like your mod they could write you a Cease Desist and have you legally obligated to stop making the mod, I'm not a lawyer so don't have a good concept of the extent but I'm curious to find out. Have people got animations into FO4 yet?

 

 

The property based Animations have some advantages but it requires some very niche creation kit knowledge to pull off. If it's a property you can add static markers that are attached to an animation and have Package AI take part in them. For example the sweeping some actors. They are told to either sandbox in a general area where they happen to stumble upon the sweeping idle marker and interact with it (Start Sweeping) or they are told to just go there at a certain time and sweep. There's some other things like that but it requires them to be properties linked up through the animation menu to work in this way.

Link to comment

 

-In my process they work without anything else, there's some menus in the Havok Tools exporting process that seem like it might be doing this automatically for me, however in my tests changing around stuff in the menus I haven't really noticed much of them having any effects. I'm not sure the details that are involved overall.I used to use a method exporting out of 3DS 2011 and the process was entirely different without Havok Tools.

 

Hm. I tried making an animation a while back from the guide and it just made a t-pose when I replaced the standing idle with it. So, I had thought it was because I didn't add annotations. Must have done something else wrong.

 

Or, maybe does FNIS add them? I skipped that part and just replaced the standing idle with animation file...

 

 

-I think it might have something to do with Havok Licensing as to why they pulled it. All the tools are there basically but it seems like they gutted sections of the CK while leaving some vestiges of what used to work just non-functioning basically. It might only get worse. 

 

I read some legal changes Beth made I'm not exactly clear on it but, it sounded like it gave them more ownership on mod projects released for FallOut4 as opposed to Skyrim. I think enough power to the point where if they didn't like your mod they could write you a Cease Desist and have you legally obligated to stop making the mod, I'm not a lawyer so don't have a good concept of the extent but I'm curious to find out. Have people got animations into FO4 yet?

 

Yeah. Probably wishful thinking on my part that they will make it easier. Though, I think there is a financial up-side in that the better mods can be, the more people are likely to see videos of them and be motivated to buy the game to mod. That's what I did. I think I rented Skyrim on console years ago, solved it and sent back. I only bought it on PC years later when I discovered modding. Had the quality of mods been poorer, I might not have been compelled to spend twice the $ on their product. If they restrict modding significantly, a lot of people would probably go back to the rent and forget pattern for future releases.

 

They have to know that custom animations are a pretty big part of modding.

 

My understanding is that there are some people already detangling the files and building tools toward making animations in FO4. But, there is a ways to go and a lot of uncertainty.

 

 

 

The property based Animations have some advantages but it requires some very niche creation kit knowledge to pull off. If it's a property you can add static markers that are attached to an animation and have Package AI take part in them. For example the sweeping some actors. They are told to either sandbox in a general area where they happen to stumble upon the sweeping idle marker and interact with it (Start Sweeping) or they are told to just go there at a certain time and sweep. There's some other things like that but it requires them to be properties linked up through the animation menu to work in this way.

 

 

Got it.

 

I read the FNIS doc. Good stuff. What types do you use in your system? Are you able to get good results sequencing "b" animations? Or, are you using "s" and grouping them together for some benefit?

 

Is there a limitation on how short animations can be? For example, could you have 3 very short loops of slightly varied animations and randomly switch between them? I haven't seen a mod do that. So, it makes me wonder if there's some limitation that prevents it. If there isn't, I think it would go a long way toward making movement look less robotic.

Link to comment

Update on progress:

 

Been making good progress on the script. Speeds are available a + and - symbol appear under the nav buttons when an actor has speeds in that current scene. I've been able to get the UI aware of all equipment that is equipped or changed on it's scene actors: This means undressing in the scenes will be back in the next version. When I get the other menus up it opens up cool possibilities as the UI knows the names of the equipment etc and I can show more exact information to what the NPCs are wearing and what ESG groups and slots they are in. Basically when you use the menu to strip I can filter it to only show options for items the characters actually are wearing/wore with specific information so you know exactly what item it is. It also allows me to trim the nav menu down to only show ESG options for what the actors are wearing etc.

 

Transition FX are back and more powerful now. It's divided up into 2 categories, mfx  and ofx.  MFX is for things that relate to the animation that Skyrim can't have animated, key movements of the mouth (Blowjobs for example) and notifications of when key events happen to tell the script something occured, like a spank. ofx are for emotional expression that SexDentity can override, scenes come with default ofx in case the actor has no sexdentity. I didn't like how both had to be combined into one in 1.07 so I split them.

 

Transitions, ESG stripping (Without the menu for now), Speeds, and all the standing scenes, kneeling scenes down to doggy style are in. I don't want to add much more until the system is finalized as it's a lot of data entry to make sweeping changes on as is. Overall it's almost there, a couple more days and I can have a much better draft to test. I was planning on having numpad serve as a secondary Dpad for navigating menus but rethinking this as it's not needed. I'll be using just one dpad for all menus but what I'm working on now to finish this draft is a switch board kind of thing that sends presses to the menu you are currently on.

 

What will be left to do after next is: Main Menu for config, Scene Menu for doing old num pad stuff (warp, stripping, lights) AINav + Randomizer and SexDentity expressions and sounds. Which isn't as bad as it sounds then OSex will be back to where it was on the new system, with the UI, hopefully performing much smoother. (AINav is always a pain, but the rest not so bad)

 

After this next test it should be safe to start developing if anyone is waiting or wants to try to make scenes on the new system. I'm making sure the data that is in so far is stable. The rest to come are more optional and will be unique xml blocks in the scene so you'll just have to add them when you're ready to hook up the remaining features. I'll expand the button library more after I launch 1.08, for now I'm just focusing on what OSex needs. there will be more options to choose from and if you need some stuff special just ask and I'll see what I can do, or make the vectors and I can include the buttons.

 

 

 

 

 

- If you're just overwriting the mt_idle in the bsa which is a good way to quickly test animations it should not require FNIS at all as it's tricking beth's directory paths in the behavior file basically imposing as the animation you are replacing. My guess would be linking up the text document for export in the havok menus. I find that sometimes even if I link up the text document it doesn't always "Link" I have to go back a few folders prior to the document go through the folders then click it. Something to do with the relative path it makes. If it doesn't find the export text document correctly it will output a small size file that just T-Poses when used.

 

-I'm looking forward to trying some stuff in FO4 and hopefully it's possible. I'm the same about Skyrim kind of, I find it the best world/game builder tool available, and I'm nerdy like that, I find it fun. The only thing with more freedom would be UE or Unity, but an impossible amount of work to do all the details and learn all the systems alone to have close to the same results.

 

- I can't quite remember why but I've done extensive testing with a lot of the flags and they don't quite play the way you'd want them too. The way it turns out seems very much in favor of how SexLab presents animations, a more  linear path. Sequential is kind of like that where each one is either a mini transition or a loop. There were details I got caught up on that couldn't quite work in OSex, it seemed to fall just a little short so I leave things like what sequential could do to the script to manage.

 

Blend TN are strange also, there issues is that each base position's start frame in OSex is intended to blend into many different transitions that all start from the same frame, in doing that trick the game wants to T-Pose for a frame, (always just a one frame flash) sometimes if you're connecting two start frame animations that are similar. i tried but I let the game's natural blending just go now and not mess with the blend flag, Even without that there's some T-Pose frames that occur without TN, i talked to fore about it and it's kind of vague why, all I know is that with this line up won't get T-Pose flash, (Outside of papyrus overloaded)

 

loops:

b  -Tn

 

transition:

b -a,Tn

 

loop position with impact triggers: (example)

b -Tn,T0S_SexPhys/0.7,T0S_SexPhys/1.2,T0S_SexPhys/1.75

 

There's not much for limits in terms of time. You could do a few very small animations like you are suggesting  I imagine. Maybe on very small intervals of time weird things happen but it should do what you are suggesting. OSex is a little different in that it needs time to process a scene on the script side, less so now that it's in actionscript. If you seen or can remember my old Standing Adore (start scene) or the sub kneeling scene it's a few variations weaved in for the body rubbing effect, but I do that with script instead of sequence.

 

------

A quick question also PipDude, I feel this way a lot when scripting. I wish there was a way I could just tell a script, "Do this whenever, it's not the most important thing but try to get around to it..." It feels bursty, like I'm relying on certain moments to unleash all this data at once, and then periods of time with nothing. In implementing systems to stream it, the system might cause more strain then the load itself. Is there any kind of standard practice to deal with information that's not crucial but you'd like it loaded sometimeish. The clear thing would just be a timer that loads one thing at a time but is there a more straightforward way to convey to Actionscript things that aren't as urgent?

 

Has anyone expressed an interest in making alternate versions of the popular mods that use zaz animations and others to instead call this mod for sex? I am hoping there will be such things once this new version is done:-)

Hi Zor, 

Not a lot of interest so far, some animators are interested but not so much in terms of integration with Skyrim systems. I think overall people like the system but perhaps it's due to the development stage of the mod changing a lot in the last months. The setup and implementation is a little unusual so it might be daunting also to get started. I've tried to set it up in a way that working with it is relatively straight forward and quick once someone plays around in it a little bit but it most likely it's infrastructure is a little intimidating at a glance. While I'm saying that I think documents are fairly easy they have a lot of options so that also makes it complicated regardless of how straight the fields are.

 

I hope for the same thing, when it's finally stable I think this will happen. 1.08 fixes the biggest gripe people had I think which is the complicated controls making it much more accessible.

 

For anyone reading this that is interested: I'm pretty active here and don't think there is a huge amount of people willing to animate or take on this kind of project so most likely I can 1 on 1 with anyone that needs some clarification in understanding what things do, or getting through issues they are stuck on,  just ask.

Link to comment

 

A quick question also PipDude, I feel this way a lot when scripting. I wish there was a way I could just tell a script, "Do this whenever, it's not the most important thing but try to get around to it..." It feels bursty, like I'm relying on certain moments to unleash all this data at once, and then periods of time with nothing. In implementing systems to stream it, the system might cause more strain then the load itself. Is there any kind of standard practice to deal with information that's not crucial but you'd like it loaded sometimeish. The clear thing would just be a timer that loads one thing at a time but is there a more straightforward way to convey to Actionscript things that aren't as urgent?

 

Thank you for the animation information. Saves me a ton of time trying to figure out myself with trial, error and going through tutorials from 2012.

 

To answer your question, is there a straight forward way to have the code make a relatively subjective decision? Probably not. :)

 

I feel like Papyrus' performance issues kind of traumatized you. So, now the threat of performance overload has created a bias against doing too many operations at once.

 

Normally, programming environments are able to easily handle a very large amount of logic operations. It's not really normal that having too many "if" statements should cause any program to slow down. Think about how much processing occurs just for the loading and presentation of a single dds bitmap. Then consider that Skyrim is loading and unloading hundreds if not thousands of those constantly. A script running even 100 "if" statements in one sweep should be small potatoes. So, in terms of the Actionscript doing a lot all at once, I think that you should feel safe just going for it.

 

That said, when the code starts interacting with Papyrus, that's when we start getting into mystery land. I think that it just needs to be analyzed on a case by case basis. Many Papyrus operations probably have little to no resource drain. So, those can be leaned on if necessary. But, I would stick with the principle: use Papyrus as little as possible.

 

I think that a good way to proceed is to A. build the system with as little Papyrus exposure as possible, B. otherwise, assume that you will NOT create a performance issue with the Flash, C. and if a performance issue arises approach it as a troubleshooting one-off case rather than requiring a code architecture adjustment (data architecture maybe though!). In other words, if something slows it down at some point, we should be able to isolate the problem. "Bursts" of programming logic really should not be a culprit that we need to step around with streaming systems, etc.

 

IF a resource leveling system is really needed, there are ways to set them up. If you're talking about loading xml, instead of just sending a filepath to the loader, we can create a queue system that adds new loads to the back of the line and makes each load from a timer so that they dont happen all at once. It can include sort logic so that some tasks take cuts in front of lower priority items like you mention. This kind of system could be applied to functions/operations as well as loading if necessary. I'm skeptical that it should be necessary on the Flash side. But, maybe you're seeing something specific?

 

There probably is room to optimize the xml parser if that is causing a stutter. It's doing a lot of splits, joins, etc. that could be costly added up. Each of those is making hundreds if not thousands of operations doing search-replaces on the text. It could be that that split second delay is not noticeable when making normal flash applications. But, in a 3d game where everything is always in motion a little stutter is more noticeable. On the other hand, even with a strong machine, I've never known Skyrim to not be full of stutter moments, even without mods!

Link to comment

 

 

Attached is an updated version of the XMLParser. I made some optimizations so that it performs 20% faster on an XML with 1000 lines.

 

There are other parts I didn't get to yet that could also be optimized. So, it's possible that I'll be able to get it down further (maybe significantly) when I can get to it.

XMLParserV5.zip

Link to comment

 

 

 

Attached is an updated version of the XMLParser. I made some optimizations so that it performs 20% faster on an XML with 1000 lines.

 

There are other parts I didn't get to yet that could also be optimized. So, it's possible that I'll be able to get it down further (maybe significantly) when I can get to it.

 

 

Ok. That was the shortest version lifespan ever.

 

My OCD prevented anything else from happening until I made a few more optimizations. This version is a total of 72% faster than V4 on an XML of 1000 lines. [Correction. "72% faster" is not the right way to put it. This version took 27% of the time V4 took to process the same data. So, it's actually almost 400% faster.]

 

I think that I got the low lying fruit. Further optimizations will be more difficult (but not necessarily impossible). But, lets see how this one works for now.

XMLParserV6.zip

Link to comment

 

 

 

- If you're just overwriting the mt_idle in the bsa which is a good way to quickly test animations it should not require FNIS at all as it's tricking beth's directory paths in the behavior file basically imposing as the animation you are replacing. My guess would be linking up the text document for export in the havok menus. I find that sometimes even if I link up the text document it doesn't always "Link" I have to go back a few folders prior to the document go through the folders then click it. Something to do with the relative path it makes. If it doesn't find the export text document correctly it will output a small size file that just T-Poses when used.

 

Tried again from the beginning of the guide and no dice. Same t-pose.

 

A few notes:

 

A. When I first open Havok Content Tools -> Export I have one warning that doesn't appear in your guide. It reads:

 [0xabba78ab] Warning : Note tracks discovered for object and transform controller, please make sure only to use one of them, as appropriate for you usage scenario(Vision Animation/Havok Animation)!

B. It also looks like your screenshot reads "Exported 468 nodes..." in the console. Mine reads "Exported 408 nodes..."

 
C. The console shows all kinds of warnings after clicking "Run All Configurations". Possible to get a screenshot of what a successful export looks like in the console so that I can see if there are unexpected errors described there?
 
D. Only thing that I can see that I'm doing differently from the guide is starting from the M+F rig and deleting the M data.
 
E. My "Extract Motion" tab in Havok Tools window looks a little different than yours. It includes sections that don't appear in your screenshot: Ignored Motion, Reference Frame Type. They don't really look like sections that should affect anything. But, their existence makes me wonder if I have some different version of Havok Tools or something that may have other nuances/requirements to get work...
Link to comment

 

 

 

 

- If you're just overwriting the mt_idle in the bsa which is a good way to quickly test animations it should not require FNIS at all as it's tricking beth's directory paths in the behavior file basically imposing as the animation you are replacing. My guess would be linking up the text document for export in the havok menus. I find that sometimes even if I link up the text document it doesn't always "Link" I have to go back a few folders prior to the document go through the folders then click it. Something to do with the relative path it makes. If it doesn't find the export text document correctly it will output a small size file that just T-Poses when used.

 

Tried again from the beginning of the guide and no dice. Same t-pose.

 

A few notes:

 

A. When I first open Havok Content Tools -> Export I have one warning that doesn't appear in your guide. It reads:

 [0xabba78ab] Warning : Note tracks discovered for object and transform controller, please make sure only to use one of them, as appropriate for you usage scenario(Vision Animation/Havok Animation)!

B. It also looks like your screenshot reads "Exported 468 nodes..." in the console. Mine reads "Exported 408 nodes..."

 
C. The console shows all kinds of warnings after clicking "Run All Configurations". Possible to get a screenshot of what a successful export looks like in the console so that I can see if there are unexpected errors described there?
 
D. Only thing that I can see that I'm doing differently from the guide is starting from the M+F rig and deleting the M data.
 
E. My "Extract Motion" tab in Havok Tools window looks a little different than yours. It includes sections that don't appear in your screenshot: Ignored Motion, Reference Frame Type. They don't really look like sections that should affect anything. But, their existence makes me wonder if I have some different version of Havok Tools or something that may have other nuances/requirements to get work...

 

 

Hi PIpDude,

Thanks for the XML upgrade awesome, going to try it out now. I think your note on Papyrus trauma is most likely right on, thanks for the advice on that. Another question I have when you have time, kind of a detail but in having the actionscript check for SexDentity it would have to confirm that a file exists, in a specific folder. With my current knowledge I would make a text document placeholder that just had one character like "1" for the script to see to confirm if it existed. I wonder is there an alternate to do this, like a way to see files that are in a folder, or get a list of files in folder without loading for example?

 

----------------------------------------

 

For 3DS: 

 

I'm vague on what the warning mean you are receiving potentially sounds like it has something to do with moving specific bones and controllers including those bones at the same time but I've never encountered that before. The console does print pages of warning even when it works I've included my output below. Can you message me your 3DMax file? I'll most likely be able to figure it out if I can see. 

 

In terms of the node count it's likely pornphile expanded and improved the rig since I started. Do to the nature of the transitions I can't really ever start from a fresh scene so I've been using the same rig for years now. I think he's released an upgrade which might have been optimized making different results in the number there, (Possible but I'm not sure)

 

For 3DS here's my initial output when I load up the .txt:

 

 

 

 

tumblr_o3ccl1FU8x1ubnr1mo4_r1_1280.jpg

 

[0xabba9733] Warning : Couldn't load DLL (C:\Program Files\Havok\HavokContentTools\filters\hctFilterTexture.dll
 3ds Max Scene Export 
    [0xabba8dc8] Warning : Some nodes have duplicated names. This may cause some filters to get confused:
  'NPC L Foot [Lft ] Heel_Help'(x3)  'NPC L Foot [Lft ] Toe Lift_Help'(x3)  'NPC L Foot [Lft ] Heel Peel_Help'(x3)  'NPC L Foot [Lft ]_IK Goal'(x3)  'NPC L Toe0 [LToe]_IK Goal'(x3)  'NPC L Foot [Lft ] Toe Tap_Help'(x3)  'NPC L Toe0 [LToe] Nub_IK Goal'(x3)  'NPC R Foot [Rft ] Heel_Help'(x3)  'NPC R Foot [Rft ] Toe Life_Help'(x3)  'NPC R Foot [Rft ] Heel Peel_Help'(x3)  'NPC R Foot [
    Exported 468 nodes, 5 node selection sets, 6 materials, 6 meshes, 0 lights, 2 cameras, 6 skin bindings.
Filter Manager ready

 

 

 

Here's output: 

 

 Processing All Configurations... 
     --- Configuration: Default --- 
         There are no filters in this configuration. 
        Finished in 00:00:00
     --- Configuration: Skeletons --- 
         Create Skeletons Filter 
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC Pelvis'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC L Fin1 1'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC L Fin1 2'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC L Fin2 1'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC L Fin2 2'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC L Fin3 1'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC L Fin3 2'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC R Fin1 1'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC R Fin1 2'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC R Fin2 1'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC R Fin2 2'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC R Fin3 1'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC R Fin3 2'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC Tail00'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC Tail01'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC Tail02'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC Tail03'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC Tail04'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC Tail05'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC Tail06'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC Tail07'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC Tail08'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC Tail09'
            Root Node Name:NPC Root [Root]
            Num Bones: 1
         Create Rigid Bodies Filter 
            No rigid bodies created.
         Create Constraints Filter 
            [0xabbaa5f0] Warning : No physics data found, you need to use CreateRigidBodies before this filter or have bodies already in the input data.
         Create Ragdoll Filter 
            [0xabbaa5f0] Warning : No physics data found
         Create Mapping Filter 
            [0xabbaca33] Warning :  No SkeletonB with name: 'Ragdoll_NPC Pelvis' and could not find a ragdoll, so will have to abort.
         Prune Types Filter 
            Removing hkxEnvironment ("Environment Data")
            Removing hkxScene ("Scene Data")
            Removing 0 animations.
         Write to Platform Filter 
            [0xabba9833] Warning : Could not create file [..\..\..\..\..\..\..\Desktop\Skeleton.HKX] to write to. Aborting.
        Finished in 00:00:01
     --- Configuration: Meshes --- 
         Create Skeletons Filter 
            [0xabba44f4] Warning : Skeleton "L Shoulder_Expose" has multiple roots.
            [0xabba44f4] Warning :   Extra root found in bone : "L Shoulder_Expose_Help"
            [0xabba44f4] Warning :   Extra root found in bone : "NPC L Forearm [LLar]_Help"
            [0xabba44f4] Warning :   Extra root found in bone : "NPC L Toe0 [LToe]_Nub"
            [0xabba44f4] Warning :   Extra root found in bone : "NPC L UpperArm [LUar]_FK Bone_F"
            [0xabba44f4] Warning :   Extra root found in bone : "NPC L UpperArm [LUar]_IK Bone_F"
            [0xabba44f4] Warning :   Extra root found in bone : "NPC L UpperarmTwist1 [LUt1]_Help"
            [0xabba44f4] Warning :   Extra root found in bone : "NPC Neck [Neck]_FK Bone_F"
            [0xabba44f4] Warning :   Extra root found in bone : "NPC Neck [Neck]_IK Bone_F"
            [0xabba44f4] Warning :   Extra root found in bone : "NPC R Forearm [RLar]_Help"
            [0xabba44f4] Warning :   Extra root found in bone : "NPC R Toe0 [RToe]_Nub"
            [0xabba44f4] Warning :   Extra root found in bone : "NPC R UpperArm [RUar]_FK Bone_F"
            [0xabba44f4] Warning :   Extra root found in bone : "NPC R UpperArm [RUar]_IK Bone_F"
            [0xabba44f4] Warning :   Extra root found in bone : "NPC R UpperarmTwist1 [RUt1]_Help"
            [0xabba44f4] Warning :   Extra root found in bone : "NPC Root [Root]"
            Root Node Name:L Shoulder_Expose
            Num Bones: 292
         Create Skins Filter 
            Created 6 mesh binding(s), 1 attachment(s)
         Create Animations Filter 
             Animation 
                Length: 2.000000
                Frames: 61
                Annotation: present
         Extract Motion Filter 
            Motion extracted using 61 samples
         Prune Types Filter 
            Removing hkxEnvironment ("Environment Data")
            Removing Resource Data completely.
            Removing hkaAnimationContainer ("Animation Container")
         Write to Platform Filter 
            [0xabba9833] Warning : Could not create file [C:***********************\Mesh.HKX] to write to. Aborting.
        Finished in 00:00:00
     --- Configuration: Animations --- 
         Create Skeletons Filter 
            [0xabba44f4] Warning : Skeleton "NPC Root [Root]" has multiple roots.
            [0xabba44f4] Warning :   Extra root found in bone : "Camera3rd [Cam3]"
            [0xabba44f4] Warning :   Extra root found in bone : "NPC L Item01"
            [0xabba44f4] Warning :   Extra root found in bone : "NPC R Item01"
            Root Node Name:NPC Root [Root]
            Num Bones: 242
         Create Animations Filter 
             Animation 
                Length: 2.000000
                Frames: 61
                Annotation: present
         Extract Motion Filter 
            Motion extracted using 61 samples
         Spline Compression Filter 
             Compression 
                Number of blocks: 1
                Size of largest block (PlayStation®3 SPU): 27696 bytes.
                Original Size: 944768 bytes. Compressed Size: 27684 bytes.
                Compression Ratio: 34.126862:1.
         Footstep Analysis Filter 
         Prune Types Filter 
            Removing hkxEnvironment ("Environment Data")
            Removing hkxScene ("Scene Data")
            Removing Resource Data completely.
            Removing 1 skeletons.
            Removing 0 mesh attachments.
            Removing 1 Transform and 0 Float  identity binding index arrays from 1 bindings(s)
            Removing 0 skins.
         Write to Platform Filter 
            Wrote layout for [Tagfile] to file [F:\0Animations\hkxcmd\idle-export.XML].
        Finished in 00:00:00
     --- Configuration: Scene Test --- 
         No PlatformWriter filter found. No HKX data will be saved for this configuration. 
         Create Skeletons Filter 
            [0xabbab4a4] Warning : Could not find node for bone: 'skeletonBeast.nif'
            [0xabbab4a4] Warning : Could not find node for bone: 'Camera02'
            [0xabbab4a4] Warning : Could not find node for bone: 'NPC'
            [0xabbab4a4] Warning : Could not find node for bone: 'Camera01'
            [0xabba44f4] Warning : Skeleton "CharacterBumper" has multiple roots.
            [0xabba44f4] Warning :   Extra root found in bone : "NPC Root [Root]"
            Root Node Name:CharacterBumper
            Num Bones: 100
         Create Skins Filter 
            [0xabba65a9] Warning : Skipping incomplete binding - skin references the following bones which are not in the rig: 'LeftWing1' 'LeftWing2' 'LeftWing3' 'LeftWing4' 'LeftWing5' 'RightWing1' 'RightWing2' 'RightWing3' 'RightWing4' 'RightWing5'
            Created 5 mesh binding(s), 1 attachment(s)
         Create Animations Filter 
             Animation 
                Length: 2.000000
                Frames: 61
                Annotation: present
         Extract Motion Filter 
            Motion extracted using 61 samples
         Preview Tool Filter 
        Finished in 00:00:02
     --- Configuration: SKELETON MAP --- 
         Create Skeletons Filter 
            [0xabba876f] Warning : Couldn't open file: 'C:****************************\.\XPMS RIG 1.6c Full Bone.txt' in CreateSkeleton Filter
            [0xabba89d8] Warning : No bones or float slots in this skeleton.
         Prune Types Filter 
            Removing hkxEnvironment ("Environment Data")
            Removing hkxScene ("Scene Data")
            Removing Resource Data completely.
            Removing 0 animations.
         Write to Platform Filter 
            Wrote layout for [Win32 MSVC] to file [.\XPMS 1-6 Full bone Havok.XML].
         View XML Filter 
        Finished in 00:00:00

 
Version and picture of my Export Motion panel, they do seem different then what you described but maybe it's alternate settings besides the havok tools somewhere. Hopefully comparing version will help figure this out.

tumblr_o3ccl1FU8x1ubnr1mo3_r1_1280.jpg

 
Please send me the file though, most likely I can figure out what's happening here or at least narrow some things down.
Link to comment

 

Hi PIpDude,

Thanks for the XML upgrade awesome, going to try it out now. I think your note on Papyrus trauma is most likely right on, thanks for the advice on that. Another question I have when you have time, kind of a detail but in having the actionscript check for SexDentity it would have to confirm that a file exists, in a specific folder. With my current knowledge I would make a text document placeholder that just had one character like "1" for the script to see to confirm if it existed. I wonder is there an alternate to do this, like a way to see files that are in a folder, or get a list of files in folder without loading for example?

 

Only Actionscript 3 has an API for dealing with files. And even then it's only available when using the AIR runtime.

 

You should be able to get feedback from LoadVars. If .load references a missing file it's supposed to return false. Though, it seems like that functionality can be iffy. When I was testing before, it seemed like it would return "true" even if the file didn't exist...

 

 

For 3DS: 

 

I'm vague on what the warning mean you are receiving potentially sounds like it has something to do with moving specific bones and controllers including those bones at the same time but I've never encountered that before. The console does print pages of warning even when it works I've included my output below. Can you message me your 3DMax file? I'll most likely be able to figure it out if I can see. 

 

Ok. Will msg the file.

 

 

Version and picture of my Export Motion panel, they do seem different then what you described but maybe it's alternate settings besides the havok tools somewhere. Hopefully comparing version will help figure this out.

tumblr_o3ccl1FU8x1ubnr1mo3_r1_1280.jpg

 

There's a difference. My version is: "2013.1.0.1 (2013.1r1)". Seems like that could be the problem...

 

 

 

A quick question also PipDude, I feel this way a lot when scripting. I wish there was a way I could just tell a script, "Do this whenever, it's not the most important thing but try to get around to it..." It feels bursty, like I'm relying on certain moments to unleash all this data at once, and then periods of time with nothing. In implementing systems to stream it, the system might cause more strain then the load itself. Is there any kind of standard practice to deal with information that's not crucial but you'd like it loaded sometimeish. The clear thing would just be a timer that loads one thing at a time but is there a more straightforward way to convey to Actionscript things that aren't as urgent?

 

I built a simple load/function queue system (attached). It allows you to define delay and priority parameters. Then you just send load requests or functions in and it fires them in order of priority and staggered by a delay that you can adjust.

 

Here is the syntax for use:

import ActionQueue;

...

var actionQueue = new ActionQueue();
actionQueue.loadDelay = .5; // Delay to wait before starting next load in queue (in seconds).
actionQueue.actionDelay = .5; // Delay to wait before running next function in action queue (in seconds).

// "load": loads xml files and sends them as a parameter to the callback function.
// The third parameter is priority. If priority is omitted, it defaults to 10. Lower numbers loaded first EXCEPT for first load command sent which always loads first.
actionQueue.load("../../../yourXML_A.xml", Delegate.create(this,yourCallBackFunction)); 
actionQueue.load("../../../yourXML_B.xml", Delegate.create(this,yourCallBackFunction), 5); // Priority 5.

// "action": runs functions staggered by the actionDelay time.
// Second parameter is the scope (where the callback function is). That is usually "this".
// The third parameter is priority. If priority is omitted, it defaults to 10. Lower numbers run first EXCEPT for first action command sent which always runs first.
// The remaining parameters are just optional arguments to be sent in with the callback function if arguments are needed.
actionQueue.action(testAction1,this,10);
actionQueue.action(testAction2,this,10,"do","re");
actionQueue.action(testAction3,this,5,"mi","fi","fo");

ActionQueueV1.zip

Link to comment

take free to ask. i know its possible to make a little move on some animation (such as change position of hands in some animations) i get the function, the key ,etc.. but still i cant make it work...can you tell me specifically wich animation allow this ? i have try the standing 1 , standing 2 and all the "pre-start" animation (such as knee for BJ and else begining of animation serie)

Link to comment

Sorry to bother y'all again. I got it to work, however i believe i overwrighted certain things from SOS, so everytime dom strips it crashes the game. Any way to fix this?

 

 

EDIT: Even taking off armor normally causes the game to crash.

 

I would help you but you keep asking questions that do not really belong in this topic. First was about FNIS, now its about SOS and skeleton issues. Read description on those mods and every mod you are interested in on how to properly install them and you will avoid 99% of your issues.

 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use