Jump to content

OSex+ The Greatest Virtual Sex Ever


Recommended Posts

 

 

One potential solution would be to treat those values as one string and then turn it into an array in flash and handle it there. Then the length would be nearly unlimited. In fact, you could probably move the majority of code into Flash for a performance gain (not to mention holding on to some sanity). Papyrus is really a very minimal language. A lot of the solutions/utilities people have built for it are really hacks to imitate functionality that languages like actionscript and C++ handle better.

 

It's impressive what modders have managed to make Papyrus do. But, I think it could be a much improved model (especially for the coders themselves) to put as much logic as possible into Flash (or skse plugin) and utilize Papyrus only for when access to the game is needed.

 

[One example of how this could be hugely beneficial to 0S is how wonky time is handled in Papyrus. I haven't tested to see if scaleform removed the timer APIs in Flash. But, if they didn't, that should be much more precise and flexible to use to handle sequential animations. I imagine that loops-over-time in flash are far less costly than the loops people use in Papyrus as well.]

 

 

I'm really fascinated with this idea, I didn't know it would be possible at all. Intercommunication seems like it would be a lot easier. I find that aliases and MCM quests feel like they eventually blow your game up or eventually cause problems so this project has been trying to keep all of the mod just in spell effects so nothing lingers once it's over but it makes it's hard for me to communicate between the spells. I imagine with something like you're describing communication would be very simple.

 

I could potentially put a lot of it into C++ and make a DLL for it instead, you do think that would help the timing of the loop? I've had an issue for a while accessing the example_plugin to compile a DLL for SKSE as I'm trying to do in 2015 visual studio and I can't get it to compile out of the box (it's looking for v120 toolset and I suck at things so  it's a bit beyond me). Actually you got me excited I'm just going to install 2013 today and try to make something basic to handle the loop to start and see if things improve.

 

For speculating do you think if I put the entire script into a DLL and had the game only input the actors it would increase performance a lot?

 

 

Yeah. Aliases, MCM, lack of multi-dimensional arrays, type casting being needed all over the place. Papyrus is just clunky beyond a certain threshold of complexity. A lot of what modders use it for, Bethesda devs would put into the game engine rather than deal with its limitations. Communication between various systems/scripts, data handling and iteration, etc. are all much easier in more complete languages.

 

I'm also new to C++. I poked around with the example plugin enough to get the basics in place and working. I seem to remember the same v120 toolset issue. I believe it was fixed by going through various packages and changing which toolset they use to an older one (I found the fix by googling the error message). But, I didn't end up going much further with that study than to get the example set up. I'm experienced with flash. So, for me, I would try to use that before diving back into C++.

 
[Forgot to answer your last question regarding performance increase: I don't know for certain because I haven't been using Papyrus long enough to fully understand what tasks are taxing in it. My reasoning is that you are just removing all performance "liabilities" by not using it. I know that this kind of data handling, looping, etc. is super light-weight work when run by Flash or C++. At the very least, if the performance gain isn't huge, it would at least be much easier to work with code. It would be nice and clean to have all the game logic tucked into a swf or dll and then limit the Papyrus to waiting for events and triggering animations or sounds.]
 

 

 

If you have a few minutes Pipdude and want to help me learn some. I just want to ask some things about my studies I've been doing and maybe you can help me understand. The documentation on UI is so anti the way I'm wired I have an incredibly hard time figuring out how to control it on the simplest level.

 

Here's what I've been able to do.

 

 

 

I'm calling from a:

Scriptname MenuExampleScript extends SKI_WidgetBase  
that's a script attached to a perpetual quest like an MCM
 
It's my understanding that you can take this out from needing to be persistent and put it in a script but I'm not sure how.
 
The script has in it:
 
String Function GetWidgetSource()
Return "0S_Overlay.swf"
EndFunction
 
Which loads up every time the game is closed and then I shut it with 
 
event OnWidgetReset()
RegisterForModEvent("WT_WTEST", "onWTEST")
parent.OnWidgetReset()
Shut()
endEvent
 
 
And then I shut it with 
 
Function Shut()
UI.SetBool(HUD_MENU, WidgetRoot + "._visible", false)
EndFunction
 

[/sPoiler]

 

I'm confused by a few things:

1. I don't feel I have control for example some basic things I'd like to do but can't figure out how:

"Launch Menu A Now" "Shut Down Menu A Now" "Launch Menu B Now" "Show Menu" "Close Menu" I can't  pull those things off reliably.

 

It just can only load when I start the game and chills until I set it's visibility. Do you have any ideas or guidance that could help me reign this in better? Is it possible to summon the Overlay when i need it. WTest is my attempt to trigger it from events that my script is sending which worked to an extent but it always opened the menu in pause mode instead of overlay mode which wasn't ideal.

 

The function that Returns my SWF I'm not calling and I'm not sure how to get behind that so I can make the call to pop the swf out when i want it for example. It seems to only trigger when the game is loaded and from that point I can only alter visibility.

 

2. is HUD_Menu a global thing meaning can only one swf be put in HUD_Menu at a time? If so is it possible to have access to a few overlays that I have control over unique to OS?

 

If I can get comfortable control over these basic points of the UI with these tasks I think I could potentially do what you are suggesting.

 

 

SKI_WidgetBase extends SKI_QuestBase which extends Quest. So, I believe that it needs to be a persistent Quest script. There could be a way to reconfigure those base scripts to stand alone without Quest. I haven't tried it. But, I suspect that if the SkyUI guys could have set it up without attaching to a Quest, they probably would have. There is likely something in Quest that it needs to work properly, maintain reference to the Flash files, to know when they become available or something. [Thinking this through more, I'm having some second thoughts. The part of the code that creates and loads a HUD swf doesn't seem to require anything special about Quest. It's only a few lines. The SkyUI scripts just do a lot helper tasks to make it easier to reference, reload states after save, etc. So, in theory, it can be done to load a custom HUD swf without needing the persistent Quest files/scripts. I think that the main tradeoff would be that it needs to be triggered by script to load. In other words, loading from a saved game wouldn't bring the HUD back until some script event is reached. That may not be a tradeoff for popup menu HUDs that don't need to retain states through saves.]

 

