VN Ren'Py Creating my own characters for a visual novel

Varxen

Member
Jun 17, 2017
159
309
Hi! I am a noob! >< so please bear with me!

I'm trying to create an adult visual novel. I tried to use honey select to create my own characters (pictures and scenes and stuff) along with Unity 3D for the environment. However, I am new to these stuff. I have zero knowledge on coding (but I am willing to learn that) though I am learning while I do. However, I have no knowledge on how to navigate Honey Select (taking screenshots, making poses...). Also, I am unsure on how to fuse the environments I have created using Unity 3D with my characters (as Honey Select lacks environments).

TLDR: I do not know how to screenshot Honey Select pictures/characters/poses. I also do not know how to fuse the environments created using Unity 3D with those of Honey Select (if I can even make screenshots of them lol).

PS: If anyone has any reccomendations regarding creating my own VN (I'm doing this all by myself haha but I already have a drafted storyline and character backgrounds) I am open to receiving them! Any reccomendations for engines/programmes I should use are also welcome! :))
 

Winterfire

Forum Fanatic
Respected User
Game Developer
Sep 27, 2018
4,907
7,206
Do yourself a favor and use Ren'Py.

1. <- Discussion with link to the mod you are looking for.

2.

^
Some other random discussions cos I do not have honey select so I can't suggest anything, try and test around, see what works for you.

Now, as to "fuse" them, you do not.
You could but that would not be very efficient, you should keep characters and backgrounds separate so they can be reused.
(Same background .png, different characters over it, for instance).

On Ren'Py this concept is really easy to see, just give a look at the demo that comes with it, read/watch a few tutorials and use the demo as a starting point but with your characters/background/text, good luck.


-Edit-
Woops, misread.
I think you meant you want to use Unity's scenes as backgrounds, sorry.

That is much simpler:
Make a scene, place the camera where you wish and take a screenshot while in full-screen (You may need to build the project and run it).
A simpler way would be to write some code to grab screenshots directly from Unity itself without having to build everytime, give me a minute and I will write it.

Here is the code:

C:
using UnityEngine;
using System.Collections;
using System.IO;

public class Screenshotter : MonoBehaviour
{
    private int nScreenshots = 0;
    private string path;

    private void Awake()
    {
        //I set the path for the screenshots, it could be anything, in this example it will be "your documents" implying you are on Windows.
        path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments);

        //To avoid filling your documents with stuff, we'll make a folder too.
        if (!System.IO.File.Exists(path + "/Screenshots"))
        {
            System.IO.Directory.CreateDirectory(path + "/Screenshots");
        }
    }

    private void Update()
    {
        //Whatever key you want to use to take the screenshot, in this example it would be with spacebar.
        if (Input.GetKeyDown(KeyCode.Space))
        {
            TakeScreenshot();
        }
    }

    private void TakeScreenshot()
    {
        //To avoid overwriting an existing screenshot, I will increase an integer variable which will be assinged to the screenshot's name
        //Once I have done that, I will call this function again.
        //It would be reasonably faster if you did this somewhere else with a loop and kept track of the int from that point on but since
        //you will not be needing this for an actual game, you may as well keep it simple (also I doubt you'll be taking 1000+ screenshots)
        if (System.IO.File.Exists(path + "/Screenshots/" + "Screenshot" + nScreenshots + ".png"))
        {
            nScreenshots++;
            TakeScreenshot();
        }
       
        //If the function arrives at this point, it means the screenshot can be taken without overwriting anything, so we just do that:
        if (!System.IO.File.Exists(path + "/Screenshots/" + "Screenshot" + nScreenshots + ".png"))
        {
            ScreenCapture.CaptureScreenshot((path + "/Screenshots/" + "Screenshot" + nScreenshots + ".png"));
        }  
    }
}
Attach the script to any gameobject of the scene you want to take a screenshot of and press the key you assigned (in this example: Spacebar) once you run the game within the Unity Editor.
The size of the screenshot will not depend on the size of the window itself (like a normal printscreen key) but more on the resolution the editor is running at, including your fullscreen size, without having to build and run the scene every time.

Hope that helps you and good luck once again!
 

Varxen

Member
Jun 17, 2017
159
309
Do yourself a favor and use Ren'Py.

1. <- Discussion with link to the mod you are looking for.

2.

^
Some other random discussions cos I do not have honey select so I can't suggest anything, try and test around, see what works for you.

Now, as to "fuse" them, you do not.
You could but that would not be very efficient, you should keep characters and backgrounds separate so they can be reused.
(Same background .png, different characters over it, for instance).

On Ren'Py this concept is really easy to see, just give a look at the demo that comes with it, read/watch a few tutorials and use the demo as a starting point but with your characters/background/text, good luck.


-Edit-
Woops, misread.
I think you meant you want to use Unity's scenes as backgrounds, sorry.

That is much simpler:
Make a scene, place the camera where you wish and take a screenshot while in full-screen (You may need to build the project and run it).
A simpler way would be to write some code to grab screenshots directly from Unity itself without having to build everytime, give me a minute and I will write it.

Here is the code:

C:
using UnityEngine;
using System.Collections;
using System.IO;

public class Screenshotter : MonoBehaviour
{
    private int nScreenshots = 0;
    private string path;

    private void Awake()
    {
        //I set the path for the screenshots, it could be anything, in this example it will be "your documents" implying you are on Windows.
        path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments);

        //To avoid filling your documents with stuff, we'll make a folder too.
        if (!System.IO.File.Exists(path + "/Screenshots"))
        {
            System.IO.Directory.CreateDirectory(path + "/Screenshots");
        }
    }

    private void Update()
    {
        //Whatever key you want to use to take the screenshot, in this example it would be with spacebar.
        if (Input.GetKeyDown(KeyCode.Space))
        {
            TakeScreenshot();
        }
    }

    private void TakeScreenshot()
    {
        //To avoid overwriting an existing screenshot, I will increase an integer variable which will be assinged to the screenshot's name
        //Once I have done that, I will call this function again.
        //It would be reasonably faster if you did this somewhere else with a loop and kept track of the int from that point on but since
        //you will not be needing this for an actual game, you may as well keep it simple (also I doubt you'll be taking 1000+ screenshots)
        if (System.IO.File.Exists(path + "/Screenshots/" + "Screenshot" + nScreenshots + ".png"))
        {
            nScreenshots++;
            TakeScreenshot();
        }
      
        //If the function arrives at this point, it means the screenshot can be taken without overwriting anything, so we just do that:
        if (!System.IO.File.Exists(path + "/Screenshots/" + "Screenshot" + nScreenshots + ".png"))
        {
            ScreenCapture.CaptureScreenshot((path + "/Screenshots/" + "Screenshot" + nScreenshots + ".png"));
        } 
    }
}
Attach the script to any gameobject of the scene you want to take a screenshot of and press the key you assigned (in this example: Spacebar) once you run the game within the Unity Editor.
The size of the screenshot will not depend on the size of the window itself (like a normal printscreen key) but more on the resolution the editor is running at, including your fullscreen size, without having to build and run the scene every time.

Hope that helps you and good luck once again!
DAMN. Honestly didn't think I would get such a quick (and in-depth) reply!!! Really appreciate this. Thank you!! Imma go make my first adult game :)))