The list of patch versions for this minor version :
No minor version for the version yet.
In the early development stage, we wanted to make the WB_SpeechBubble asset just a starting point for the customization and understanding of the plugin feature, but we wanted it to have solid and game-ready features for their project for now, So we decided to upgrade the asset for such purpose.
The default design and animation of WB_SpeechBubble has been reworked.
In addition, new major features for the widget have been implemented as well :
The rendering space clamp action that helps the widget to stay inside of the screen has been reworked. Now it works with a margin property.
A feature that makes the widget transparent when the widget approaches the edge of the screen has been added.
A feature that makes the widget transparent when the widget is blocked by other objects on the camera view.
The transition system for the screen render mode and world rendering mode has been reworked and now it works much more flexibly and responsively.
A speech bubble notch system for the widget also has been implemented.
And also the navigation system for the widget has been implemented by default. It supports the gamepad and keyboard control. it automatically collects the references for the widgets and uses that in its navigation logic.
DialogueRichTextBlock class has been added. It expands the basic URichTextBlock. The text block in the plugin will now use this class instead of the URIchTextBlock.
For now, It only exposes the SetTextWrapAt() function to the blueprint, but in the future update, it will have many more features including the letter-by-letter animation.
Event OnNodeBeginPlay and OnNodeEndPlay has been added. It will be triggered when the node is played and stops being played.
Create Answer Buttons Automatically action's logic has been changed. Now it does not just attach [[StartSelect]] Signature at the end of the text. Instead, now it checks whether the buttons are never created when the text update has been finished, and displays it if needed.'
Multiple properties related to the conditional answer buttons have been added. You can now hide the answer button if none of the child nodes of that answer are playable with bHideIfNoNodeToPlay. Also you can hide the answer button by default with bHideByDefault property. and you can make an answer that will only be displayed when no other options are available with bForceShowIfNoOtherAnswersAvailable. (It will override the bHideByDefault property's effect.)
The bug that the answer button's text holder-related properties are not affecting the text holder of the actual button has been fixed.
Answers and Answer buttons are exposed to the blueprint.
Also, we are going to add a delegate that will be triggered on the population of the buttons. We are still finding the best way to implement it in our system.
Event On Fragment Begin Play and On Fragment End Play's signature has been changed. Now it provides a reference for the parent object instead of the base node. If the fragment is a node fragment, it will provide the base node of the fragment. (the node that the fragment is attached at), or if it is a manager fragment, it will provide the reference of the dialogue manager that is being played.'
DF_AutoDelay fragment has been added as a default plugin asset. It inserts delays in punctuations automatically. it can be used as both a manager fragment and a node fragment.
The DF_AutoCharacterFormat fragment has been changed to be used as a manager fragment as well. it will automatically format character names for all nodes when attached as a manager fragment.
A delegate named OnInlineCommandTriggered has been added. It will be triggered whenever an inlineCommand has been triggered.
The StartDialogueWithParam function's logic has been changed to make it work as we intended. It now just feeds the reference for the participant ID without the complex additional logic we had before.
FindFragmentByClass function now returns a raw reference, not a const reference.
The issue that the inline command doesn't handle the byte type and enum type properties well in both the editor and runtime has been fixed.
The issue that the context finalizer (context binding) causes engine crashes on some rare occasions has been fixed.
The ChildNodes property of the dialogue node base has been removed. Now all the dialogue nodes need to implement their own children nodes properties. This is because the property is not used as a common property in many cases and it might cause some confusion in some cases.