1.16.0
Node Renaming
The node renaming feature has been added. You can now double-click on the name of a graph node on the graph to edit it. Now, all dialogue nodes are displayed in the editor with their actual object names rather than class names.
Start Dialogue From Specific Node
The Start Dialogue function of the Simple Dialogue Subsystem now includes the NodeNameToStartThisDialogueFrom property. By specifying the node name, you can start the dialogue from that node, skipping others. If no value is specified or the node name is incorrect, the dialogue will start from the beginning.
- In future updates, a function to check the existence of the node will be added.
Search & Replace
The Dialogue Manager now has a Search & Replace feature. You can open the Search tab with Ctrl + F and the Replace tab with Ctrl + H.
More things will be supported gradually but currently, only searching for Text / Node / Subnode is supported, and the Replace function only works for Text.
Dialogue Management Tab Reworked
Previously only serving as a collection of asset reformatting resolvers, it now includes the Search & Replace tab. This allows for bulk modifications of all dialogues at a glance. It greatly facilitates changes that need to be made uniformly across many Dialogue Managers, such as modifying text (e.g., changing character names).
New Formatting Method
The Context Finalizer (Context Binding) has now been removed from the plugin. This decision was made because the Context Finalizer had a structure contrary to the engine's default asset processing structure, and transitioning to a system using Fragments was more advantageous.
The plugin now utilizes Fragments for formatting.
The advantages of Fragments over Context Finalizer are as follows:
- It uses much smaller disk space. Compared to Context Finalizer, Fragments take up only as much space as a single class, and object instances do not consume much space.
- It is reusable. For commonly used formatters, such as item prices, creating a Fragment dedicated to formatting and reusing it each time makes it easy to use without the need to write a new formatter every time, not like we did when we use the Context Finalizer.
- It allows for combinations. It means that multiple formatters for one text are possible. For example, if you need to format both the item price and skill name within one text, you can create a formatter for handling item prices and a formatter for handling skill names. By attaching both, you can format the required parts, eliminating the need to combine the same formatting logic as a one formatter as in the previous Context Finalizer.
Pin Related
For the Pin feature added in version 1.15.x, a property to adjust the scale of the icons has been added. Additionally, a property has been added to use Rich Text in the label of the pin. When updating the pin structure in custom nodes, you can now specify the desired text style.
Optimization
The plugin has resolved a significant number of dependency issues hidden by Unity Build during C++ builds. Consequently, this has resolved UBT's overhead issues, leading to a substantial improvement in C++ build speed.
As a result, There is a significant optimization during build times when using C++.
Dialogue Text Holder Widget Changed
Now, you must provide child references directly through a setter function. You now no longer can specify it by naming it with a special name, "MainTextBlockChild" in the designer tab.
In the Construct event of TextHolderWidget BP, use the SetMainTextBlock function to specify the reference of the text block you want to use.
Furthermore, the Override Text Holder Widget Class feature for Participant and Context structures has been changed. If the overridden class is None, it will not use the default class but will not create the widget at all. This can be helpful when you don't want to display names or text.
Bug Fixes
A bug where fragments would not initialize properly when dropped onto another node through drag-and-drop, causing them to disappear upon exiting the editor, has been fixed.
An issue where the Dialogue Widget would jitter at the edges when the viewport size was smaller than the widget size has been resolved.
A problem where the On Node Connection List Changed function of Dialogue Nodes would cause engine crashes in the build version has been fixed.
Known Issues
A slight decrease in editor performance has been reported. Additionally, the editor code readability and structure have become quite complex, indicating that refactoring may be necessary in the future.