2.8.0
Very huge update for the system.
Spotlighted
Improved Editor Visual
This will be the last update for the visuals.
We completely reworked the visual of the nodes from the very bottom level. Especially now they have very cool looking animations and interactions!
We changed the color scheme of the graph, and changed it to use individual settings from the other graphs on the engine.
You can customize the color of the graph and connection as you want in the editor settings of Joint.
You can also reset the settings to the default in the Joint Management tab as well.
Node Pointer Widget Reworked
Now Node Pointer Widget has much better visual and editing supports. if you hover your mouse over them, you will see those buttons are getting popped up.
Explanations for each button are as following:
- Node Picking : Start node picking.
- Go to : Go to the current node that the structure contains.
- Copy : Copy the content of the structure to the clipboard.
- Paste : Paste the copied reference to the structure from the clipboard.
- Unlink : reset the structure to the default value.
Not only the properties, but also the slate level node picker widget has been reworked as well. It will boost your development's speed!
Build Preset System
Joint Build Preset
is an asset that defines whether your nodes will be included or excluded according to the build condition.
If a node that contains this asset is not allowed for type, then that node will be excluded on the package stages.
This will help you to reduce and optimize the dialogue manager asset according to the session type, and help you to prevent some memory corruption related security concerns.
Of course, we've supported a way to control the playback on each session, for example with some fragments like OnServer, OnClient, but they had their limitation since even if they are not be played, but still stays in the memory and object.
So basically, this new method is superior version of those fragments.
You can create a new preset in the content browser. right click and go Joint -> Joint Build Preset.
Once you created it, you can put it to each node's detail tab, to the property Build Preset
.
In the asset, you can specify the behavior of the preset for each build platform.
- On Client Behavior: Whether a node with this preset will be included in clients.
- On Server Behavior: Whether a node with this preset will be included in servers.
- Default Build Target Behavior : Default behavior for the build targets settings. If per build target settings doesn't have a setting for the current build target, it will be used instead.
- Per Build Target Settings : behavior for the specific build targets settings. It takes the name of the build target.
These are the name it requires.
To add a new build target, you can make a new .Target.cs file and add a definition there. See more information related to this here: https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-build-tool-target-reference
It's very straight forward to understand. All the behaviors will be overlapped; If the current build platform can be applied to multiple options, then that node with that preset will be included only when all options are set to be included
For example, a build platform for standalone game will be included when On Client, On Server is set to Include, and the build target you used is allowed in the system.
Individual Simple Display Property Visibility System
Now the simple display property tab provide a visibility option for each property! For example, let's say we have a node like this.
but well.. It looks like a crap. It almost looks like a dumbbell. It's too big.
You might don't want to see some of the properties for this node because they are not necessary for now, but at the same time, you might don't want to exclude them from the simple display list for the future usage.
So we added individual visibility option for the simple property display! You can press 'x' to start off marking each property's visibility on the graph node.
Then those visibility button will show off. If you disable them and see the result...
Tada. Now it looks much clean! The visibility will be remembered by each graph node, thus you can make multiple nodes with the same class displays different properties on the graph node slate.
It will be remained on the copy-paste actions as well.
Added
Added Joint Version Comparison Macros
Now Joint supports JOINT_VERSION_NEWER_THAN
, JOINT_VERSION_OLDER_THAN
macro for the compatibility between versions in code framework.
This will help you to make your own system that works with Joint together.
Added Joint Management Extension
Now additional modules can attach additional tabs in the Joint Management tab.
Check out FJointManagementTab_JointNativeUtility
, FJointNativeEditorModule::StartupModule()
for the better understanding.
Yeah, we're changing the system to be more generous and opened up for the extensibility. It's a little, foreshadowing for the next step of Joint. I will keep my words for now though.
Changed
Removed & Improved Orphaned Node Removal Actions
Improved orphaned node removal logic : Now it cleans up all the nodes with better logic.
The older version actually check all the subobjects under the object whenever the assets loads, but it was not the best all the time (Actually it was bad, but it must be introduced so urgently back then so we didn't have time to think about the better one), so we improved it.
If you have Joint Manager assets from older versions (before 2.8 update), we recommend you to do manual clean for once, it will let you flush down possible garbage nodes for your assets.
You can visit Joint Management tab for the action.
Please make sure to save the changed package after the action!
Pin Data Now Has Settings & Changes on ImplementPins
Pin Data now has a property Settings
(FJointEdPinDataSetting) that contains editor only visual & editor related settings.
For now, it has one property : bAlwaysDisplayNameText, which tells the editor to display the name of the pin without hovering on the graph.
ImplementPins now also updates visual settings properties as well.
You might have to change your fragments' logic if your fragment uses custom pin related actions.
Improved Editor Performance
We optimized the editor actions' performance to its limit. Everything related to the graph now has zero lag. Copy & paste, move fragment, add fragments... etc!
We also added an LOD slate rendering for simple property display on the system for better performance when the graph is zoomed out.
But this feature is still unstable and experimental. If you experience any crashes with no reason, try to turn it off at first.
Fixed
Fixed an old bug that WYSIWYG editor's applied text style widget's internal margin getting changed after pick up.
Fixed an old bug that Joint Tools option's icon on the toolbar is missing after UE 5.4 (I believe) has been changed.
Fixed the issue that Joint related graph nodes can be played outside Joint Manager has been fixed.