Wondering how people do their sex scene animations

Overflown

Has Many Secrets
Game Developer
Jul 26, 2017
213
1,065
this is based on Renpy and Daz3D.

What is the most used method to create animated sex scenes on renpy?

Few methods I've learned to use.:
Images into a sequence of images , video files, image series converted into video files
 

MissFortune

I Was Once, Possibly, Maybe, Perhaps… A Harem King
Respected User
Game Developer
Aug 17, 2019
4,914
8,025
How do you mean? Do you mean actually creating said animations in Daz, or exporting them and creating an animation out of them?

Your most common form of animation is going to be built on looping from one point to another and then back to the first point. So, for example a blowjob: Lips around tip - down to the base of the shaft - back to the tip. Early on, it's easiest to animate by 181 frames. So, as above: Tip - base of shaft - tip would look like: Tip (Frame 0) - base of shaft (Frame 30) - tip (Frame 60). Then keep repeating all the way to frame 181. Tip (0) - Base (30) - Tip (60) - Base (90) - Tip (120) - Base (150) - Tip (181). Ignore the last part not being even, as you aren't going to use it. You're going to render the 'golden frames' as some call them. In this case, frames 60 to 119. If done correctly, frame 119 will loop into your initial/starting frame (60). Thus, giving you a loop. I'd recommend looking at Erotic 3D Art Club, which has a tutorial on manual animations and a bunch of other adult based tutorials for Daz.

As for exporting, as mentioned above, render frames 60 to 119 out in an image sequence. Then use a video editor that allows you to import image sequences. I'd say just use GenP/Monkrus and pirate Premiere Pro or After Effects (depending on what you need.), import as an image sequence and export as WebM/VP9 (there's tutorials out there on how to do it with Premiere. And then insert into Ren'py.
 

Overflown

Has Many Secrets
Game Developer
Jul 26, 2017
213
1,065
How do you mean? Do you mean actually creating said animations in Daz, or exporting them and creating an animation out of them?

Your most common form of animation is going to be built on looping from one point to another and then back to the first point. So, for example a blowjob: Lips around tip - down to the base of the shaft - back to the tip. Early on, it's easiest to animate by 181 frames. So, as above: Tip - base of shaft - tip would look like: Tip (Frame 0) - base of shaft (Frame 30) - tip (Frame 60). Then keep repeating all the way to frame 181. Tip (0) - Base (30) - Tip (60) - Base (90) - Tip (120) - Base (150) - Tip (181). Ignore the last part not being even, as you aren't going to use it. You're going to render the 'golden frames' as some call them. In this case, frames 60 to 119. If done correctly, frame 119 will loop into your initial/starting frame (60). Thus, giving you a loop. I'd recommend looking at Erotic 3D Art Club, which has a tutorial on manual animations and a bunch of other adult based tutorials for Daz.

As for exporting, as mentioned above, render frames 60 to 119 out in an image sequence. Then use a video editor that allows you to import image sequences. I'd say just use GenP/Monkrus and pirate Premiere Pro or After Effects (depending on what you need.), import as an image sequence and export as WebM/VP9 (there's tutorials out there on how to do it with Premiere. And then insert into Ren'py.
Thank you for your detailed reply. So the 181 frames method, is that for the 2 second animation? Are most animated scenes mostly 2 seconds long with loops?

For exporting image sequence, is WebM the best file type to use or can we make do with an mp4? Is reduced file size the only benefit for WebMs?
 

MissFortune

I Was Once, Possibly, Maybe, Perhaps… A Harem King
Respected User
Game Developer
Aug 17, 2019
4,914
8,025
Thank you for your detailed reply. So the 181 frames method, is that for the 2 second animation? Are most animated scenes mostly 2 seconds long with loops?

For exporting image sequence, is WebM the best file type to use or can we make do with an mp4? Is reduced file size the only benefit for WebMs?
It depends on the person animating, honestly. The 181 at 30fps method is just a good starting point for someone getting into it as it allows easy looping and doesn't leave a lot of room for user error outside of said user posing/moving limbs correctly. You could always eventually 60fps (which would basically be every 15 frames instead of 30.) for faster/rougher animations. You could leave it at two seconds after you import it as an image sequence, or you could duplicate the loop and make the base clip longer in the project file. An alternative would be to just loop the clip in Ren'py. I'm no expert on animation myself, so there may be better ways out there, I'm passing on what's worked for me.

As for WebM/VP8 or VP9, I know Renpy takes , but I believe there seems to be catch on every one of them. WebM/VP9 just works right away. Premiere/AE don't natively support it, but you can just install , and export via Media Encoder (Quick tutorial , if needed).
 

mickydoo

Fudged it again.
Game Developer
Jan 5, 2018
2,446
3,548
Thank you for your detailed reply. So the 181 frames method, is that for the 2 second animation? Are most animated scenes mostly 2 seconds long with loops?
In and out blowjobs, humping etc dont need that many, I do 20 one way (up or down) and then loop it in premiere pro.
 

Overflown

Has Many Secrets
Game Developer
Jul 26, 2017
213
1,065
In and out blowjobs, humping etc dont need that many, I do 20 one way (up or down) and then loop it in premiere pro.
It depends on the person animating, honestly. The 181 at 30fps method is just a good starting point for someone getting into it as it allows easy looping and doesn't leave a lot of room for user error outside of said user posing/moving limbs correctly. You could always eventually 60fps (which would basically be every 15 frames instead of 30.) for faster/rougher animations. You could leave it at two seconds after you import it as an image sequence, or you could duplicate the loop and make the base clip longer in the project file. An alternative would be to just loop the clip in Ren'py. I'm no expert on animation myself, so there may be better ways out there, I'm passing on what's worked for me.

