Animation / Motion-Capture Questions

SrRK

Well-Known Member
Donor
Game Developer
Jun 18, 2018
1,119
6,635
Hey everyone, thanks in advance/sorry if some of these questions have already been answered somewhere. I'm in the process of creating a game using Honey Select, developed with Ren'Py. I am new to this, so I'm teaching myself how to code using Ren'Py in addition to creating my own animations (which is incredibly easy with HS/SN btw). This is a lot to take in but I'm willing to put in the work and effort required.

Any help in answering these questions would be greatly appreciated. When answering, please consider that I'm using Honey Select, StudioNeo, and Ren'Py as my primary tools for development. Thanks in advance. I really, truly do appreciate those who would go out of their way to offer advice to newbies like me. I can promise that you guys will be rewarded with a high quality product (as good as possible using HS), as I am sort of a perfectionist and won't stop at just understanding the basics.

1) What tool is typically used to capture high quality still-frames, if any?
(outside of the tools built-in to StudioNeo, which can capture both 1920x1080 and 4K png shots)


2) What tool is typically used to capture motion-animations created within StudioNeo?
(i.e., animated sex scenes)


3) What's the best format for these files (for Ren'Py), if not automatically incorporated with above mentioned tools?
 

Rich

Old Fart
Modder
Donor
Respected User
Game Developer
Jun 25, 2017
2,500
7,124
I have no experience with Honey Select, so I can't help you on the first two. When putting animated sequences into Ren'py, you have two basic approaches:
  1. You can take the sequence of images that you generate, simply drop them into Ren'py, and then use something like Ren'py's ATL to display them in sequence with appropriate delays between them to get the frame rate you want. Given a sequence of images, this is the simplest approach, since you don't have to do anything else with them. You'll probably want to use a compressed format (like JPEG or WEBP) rather than something like PNG, just to save space, but pretty much any image format Ren'py understands will work.
  2. You can take the sequence of images that you generate, combine them together into a video (with the appropriate frame rate) and then play the video at the appropriate time using Ren'py's movie support. This happens to be the approach I take, in general. I'm pretty good with command line tools (being a dinosaur who dates back to the days before all this fancy Windows stuff came along) so I combine things together using a tool called ffmpeg. If you take this approach, you need to use one of the video formats that Ren'py supports - I usually use VP8 inside a WEBM container.
Advantages of the first approach:

The image approach doesn't require you to do anything else with the images other than produce them. The Ren'py code is easy:
Code:
image my_animation:
    "frame01.jpg"
    pause 0.1
    "frame02.jpg"
    pause 0.1
...
    "frame20.jpg"
    pause 0.1
    repeat
Just adjust the "pause" value to get the frame rate you want.

Disadvantages of the first approach:
It can be a bit tedious to write the ATL if you have a lot of images.
Ren'py tries to predict the images you're going to need so it can cache them ahead of time. If you have a lot of full-screen frames, however, you will kind of choke Ren'py's cache. This can, potentially, result in your animation stuttering a bit, since Ren'py is having to load your images in real time. This is highly dependent on the computer being used to play the game, so it could work fine on yours and stutter on someone else's. Usually, Ren'py's pretty good at this, so the odds aren't high you'll have an issue, it's just something to consider.

Advantages of the video approach:
Depending on the number of frames, what they contain, etc., etc., this can result in a smaller total game size. This is particularly the case if your originals are PNG's, since video includes compression.
Ren'py is pretty good at playing video - you're unlikely to get stuttering.

Disadvantages of the video approach:
You have to combine things into a video, which can be a nuisance, depending on what tools you have available or are comfortable with.
You may have to fiddle with the degree of compression in the video in order to make sure the quality is what you want.
There can be a momentary delay while Ren'py gets your movie going. Fortunately, the lastest (7.2.0) version of Ren'py has a feature where it can load an image to show before it gets the first frame of your video going, so you can embed the image of the first frame, have Ren'py use that, and the startup is practically unnoticeable.

That's my $0.02, anyway.
 

Kthulian

www.kthuliangames.com
Game Developer
Apr 27, 2018
969
7,282
Good luck @SirDamned, just like the above post, I can only help you on Ren'py since I don't use the other two, feel free to message me if you need help, hope to see you on Ataegina again on the next update ;)
 
  • Like
Reactions: papsuken and SrRK

mickydoo

Fudged it again.
Game Developer
Jan 5, 2018
2,446
3,551
Honey Select has it's own screenshot somewhere in it for stills, I think, Ive only used once before I learned DAZ so I can't remember for sure.

For screen capturing animations Open Broadcaster Software is the best thing you will find, it's better than high end paid apps imo.
 
  • Like
Reactions: SrRK

SrRK