Numbered questions:

 

1. The way that I've set this up is to write something like this in the script extending SKI_WidgetBase:

 

function openMenu(String menu)
UI.InvokeString(HUD_MENU, WidgetRoot + ".openMenu", menu)
endFunction

Where "menu" can be "A" or "B" or anything for the Flash to reference. Then, I would handle which menu turns on within the Flash function "openMenu". Something like this:

function openMenu(m){
switch(m){
case "A":
menuA._visible = true;
menuB._visible = false;
initializeMenuA();
break;
case "B":
menuB._visible = true;
menuA._visible = false;
initializeMenuB();
break;
}
}

Add a reference to the SKI_WidgetBase script in the script you want to control the menu from and call the function like so:

yourWidgetQuestScript.openMenu("A")

The general advantage in that arrangement is that opening and closing menus usually involves multiple steps, initializing, etc. So, it's better to call a custom function in Flash rather than just setting the whole things visibility property off or on.

 

Regarding the swf part of your question, the way the HUD system is set up in SkyUI, it loads all widgets up front. It doesn't call and load them just when they open. Rather, it loads them and then expects that you code it in some way to hide itself and reveal itself when necessary. But, it remains loaded from startup. So, you don't need to do anything GetWidgetSource other than make sure its pointing to the right file and the file is indeed loading at startup.

 

2. No. The way that they set it up, it allows an unlimited number of widgets to load themselves when the game starts. Essentially, what SkyUI does is hijack the built in vanilla flash UI and loads any HUD swfs that register at startup into their own containers within the vanilla swf. It's loading multiple swfs into the master swf (which loads several of its own as well to make it more confusing).

 

So, you can definitely have multiple overlays that can work independently, at the same time, etc. You could make multiple SKI_WidgetBase quest scripts. One for each overlay. But, unless any of them really is a standalone that could be useful by itself, I would recommend putting multiple menus all within one HUD swf. Then just manage which one does what at certain times from within the flash code.

 

 

 

Link to comment

Is there a way to integrate this with SexLab or have the same animations for SexLab?

 

Not really. This mod is like sexlab its own framework but made in a different way. They both handle animations differently. While this mod has seamless transitions, sexlab jumps from stage to stage.

But sexlab mods could be upgraded to start and use 0sex animations.

 

Link to comment

 

The left UI buttons looking great... :)

 

Have tested the new 1.07c version. It works fine for me. No freezes no crashes... But one thing. If I start a sex animation, it starts with fullspeed. If I try to change speed, the animation stops and nothing happens anymore. If I change the animation it starts with fullspeed again, every time I change...

 

Greetings

Ly

About your problem with the animation speed, do you use any mod to bind hotkeys, like SKSE hotkeys or something like that?

 

Because I had such a problem once, and I took the hotkeys mod off, and fixed the problem, at least for me.

I don't understand why it doesn't work the mod seems to be frozen would i need a new install?

You need a clean save, with every update.

when i started , character enter each other. how can i fixed this animation problem?

Can you send a picture?

I've installed the 1.07c version and the MCM menu shows perfectly. How every, I pointed to a close enough NPC and pressed NP0, nothing happened. Can anyone help me with this?

It works fine in 1.6 versions. And do a clean save before updated

Did you do the super important step, mentioned by CEO, on the update sticky post?

 

Thanks for the hints. I found out I typed 00SEX instead of 0SEX so everything is not working...I fixed it and it works now :P