As for WebM/VP8 or VP9, I know Renpy takes , but I believe there seems to be catch on every one of them. WebM/VP9 just works right away. Premiere/AE don't natively support it, but you can just install , and export via Media Encoder (Quick tutorial , if needed).
Have either of you guys have had a black frame issue at the end of a loop? I made 4 second webm but when it loops on renpy, there's a visible black frame after every loop.
 

mickydoo

Fudged it again.
Game Developer
Jan 5, 2018
2,446
3,548
Have either of you guys have had a black frame issue at the end of a loop? I made 4 second webm but when it loops on renpy, there's a visible black frame after every loop.
How are you joining the images together and what with?

What code are you using in renpy?
 

Overflown

Has Many Secrets
Game Developer
Jul 26, 2017
213
1,065
How are you joining the images together and what with?

What code are you using in renpy?
I fixed it by removing the last frame from premiere pro. So I just mark it one frame behind before rendering. I guess that worked.
 

mickydoo

Fudged it again.
Game Developer
Jan 5, 2018
2,446
3,548
I fixed it by removing the last frame from premiere pro. So I just mark it one frame behind before rendering. I guess that worked.
How you putting the images in premier pro? There are two ways, one is 100 times better than the other and its only something I worked out a few months ago.
 

Overflown

Has Many Secrets
Game Developer
Jul 26, 2017
213
1,065
How you putting the images in premier pro? There are two ways, one is 100 times better than the other and its only something I worked out a few months ago.
What I did was import the image series into an image sequence by checking the check mark. Then I set the "mark in" and "mark out" on the timeline. But when I set the "mark out" mark, I set it one frame behind. Then I exported it with webm/v9.

Mind sharing the 100 times better way for meh?
 

mickydoo

Fudged it again.
Game Developer
Jan 5, 2018
2,446
3,548
What I did was import the image series into an image sequence by checking the check mark. Then I set the "mark in" and "mark out" on the timeline. But when I set the "mark out" mark, I set it one frame behind. Then I exported it with webm/v9.

Mind sharing the 100 times better way for meh?
Your way is half the better way but I do it simpler -

I import like you (I used to drag the images in - crap way) and drag it into the timeline. Say you have 10 images, it should just play from start to finish.

I then copy it, paste it, reverse the copy, then right click on nest, it joins them in the timeline. I then adjust the speed as necessary. That way you have a functioning looped video before you put in renpy.

I then export it using the checkbox that says, used source or whatever it is, it comes out as an mpeg I think. I then use handbrake to to convert it to webm as the premier pro plugin is quite old I believe.
 

Overflown

Has Many Secrets
Game Developer
Jul 26, 2017
213
1,065
Your way is half the better way but I do it simpler -

I import like you (I used to drag the images in - crap way) and drag it into the timeline. Say you have 10 images, it should just play from start to finish.

I then copy it, paste it, reverse the copy, then right click on nest, it joins them in the timeline. I then adjust the speed as necessary. That way you have a functioning looped video before you put in renpy.

I then export it using the checkbox that says, used source or whatever it is, it comes out as an mpeg I think. I then use handbrake to to convert it to webm as the premier pro plugin is quite old I believe.
Oh so that reverse should save a ton of time since you don't have to render from start to finish back to start on DAZ, am I understanding it right?
 

mickydoo

Fudged it again.
Game Developer
Jan 5, 2018
2,446
3,548
Oh so that reverse should save a ton of time since you don't have to render from start to finish back to start on DAZ, am I understanding it right?
Yeah, like mouth on top of cock, drag head down for 10 frames and render it, then reverse in premier pro. It works for up down, in out motions. You can do more than 10, but 10 is the minimum
 

Overflown

Has Many Secrets
Game Developer
Jul 26, 2017
213
1,065
Yeah, like mouth on top of cock, drag head down for 10 frames and render it, then reverse in premier pro. It works for up down, in out motions. You can do more than 10, but 10 is the minimum
That's a great tip thank you so much.
 

Rich

Old Fart
Modder
Donor
Respected User
Game Developer
Jun 25, 2017
2,490
7,035
Just to mention an alternate to using Premiere Pro - the "ffmpeg" package will generate VP8/WEBM videos very nicely, although it's command line. (But it's free.)



1. Create a file called "input.txt" listing all your individual video frame files that looks like this:
Code:
file 'frame000.jpg'
file 'frame001.jpg'
...
2. Run the command
Code:
ffmpeg -r 30 -f concat -i input.txt -c:v libvpx -b:v 6M -c:a libvorbis output_video.webm
Options:
  • -r 30 sets the frame rate to 30 fps
  • -f concat tells it it's going to be concatenating image files (leave alone)
  • -i input.txt gives the name of the file listing all the input image files
  • -c:v libvpx sets the video codec (leave alone)
  • -b:v 6M tells it to compress with a target bit rate of 6 Mbps. Higher = better quality/larger. I use 6M on my 1920x1080 projects and 2M on my 1280x720 projects
  • -c:a libvorbis tells it the audio codec. Since there's no audio source, this basically generates a silent audio track. Older versions of Ren'py were unhappy at "truly silent" videos. I think that's changed, but I just stick it in there. Doesn't add significant size.
  • output_video.webm is the name of the video that will be created
You can use the same package to generate other video formats just by changing the video and audio codec settings as well as the output filename's extension.

I rather like the use of the "bitrate" as a way of dealing with size/quality tradeoffs, as it's quite linear and (to me) pretty intuitive, as opposed to "high, medium, low" type quality settings.