Home Artists Posts Import Register

Content

Hey, this one's going to be all technical stuff, a call to arms to hopefully sort out a technical issue in the game, so if you aren't into that, sorry, there will be more later. :D It's also a little "NSFM."

Basically I'd like some help sorting out an issue with some of Laura's animations (no April Fools this time), and it's a computer sciency issue, so while "I might be able to figure it out myself, it'd mostly be a lot of trial and error and waste time I could be building other things, so if anyone who knows more than I do about this stuff can just realize the solution right away, that'd be great. :D

The issue is that in her BJ poses, when I load each of her animations for the first time in a given session, they load just fine, but when they are loaded again (by the player switching back to a previously viewed speed), all the various components of the animation flip out and end up all over the screen for a second before re-assembling.

My hypothesis is that this is a memory loading issue, that these are fairly large image files, and that what is happening is that while the animations continue to function in the background, the data inside them is removed from memory, and then when they're called up again, they are re-loaded into memory, but not so fast that you don't notice, and it takes a while for their proper locations to reassert themselves.

I do know that with the way I structure character images, if an animation ever starts, it continues to run on some level until the game is rebooted, so for example if an animation "starts at the bottom and goes up, then down, and repeats," then that will happen the first time it is shown to the player, but the next time it could start at any point in the animation, because it's just been running in the background the entire time. If an animation does not repeat, then it won't replay each time it becomes visible, it will only play the first time and never again until they reboot. It would be handy to have a way to bypass this, as it would make it easier to show "one time use" animations, so any suggestions there could be nice.

Ideally I'm looking for solutions that would not increase the overhead to the point that it would become unplayable on devices that can currently handle it. At minimum I'm hoping for an ugly patch that could just make these current animations load smoothly every time, but if anyone can figure out a way to force all these animations to reboot cleanly every time the game displays them, that would open up a lot more options. Ask any questions and I'll answer them best I can.

There's plenty of official Renpy documentation, here are a few that might be helpful:

https://www.renpy.org/doc/html/screen_optimization.html
https://www.renpy.org/doc/html/displaying_images.html
https://www.renpy.org/doc/html/atl.html

Edit: I've tried a few things, renpy.force_full_redraw() and  renpy.free_memory() don't seem to fix anything, and actually freeing memory seems to make the issue worse, causing the animation to pause in the broken state for an extra couple frames before "getting right." One half-assed solution I've come up with is just using a "fade to black" every time the speed changes, which hides the glitch, but is inelligent.



It should also help to know the basic structures of the animations being used. The core image, the one that is "displayed" is a Live Composite, and then the sub-images that are called as part of a condition switch are just standard images full of "contains." Simplified example below:

image Laura_BJ_Animation:                

    contains:

        ConditionSwitch(

            "Speed == 1", "Laura_BJ_Body_1",#Licking

            "True","Laura_BJ_Body_0",#Static

            )   

    zoom 1.35            

    anchor (.5,.5)                 

    pos (600,605)   


image Laura_BJ_Body_0:                        

    contains:

            #Hair underlay

            "Laura_Sprite_BJ_HairBack"

            zoom 0.81

            anchor (0.5, 0.5)

            pos (490,400) #(535,340) #top

            rotate 0 #-30

            parallel:

                ease 1.1 ypos 405 #bottom

                pause 0.2

                ease 1.1 ypos 400 #top

                pause 0.2

                repeat           

    contains:       

            #base body

            "Laura_Sprite"   

            subpixel True   

            pos (650,800)#(673,740) #top

            zoom 2.2 #.75                    

            anchor (0.5, 0.5)

            rotate -20

            parallel:

                pause 0.1

                ease 1.1 ypos 810 #bottom

                pause 0.2

                ease 1.1 ypos 800 #top

                pause 0.1

                repeat    

    contains:

            #base head under cock

            subpixel True

            "Laura_Sprite_BJ_Head"

            zoom 0.81

            anchor (0.5, 0.5)

            pos (490,400) #(535,340) #top

            rotate 0 #-30    

            parallel:

                ease 1.1 ypos 405 #bottom

                pause 0.2

                ease 1.1 ypos 400 #top

                pause 0.2

                repeat    

    contains:

            #zero's cock

            AlphaMask("Blowcock", "Laura_BlowCock_Mask")

            subpixel True

            pos (412,292) #tilted/top #(640,198)

            zoom 0.4  

            alpha 1

            rotate 10    

            parallel:

                pause 0.1

                ease .15 rotate -5 #bottom

                pause 0.4

                ease 1.95 rotate 10 #top

                repeat

            parallel:

                pause 0.1

                ease .15 pos (405,255) #bottom(637,168)

                pause 0.4

                ease 1.95 pos (420,292) #top 412

                repeat

    #End BJ animation Speed 0