BTW, where can I find the new animation-path map for 1.07c? I can't find a way to play cowgirl and new doggy animation, there are so many hot keys to remember

Link to comment

 

 

 

Pipdude, it's all working, it's awesome I feel like I have complete control of this. I've done a bunch of tests and I can have the UI display whatever i want: any information in game I want, and I can have it store information like you suggested for the script and use it to communicate between the spells also. This is great.

 

I have to say thank you so much... it's a bit of a story of my life and you're my savior here basically. I work in visual designer in the arts but nothing involved with computers I had a hard time getting hired out of school, eventually put together a web page, took me a long time  even to assemble a  really simple one to try to get noticed. I wound up getting some work from it because someone liked the page which led to more people wanting web pages and then data bases, had no idea what i was doing people started wanting more complicated things, years banging my head on javascript completely frustrated etc, but making it somehow. Eventually it did fortunately escalate to doors opening up where I could just focus on other things that feel more natural to me. I've had to struggle with coding way more then i wanted, I might be the worst in the world at it, I'm just able to do a little because I've had to dabble a lot. Point is It  has always felt like I'm alone at it and if someone could just give me some help it would make a huge difference, so long story but you've been already such a big help, it's very nice to have things spelled out so clearly to help me understand this. Thank you! 
 
Here's my set up to see if you think this is right or the best way to go about itt:
The script that is in a quest launches the widget and holds a bunch of functions for communicating with the SWF.
 
I gave the MCM and the spell script:
 

_0SUI  Property OI hidden ;full property
     _0SUI function get()
        return Quest.GetQuest(OSUI as _0SUI 
    endFunction
endProperty
 
here's a test to example of it in use:
 
In the spell:
 
oi.whoisthat()
 
In the Quest Bound Script:
 
Function whoisthat()
Actor ActorRef = Game.GetCurrentCrosshairRef() as Actor
String zName = ActorRef.GetActorBase().GetName()
UI.InvokeString(HUD_MENU, WidgetRoot + ".openMenu", zName)
EndFunction

 
I guess next up is to figure out clicks and getting mouse control during the menu, I'm assuming the game would have to be paused somehow for that or a different kind of display opened besides Hud_Menu to freeze the game? This is a huge game changer though imo there is so much potential to improve things now.
 
----------------------------
 
On another note:  I finished initial documentation on SexDentity editing. The documentation isn't full but I'm not sure when I'll get back to it so if anyone is bored and wants to try to make some changes it's just a matter of messing with some numbers, or just wants to see how it's set up. A lot of the Documents in place are copies of each other so people can be more specific then I had time for. If you need to know the name of the map to edit you can click F6 to open developer menu then Report Actor > By Roll > Cycle and it will report their cycle maps. I caught an issue loading NPC identity while preparing 1.07D so in C you can only tweak the defaults (D will have NPC's loading custom data repaired.). There's most likely enough information up at there at the moment to get a gist for the pattern all the documents.
 
If you pay attention to the docs and check out squint you might notice my typos in the document block titles in 1.07c which most likely is what has been causing all the papyrus log errors. 
 
What I didn't fully describe was Reaction, which is triggered by an animation event all sex scenes have "Physical" it is the actors facial expression in reaction to thrusts and sex motions. In sounds: "Phys" is their impact sound pack which can handle collisions but also just impact and wetness sounds based on arousal, fields 100+ are used for some throat mouth sounds during blowjobs. PrimalVoice is their moans and Spank is their spank sound suite. 
 
tumblr_o2ubh0Gulw1ubnr1mo8_r3_500.jpg  tumblr_o2ubh0Gulw1ubnr1mo2_r1_500.jpg
 
tumblr_o2ubh0Gulw1ubnr1mo9_r3_500.jpg
Link to comment

Is there a way to integrate this with SexLab or have the same animations for SexLab?

Kinky is right there's no way they can really fit together. At best one could trigger the other and vice versa but it would be basically just handing the scene off. Sexlab has permission to use the animations in it so people could put them in but I think a lot of the effect would be lost.

 

 

 

BTW, where can I find the new animation-path map for 1.07c? I can't find a way to play cowgirl and new doggy animation, there are so many hot keys to remember

 

 

Hi tvsct,

I don't usually post the full documentation until after I launch on Nexus. Not the alpha's. I know it's been a long time but I usually have to set aside a few days to put them together and with the script not finished and changing a lot it's hard to invest time until it's complete and I have some breathing room. 1.07C should have all the help text in so you can at least navigate near where the new animations you've seen in gifs seem like they should be and follow the text. 

Cowgirl is a bit difficult to get to atm, there's a guide a few pages back that shows the exact key presses to get there.

Link to comment

I fast read some of the guides and its actualy amazing how much planning it probably took to figure out all that and then to write it and make it work. But now it makes lot of sense why release of 1.07D is delayed. :) Im just hoping my system will be able to handle all the features.

