Jump to content

OSex+ The Greatest Virtual Sex Ever


Recommended Posts

Posted

 

 

 

How exactly do I enable the wizard animations? I'm curious as to what they look like.

 

From the first position (Standing Adore) select the "Let Go" option. From that next scene you can wizard sex. (It has it's own page tab)

 

 

I'm only seeing stripping options and the return to base position from the standing apart position.

 

I'm on the 5th demo version, upgraded from a clean save. Might be a bug on my end?

 

 

Hi Zone,

I'm almost certain this is a clean save problem. If you go the scene menu on the left. > Info > and hover over the Plugins option an overlay will show up. You'll see a list of possible plugins and stuff in developent BUT if they are installed you'll have a division on the overlay labeled as "INSTALLED" that should list 4 or 5 plugins. 

 

I'm assuming it will not show any as installed and that's why you aren't seeing wizard sex. Try from a fresh game or at least from a definitely pre osex save to see if this problem still happens to narrow it down.

 

As a note some of the new systems I got from making the API I believe will make a majority of clean save problems go away this will hopefully become less of an issue in the future.

 

I gave it a shot on a new save, but it didn't appear there either.

Posted

There's an OSex API on the way?  Wow, that's exciting stuff!  The stuff sexy dreams are made of.

 

Thanks!

Hey Fox,

 

Is there any chance your going to make a Amourous Adventures, that will accomadate Osex, I run your nexus version now along with Osex, without Sexlab, and the results are Ok, but not as satisfying, as I think they could be if you were to have an Osex version.. 

 

Thanks... Ranger....

Posted

Hey Fox,

 

Is there any chance your going to make a Amourous Adventures, that will accomadate Osex, I run your nexus version now along with Osex, without Sexlab, and the results are Ok, but not as satisfying, as I think they could be if you were to have an Osex version.. 

 

Thanks... Ranger....

  

 

 

There's an OSex API on the way? Wow, that's exciting stuff! The stuff sexy dreams are made of.

Thanks!

Does this mean Amorous Adventures is geting updated to use 0sex? If yes then thats really exciting and sexy dreams are comming true. :D

An OSexy version of Amorous Adventures is easily the most asked about thing i see on LL and on the Nexus. And why wouldn't it be? OSex is like a lovers ballet. Poetry in motion.

 

If an API becomes available for me to hook into you can rest assured making an OSex version of Amorous Adventures will be a top priority. For Kodlak!

 

I'll be watching this space. And many thanks to Ceo for this work of art.

Posted

 

Pip I thought you might like to see this, maybe already know but it's a pretty big break through for me and opens up a ton of doors for API. Basically would allow API without mastery to change or adjust anything at all in a scene to initiate it and also tweak it during play.

 

I got this to work by finding that widgetID is a property auto made by the WidgetBase and plugging that number and some additional stuff successfully replaced  WidgetRoot 

 

---------

 

int OSAID = oi.WidgetID
 
UI.InvokeString("HUD Menu", "_root.WidgetContainer." + OSAID + ".widget.debugOutput", DID THIS TEST WORK?")
 
which can be called anywhere with no mastery. I can make a series of global functions with that simplify interacting with OSA for developers to do whatever they want and it could come from a dialogue fragment or a full script.
-----------

 

 

Cool. That should make it more clean on your side of things.

 

If you make some functions that imitate the calls in the Sexlab API, it would be pretty easy to make a Sexlab-to-OSex proxy script that would allow people to have OSex handle the scenes from mods that were originally designed for Sexlab.

Posted

You might want to take a look at this, CEO.  Last thing in my papyrus logs before a CTD on game load:

 

[05/25/2016 - 05:58:39AM] Error: Unable to call Dispel - no native object bound to the script object, or object is of incorrect type
stack:
[Active effect 3 on  (0001A675)]._0SA_ActraCom.Dispel() - "<native>" Line ?
[Active effect 3 on  (0001A675)]._0SA_ActraCom.OnLoadGame() - "_0SA_ActraCom.psc" Line 37
[05/25/2016 - 05:58:39AM] Error: Cannot access an element of a None array
stack:
[0SA (59000D62)]._0SA_0SA.onRefreshActions() - "_0SA_0SA.psc" Line 153

 

Posted

 

You might want to take a look at this, CEO.  Last thing in my papyrus logs before a CTD on game load:

 

[05/25/2016 - 05:58:39AM] Error: Unable to call Dispel - no native object bound to the script object, or object is of incorrect type
stack:
[Active effect 3 on  (0001A675)]._0SA_ActraCom.Dispel() - "<native>" Line ?
[Active effect 3 on  (0001A675)]._0SA_ActraCom.OnLoadGame() - "_0SA_ActraCom.psc" Line 37
[05/25/2016 - 05:58:39AM] Error: Cannot access an element of a None array
stack:
[0SA (59000D62)]._0SA_0SA.onRefreshActions() - "_0SA_0SA.psc" Line 153

 

 

Thanks Migal,

My Skyrim can't output a debug log for some reason (I tried everything) so this helps a lot. I believe this is the crash a few other people have been having. Any idea what it means?

 

Event OnLoadGame(string c, string a, float t, Form x)
Self.Dispel()
EndEvent
 
is the first one throwing up an error. It removes all active spells from actors since the UI would have been reset and have no idea what's going on. I assume it's trying to dispel from an actor that has been unloaded, or a template actor like a guard that's completely gone, or dead maybe and that's what causing the problem.
 
1. I can wrap it in a "if actra" but I believe the spell would keep existing then since it's surviving in that case without the actor it's attached to being present.
2. Maybe flagging "death dispel" on all the actra spells would get it.
3. I think there's some kind of actor event OnActorUnload or something like that when their 3D gets unloaded I might be able to use that to dispel this early and avoid that.
 
Creationkit.com has been messed up for me since the FO4 update and I can't find a lot of the articles for some reason so I'm having a hard time checking.
 
I'll look into the second one also hopefully it's the top one that's causing the problem as the 2nd one is a little more mysterious.
 
 

 

 

Pip I thought you might like to see this, maybe already know but it's a pretty big break through for me and opens up a ton of doors for API. Basically would allow API without mastery to change or adjust anything at all in a scene to initiate it and also tweak it during play.

 

I got this to work by finding that widgetID is a property auto made by the WidgetBase and plugging that number and some additional stuff successfully replaced  WidgetRoot 

 

---------

 

int OSAID = oi.WidgetID
 
UI.InvokeString("HUD Menu", "_root.WidgetContainer." + OSAID + ".widget.debugOutput", DID THIS TEST WORK?")
 
which can be called anywhere with no mastery. I can make a series of global functions with that simplify interacting with OSA for developers to do whatever they want and it could come from a dialogue fragment or a full script.
-----------

 

 

Cool. That should make it more clean on your side of things.

 

If you make some functions that imitate the calls in the Sexlab API, it would be pretty easy to make a Sexlab-to-OSex proxy script that would allow people to have OSex handle the scenes from mods that were originally designed for Sexlab.

 

 

Pipdude do you have any ideas to go about this. I get what you're saying but to help me put a plan together.

 

I believe the Sexlab API involves extending the sexlab script and calling a function directly from it. 

 

SexLab.startSex

 

Another version similar to this where it's followed by turning off or on redressing and picking the animations etc.

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

 

You're suggesting making a function that's basically interchangeable so developers would just change SexLab.startSex to OSA.proxyStart or do you propose mimic the function entirely in name as an optional download so it connects directly with no modification? The one major wall is that OSA launch is more of a launch any mod in OSA kind of launch so would need more specific information the module but I guess in this case it wouldn't matter and the proxy could just call OSex itself with that function if I made a specific function just to call OSex hidden behind that name.

Posted

CEO do you have physicaly created folders like this:

 

C:\Users\username\Documents\My Games\Skyrim\Logs\Script

(This is where your logs should show up)

 

C:\Users\username\Documents\My Games\Skyrim

(This is where Skyrim.ini is)

 

All you have to do is add this to Skyrim.ini

 

[Papyrus]
fPostLoadUpdateTimeMS=1000.0
bEnableLogging=1
bEnableTrace=1
bLoadDebugInformation=1

 

If using MO then do it inside MO skyrim.ini (Tools-> ini editor -> Skyrim.ini)

 

You probably tried some of that already but doesnt hurt to check again.

 

 

About API and start function: I think you should create your own function for starting 0sex scenes giving it same power that sexlab function has or more. (example from Amorous Adventures: start a scene with player and npc while 2 other npcs are having sex).

Then when that is working create function with same name as sexlab start one and convert it to 0sex start one (or like pipdude said mimic it) if possible. You could make ini setting for user to decide what framework to use.

 

This way sexlab mods no longer updated would be able to use 0sex instead, while new mods and updated ones could go straight for original 0sex start.

Posted

 

Hi Kinky,

Thanks I double checked now to make sure on the files and it's exactly what I have. I use Wrye Bash to manage mods and have 3 different Skyrim installs on different drives etc so I think either my set up is causing confusion or Wrye Bash is putting it someplace secret I'm not aware about.

 

I made a super easy version and another a little more complex for triggering any OSA module and setting custom flags. None of these will require mastery of OSA, and the scripts don't need any special treatment at all to call. They are global functions so they literally just be called at any time in any kind of script. It will let you know if OSA isn't installed so you can adapt your scene to something else.

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

 

 

For the super easiest start I added this function in it's own little script. 

 

OSex.start(Fione, Guy)

 

it will return false if the actors aren't acceptable or if the OSA UI never became active, (if it's not installed etc.)

it can take startScene= and loc= also  if you want to set a different scene or pick what actor/place it starts on. Location by coordinates won't be in the demo but I'll have it by launch)

 

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

 

The point of OSA though is to generate custom API for any module that is installed so there's a more serious version that can call any developers module for OSA and let's you pick flags you want to customize. (It's not that much more serious just I thought the very simple one might be more appealing to people without a lot of papyrus. Developers can copy my mini OSex function above also for the same functionality.

 

string[] newScene = osa.makeStage()
    osa.setActors(newScene, actorArray)
    osa.setModule(newScene, "0Sex", "0MF|Sy6!Sy6|Ho|St6RevCud+01T180", 0)
    osa.start(newScene)

 

Make the stage > set the actors > set the module+scene > (Set flags in here) > start the scene

 

Don't be intimidated by this part: "0MF|Sy6!Sy6|Ho|St6RevCud+01T180" that's just my OCD scene ID naming style. That's the standing scene where the sub is facing away and turns toward the dom.

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

 

After looking into it more I'm not sure I can make an intercept for sexlab since scripts that use it are wired into SexLab by mastery+script extended so the only option would be to literally overwrite the script with a redirect which could get weird / piss people off. Most likely developers will just have to adapt their script or people will have to make patches if they want to 0s3ksy. If the will is there it should be relatively quick with a word search to replace in the OSA api since it's handled and triggered in relatively the same way. Would just be a matter of copy pasting over a few lines.

Posted

Is there a way to change the scaling? The mouths don't line up during the kissing animations or oral animations. It's just a little bit off but the animations are thrown off.

Posted

 

 

 

[05/25/2016 - 05:58:39AM] Error: Unable to call Dispel - no native object bound to the script object, or object is of incorrect type
stack:
[Active effect 3 on  (0001A675)]._0SA_ActraCom.Dispel() - "<native>" Line ?
[Active effect 3 on  (0001A675)]._0SA_ActraCom.OnLoadGame() - "_0SA_ActraCom.psc" Line 37
[05/25/2016 - 05:58:39AM] Error: Cannot access an element of a None array
stack:
[0SA (59000D62)]._0SA_0SA.onRefreshActions() - "_0SA_0SA.psc" Line 153

 

 

Thanks Migal,

My Skyrim can't output a debug log for some reason (I tried everything) so this helps a lot.

 

 

The Skyrim.ini Papyrus section lines Kinky referenced, I had to put mine in the Skyrim.ini in my Skyrim/data folder rather than in my My Games/Skyrim folder before I started seeing new logs in My Games/Skyrim/Logs.  This is not standard, but I had to do it or logging wouldn't work.

 

I believe this is the crash a few other people have been having. Any idea what it means?

I believe it means one of two things. Either a MagicEffect is trying to be dispelled on Null (no actor or object) or the actual MagicEffect form does not yet exist in the game at that load point. I suspect the former more than the latter.

 

Event OnLoadGame(string c, string a, float t, Form x)

Self.Dispel()

EndEvent

 

 

is the first one throwing up an error. It removes all active spells from actors since the UI would have been reset and have no idea what's going on. I assume it's trying to dispel from an actor that has been unloaded, or a template actor like a guard that's completely gone, or dead maybe and that's what causing the problem.

I'm wondering how it knows which actors need dispelling? What if no actors need dispelling?

 

1. I can wrap it in a "if actra" but I believe the spell would keep existing then since it's surviving in that case without the actor it's attached to being present.

I'm thinking ActiveMagicEffects don't exist without an actor or other object to which they are applied. I mean, yes, the effect (and its causing spell) exist as forms in the game, but they don't exist as instances without being applied to something. It's similar to Actor vs. BaseActor. A BaseActor cannot be in the game, but it can be used as a template for an Actor, which can be in the game.

 

2. Maybe flagging "death dispel" on all the actra spells would get it.

I can guaranty it isn't being caused by dead actors. I tested for it. Maybe custom followers that were uninstalled or moved around in the load order?

 

3. I think there's some kind of actor event OnActorUnload or something like that when their 3D gets unloaded I might be able to use that to dispel this early and avoid that.

It may be that an actor's 3D being unloaded because it is in another cell and not cached causes the problem, but I would be surprised if that were the case. Testing with my own mod over the years indicates everything that was supposed to happen to an unloaded actor via Papyrus or AI packages would take place once their 3D was loaded, barring gametime exclusion (ie, a package that should already be finished will not fire).

 

I've probably missed an explanation somewhere, but I'm wondering why you need to dispel anything during game load. Is it because of the possibility that a game save is performed while actors are under the influence of OS and you don't want them to still be under than influence when the game is reloaded?

Posted

 

 

 

Not sure what could be wrong since i never used wrye bash. But instead of having 3 skyrim installs it would be lot easier to have one install and 3 MO profiles (and working papyrus logging).

 

For sexlab stuff is it possible to create something like:

Event Sexlabstart()

            If Sexlaboverride==1 (inside ini)

                       prepare and start 0sex

            else

                      continue with what sexlabstart does

            endif

Endevent

 

 

Your functions for osex.start() and osa.start() seem simple even to me.

I ve already seen that "0MF|Sy6!Sy6|Ho|St6RevCud+01T180" is folder structure that you have followed by last part of animation name you are starting +01T180.

 

So in this case you would want a scene to start animation located here:

 

D:\Games\Mod Organizer\mods\0Sex1.08D5\meshes\0SA\mod\0Sex\anim\0MF\Sy6Sy6\Ho\St6RevCud

 

And file loaded would be: 0Sx0MF_Ho-St6RevCud+01T180_0.hkx

 

Posted

Working on 5 different MO profiles, works perfectly with and without HDT Pussy + Collisions (by HeroedeLeyenda). Had some problems after generating UUNP Special body - solution was to re-run FNIS.

Works perfectly with 378 mods, Wrye Bash, Merge Plugins (left it unmerged tho).

 

Awesome job, thanks!

Posted

 

Pipdude do you have any ideas to go about this. I get what you're saying but to help me put a plan together.

 

I believe the Sexlab API involves extending the sexlab script and calling a function directly from it. 

 

SexLab.startSex

 

Another version similar to this where it's followed by turning off or on redressing and picking the animations etc.

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

 

You're suggesting making a function that's basically interchangeable so developers would just change SexLab.startSex to OSA.proxyStart or do you propose mimic the function entirely in name as an optional download so it connects directly with no modification? The one major wall is that OSA launch is more of a launch any mod in OSA kind of launch so would need more specific information the module but I guess in this case it wouldn't matter and the proxy could just call OSex itself with that function if I made a specific function just to call OSex hidden behind that name.

 

 

Sexlab has a script that contains the API. I would copy that and remove the contents of all functions. Then replace the contents with references to equivalent scene control functions in OSA. I would leave the script name, functions, parameters and the way it runs (on a Quest I assume) all the same so that mods using the proxy wouldn't know the difference. You might have to fill in some extra functionality here and there to get it to work in every scenario. But, the main uses should be easy right out of the gate.

 

 

After looking into it more I'm not sure I can make an intercept for sexlab since scripts that use it are wired into SexLab by mastery+script extended so the only option would be to literally overwrite the script with a redirect which could get weird / piss people off. Most likely developers will just have to adapt their script or people will have to make patches if they want to 0s3ksy. If the will is there it should be relatively quick with a word search to replace in the OSA api since it's handled and triggered in relatively the same way. Would just be a matter of copy pasting over a few lines.

 

 

I suppose it's possible that someone could be bothered by an over-write approach. But, I don't see why. You would only be creating more options for modders and it would not interfere in any way with people that wanted to use the original arrangement. If modders are going to stick with an open source mentality, they should be ok with people forking things and finding ways to integrate with existing work.

 

You could always just ask the authors if they are ok with it. And I would certainly package the proxy separately from the main 0S mod. That way it's clear that people are downloading it to be used for that purpose and don't get confused if its packaged in with 0S and unexpectedly interferes with other peoples mods.

Posted

OSA 1.08 DEMO 6

 

I patched the 1.08D post with this demos fixes.

http://www.loverslab...-wip/?p=1551376

 

I wouldn't bother downloading this if you are on Demo5 unless you want to help me test the new stuff but most of it is back end for the API without a lot of features over what Demo5 has.

 

This will be the final OSA demo before launch. However I will do version the day before launch in case anyone is around that wants to help me make sure whatever I do between now and then works fine. 

 

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

 

- The OSex navigation text can be translated. (Applies to any developers module nav text). This will apply to Navigation and Roulette scene menus but doesn't yet.

 

OSA has a lot of text and the tone of it can define the experience. If anyone is translating the OSex nav text and wants me to include it in the main download then thank you very much for helping me. I ask that you please keep the word tone and feel of the descriptions in the spirit of OSex as much as possible in the translated language but if you want to take an entirely new spin on it you're welcome to release it as a translation I just want to keep the inhouse files that come with the initial download in my vision for OSex.

 

-Note for testers: I had to redo all scene text to make this work so if in any location you see it show up as empty or "Undefined" or the He/Her/His is wrong please let me know so I can fix this. Another thing to check for is if the speed text is displaying correctly for speeds of 1. 1 thrust per second as opposed to 1 thrust(s) per second. 

 

- Menus relating to weapons should work the same as other equipment now. Added some new items etc. to the menus also and some new ESGs that you can get icons to show up and have the menu system process them at least.

 

- Profile should now work on the player character also.

 

- Equipment put on by OSA should have it's enchantments still intact. (A bug with prior versions)

Thanks Migal for finding this out and fixing the script

 

- This is what the script does when you try to have sex with chickens now:

 

Cavaliers_Thunder_Basketball__ctnews@chr

 

osa.isAllowed script should block all unintended actors that used to result in crashing the scene.

I'll need tests to make sure nothing is getting by this check.

 

Thanks to SF for making this all work.

 

- Redressing is back. 

Not fully, the actors are not able to go from standing to sitting with a transition like they used to and the timing isn't exact so they might idle a second or two between animations. This will all be fixed for launch what's important is that it's functioning). I'm aware the animations are not complete yet / limited in some situations.

 

- ESG exclusion slots should now work.

If you don't want your SOS, Havok Object, or wig to get stripped. Exclusion only prevents Full Strip from removing items. You can adjust this in the esg.xml

 

- OSex and OSA now have an API that outside developers can use. I also cleaned up the script a lot and tried to make it more resilient to needing clean saves.

This came with a lot of changes to the script and is the main thing I want to test here today so I have time to fix / revert if it doesn't go as planned before launch. The API is fairly brief at the moment but can get scenes started, I will work on new features but also please remember that I'm an active developer and the OSA script is very adaptable so I can add in whatever features you might need just talk to me.

 

-  OSA is now an .esm

As a reminder in almost any case you don't have to master OSA.esm. I did this for one reason:  For sound form packs. If someone was releasing a new sound pack but wanted some of the files to be based on a vanilla pack they can do so now without having to make a ton of copied forms.

 

-  OSA is packed with latest PapyrusUtil. Feel free to overwrite this or not when an error comes up it shouldn't matter. It's packed with files I downloaded off the nexus today so it is current.

 

 

OSA + OSEX API

 

OSA API requires no mastery or extending of OSA or it's scripts. As long as OSA.esm is active in the users game the scenes will begin. These can be called both from a Papyrus Script or Fragment at any time.

 

OSEX SPECIFIC API:

 

 

 

OSex.start(actorDom, actorSub)

 

These additional parameters are not fully tested but should work:

 

You can add a non-default startScene like so:

OSex.start(actorDom, actorSub, startScene="0MF|Sy6!Sy9|Ho|St9Adore+01T180")

- Don't be intimitdated by the long sceneID please, that's my OCD naming style for scene IDs. In game from the info menu you should be able to see the ID of the current scene. It's a little hard to get this for transition scenes so I will make the scene info panel also show the last scene you were on as well. Case sensitivity does matter here.

 

You can define the location of the scene:

OSex.start(actorDom, actorSub, Loc="1")

Will make the scene start on the location of the actorSub in this case. (The 2nd actor, 0 would start it on the first)

This will also take coordinate data soon in the future but doesn't yet, if you want a scene to occur in an exact spot in a house for example.)

 

 

OSA API

 

OSA is meant to be an animation framework that any animator can add scenes to. The OSA API makes a custom API for any module installed. It also will allow additional scene flags and parameters to be adjusted so it has more power then using the basic OSex.start also.

 

1. Put your actors in an Array (I'll make a function that does this automatically also)

 
Actor[] actro = New Actor[2]
actro[0] = domActor
actro[1] = subActor
 
2. Set Up the scene and launch it
 
    string[] newScene = osa.makeStage()
think of newScene like stacking cups up. It's a string array that's automatically made and you just keep passing it into each step along with additional data.
    osa.setActors(newScene, actro)
Plugin newScene along with your actor Array
    osa.setModule(newScene, "0Sex")
Type in the name of the module here. You can also define startScene and loc(ation) like in the basic start function
*Flags will be set in here
 
    osa.start(newScene)
Just put newScene back into here and the scene will begin
 
OSA is actionscript based hence the CASE of the letters does matter. When copying names of modules, scenes or referencing anything done in OSA for papyrus or OSA developers please pay close attention to the case of what you are copying as a majority of the time it will effect the outcome.
Posted

 

OSA 1.08 DEMO 6

 

I patched the 1.08D post with this demos fixes.

http://www.loverslab...-wip/?p=1551376

 

I wouldn't bother downloading this if you are on Demo5 unless you want to help me test the new stuff but most of it is back end for the API without a lot of features over what Demo5 has.

 

This will be the final OSA demo before launch. However I will do version the day before launch in case anyone is around that wants to help me make sure whatever I do between now and then works fine. 

 

Thanks for the update. What features are missing comparing to demo 5?

Posted

 

 

Nothing missing from prior 1.08s. I just didn't add much new tangible stuff this time. Mostly fixes and API, some esg icons/settings and redressing is the only new thing but it's incomplete in implementation and even when it is totally done the animations need some further work to be really complete.

 

Posted

Using non english version of skyrim and getting freeze on start. Copy and rename things in "Translate" folder didnt help

 

I'm investigating this still. It might be something related to a clean save. Can you please try it from a completely new game or a save that definitely has never had OSex installed to test.

 

I have confirmed users on non-english clients getting it to work so it mostly likely is related to the save itself but I'm checking things out and running some tests to see what I can find.

 

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

A note on the translations:

 

It's divided up into a few sections:

 

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

For OSA Menu's and general stuff:

 

Data\meshes\0SA\_0S\Translate\_english.ini

Data\meshes\0SA\_0S\Translate\esg_english.ini

The main one is for menu names, the second one is for clothing names. 

 

The english versions for these serve as a back up so they have to always be there. If the game can't find the SkyrimClient language files and it also can't find the english files for a back up it will crash.

 

So let's say on an ITALIAN game client. The folder would look like this 

_english.ini

_italian.ini

esg_english.ini

esg_italian.ini

 

It can take more also just the _english has to always be present:

_english.ini

_italian.ini

_czech.ini

_japanese.ini

esg_english.ini

esg_italian.ini

esg_czech.ini

esg_japanese.ini

 

etc.

 

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

For translating a module like OSex:

 

Data\meshes\0SA\mod\0Sex\translate\_default.ini

Data\meshes\0SA\mod\0Sex\translate\_english.ini

 

The default has to always be present. It serves as a fallback in case new scenes are added and the translator isn't able to right away make a translate patch to include. New languages would just be added on like _english but _default must always be there or the gme might crash. Default is in whatever the developers primary language is.

 

Data\meshes\0SA\mod\0Sex\translate\_default.ini

Data\meshes\0SA\mod\0Sex\translate\_czech.ini

Data\meshes\0SA\mod\0Sex\translate\_english.ini

Data\meshes\0SA\mod\0Sex\translate\_italian.ini

Data\meshes\0SA\mod\0Sex\translate\_japanese.ini

 

for example

 

 

To use a non-official skyrim language you have to type into the config.ini under languageOverride= "" but only use this if you speak a non-official skyrim language and the translation is available and installed. The translations naming would be the same as above just name the files with whatever you typed into languageOverride= "" (In lower case)

 

languageOverride= "martian"

example of what the OSex folder would look like at a minimum:

 

Data\meshes\0SA\mod\0Sex\translate\_default.ini

Data\meshes\0SA\mod\0Sex\translate\_english.ini

Data\meshes\0SA\mod\0Sex\translate\_martian.ini

 

 

Posted

Great work.

 

For the API description, I recommend posting it somewhere on its own page. Modders may not realize it exists if it's buried in this thread.

Posted

Great work.

 

For the API description, I recommend posting it somewhere on its own page. Modders may not realize it exists if it's buried in this thread.

 

Great idea PipDude thanks, I'll make a little webpage like I did in the past, it should be very quick and straight forward and can add flag functions as they become available.

 

Thanks also for your input on a cross API, I've started taking a look and it seems like it will be pretty easy to make and will most likely let OSex partake in almost any work that was done in the past. Once I get the flags adjuster running I imagine it will be able to take the parameters almost exactly especially if I made some bandaid groupings of stuff in a function to replicate what developers were asking for as closely as possible.

Posted
Event OnTPoseSpam()
        ;---------- new ----------
	Actra.PlayIdle(ResetRoot)
	if (Actra.GetSitState() > 2)
		Actra.MoveTo(Game.GetPlayer(), (40 * Math.Sin(Game.GetPlayer().GetAngleZ())), (40 * Math.Cos(Game.GetPlayer().GetAngleZ())), 0.0, abMatchRotation = false)
		Utility.Wait(0.2)
	endif
        ;-------------------
	debug.sendanimationevent(Actra, "OSA_TPose")
	utility.wait(0.1)
	TPoseSpam(FormID)
EndEvent

The goal is to get the NPC out of a chair prior to your measuring routine.  The added code should do that.  It will put the NPC directly in front of the player, standing up.  I realize this would have to be adjusted for multiple actors and I might need a different approach for laying down furniture such as beds, but I'd want to see if this works first.  Theoretically, you could also remove the "if (Actra.GetSitState() > 2)" and just run the ResetRoot and MoveTo on standing NPCs.  It should kill any animation they are currently running and hopefully reduce the number of times the spamming would be required (if it still needs to be spammed).

 

 

I'm still looking into this and appreciate this very much Migal. I haven't got around to including it yet I need some help understanding some things.

 

1. My trig sucks, can you explain the purpose of your angle adjustments and checks so I can apply this. Math.Sin.  Math.Cos and abMatchRotation

 

2. ResetRoot a kind of special animation? What does it do once applied, it sounds like it can even stop the animations that the game is enforcing play all the way through?

 

If so that could simplify the TSPAM event greatly. I'll do some tests myself on this further.

 

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

Relating to this I had a hell of a time making the lightning bolt coming from the ground effect, that you see in some Wizard Sex scenes, and also casting from their hands outwards. They all will have it just only the early one's in the chain do now.

 

Basically I wanted to place an object at a location tied to a math generated circle around the actor. The math behind this to generate XY coordinates seemed like it would require 20 lines of papyrus with tons of stuff and checks to pull off, plus my sin, cos and pi math are super weak. It's the kind of thing that could happen every second or two and would destroy papyrus most likely so I decided to screw doing it math based.

 

Now it's based on a bone node that I animate to spin around the actors. (NPC Item3 I believe) and the cast occurs from wherever that is towards the defined node of the actors body. Time consuming from an animating export point of view but the math just seemed to heavy and complicated even if I did invest enough time to clearly understand the math and implement it right.

 

It also had an effect on casting out of hands, like in the first scene of wiz sex where bolts go outward from their hands. I couldn't calculate the actors rotation well enough to place a targeting object at 90 and -90 degrees of the actor etc. it also becomes complicated because it always assumes they are at the 0,0,0 tpose and not their current animated postion. Those casts are also now done by putting another bone out there in the animation that is serving as the casting point or targeting point.

Posted

Beta6 fixes my problem with not detecting plugins. So far everything works fine, even on not clean save. Only issue I've found so far is on "Stop Stroking" during missionary folded - game freezes.

Posted

Beta6 fixes my problem with not detecting plugins. So far everything works fine, even on not clean save. Only issue I've found so far is on "Stop Stroking" during missionary folded - game freezes.

 

Thanks! I'm very glad to hear it's working as this last batch of changes is fairly major on OSA under the trunk, so it's a relief. Thanks for finding that error also I got it fixed. It's a typo that happened when I was translating the scenes. It's possible other scenes will crash as a result of this, let me know please if anyone has one of these crashes occur so I can fix the files.

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...