Announcement

Collapse
No announcement yet.

How to Make a Flexible Visual Novel system in UE4

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    [TUTORIAL] How to Make a Flexible Visual Novel system in UE4

    Hey folks! I'm the founder of Woodsy Studio, a small indie company that makes visual novels/adventure games. After about a year of working on visual novels using Unreal Engine 4, I thought it was time to share how I went about creating a complex visual novel system.

    The purpose of this tutorial series is to provide a basis from which large-scale VN projects can be developed. When I first started using UE4, I could not find many resources for creating a system of this type. Any of the "visual novel" resources I found assumed you were willing to write directly into UE4, and they provided very little flexibility in terms of long, branching scenes or rewriting. With this system, you can start by writing your script in a typical Open Office or Word document, then convert it into a spreadsheet and import it into UE4.

    Part 1: https://youtu.be/qj_6dfzqaO0
    1. Create your text scene in a spreadsheet (4:05 )
    2. Create a structure in UE4 (8:45 )
    3. Import your first scene as a datatable (13:02 )



    Part 2: https://youtu.be/KuHardkG37M
    1. Create a Scene Template Blueprint (1:09)
    2. Create an NPC character actor to launch the scene (2:56)
    3. Enabe click events (6:30)
    4. Spawn Scene Template when NPC is clicked (9:15)
    5. Feed the datatable rows into the Scene Template (13:57)



    Part 3: https://youtu.be/ljaf1PHGq1Y
    1. Track the scene array with a Row variable (1:36)
    2. Create a widget to display the dialogue (4:08)
    3. Set text variables within the widget (9:18)
    4. Create widget from Scene Template and track as variable (11:14)
    5. Set widget variables from the Scene Template Blueprint (13:18)



    Part 4: https://youtu.be/w7LxY8fZzdc
    1. Add dialogue widget to viewport (0:44)
    2. Track whether the row is finished displaying (2:11)
    3. Add an input to advance the text (4:26)
    4. Increase row number for next line (5:23)
    5. Enable input on the Scene Template (7:00)
    6. End scene and destroy actors when scene is finished (7:58)

    In the tutorial series created so far, I don't yet get to branching dialogue or character sprites. But if people find this first series useful, I may go on to create tutorials about that later.

    *** UPDATE *** : I've now put my Visual Novel Framework on the Unreal Engine marketplace, complete with branching in scenes, choices, and layered sprites: https://www.unrealengine.com/marketplace/visual-novel-framework-full-system


    If you're curious to see my visual novels, check out my website: http://woodsy-studio.com/
    Last edited by storyqueen; 09-02-2018, 10:52 AM.

    #2
    Not a VN fan, but I know they are quite popular on Steam and the like.
    You may want to consider making some sort of marketplace releasable version in future to help out the less Blueprint / UE4 savvy
    Rule#21: Be polite, be professional, but have a plan to kill everyone you meet.

    Comment


      #3
      This is interesting, I'll love to see how you handle branching dialogue and branching narrative with your system.

      Click the tiny bird!
      It'll take you to my stuff!

      Comment


        #4
        I cannot thank you enough for this. I'm making a Fire Emblem-like game which has three main parts: Conversations, map movement and battles.
        I know how to implement battles using Widgets and thanks to this, conversations will not be a problem. Now, to the hard part... Map movement...
        Again, many thanks for this.

        Comment


          #5
          Will you continue the tutorials?

          Comment


            #6
            Hey everyone! Sorry I haven't been able to respond much here, but I'm glad the tutorial has been useful. I've been deep in game development!

            I do have a system setup for choices, character sprites, and branching storylines, but I decided the best way to share that with everyone is to create a marketplace plugin. We hope to release it within the next couple of months, and I'll also create some videos that demonstrate how the plugin works. I'll update here once it's out!

            Comment


              #7
              I look forward to that plug in!

              Comment

              Working...
              X