Link to comment

I fast read some of the guides and its actualy amazing how much planning it probably took to figure out all that and then to write it and make it work. But now it makes lot of sense why release of 1.07D is delayed. :) Im just hoping my system will be able to handle all the features.

 

Thanks Kinky 

and yes I had to rewrite the whole thing many times, it's been a lot of drafts on SexDentity I think the structure of the data is good now (possibly a bit excessive, there's only so much face you can get out of Skyrim but at least the options there if people want to get fancy).  I invested a bit of time in the default files for the basic SexDentity but they can go a lot further, I copy pasted a lot of the sections from others etc. if you have the wav files for it any custom npc  can have their own suite of up to 128 impact / penetration sounds and 128 moaning / sigh / pant that can be used wherever people want at various speeds, arousal levels or scenes.

 

The sexdentity in there has all been live and active since 1.07b so whatever your experiencing in game at the moment is taking the full effect of the script and that's including AI also whch I do have disabled but the calculations are still happening for it in the background. I think even if it's running poorly now that once it's cleaned up + bugs are gone + log errors fixed and a little more tweaking it will be a lot smoother then now. I'm devoted to making sure this runs well and it's been taking a while but I'm not going to stop until it's smooth.

Link to comment

 

 

Pipdude, it's all working, it's awesome I feel like I have complete control of this. I've done a bunch of tests and I can have the UI display whatever i want: any information in game I want, and I can have it store information like you suggested for the script and use it to communicate between the spells also. This is great.

 

I have to say thank you so much... it's a bit of a story of my life and you're my savior here basically. I work in visual designer in the arts but nothing involved with computers I had a hard time getting hired out of school, eventually put together a web page, took me a long time  even to assemble a  really simple one to try to get noticed. I wound up getting some work from it because someone liked the page which led to more people wanting web pages and then data bases, had no idea what i was doing people started wanting more complicated things, years banging my head on javascript completely frustrated etc, but making it somehow. Eventually it did fortunately escalate to doors opening up where I could just focus on other things that feel more natural to me. I've had to struggle with coding way more then i wanted, I might be the worst in the world at it, I'm just able to do a little because I've had to dabble a lot. Point is It  has always felt like I'm alone at it and if someone could just give me some help it would make a huge difference, so long story but you've been already such a big help, it's very nice to have things spelled out so clearly to help me understand this. Thank you! 

 

 

Very cool. Happy to hear that you got everything in place. You get the props here. You've been far more generous with your efforts. I'm just hoping to build up some karma with you to get help with the animation/3d side of things down the road. That's where I'm all thumbs. :)
 

 

Here's my set up to see if you think this is right or the best way to go about itt:
The script that is in a quest launches the widget and holds a bunch of functions for communicating with the SWF.
 
I gave the MCM and the spell script:
 

_0SUI  Property OI hidden ;full property
    MenuExampleScript  function get()
        return Quest.GetQuest(OSUI as _0SUI 
    endFunction
endProperty
 
here's a test to example of it in use:
 
In the spell:
 
oi.whoisthat()
 
In the Quest Bound Script:
 
Function whoisthatt()
Actor ActorRef = Game.GetCurrentCrosshairRef() as Actor
String zName = ActorRef.GetActorBase().GetName()
UI.InvokeString(HUD_MENU, WidgetRoot + ".openMenu", zName)
EndFunction

 

 

That's exactly how I set it up myself.
 

 

I guess next up is to figure out clicks and getting mouse control during the menu, I'm assuming the game would have to be paused somehow for that or a different kind of display opened besides Hud_Menu to freeze the game? This is a huge game changer though imo there is so much potential to improve things now.

 

Good question. I had completely spaced that because I use a gamepad and never mouse/keyboard it. I'll have to research a little to see what the options are. Pausing the game, for 0S does seem like it would be jarring. Maybe there is a way to trigger the mouse without a pause. If not, you might consider making selections via direction keys and space bar instead of mouse clicks. That would make it easy to enable gamepad control as well.

 

I'm looking forward to seeing what you come up with. I've been surprised that there isn't more custom HUD work and managing things in Flash. I guess getting it set up the first time is some effort and throws people off. Probably makes it look more complex than it is.

 

Side note: Scaleform removes the XML API from Flash. But, I just have a hard time looking at JSON data. So, I built my own XML parser so I can work with XML data. You may already know the JSON for 0S inside and out by now. But, if you're interested, you could consider using the parser and XML instead. To me, it's way easier to look at and edit the data side of things for a project like 0S with all kinds of variable sized lists, flags, etc. I just load an XML file as a string via PapyrusUtil, pass it into Flash and parse it into a multi-dimensional object array. It wouldn't take much to update the parser to allow it to modify and save the XML as well. [i'm not sure how the JSON reader you are using works. But, if it is reading/writing the data file(s) on a per call/write basis, that could be a source of performance knocks.]

