Open Flynsarmy opened 1 year ago
I've been thinking about this and an alternative to having borders on all nodes is to simply allow right clicking on the node and having a 'Make connection' option. This context menu would also allow other useful options such as 'Make Unique' for loaded state machine nodes or anything else we want to put in there.
It's a little alarming that shift-drag to make connections isn't more well known. Between left-click, right-click and shift-drag, all AnimationNodeStateMachine manipulations can be carried out from select mode.
Describe the project you are working on
Any involving an AnimationNodeStateMachine
Describe the problem or limitation you are having in your project
Working with
AnimationNodeStateMachines
currently feels very clunky with the way Select, Add, and Connect modes work. This adds to the time it takes to build more complex state machines and adds a small level of frustration whenever one is needed. There are also multiple missing features that would speed up the process of working with them though I might make separate proposals for those.Describe the feature / enhancement and how it helps to overcome the problem or limitation
Remove the three input modes and handle everything with right and left click
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
Let's look at the current workflow of creating a state machine for a third person character.
The default mode is Select so we'll leave it on that.
This is an ultra simplified state machine and even it was a crazy number of clicks and mode changes: The mode changes are really what makes this setup feel so clunky.
My proposal is a streamlining of this workflow.
Here's how I imagine the new
AnimationNodeStateMachine
functioning:Let's now revisit the steps above but with my new setup (Including our mistake of not linking Start immediately):
This feels significantly less clunky and faster than the current mode-based setup.
If this enhancement will not be used often, can it be worked around with a few lines of script?
It would be used regularly.
Is there a reason why this should be core and not an add-on in the asset library?
Usability is important especially for something as complex and time consuming as a state machine. Getting it right often requires a tonne of tweaking and with the current setup that means potentially hundreds of mode changes and loading up of the Inspector eating time and sanity.