Comments (8)
Then it would be good to add reconnecting ability for disabled connections too.
from flaxengine.
Thanks @Chikinsupu for the research! Well, hiding unused material ports like Blender seams nice (we would need to skip drawing connections to invisible boxes) but Unity's solution is also fine (we could make a custom property that greys out the box but allows to interact with it a little bit).
If anyone has a strong opinion about this I'm open to hear but it looks like you can impl PR with Unity's approach.
from flaxengine.
@Chikinsupu I think a right-click menu with an option to remove connections to that box + middle-mouse-click to remove that connection should be enough for this case.
I think this is horrible UX, and would throw off anyone coming from any other node graph based software like substance or even unity. Why not have the option to be able to rewire the connection while its connected to a disabled input/output?
from flaxengine.
@mafiesto4 i could fix this - should be pretty straight forward. But for that i need to know the expected behaviour.
A) Should the ports on the material nodes all be interactable no matter what? So that even when a port is disabled you can disconnect from the port by dragging.
Alternatively: Only allow disconnecting on disabled ports, but not connecting.
or
B) Should the connection automatically disconnect when the port gets disabled
Btw. I just realized you can also right click on a disabled box and click on "remove all connection to that box". When this is intended behaviour then i assume A should be the fix.
from flaxengine.
@Chikinsupu I think a right-click menu with an option to remove connections to that box + middle-mouse-click to remove that connection should be enough for this case.
from flaxengine.
@Chikinsupu I think a right-click menu with an option to remove connections to that box + middle-mouse-click to remove that connection should be enough for this case.
then this issue can be closed, no? Since you can right click already, i haven't tested middle mouse button. Will check that later
from flaxengine.
Okay, so i have done a bit of research of how some other engines and programs handle this.
One thing flax does different to a lot of other tools is, that it just disables ports that don't contribute to the material where as other engines and tools straight up remove the ports.
In Blender the port gets removed and the connection gets deleted. But when the port appears again it instantly reconnects.
In Amplify the port gets removed and the connection gets deleted and it stays that way
In Unity itself its a bit special. Unity also removes its ports, except when they had a connection, then they get disabled like in flax.
But Unity actually lets you freely interact with disabled ports. I can change the connections and even just delete them as i wish.
In Godot there aren't any disabled ports whatsoever, so nothing there.
And i don't have things like unreal or substance installed rn, so no insights there.
@mafiesto4 : So when i understand correctly, from your previous comments then we want a similar behaviour to blender (minus removing the port), is that correct? I mean in order to accomplish that we can simple just not render the connection to disabled ports.
UX wise i am actually a fan of Unitys approach, where you are just free to do whatever you want, it's not like it's gonna break anything.
Can i get your input to this one last time and then i will look into this issue and create a PR
from flaxengine.
Yeah, for now i just did it the unity way without hiding the port in #2649
I might build upon this in the future and make ports appear/disappear when they are no longer in use, like the blender example.
from flaxengine.
Related Issues (20)
- Source code templates HOT 1
- [Proposal] A method similar to `Actor.GetChildren` & `Actor.GetChild<Type>()` for Gui Controls HOT 2
- Add ability to change lighting/environment in material and model viewers. HOT 1
- FBX Import Settings seemingly not applied HOT 1
- Ability to add ToolStrips to the main UI
- [Suggestion] RGBA equivalents of XYZW material nodes
- [Suggestion] Mask material nodes could show individual components
- [Suggestion] Material Window - Display Decal Blending Mode only when using Decal Domain
- "Selection mesh" of actors with a procedural model do not update in the editor to match updated meshes
- [Request] Ability to assign a color to ParticleEmitters in a ParticleSystem
- [Proposal] Swizzle Node
- [Suggestion] Lock/Hide Nodes in the Hierarchy. HOT 1
- Add `Open containing folder` for builds
- Visject snappig size only applied to graphs once editor is restarted
- [Suggestion] Visual Script: Allow filtering context menu by top-level namespaces
- Editor Window Persistency - QOL
- [Request] Improve multi window workflow in regards to window focus
- Unexpected warning reference for F:\FlaxEngine\... HOT 4
- [Suggestion] Replace 'throw new ArgumentNullException' with 'ArgumentNullException.ThrowIfNull' where applicable
- [Request] Add line wrapping to rich text label HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flaxengine.