2.2.0
In this version, we tried to reinforce the editing system, and tried to provide QOL features that help you a ton on saving your time on the development with Joint.
Dialogue Compiler & Error Reporting System Reworked
Now dialogue manager has a built-in compilation feature that informs you some info about the graph settings, warns you about the possible issues and errors on the graph and nodes.
Any modification on the graph and dialogue manager asset will execute compilation, and automatically check out the possible errors for the dialogue manager.
Dialogue Editor now has Compile Result tab that displays the result of the compilation. You can double-click the row or hyperlink to go to the node that caused the issue.
Graph nodes will display the compile result indicator on the overlay. You can check out the issues have been raised for the node on there either.
Error and warning will be displayed on the content cooking and packaging process of the project. Especially when the error has been raised, it will abort the cooking and packaging process.
You can implement compilation messages by overriding UDialogueEdGraphNode
's OnCompileNode
.
Check out how to implement it by checking out the codes in Joint Native 1.3.0.
UEdGraphNode's native error reporting system has been suspended and deprecated on Joint framework. Please update your API to use OnCompileNode()
instead.
void UDialogueEdFragment_Branch::OnCompileNode()
{
Super::OnCompileNode();
if (GetCastedNodeInstance())
{
if (!GetCastedNodeInstance()->FindFragmentByClass(UDF_Condition::StaticClass()))
{
TSharedRef<FTokenizedMessage> TokenizedMessage = FTokenizedMessage::Create(EMessageSeverity::Info);
TokenizedMessage->AddToken(FAssetNameToken::Create(GetDialogueManager() ? GetDialogueManager()->GetName() : "NONE"));
TokenizedMessage->AddToken(FTextToken::Create(FText::FromString(":")));
TokenizedMessage->AddToken(FUObjectToken::Create(this));
TokenizedMessage->AddToken(FTextToken::Create(LOCTEXT("Compile_NoCondition","No condition node has been attached. Branch node must have one condition fragment as sub node to work properly. It will always return the nodes at the true pins if it has been played.")) );
TokenizedMessage.Get().SetMessageLink(FUObjectToken::Create(this));
CompileMessages.Add(TokenizedMessage);
}
}
}
Search Tab Reworked
Search & Replace tab has been reworked to support better editing for the graph.
Tag Based Filtering
Now it provides Tag based filtering feature for the tree items. You can see the tags are being displayed right next to the item's name.
If you press the tag, then the filter item for that tag will be added on the filter, then the tree will be filtered with that filter item's content.
Adding multiple tags will work as 'OR' operation for the filter.
And now replace tab will apply filters for the literal type properties.
You can add an empty filter with Add New Filter button, and once you created a new filter item, you can modify the filter string as you want. Click the text block on the tag and change the filter as you want.
you can also modify any existing filter items on the tree view.
You can temporally disable the filters by clicking them.
You can double-click the row item's name to go to the property owner node on the graph.
Name & Value Filter
You can also filter the items by its name and value with Name=RowItemName
and Value=RowItemValue
format. This is useful when you want to search for a certain property.
It also works as a filter item.
Dialogue Bulk Search & Replace Tool
Joint now provides a bulk editing tool for the dialogue managers. You can open the Dialogue Bulk Search & Replace Tab on the toolbar of the dialogue manager editor.
You can select the dialogue managers on the left side (Dialogue List Tab) and edit the data on the right side. This is useful when you have to search and replace the changed data on the system. (such as an asset reference, and name of the characters etc...)
You can double-click the row item's name to open an editor for the parent dialogue manager and focus the item on the graph.
Improved Debugging
Multiplayer & Multiple World Supports for the Dialogue Debugger
Now dialogue debugger works on the multiple PIE worlds and multiplayer PIE sessions.
Bulk Breakpoint Edit & Debugger Operation Control
Now Joint provides convenient features that allow you to control every breakpoint in the graph with a single click. Now you don't have to mess around to check out whether you have any lost breakpoints.
And also you can toggle the debugger's execution (Halting PIE session) when you want to proceed without any interruptions at the moment.
Fixed
An issue that the overlay widgets are displayed on weird place above the engine version 5.2.0 has been fixed.