Link to comment

Think maybe we should just scrap advanced mode entirely. Here's my proposal for feedback from the community:

 

tumblr_o2t2nvuXjp1ubnr1mo1_1280.jpg

 

Left Side of this image, notice the boxes, picture them slightly smaller. Now most scenes will only have 3-6 connections but for the sake of OCD let's say a scene has 10 paths on one modifier key for example alt 1 through 0 are all linked to travel. At a max if slightly smaller the left side could easily hold 10 keys.

 

Here's my vision.

 

What remains from Advanced mode is this:   ALT, SHIFT CTRL.

 

1. When you enter a scene pressing no keys the screen is clean

2 . If you press Left Alt (For example) the left side buttons appear showing what the DOM can do.

3. IF the dom has SHIFT or CTRL or UNDRESS etc. there will be small signifiers on the left side of the screen also that they are available.

4. The sub in this case would also get signifiers on the RIGHT of the screen if they can do things. Signifiers will be much more subtle then buttons just letting people know they can do other stuff too.

 

5. To navigate the buttons You hold ALT (in this case) to move on the dom side and press DPAD up down left right and it simply goes up and down the grid on press and you can stop at any box you want. I believe that we will most likely have to pause the game to enable mouse input and it might be kind of wonky like when you first open up race menu. Maybe not worrying about mouse input and having buttons you can dpad around on would be the best path.

 

Control will basically be this in summary: Enter a scene, notice the signifiers, open up the menu and use the dpad to navigate to what you want to do and select it.

 

In this concept I might leave "EZ-Mode" in still and have only it's UP down left right functionality working but only if a modifier is pressed most likely num 0 by default. So you can hold num 0 and dpad around quickly if you don't want to navigate the menu. Maybe leave certain things on space bar that are fun to have instant gratification on like spanks.

 

What do you guys think?

 

Some other potential here is Y/N dialogue mid scene where outcome can effect the sceen. Also for other aspects consider combat, you can have blade and soul style reaction things pop up as a result of moves you do, for example after a flying grapple you get a flash of a few buttons that you can respond to for further combo depending on skill, chance.

Link to comment

