EZPZ Branching Dialogue – Week 6-11

Previous Post:

EZPZ Branching Dialogue – Week 5

Before we start, yes, I know it’s been a while since the last post. A ton of stuff happened due to Coronavirus, and while I was able to work on this project, I wasn’t able to make weekly blog posts and updates. But, I’m here now, and I hope that you’re as impressed with the status of the tool as I am!

This Week’s Snapshot (Milestone 4 Deliverable):

What’s New:

  • Info Node Update
    • The info node now has two more settings on it: Speaker Object and Speaker Sprite. Now the user can assign a GameObject to the dialogue tree to get the speaker object (like if they wanted to get the speaker position for a camera focus) and a sprite if they wanted to show a sprite while the dialogue was being displayed.
  • Variables Node
    • Every variable is stored locally in the tree object and has four values, a boolean, int, float, and string value.
    • There is also a “Literal Value” option for the node for the times when the user just wants a single, premade value without creating a whole variable.
  • Edit Variables Node
    • This is how local variables are edited in a tree. There are a bunch of equations for each variable value type for the user to use.
    • Unlinked inputs are replaced with literal values.
  • Logic Node
    • This is the entire logic for any variable. If, And, Or, Greater Than, Less Than, etc, everything is contained in this node.
    • It takes in two variables (or values) and can go to two outputs depending on the outcome of the equation.
  • Global Variables
    • On a separate prefab, the player can create variables that can be referenced by any tree at any time. This is useful for stuff like character names or money amounts.
    • Like the other variables, each has four values (bool, int, float, string).
  • Inline Dialogue Replacement
    • Using { and }, the user can replace lines of dialogue with variables. For example, if there was a global variable named CharacterName, the user could type {varGlobal:CharacterName:string} to get the string value of the global variable CharacterName. This works the same for local variables, with varGlobal being replaced with var. For example, {var:Oranges:int} would get the integer value of the current dialogue tree’s Orange variable.
    • There is another special replacement, {var:SpeakerName}. This gets the current speaker name of the dialogue tree. It doesn’t require a variable to be made from it, and it doesn’t need a value identifier. I figured that users would use this a lot so I wanted to make it easy to access.
  • New Speaker Node
    • This contains the exact same data as an Info node, but it allows the user to change the name, object, and sprite of who is currently speaking. This is useful for when the user needs a character to chime in with one line, but doesn’t want to give the other character their own one line dialogue tree.
  • Comment Node
    • A really basic node that doesn’t connect with anything. Just allows the user to write comments to themselves.
  • And a ton of QoL changes that I couldn’t/forgot to show off!

Challenges:

In terms of actual work, not a ton of challenges. Most of what I had to deal with was moving out of my apartment to go back home and finding motivation when working from home.

What’s Next:

My next big goal is to polish it for release on the Unity Asset Store. Most, if not all, of the features I want in this tool have been implemented, so I want to focus on QoL stuff and other features that will help the user. I’ll make a more comprehensive list in the next update when I have a better idea of what exactly I want to get done.

Next Post:

EZPZ Branching Dialogue – Postmortem