Comments

Igroman

Hi I need to get permission to stream on these sites - www.xvideos.com, xhamster.com, and that you don't mind that I will receive income and advertise your game.

OniArtist

You'll just be streaming video of you playing the game? That's fine. Just make sure to include a link to the Patreon.

Anonymous

Not a solution itself, but... Is there a way you can change the opacity of the pieces to 0 just the first few seconds, then change it back when everything is loaded in position? Wont fix the issue but might hide it :O

OniArtist

Unfortunately that wouldn't work here. Like I described, using the methods I currently do, "on show" type effects won't work, I don't have any way of getting it to start the animations from scratch each time a condition changes. Now, I could manually hide and reshow the entire image every time the player (or circumstances) shifts the speed, but doing this would be a lot of extra code thrown around and inelegant. Currently I only show the primary image once when it first appears and then hide it when its replaced with something else. I'd like to avoid something along those lines, but thanks for the suggestion, it's a good starting point.

Anonymous

Any chance of catching the "flip out" in a screenshot?

OniArtist

That'd probably be a little tricky to time, but essentially it's just a matter that the individual components are all out of position. Basically in the BJ pose, there are a number of elements stacked on each other. From bottom to top it's the hair behind her head, her body, her head, the penis, and then in some poses a mask over the penis. When everything's working right, these elements all move in sync, but when the flipouts" occur, these objects all appear at different positions and orientations, not lined up, and then within the first "cycle" of animation they move into their intended position and from there move normally. You can test this by just loading up her BJ and switching speeds back and forth several times, shift through all of them and back again. It's better to see in motion anyway.

Anonymous

I'm familiar with Python the language Renpy is built on and will check it out in my freetime. Might be a while until i get the hang of Renpy though.

Anonymous

Okay, first things first, I'm comming from C# and haven't done much with animation. But some ideas that crossed my mind: 1.: Probably more ressource costs, but what if you fully unload the animation and load it back in, when it's needed. 2.: Can you pause the animation, and continue it, when shown again. 3.: Use single time animation, and ever time the animation finished, check, if it's still on screen, if yes, play it again.

Anonymous

Het I am on 2nd year of computer science I didn't have an in depth look to solve it properly I imagine I would need the full code to go over.However from experience with python the problem seems to be one of the following: 1 you simply put the wrong coordinates on the images when they load again 2 if the top one is not the problem the speed parameter might be imfluencing the position parameters 3 if neither of the above it might be actually something wrong with the loading method in which case you case this is going to take alot of work again I don't the full code if could give me acess to it I am sure I could find the problem

Anonymous

I love your work btw I would love if I could help with it from time to time

OniArtist

1. If that's possible, I don't know how to. I mean, a lot of the underlying animation systems are baked into the Renpy engine and all I know how to do is "drive" them. There may be a command for wiping an image out of memory, but I don't know what it would be. 2. I would LOVE to have that option. But no, as I understand it, animations just run indefinitely until you reboot the game. This is a limitation of having them in Live Composites, if an animation is outside the image itself I can start and stop it, but doing it that way would make it more complicated to position the overall animations, it would be showing and hiding the animations manually instead of using the Condition Switch to switch between them. 3. I might be able to try something with this, but so far as I can remember, if you place any sort of variable check inside a repeat block, it only gets checked once when the animation is first run, and then never updated. So like "if variable == 5" is true the first time the animation gets called in a given session, then it will consider it true until reboot even if you change that variable. Again, this is something that would be nice if it were otherwise, because it could allow much more flexible animation systems than what I currently use.

C

This is a known problem in Ren'Py. People have been complaining about it for years.

C

Here is an example. Most of the way down the page is some code that might help. <a href="https://lemmasoft.renai.us/forums/viewtopic.php?t=37312" rel="nofollow noopener" target="_blank">https://lemmasoft.renai.us/forums/viewtopic.php?t=37312</a>

OniArtist

I'll look into it. Yeah, the basic "animations not resetting" thing I know has been a persistent issue, but the new problem is the "and all the bits appear scattered around before returning to their intended positions" part. I hadn't had that happen on any of my previous animations. It might be that an animation would "start" in what was intended to be the middle of the animation on the second play, but it would always at least appear in a way that was intended to be somewhere in the animation cycle. With these current ones, the starting point can end up with pieces all over the place.

Anti-No

*glances at Google* Tried stuff like "renpy.free_memory() " ?

Anonymous

Couldn't you just take the easy route and somewhat reduce the image size, so that there is barely any reduction in visual quality, if possible?

OniArtist

