1.16.1
Changes to WB_SpeechBubble
1.16.1 Changes
Some of the bugs has been fixed and due to that, there are some changed parts on the BP.
Change the functions or events as following. If you want to maintain your custom widget after the update, check out these functions and events and patch the changed logic.
1.16.1_Final Changes
(New function added)
(New function added)
Skip actions has been changed
Now, the dialogue widgets don't do anything about the skip action on the C++ side. Which means, if you want to make the users can not interact with the button when the widget is not skippable, you have to manually add logic for such actions on the BP side.
We changed the basic BP asset (WB_SpeechBubble) and attached some additional functions to check whether the current node allows skip actions and changes the visibility of the skip button according to that. Check out how we implemented the action. (or check out the last three images right above this section. that's the things we added.)
Also, we seperated the bEnableSkip property on the DialogueNodeBase_Context into two different properties: bEnableContextSkip, bEnableMoveToNextNode bEnableContextSkip is a property for the text skip action, and bEnableMoveToNextNode is a property for the node skip action when the node's text update is finished.
Speech Bubble Widget's Hide on Behind a object feature's change
Now it trace on the world with sphere instead of a single line. Use a property Hide Sphere Radius to specify the radius of the trace ray.
also we now provide a property Hide Trace Debug Draw Method that allow you to draw a debug trace for the ray to make it easy to find some when something goes off. Change this property to None to hide the debug trace
The debug trace will be hidden automatically on the final stage of the game.
Rework of UDialogueButtonWidget
Completely changed internal functionalities and structure for easier customization.
The name of UDialogueButtonWidget has now been changed to UDialogueAnswerButtonWidget.
Access and assignment of references for Button/Text Holder Widgets should now be done through getters and setters. This enables more natural customization by allowing control over the creation of the Text Holder Widget in C++ and the button's control in Blueprints.
Especially noteworthy is the ability to use an already created Text Holder Widget instead of generating a new one, facilitating customization through designers.
Several helpful functions have been added:
Create Text Holder: Generates a Text Holder Widget based on the given Answer Data. Sync Text Holder: Synchronizes the text of the Text Holder Widget with the text in the Context Text of the Answer Data. Refer to the changes in the default WB_SelectButton widget, as it demonstrates the modifications well.
Check out the changed "WB_SelectButton" Asset and see how the logic has been changed.
Changes to the Select Node
The properties Button Text Holder Widget Class and Button Text Style Table have been added. This allows for the uniform specification of the dialogue text holder widget class and text style table to be used by the buttons.
Rework of Conditional Answer Feature in Select Node
The existing logic used to check conditions not on the Answer itself but by evaluating the playability of the underlying nodes registered in the Answer. However, now, the Answer itself has a condition.
New Properties:
- Condition: The condition used to display this Answer.
- ConditionFailBehavior: Determines whether to hide or disable the pin when the condition check fails. It has two options : DoNotDisplay, DisplayButDisableTheButton.
DialogueAnswerCondition
The original Dialogue Condition has some certain limits when it is used on the answer, For example, it can not tell which answer this condition is being applied to. So we added a new version of Dialogue Condition Named Dialogue Answer Condition, which can take the answer data that the condition applied on.
You can still use both the basic dialogue condition and new Dialogue Answer Condition for the answers.
You can create a new blueprint under the Create Blueprint tab or generate it from the Dialogue Manager's editor toolbar.
Unlike existing condition assets, you must override the CheckAnswerCondition function.
Default DialogueAnswerConditions Provided
- DAC_CheckNoAnswerYet: Passes the test when no Answer has been implemented as a button in the node.
An answer that uses this condition must be placed at the end of the answer array for proper functionality.
- DAC_HasNodeToPlay: Passes the test only when there is at least one playable sub-node in the choices.
Fixed
Bug fix where the Dialogue Tree Viewer crashes the engine when drawing a graph containing deleted fragments or node classes.
Fixed the issue where the error info of the graph nodes was not updating correctly.
Some bug fixed related to the "Hide behind A Object" feature of the widget. (it wasn't taking a trace channel correctly.)