The looks of the asset icons and graph editor’s slates and layouts have been changed. This will provide much better visibility on things.
All asset types got new looks Thanks to our designer, minmin!
The Graph editor’s layout has been changed and some new tabs have been introduced. The Dialogue Browser tab allows us to quickly find and access the dialogue manager assets in the project. You can double-click the asset to change the asset you are editing in the dialogue manager editor.
The Dialogue Editor Preperance tab allows us to quickly change the look of the editor while you are editing some data. Now you don't need to visit the project setting tab to adjust the font size or text wrapping scale. Now you can do those actions in the tab below the editor.
The old command system was the first system that has been introduced to the plugin, so It must have been really old, and bad design in its actions that don't fit with the system nowadays. So we decided to rework the whole system.
The old command system for the plugin’s node and dialogue widget have been depreciated, and removed from the system.
Instead, a new asset type Dialogue Inline Command has been added. This is a replacement system for the old inline command system and It has almost the same functionalities as the old one but has a ton better editing support and clearer concept.
The Problems of The Old Command System
It was really difficult to see and edit on the editor. It also creates a lot of troubles in maintenance and localization.
It was difficult to tell what each attribute does by looking at itself because It didn't have any name on attribute. It gets even worse when you have to work with the people in your team since you must tell them what they should put into the command, and how it works. And it caused a lot of difficulty in having multiple attributes on one command because we had to put the attributes by separating each data with ‘,’, which was very confusing.
Creating a custom command requires a ton of effort and time, and is also impractical. You have to manually change the source code or redefine the basics nodes to support your own commands. And the commands must be hardcoded in the system and it was a really bad code design.
What’s new?
The editor for the command has been newly added to the system.
To bind a new command on the text, click the point to put the cursor on the part where you want to bind a command.
Then, Click the Bind Command button on the node. then you will get the list of the command that you can use for this node type.
(It can be changed on the project setting. It is explained well below.)
Put your mouse cursor to see the tooltip for the command, and the attributes for the command. And when you decided on the command you want to add, then press the command.
Then, You will see the command you chose has been added to your text at the location you decided. You can put your mouse cursor on the command widget to see the setting of the command.
The settings of the commands will also be displayed on the right below the text with an individual box. You can toggle the visibility of the command summarization box at the visibility setting in the toolbar.
You can edit the command that has been already bound on the text by clicking the command widget.
To use the attributes for the command, Check the checkbox that is located right side of the attribute, and fill out the value for that attribute.
You will see this notification message when your command has been successfully edited.
You can also override the command that has been already bound to something else by clicking the override command button on the edit menu widget.
Also, the format for the attributes of the commands and the way that commands perceive the attributes of the command have been changed.
Previously, Attributes in the command are stored without any tag on itself. ( ex [[Event=StartDialogue]] ) and when we have to put multiple attributes on the command then we must separate each attribute with ','. (ex [[ChangeRenderType=1,0.5f,true]]) and the order in which attributes are listed must follow the order of the initialization of the attribute in the code, and it can not be changed or expressed in the basic method.
Now, you can specify which attribute you want to put the value at with the name of it.
(ex. [[Event Key="StartDialogue"]] )
and when you have to fill out multiple attributes, you can separate attributes then you can do it with a space character.
(ex [[ChangeRenderType Mode="WorldDynamic" InterpolationDuration="0.5f"]])
This will make you know how each attribute affects the action and also helps us to fill out the attributes we only want, and also since it now parses the attribute by its name, the order of the attributes is not fixed in a single way. It doesn't matter at all!
WARNING: This process is not reversible. We highly recommend making a backup for your project before proceeding further.
Please open the dialogue management tab on the toolbar of the editor.
Then you will see the dialogue management tab is being opened.
When you are ready, Press the remap all commands button to proceed
Again, This process is not reversible, and might have some malfunction. We highly recommend making a backup for your project before proceeding further.
Then you will see the notification message that says the task has been completed. Check out the output log and see the results.
Now you don’t have to change the source code or redefine the node class to put some custom command that works for your node type. You can define your own dialogue inline command, and bind it on the node class.
You can create your own inline command on the dialogue manager editor toolbar.
Override Receive Command Trigger Event and implement your logic for the command.
Fill out the description data of the asset to describe the action of the command. It will be automatically displayed in the command editor.
Add the variable and mark it as public. The system will automatically fill out the data for that variable when the command is triggered, and also the command editor will show the variable with its tooltip automatically.
Bind the command to the node class on which you want to use the command. The key to the element on the list will be used as the command name on the text, and the value of the element will be the inline command asset instance that will be triggered for the key.
An issue that the engine crashes when you set the auto skip timer value of a node above 1.
The old command system for the plugin’s node and dialogue widget have been depreciated, and removed from the system. Please use the Dialogue Inline Command system Instead.