Well-Known Member
Donor
Game Developer
Jun 18, 2018
1,119
6,635
Good luck @SirDamned, just like the above post, I can only help you on Ren'py since I don't use the other two, feel free to message me if you need help, hope to see you on Ataegina again on the next update ;)
Oh yeah, buddy! Thank you. You'll definitely be seeing me there when the update is out. Ataegina is one my favorite games in the genre.

Honey Select has it's own screenshot somewhere in it for stills, I think, Ive only used once before I learned DAZ so I can't remember for sure.

For screen capturing animations Open Broadcaster Software is the best thing you will find, it's better than high end paid apps imo.
Thank you! I've heard of Open Broadcaster before... so I'll definitely be trying it out. Is there a specific capture mode you use for the animations? Does it allow you to make cuts/edits? Thanks in advance.

I have no experience with Honey Select, so I can't help you on the first two. When putting animated sequences into Ren'py, you have two basic approaches:
  1. You can take the sequence of images that you generate, simply drop them into Ren'py, and then use something like Ren'py's ATL to display them in sequence with appropriate delays between them to get the frame rate you want. Given a sequence of images, this is the simplest approach, since you don't have to do anything else with them. You'll probably want to use a compressed format (like JPEG or WEBP) rather than something like PNG, just to save space, but pretty much any image format Ren'py understands will work.
  2. You can take the sequence of images that you generate, combine them together into a video (with the appropriate frame rate) and then play the video at the appropriate time using Ren'py's movie support. This happens to be the approach I take, in general. I'm pretty good with command line tools (being a dinosaur who dates back to the days before all this fancy Windows stuff came along) so I combine things together using a tool called ffmpeg. If you take this approach, you need to use one of the video formats that Ren'py supports - I usually use VP8 inside a WEBM container.
Advantages of the first approach:

The image approach doesn't require you to do anything else with the images other than produce them. The Ren'py code is easy:
Code:
image my_animation:
    "frame01.jpg"
    pause 0.1
    "frame02.jpg"
    pause 0.1
...
    "frame20.jpg"
    pause 0.1
    repeat
Just adjust the "pause" value to get the frame rate you want.

Disadvantages of the first approach:
It can be a bit tedious to write the ATL if you have a lot of images.
Ren'py tries to predict the images you're going to need so it can cache them ahead of time. If you have a lot of full-screen frames, however, you will kind of choke Ren'py's cache. This can, potentially, result in your animation stuttering a bit, since Ren'py is having to load your images in real time. This is highly dependent on the computer being used to play the game, so it could work fine on yours and stutter on someone else's. Usually, Ren'py's pretty good at this, so the odds aren't high you'll have an issue, it's just something to consider.

Advantages of the video approach:
Depending on the number of frames, what they contain, etc., etc., this can result in a smaller total game size. This is particularly the case if your originals are PNG's, since video includes compression.
Ren'py is pretty good at playing video - you're unlikely to get stuttering.

Disadvantages of the video approach:
You have to combine things into a video, which can be a nuisance, depending on what tools you have available or are comfortable with.
You may have to fiddle with the degree of compression in the video in order to make sure the quality is what you want.
There can be a momentary delay while Ren'py gets your movie going. Fortunately, the lastest (7.2.0) version of Ren'py has a feature where it can load an image to show before it gets the first frame of your video going, so you can embed the image of the first frame, have Ren'py use that, and the startup is practically unnoticeable.

That's my $0.02, anyway.
Dude, THANK YOU for the long and thoughtful reply. This was incredibly informative and helps me out immensely. The second approach actually sounds practical as I'd like for the videos to be smooth, high quality, and with certain effects... but it will likely take me a little while to master. That said, I'll end up playing around with both and then go from there.

Quick question: do you know which format is more typically used? For example, I'm pretty satisfied with the format used in games like Acting Lessons, DMD, etc. and I'd like to take whichever approach games like that use, if possible.
 
  • Like
Reactions: Kthulian

mickydoo

Fudged it again.
Game Developer
Jan 5, 2018
2,446
3,551
You still need to edit the screen capture in something else which is another learning curve, I use adobe premier which is a massive overkill but my wife happens to have the whole adobe suite. I don't know if any freeware is up to task. Power Director is probably what I'd use if I didn't have premier pro but I have not used that for years so I could be talking shit, either way it's not free, unless you can find one.
 
  • Like
Reactions: SrRK

SrRK

Well-Known Member
Donor
Game Developer
Jun 18, 2018
1,119
6,635
You still need to edit the screen capture in something else which is another learning curve, I use adobe premier which is a massive overkill but my wife happens to have the whole adobe suite. I don't know if any freeware is up to task. Power Director is probably what I'd use if I didn't have premier pro but I have not used that for years so I could be talking shit, either way it's not free, unless you can find one.
Hey! Just for clarifications sake, what type of editing are you referring to exactly? With hundreds of mods, StudioNeo is extremely diverse and there isn't really any single thing that I can personally think of that would need to be added in to individual scenes that it doesn't already have in-studio. That said, I have considered the possibility that I might need to do that, and will learn it if needbe.
 

