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)
- [Bug] Bindings generator: Missing conversion of .f [C++] to .0f [C#] HOT 1
- Editing a procedural Static Model Entry via C# does nothing HOT 1
- Missing attribute option for collapsing property lists in property window HOT 1
- Prefab editor giving no information about the nested prefabs
- [BUG] Importing an EXR texture fails HOT 4
- [BUG] Trying to view asset reference graph crashes the engine HOT 1
- Adding an empty terrain to the scene with the Physics Debug view flag enabled causes the framerate to drop to ~ 30 without any gpu usage changes
- [UX/ BUG] Changing viewport camera speed while holding shift to move faster and in terrain paint mode changes brush size
- [UX/ BUG] Lerp output socket becomes hard to drag on when lerp is in Float/ Vector4 mode HOT 1
- Ability to change property text color / style in the property window for both name and value HOT 7
- [Proposal/ UX] Allow reodering Material Function parameters
- [Proposal] Editor setting to control default properties panel sub categories folded state HOT 2
- [Proposal] Exclude scripts from being stopped by Time.GamePaused HOT 3
- [Request] Implement 'Partial' API_FUNCTION (and maybe also API_CLASS) Tag HOT 2
- [Bug] AudioClip Assertion failed HOT 1
- [Bug] Bindings generator: MAX_ macros not converted for enum values HOT 1
- Decal materials and ambient occlusion
- Can't press "create project" button, Window dont fit to my desktop.
- Problem using NetworkReplicated classes across plugins HOT 2
- Replicated data gets reset on a host after a client connects
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.