Oh this is sounding so great! Gonna wait a little longer to DL, but looks like you folks have things going the right way! Wish I could help, havent really gotten into this level of modding yet though... :(

 

 

In regards to what you just posted CEO, that sounds really cool! And yes please leave the space bar spanks! Please! But! Seriously, thats a great idea. Question though, would that mean a slight pause to select said illustrated choice? Or mabie Im not reading this correct.

 

Oh! I see! Its like hitting the alt+- key but onscreen bits instead! O.o! That IS a great idea!

Link to comment

 

Good question. I had completely spaced that because I use a gamepad and never mouse/keyboard it. I'll have to research a little to see what the options are. Pausing the game, for 0S does seem like it would be jarring. Maybe there is a way to trigger the mouse without a pause. If not, you might consider making selections via direction keys and space bar instead of mouse clicks. That would make it easy to enable gamepad control as well.

 

I'm looking forward to seeing what you come up with. I've been surprised that there isn't more custom HUD work and managing things in Flash. I guess getting it set up the first time is some effort and throws people off. Probably makes it look more complex than it is.

 

Side note: Scaleform removes the XML API from Flash. But, I just have a hard time looking at JSON data. So, I built my own XML parser so I can work with XML data. You may already know the JSON for 0S inside and out by now. But, if you're interested, you could consider using the parser and XML instead. To me, it's way easier to look at and edit the data side of things for a project like 0S with all kinds of variable sized lists, flags, etc. I just load an XML file as a string via PapyrusUtil, pass it into Flash and parse it into a multi-dimensional object array. It wouldn't take much to update the parser to allow it to modify and save the XML as well.

 

 

It's funny because now that you showed me the way it's simple but it was daunting as fuck with the limited access to tutorials and example plus the fact that you can't see the compiled side of the flash... More so your example is incredibly simple to setup and very easy to practice on and learn on. If the exact thing you described was packed up in a zip I'm sure you would see a lot more UI. it's awesome there's so much potential. I guess flash is kind of a pain in itself also though to use.

 

Of course on the animations Pipdude I'd be happy to help I know you were asking me about it a while ago and I'm curious how it went. You mentioned you were waiting on the FO4 CK what kind of projects do you have in mind? 

 

Yes on the XML parser absolutely I would most likely need help understanding getting it working.Let me try it out please? It sounds like I'd have to convert the documents to XML but that wouldn't take so long, and I'm sure there's ways it can benefit the project. To make sure I"m understanding PapyrusUtil can import an XML as string so you're taking it through SKyrim and then converting into an xml that flash stores and flash could then adjust and save the parser?

 

The scene now records all actions like thrusts, strokes, every detail and it's all being stored even things that are most likely not going to get use per pairs of actors in an engagement. So the data is there waiting if an external mod developer wants to partake and use some segment of it. For a ridiculous example if a developer wanted to make a quest open only after 150,000 sex thrusts and 85 kisses with NPC A they could have that information but also store relationship status for example how the sex made one actor feel about the other, and have it impact future engagements. Definitely having a way to assemble all of them and put back into data storage would be awesome. It's saved by HexCode+ModName_HexCode+ModName combination of the two actors as the name of an array key of the data. The UI gives me a really nice way to display it all if needed also I guess. I was going to use MCM but that would be not ideal and not look as good.

 

I'm assuming this is the case but to make sure: The SWF will save information through a session? But will get wiped on exiting the game? There's no way it can store some long term stuff on it's own? Also can key input be received by the SWF bypassing Skyrim entirely? For example UP DN Left Right.

Link to comment

I keep getting "New scene system failed please report" How can I report this? Thanks in advance!

 

I'm sorry you're having trouble Arialynn. That's a hard debug line that happens if the script loop starts without being in a state. I was fairly certain there is no way it could show up so I'm going to look into it. Is it only a sometimes thing or is literally the start of the scene reliably everytime?

 

If it's at the start it might be due to a clean save.

 

If you want to check your files for left over stuff there are 2 files that could potentially be left over from a previous install:

 

\Skyrim\Data\meshes\0SA\_Engine\_Process

 

in that files will be something called scenenumreg.json (something like that starting with an S. You can delete it, there's also a folder in there called RAM also. You can go in the Ram folder and delete any file named 0.json 1.json 2.json through 99.json anything in the RAM folder just delete.

 

The first file is a way for the mcm to relay information the scene, as different scenes all share the same spell it's a system I used to differentiate to the spell what kind of script is happening. It should only be filled just for a moment and then left with just two brackets [] it's safe to delete though.

 

Ram used to be where I wrote scene data that I needed to store in JSON. It would also clear itself out but you'd still have 0-99.json left there eventually with just brackets in it. This is always safe to delete (it's gone in 1.07d so you won't have to check this in the future)

 

If you want to try removing those files they might have left over data, if had some bugs that wasn't completely clearing them out. 

 

Please let me know how this goes.

Link to comment

 

 

It's funny because now that you showed me the way it's simple but it was daunting as fuck with the limited access to tutorials and example plus the fact that you can't see the compiled side of the flash... More so your example is incredibly simple to setup and very easy to practice on and learn on. If the exact thing you described was packed up in a zip I'm sure you would see a lot mroe UI. it's awesome there's so much potential. I guess flash is kind of a pain in itself also though to use.

 

 

I think you're right. The go-to resource for learning how to do this is the SkyUI files and documentation. Those guys are professional developers. So, the framework and tools they set up are very well done and useful. But, it's advanced level code. It probably adds layers of confusion for people coming from Papyrus with little to no Flash/Javascript experience.
 
Maybe I will put together a very basic tutorial for it in FO4 to hopefully encourage more people to try it.
 

 

 

Of course on the animations Pipdude I'd be happy to help I know you were asking me about it a while ago and I'm curious how it went. You mentioned you were waiting on the FO4 CK what kind of projects do you have in mind? 

 

 
I've never added animations before. I've only been studying the process so far. I've been reluctant to finalize the workflow and start because it's so unclear how (or even if) animation customization will work in FO4. I don't want to spend too much time learning something that may not apply. I'm hoping that Bethesda is generous and provides plugins, etc. so we can import/export right out of the box with the new GECK.
 
One project that comes to mind is figuring out how to import Daz3D models into Skyrim/FO4. I think that I understand how to bring in bodies, hands and feet. But, I'm a bit unsure how to import the custom head mesh considering the tri files, lining up eyes, expressions, etc. (Probably goes without saying. But, I couldn't release a mod with Daz content. But, for private use, if I could work out how to efficiently bring those meshes in, they have really good customization capabilities. Not sure if you've looked at it. But, it's like Bodyslide on steroids.)
 

 

Yes on the XML parser absolutely I would most likely need help understanding getting it working.Let me try it out please? It sounds like I'd have to convert the documents to XML but that wouldn't take so long, and I'm sure there's ways it can benefit the project. To make sure I"m understanding PapyrusUtil can import an XML as string so you're taking it through SKyrim and then converting into an xml that flash stores and flash could then adjust and save the parser?

 

 

Ok. I will need to take it out of other code and repackage. Will send that over tomorrow.
 
This is how you use it:
 
Make an XML file and put it in the Data folder (you could use a different path if needed. But, my example assumes the XML is in Data). Then load it with MiscUtil like so:
string yourXML= MiscUtil.ReadFromFile("Data/yourXML.xml")
yourWidgetHandlingScript.loadXML(yourXML)

Your loadXML function in yourWidgetHandlingScript:

 

function loadXML (String yourXML)
UI.InvokeString(HUD_MENU, WidgetRoot + ".loadXML", yourXML)
endFunction

Then I will send the Flash with the loadXML function and parser tomorrow.

 

To answer your question about what it does: the xml gets sent into flash as a text file. The parser converts it into a multi-dimensional object array. That means that all the lists are already turned into arrays nested into arrays and all of the attributes are turned into variables by their attribute names. Make sense? Might be a little confusing at first. But, it's a super convenient structure for the data to be in. I haven't programmed the parser to turn the data back into an xml string. But, it wouldn't be difficult. You would need that to save changes to the data by generating the updated xml string, sending back out to papyrus and writing it back to the original file with MiscUtil.

 

 

The scene now records all actions like thrusts, strokes, every detail and it's all being stored even things that are most likely not going to get use per pairs of actors in an engagement. So the data is there waiting if an external mod developer wants to partake and use some segment of it. For a ridiculous example if a developer wanted to make a quest open only after 150,000 sex thrusts and 85 kisses with NPC A they could have that information but also store relationship status for example how the sex made one actor feel about the other, and have it impact future engagements. Definitely having a way to assemble all of them and put back into data storage would be awesome. It's saved by HexCode+ModName_HexCode+ModName combination of the two actors as the name of an array key of the data. The UI gives me a really nice way to display it all if needed also I guess. I was going to use MCM but that would be not ideal and not look as good.

 

 

Does it currently record each action as it goes? If so, that could be a performance issue. I would set it up so that it tracks that information during a scene. But, it only actually writes it to the record when the scene ends. That way you're only doing one write and not potentially interfering with the performance of animations and other work you want the system to do during a scene.
 

 

 

I'm assuming this is the case but to make sure: The SWF will save information through a session? But will get wiped on exiting the game? There's no way it can store some long term stuff on it's own?

 

 

That is correct. Outside of Skyrim, there are various writing options for Flash. But, within Skyrim, the only way to save the information is to send back out to Papyrus and then write it in some way with an SKSE plugin like PapyrusUtil/MiscUtil. I like the model of sending the XML out because you wouldn't have to fiddle around with multiple calls, Papyrus arrays or typing the variables. It would all just be in one largish string. Only downside could be that there is some string size limitation I don't know about yet! In that case, you could just break it up into a few xml files for different categories of data.

Link to comment

The new system you've got seems really promising. It will definitely be much cleaner and easier than how advanced mode is now, at least.

I wonder how you're going to handle combat though? Even now with my relatively new PC the sex animations aren't exactly responding lightning fast. I have to hold down keys before they get registered.

 

And this might just be for my install, but some keys like the undress E and U keys don't even appear to work right. Pressing E and num- doesn't have any options shown in the window but pressing E and the numbers gets the usual actions done. Its working, but for some reason not all the UI stuff does.

Link to comment
 

I wonder how you're going to handle combat though? Even now with my relatively new PC the sex animations aren't exactly responding lightning fast. I have to hold down keys before they get registered.

 

 

 

Thank you CFU

i'll look into the issue it might be that I changed the key checks around slightly so you must press - before you press the key you want help on. It's been catching a few people off guard. The scene 0Sex plays on I'm calling scene type (1) it's a heavier load meant to achieve as many simulation effects and details as possible so I'm not holding back on it. It's intended for a slow paced scene. I have a lighter script I'm almost done working on that doesn't do a lot of the detail stuff 0Sex does. It basically loads the entire scene in one call at the start and then just is on onupdate loop with some simple math occasionally that can take input. It's tuned to be light with an emphasis on performance. If scaling is off it can almost instantly start in most conditions.

 

 

 

On the first point of UI documentation, I'd say it's more so examples like GameDelegate."SendSound". I was trying to make key presses get seen by flash and I realized there's no talk at all on the entire internet about gamedelegate. In fact the only thing that comes up is 2 unanswered posts by you asking questions about how to figure out what you can input there. SO I decided SendSound is just a kind of "Be Free" entry thing, I can put whatever i want there i guess GameDelegate."WhoIsTheQueenOfThe90s" and it returned Alanis Morissette  I'd say without being the coder or in touch it's pretty thin to figure out what is going on. I'd like to use those features but they are secret.

 

I'm decent with models so maybe I can help. I haven't looked to much into FO4 yet. I know daz and the system, I have a UE4 mock up of 0Sex that I use a plumped up version of the free one that comes with the latest daz, trying to reach my degenerative end game of 0Sex on Occulus rift. Head might not be possible, I think you'd have to sacrifice all expressions and morph and have it be worn like a helmet to get it in. I'll look into it but I haven't checked on what's possible in F04 in a bit how the faces are set up. If you wrap the vanilla head to D or vice versa your Diffuse textures will be wrong, and it's prob not going to take any morph, tri data if the vertex count and order isn't the same, expressions might try to pull on random spots of the face instead of the correct places. It's on the edge on my knowledge but for getting it into UE4 with morphs inovles simply Exporting with a morph slider at the 0 and 100 for each possible morph but UE4 automates the import process and it's most likely substantially eaiser then doing it for FO4. I'll take a look agian at FO4 maybe I can think of something.

 

For the speeds and records the scene data json has 9 values in it's int array that's amount of thrusts or whatever per loop. And an int saying what kind of event it is for example handjob is 20.  So abbreviated it's like  20,1,2,3,4,5,6  meaning it's a handjob with 1 additional stroke per +speed. The script itself creates an array at the beginning when it firsts stats that is their record.

SceneRecord[20] = SceneRecord[20] + 6 that calculation will fire each loop (if you were doing a speed 6 handjob). When scene concludes it loads the Hex_Hex of the actors History and totals that with the scene's record then saves it back to the Hex_Hex.

 

Looking forward to the parser, and I get the gist of it now I think should be good to go,  and thanks again Pipdude. Epic stuff today.

Link to comment

What remains from Advanced mode is this:   ALT, SHIFT CTRL.

 

1. When you enter a scene pressing no keys the screen is clean

2 . If you press Left Alt (For example) the left side buttons appear showing what the DOM can do.

3. IF the dom has SHIFT or CTRL or UNDRESS etc. there will be small signifiers on the left side of the screen also that they are available.

4. The sub in this case would also get signifiers on the RIGHT of the screen if they can do things. Signifiers will be much more subtle then buttons just letting people know they can do other stuff too.

 

5. To navigate the buttons You hold ALT (in this case) to move on the dom side and press DPAD up down left right and it simply goes up and down the grid on press and you can stop at any box you want. I believe that we will most likely have to pause the game to enable mouse input and it might be kind of wonky like when you first open up race menu. Maybe not worrying about mouse input and having buttons you can dpad around on would be the best path.

 

Control will basically be this in summary: Enter a scene, notice the signifiers, open up the menu and use the dpad to navigate to what you want to do and select it.

I think this sounds amazing, it would make it so much easier to use. I don't think EZ-mode would be needed with this kind of setup, especially if the buttons are grouped so it's clear which key does what. Eg. the main keys in a cross pattern and small indicators below to show if there are any ALT, SHIFT & CTRL actions available.

 

Maybe the arrow keys could be used without modifiers to go straight into different base positions?

 

Mouse control shouldn't be necessary and dialog boxes could be used just for settings and stuff that doesn't have buttons in the UI. Probably stuff like undressing, switching roles etc. 

Link to comment

 

 

Really nice ideas thanks!

 

The cross shape idea is good to have the easiest access I like that. I want to keep the screen as clean as possible I'll do a T on it's side shape so basically if there was just one move it would be centered vertically against the left of the screen. Then fill in Above Left and Below, then further fill out into 2 columns from that.

 

I think all menus could handle it and I could trim quite a bit of the MCM down also. Some crazier ideas would be this:

 

1. Warp menu button removed and loads my pdf on the screen (Transparent background) and you can click any scene you want and go there.

2. Put FX Clothing and AI into a UI. Have a single display for stats etc. that looks nice.

3. When you hold shift+cast now to make an NPC scene the menu is clunky and limited, UI could make a nice unintrusive interface to cast the scene from easily.

4. I think it could be used as a way to manage visual undresing and redressing of your actors outside of sex also. Some kind of ESG stand alone thing. If you wanted more immersion to have them actually undress or put earrings on etc. through animation etc.

5. I'm going to add (sleek hopefully) speech bubbles in a small stand alone mod that any mod can access.It will use global functions so it will be easy for any mod to trigger it. I'll try to find ways for OSA to connect to this so you can have the actor's talk with text for more elaborate dialogue, if you don't have access to endless guys and girls that will both do dirty talk into a microphone and nerdy fantasy speeches also.

6. Some flair could be added announcements in a nice font. Like the top left notifications but something that feels natural cinematic.I'm going to try to combine a bunch of text output stuff for cool easy effects into a small mod with all global functions so other mods can use it and OSA also if people want.

Link to comment

Control will basically be this in summary: Enter a scene, notice the signifiers, open up the menu and use the dpad to navigate to what you want to do and select it.

 

 

Love this concept. I've been using your mod since the beginning and yet I am constantly hitting ALT + numberpad "-" to get the help menu when my memory is hazy on the correct keystroke. And as a gamepad user, 0SEX requires me to put down the controller and navigate with the keyboard. It sounds like this new UI could eliminate this necessity.

 

Awesome breakthrough, can't wait!

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