mickydoo

Fudged it again.
Game Developer
Jan 5, 2018
2,446
3,551
I'm referring to cutting/removing frames things like that, if you are using honey select you probably don't need to anyway. When I animate in daz, I'm talking the whole two times I have done it now, because of render times I only use the minimum frames I need and loop and slow it down in premier pro. If you screen capture something in Honey Select, a free tool like Handbreak will be fine to compress/re-encode the video. OBS will spit out a rather large file from memory.
 
  • Like
Reactions: SrRK

SrRK

Well-Known Member
Donor
Game Developer
Jun 18, 2018
1,119
6,635
I'm referring to cutting/removing frames things like that, if you are using honey select you probably don't need to anyway. When I animate in daz, I'm talking the whole two times I have done it now, because of render times I only use the minimum frames I need and loop and slow it down in premier pro. If you screen capture something in Honey Select, a free tool like Handbreak will be fine to compress/re-encode the video. OBS will spit out a rather large file from memory.
Ah, that makes perfect sense. Thanks, I really appreciate it! I will look into Handbreak as well.
 

Rich

Old Fart
Modder
Donor
Respected User
Game Developer
Jun 25, 2017
2,500
7,124
Quick question: do you know which format is more typically used? For example, I'm pretty satisfied with the format used in games like Acting Lessons, DMD, etc. and I'd like to take whichever approach games like that use, if possible.
Well, I obviously don't know every game in the world. LOL. From what I've seen, developers who produce animations with low frame counts - say, 3-6 frames - typically seem to go with the ATL approach. This is just a guess, but I suspect that those are folks that don't have the rendering horsepower (or patience) to do higher fps (frames per second) animations. For those, the ATL approach works fine - you're typically well within Ren'py's rendering capabilities - and it doesn't take any additional outside processing, so it's easier for the less technical folks to master. For the higher fps (smoother) animations, the games I've actually looked inside at all seem to be using the video-based approach.

As I mentioned, I'm very comfortable with command line tools, so two tools that I use a lot:

imagemagick ( ) - I use this to take the super-high-quality JPG's that Daz puts out and recompress them to be smaller. (There's a visual quality tradeoff, of course, but I can rarely see it. At the settings I typically use, it reduces the JPG file sizes by about 6-to-1 which makes a huge difference on overall game size. I also use this with some animations - to speed up the render time, I render the background once, and then render just the animating figures as an image sequence with a transparent background. I then batch automate combining the foreground and background using imagemagick to produce the final image sequence that I use to make the video. (This only works when lighting and shadows are such that you can cleanly separate the foreground and background, of course, but there are tricks you can use in Daz to help make this work, and it can easily halve the time required to render the image sequence.)

ffmpeg ( ) - taking images sequences and turning them into movies. (It can do tons of other things, but this is what I use it for.) If/when you get to the point of wanting to do this, I can show you how I use it. Once you understand how the command line works, it's pretty easy.
 
  • Like
Reactions: SrRK

SrRK

Well-Known Member
Donor
Game Developer
Jun 18, 2018
1,119
6,635
@Rich and @mickydoo -- sorry if this is frowned upon/considered necroing since it's an older thread... I just wanted to let you guys know you've both helped me immensely, and that I've decided to go with the video option (at least for now). I will pretty much just end up making 5-10 second high quality video loops, compressed into small files (8mb or so) for the sex scenes, in combination with a few stills (for in-between shots). I may even include sound in said videos if it doesn't increase the file size too much.

I also just wanted to let you all know that I'm making some serious progress on this game (I only started grinding/working on it about 20 days ago, as I was tied up with some very serious IRL issues). I've already finished writing, animating, and capturing the entire prologue (31 pages of written story). The game will be about five hours long, and my goal is to get it done in about 8 or 9 chapters (not including the prologue). All that's left is the coding part, which I might end up posting questions about in this subforum if I get stuck. I have a general idea of how Ren'Py works already, though.

Tbh I don't even know if you guys plan on playing it, I know not everyone likes games made with Honey Select, but just in case you do (and since you guys both really helped), here's a (very) small preview.


The MC is about to get some serious mouth-to-mouth.

P.S. @Kthulian - I might soon be hitting you up on that offer to help out with Ren'Py. ;)
 
  • Like
Reactions: Kthulian

SrRK

Well-Known Member
Donor
Game Developer
Jun 18, 2018
1,119
6,635
Very useful, I hadn't experimented with the pistons just yet. Thanks!

Great news, feel free message me.
Will do! I'll be starting the coding portion of the prologue in a few days, probably. I'm pretty sure I'll have at least a few questions. Thanks again for offering. In exchange, I'll try to provide ya with a dope game to play lol.
 
  • Like
Reactions: Kthulian