Hmm, might be worth a test. I also found this post <a href="https://lemmasoft.renai.us/forums/viewtopic.php?t=47408" rel="nofollow noopener" target="_blank">https://lemmasoft.renai.us/forums/viewtopic.php?t=47408</a> I'm not sure what impact that might have overall though.

OniArtist

Well, that wouldn't likely be the "easy" route. :D Any useful reduction in visual size would likely be noticeable, and it always takes time to export out art, so like making smaller versions of Laura's face would mean exporting out around 80-100 images, which can be a bit time consuming.

waffel

Having access to the source code would help in fiddling around with it, and would probably make more people interested in providing a solution rather than loose hints of one :) If you have doubts about having your source code accessible, then try talking with Vren who makes Lab Rats 2, he's keeping his source code accessible to all. EDIT: Also please note which version of Ren'py you are running if you do decide to make the source code accessible.

Anonymous

Instead of using a ConditionSwitch inside the Laura_BJ_Animation image, you could modify the label Laura_BJ_Launch to take in the speed as an attribute and show the images Laura_BJ_Body_0 to 6 through it. Since they're different images, when you hide them you won't have the same problem, I made some quick changes here and it seems to work. The positioning of the whole animation got a little messed up, but seems like an easy fix.

Anonymous

To fix the positioning issue I just copyed the positions attributes of Laura_BJ_Animation to each Laura_BJ_Body_# If you want I could send you the entire fix ( Ican't/don't know how to open a chat with you here)

CrimsonDeLance

Is there an android version to download?

Anonymous

Hi Oni, did you read this post talking about performance in renpy? <a href="https://lemmasoft.renai.us/forums/viewtopic.php?p=398394" rel="nofollow noopener" target="_blank">https://lemmasoft.renai.us/forums/viewtopic.php?p=398394</a>#p398394

Anonymous

Oni for when Laura's problem was fixed in a patch or in the next update?

VitAnyaNaked

Unfortunately, I can not tell you something useful, but I have the same problem. The animation is loaded long and in parts. But I wish you a speedy resolution of this problem.

Rodimus Prime

Finally got a chance to playing .982 and aaaaaany dea when we might see .983? Cuz man am I thirsty for the rest of Laura's, uh, scenes.

Sub_Zero

Would the next update finish laura then are you going begin working on the new girl. (who ever wins the vote.) Or are you planning working on one more update before the new girl.

OniArtist

The next update will hopefully finish most of Laura's stuff, as well as some other elements for existing girls, no new girl yet. At the same time, I'm prepping for the new girl vote, and plan to start working on whoever wins after the Laura stuff is done.

Anonymous

Hello Oni, Will you add the "Massage" pose to other girls? Right now only Rogue seems to have it. x

OniArtist

Like, with their back side facing you? I'd like to do that. Some sort of "back side" pose would be good for all of them, the issue is that with all the clothing and faces and stuff, there's a lot of added work that goes into every pose that's added to make it compatible. I've been having a more efficient art pipeline lately, so maybe I can get something done along those lines though.

ParagonFlynn

Hello Oni, how's progress with the next update? It's been so long. And are you gonna show off all of the Girl 5 Candidates before releasing the next update? Thanks for the info :)

OniArtist

I know, sorry, I should really do another update post soon. I am working hard on the next release, I've got the most basic art for Laura's sex pose done, as well as some interesting scenes for her and a bunch of other stuff going into the next version. I will also definitely be showing off the other potential girls, I just need to get sketches for them done.

Anonymous

Any approximations on when the new update will release?

Gregory Andrus

Did you get this figured out, or do you still need some more eyes on this?

OniArtist

I arrived at a workaround that I believe should be "good enough," (basically I just do a fade to black when altering speeds that hides the wonkiness in an elegant manner), but if you'd like to take a crack at it, it couldn't hurt.

Anonymous

how do you input the console codes?

Anonymous

Why not just load the image offscreen and move it to the correct position (and hide the old one) next frame?

Anonymous

Oni, when update?

Anonymous

Oni please make a launch for this game by putting all the options on the X-23 I think that's the name of it I do not see the time of this game to launch a new version please read this comment of preference ueria the game tomorrow 07/03/2019 lol

OniArtist

I put out a new build a few days ago that includes several new options for X-23.

Anonymous

I had an idea. If you ask girl to take panties off and she is already not wearing any have MC say "prove it" where she will lift skirt or pull down pants to prove it.

Shremedy

Another fun line to consider adding, if MC manages to convince Emma to publicly "leave in place" a load of spunk on her face, uncleaned: "Well, unusual facial markings are a known mutant characteristic..."

Anonymous

when the new update will come and please more girls and scene come

Anonymous

this game is so good but still have so many bugs :( like (some times girls go under each other :|) please update this game faster and make more content for Spending time like (mini games) thanks :)

Anonymous

Eres magnífica