Code Monkey home page Code Monkey logo

Comments (8)

mafiesto4 avatar mafiesto4 commented on June 24, 2024 2

Then it would be good to add reconnecting ability for disabled connections too.

from flaxengine.

mafiesto4 avatar mafiesto4 commented on June 24, 2024 2

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.

Zode avatar Zode commented on June 24, 2024 1

@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.

Chikinsupu avatar Chikinsupu commented on June 24, 2024

@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.

mafiesto4 avatar mafiesto4 commented on June 24, 2024

@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 avatar Chikinsupu commented on June 24, 2024

@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.

Chikinsupu avatar Chikinsupu commented on June 24, 2024

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.
EXBlender

In Amplify the port gets removed and the connection gets deleted and it stays that way
EXAmplify

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.
EXUnity

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.

Chikinsupu avatar Chikinsupu commented on June 24, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.