Search Unity

Assets diamond Visual Scripting

Discussion in 'Works In Progress - Archive' started by maz_dev, Jun 17, 2017.

  1. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
  2. Barada

    Barada

    Joined:
    Apr 27, 2015
    Posts:
    99
    What a great initial release. cant wait to see how this evolves, but there is also so much usability in there already. Thanks for the quick response to my email queries about procedural materials. hopefully simple value interaction on procedural materials should be fairly simple and would be extremely welcome for use in my current project.
    It would be great to see some colour coding on connection wires and maybe having the output connections available to view and reconnect in the graph view. This may also need colour coding for multiple logic connections.
     
    maz_dev likes this.
  3. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Thanks for this great comment and suggestions, procedural materials are already in the roadmap and can come soon in the upcoming versions.

    For color coding did you mean based on variable types? yeah, it is a great idea, I will work on it.

    For connections between logics, I added already an event system to Diamond 1.1 (coming in the next release), it is not exactly what you explained, so we will not have a visual connection between logics, but with the upcoming event system you can send triggering messages between logics of the same graph and even between different graphs because the event system is a global broad casting.
     
  4. Barada

    Barada

    Joined:
    Apr 27, 2015
    Posts:
    99
    yes colour coding for variable types. it could help the user see that the data for an action is making it to where they want it, say maybe object variable, position vec3 and an activation bool to spawn a game object. the other colour coding i`m referring to is in the state machine view, so that links can be colour coordinated from different logics on the same node. Having multiple logics on the same sm node could be very confusing and may mean each sm graph actually becomes more like multiple overlayed graphs.
     
  5. Barada

    Barada

    Joined:
    Apr 27, 2015
    Posts:
    99
    upload_2017-7-19_16-50-49.png
    This graph has 3 logics on the idle node. left and right are branched from a single logic, where as the other 2 nodes have different logics.
    upload_2017-7-19_16-55-11.png

    also dots on nodes to show multiple logics.

    i`m guessing doing this sort of graph is bad etiquette, and messy, but people will be people ;)
     
    maz_dev likes this.
  6. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Oh yeah I think I understand your idea now, it is a very good idea, you mean that when the user is in the states workspace, he can:
    • identify the number of logics of each state
    • Diamond lets him doing color coding for his logics
    • a transition between states will have the same color of the logic triggering it.
     
    Barada likes this.
  7. Barada

    Barada

    Joined:
    Apr 27, 2015
    Posts:
    99
    Yes, thats it exactly. Maybe the same principal can work for the events system, so people can see where events are going. Also it may be useful to have some visual for connected logics on nodes and between graphs. maybe coloured dotted lines if theres variables shared between logics on different nodes, and different shaped coloured dots on nodes that have connections with logics on other graphs. I used playmaker for a while and it got very confusing as a great deal of the event system could be invisible.
     
    maz_dev likes this.
  8. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Okay, I got it, this is a good feature for the upcoming event system, the coloring of each event by the user.

    In Diamond, we can open a graph at once, in each graph it is a good idea that I add a zone called "Events Board". In this zone, the user can see a list of the events sent and received by the graph, each event has his name and his color.
     
    Barada likes this.
  9. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Hi BeautifulRiver

    Diamond is now online, here is the link

    you will enjoy it :)
     
    BeautifulRiver likes this.
  10. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Hi umauj,

    Glad to share with you Diamond's release.
    You will enjoy it.

    http://u3d.as/S1R
     
  11. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Hi sledgeman,

    I would like to have your opinion about this logo, I nested the diamond inside itself, maybe you prefer it clean like you said in your post, but get a look at this one and tell me your impression, please.

    1024_1024.png
     
  12. mcmikecreations

    mcmikecreations

    Joined:
    Apr 1, 2014
    Posts:
    16
    I used the version from Asset Store for a bit and I have some drawbacks to mention:
    • The GameObject Variable type has no Find function.
    • The preferences button when pressed "Done" or "Cancel" drops the framerate significantly.
    • Zooming works weirdly, where nothing actually is being zoomed, only the cage of the node gets smaller
    • Nodes block the EditorWindow UI, make a background for the UI and render in on top of nodes.
    In conclusion, I think this is definitely an interesting thing to look at, despite the fact that I don't find it useful, I am sure there will be some people who will enjoy this project.
     
  13. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Hi mcmikecreations,

    Thank you for your valuable observations, there is more enhancement already did for the Diamond 1.1 (the next coming soon version).
     
  14. sledgeman

    sledgeman

    Joined:
    Jun 23, 2014
    Posts:
    389
    If you do design you have to argue why you do this and that, why this color etc. Worst answer is: because it looks beautyfull. This is a no-go in design !!! You must argue with facts, why you have used this color, why this shape , etc.

    Maybe you can say in this version: its a reflection of an diamond itself. I prefer a clean version. You have to ask yourself, what you want to communicate with this logo, or a logo in general.
     
  15. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Hi sledgeman,

    It's a Diamond offering itself and its quality, the top edge of the diamond is smaller than usual "real diamonds", the wider horizontal direction is also bigger than usual, and the empty "T" shape inside. All of these 3 choices is to express an opening diamond offering and continue to offer (recursivity) itself to you.

    I thought the logo like I explained above, but I don't know yet if this is really the impression that the logo will have in the eyes of the community.
     
  16. Barada

    Barada

    Joined:
    Apr 27, 2015
    Posts:
    99
    As a trained graphic designer myself i do agree with Sledgemans observations on the logo design. the Drafts he has posted look like a very good direction. In my professional opinion the logo at the moment is quite over worked and under developed. I can offer my design services to you (for free while your product is free) if you do consider a change of direction.
     
    maz_dev likes this.
  17. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Thank you Barada for your observations, I agree with you and with Sledgeman. since I am not a designer, I do the best I can.

    For your offer, I will think about it, I have already I designer who worked with me, now he is a little bit busy. I prefer to ask him first if he has time for Diamond, if not I will contact you and yeah it is possible that we work together.
     
    Barada likes this.
  18. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    I made a clean version but Dropbox don't have public folder anymore lol
     
    maz_dev likes this.
  19. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Oh dam we can't access it ;)
     
  20. Barada

    Barada

    Joined:
    Apr 27, 2015
    Posts:
    99
  21. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Thank you Barada, I am working on procedural materials and other stuff for Diamond 1.1
    For procedural materials, we will have more than that in Diamond 1.1, we will have the actions related to nearly the entire Unity class, i.e anything that we can do in Unity for the procedural materials.

    This is the goal of Diamond, bring all the Unity API to visual and also other stuff that I and the community think to be useful, for example in Diamond 1.1 we will have an enhanced parallax scrolling for backgrounds that is done in only one logic node.
     
  22. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Diamond 1.1 will be submitted in 3 or 4 days :)
     
    Kennth likes this.
  23. BeautifulRiver

    BeautifulRiver

    Joined:
    Sep 19, 2016
    Posts:
    47
    Hi Mazen,

    I downloaded it and had started playing with it already. It looks interesting. I'll give you my feedback later.
    Thanks for the tool!
     
    Last edited: Jul 24, 2017
    maz_dev likes this.
  24. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Hi BeautifulRiver, thank you for downloading Diamond, looking forward to your feedback and suggestions.
     
  25. Barada

    Barada

    Joined:
    Apr 27, 2015
    Posts:
    99
    Great. i`ve actually got a fairly simple game idea i`ve been wanting to do for a while and i`m hoping to use Diamond to finaly realise it
     
    maz_dev likes this.
  26. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Cool, I am working on Diamond 1.1 version (the next one), adding new stuff and the procedural material class (substances) in it, normally I will submit it during this week.

    Glad that Diamond helps you realize your ideas. Like always, when you have questions, suggestions, feedback or need support, let me know it.
     
  27. Barada

    Barada

    Joined:
    Apr 27, 2015
    Posts:
    99
    something that may make the state view a bit more useful is instead of setting goto states in the logics, maybe setting a named output connection on the state node that can then be connected to any other node in the state view. This would allow editing of the flow of the state machine in the view rather than having to go into the logic view. also the logics in a state node could always be visible and openable with a single click, rather than a clicking a button and selecting from a list.
     
    maz_dev likes this.
  28. Barada

    Barada

    Joined:
    Apr 27, 2015
    Posts:
    99
    is there a way to convert float to and from ints? i`m making a simple tiled grid map from cubes and need to calculate the position of each block. basically i`m incrementing x and z values and multiplying the block size by the loop and adding it to the start position. after making the loop counter variables i find i cant multiply the float value by an int value. not being able to tell if a variable is an int or float (if it has no fraction) is an issue, but i think that would be covered by the colour coding idea.
     
    maz_dev likes this.
  29. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    I did the state's connections this way because a transition from a State A to State B need to be triggered by some logic in the source state (the state A).

    If we let the user create state's connections in the states workspace, the user will need to enter his source state to add in it the logic to trigger this recently created state.

    Creating the connection by a logic inside the source state is faster because the connection and its trigger logic are created by a one user action.
    This way also prevents the user from creating unused connections. If he creates his connection in the state's workspace and forgets to create a corresponding logic to trigger it, this connection will be an unused connection.
     
  30. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Yeah agree with, I will create a quick button visible in the state's UI called "edit logic", this button will show the logic list to select in it the one we want to edit.
    This will be faster by a one step compared to the actual way where we access logics by the conventional state options (three dots upper right button).
     
  31. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    There is no int float conversion, for now, I added it to the roadmap.

    you can use the tiler logic node a presented it in the documentation to lite sprites, but this logic node has a game object as input in which you can put a scene game object or a prefab game object. So you can use this logic node to do grids with game objects
     
  32. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    I am looking at the possibility to use the tiler node
     
  33. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Apologize, the logic node tiler needs a sprite renderer on the object to work, so I will do the equivalent logic node for 3D objects.
     
  34. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    I also added a multiplication (int x float) to the roadmap.
     
    Kennth likes this.
  35. Barada

    Barada

    Joined:
    Apr 27, 2015
    Posts:
    99
    maybe take a look at playmaker functionality. it works extremely well there. the output connection is still created in the logic. but the target state is not specified only the output link name. these links MUST be connected. the user is warned and therefor no connections go unused. having to go back into the logic to change the flow of the state machine is cumbersome and i think dissuades the user from trying things out. also having the logics point to output connections rather than specific nodes allows nodes to be duplicated and used in other parts of the graph far more simply.
     
  36. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Hey Barada , about your grid question I am finding a way to do it with vectors, I am refining it and I will send you the graph
     
  37. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    I will think about it and maybe doing two ways to connect states:
    1. the way already existing (by the logic inside the state)
    2. and that you suggest by creating the connection first and choosing its destination / source later
     
  38. Barada

    Barada

    Joined:
    Apr 27, 2015
    Posts:
    99
    Thats very good of you, thanks. yea, what i was doing was incrementing the floats then building back into a vec3. the main problem was the fact of having to remake the correct variable that was already being used in another logic on another node and breaking other logics. having ways to convert ints to and from floats would allow the user to fix mistakes like that in a non destructive way. it would probably need a round up/down/nearest option.
     
    maz_dev likes this.
  39. Barada

    Barada

    Joined:
    Apr 27, 2015
    Posts:
    99
    upload_2017-7-24_13-39-33.png
    just as an illustration, this is how playmaker does it. as you can see the outputs on the bottom of the nodes also act as a guide to the logic in the node and also there is a warning of an unlinked "event"
     
  40. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Yeah, I think that I understood your need here, is about designing an overview of your graph (at states stage) before getting into details.
     
  41. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Hey, I found a solution for your cubes grid, I am sending to you the graph (by email), I didn't found the way to attach the graph here
     
  42. BeautifulRiver

    BeautifulRiver

    Joined:
    Sep 19, 2016
    Posts:
    47
    Hi mazen, I have looked at some of your examples already and emailed you some comments. I'll play with more examples, and update the comments.

    Thanks for the project, keep up the work!
     
    maz_dev likes this.
  43. eagleeyez

    eagleeyez

    Joined:
    Mar 21, 2013
    Posts:
    406
    I just saw this today and it looks really good and promising. I am an advanced Playmaker user but see lots of positives that could be happening here. I will learn Diamond this week and get back to you.

    I like already, that you are making tutorial videos and documenting your work. Keep that up as it is important.

    I like your layout, I’ll give it a test run tonight.

    Btw. You talked about design, logos and things.Look at the letters.

    DIAMOND

    The Cutting edge for artists

    Doing It Artistically Means One Needs Diamond.
     
    neoshaman and maz_dev like this.
  44. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Hi Kam,

    I saw your email quickly, and I thank you, there is a good list of suggestions and observations in your email. I will take a deeper look at your email tomorrow and inform you on the way I will prioritize your suggestions and integrate it in the Diamond roadmap.

    This week I will submit the next version (Diamond 1.1) that will contain a part of your suggestions.
     
    BeautifulRiver likes this.
  45. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Hi eagleeyez,

    Glad you find Dimond promising, looking forward to your feedback, that what I need. Diamond 1.1 (next version) will be submitted this week based on its roadmap and users suggestions.

    Thank you also for the slogans, looks interesting, I could use or be inspired by your suggestions.
     
  46. eagleeyez

    eagleeyez

    Joined:
    Mar 21, 2013
    Posts:
    406
    It’s looking good. Any chance of 1.1 via E-Mail, as asset store needs really long?

    Thanks for your hard work

    -- Diamons are a coders best friend ---
     
    maz_dev likes this.
  47. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Thank you for the new slogan, awesome too :)

    Yeah it is possible when I submit it (Diamond 1.1), and after doing necessary tests, I will send it also to BeautifulRiver, sledgeman and to Barada. I will open a conversation to discuss with all of you about Diamond 1.1, I will invite you to the conversation.
     
    Barada and BeautifulRiver like this.
  48. BeautifulRiver

    BeautifulRiver

    Joined:
    Sep 19, 2016
    Posts:
    47
    Thanks @maz_dev for the early access of version 1.1.
     
  49. eagleeyez

    eagleeyez

    Joined:
    Mar 21, 2013
    Posts:
    406
    Hi and I look forward to 1.1

    Could you please explain how I can do a flip bool in Diamond and a little more on using variables. Or point me to the information.

    Also, I did your zoom example and was surprised that it made 15 scripts just to do this simple FOV zoom. Why please?

    I was expecting something as simple as this to al just be in a few lines of code in one script.

    This means moving a controller will create hundreds of scripts.

    Or am I missing something?

    Thanks.
     
    maz_dev likes this.
  50. maz_dev

    maz_dev

    Joined:
    Sep 23, 2012
    Posts:
    261
    Hi eagleeyez,

    Here is how to flip a bool:

    Image 2.png

    For the number of scripts you are right, but for each graph, you have only one Monobehaviour generated, so you have only one script that Unity accepts to attach to a gameobject. This script has exactly the same name of the graph.

    In the ZoomCamera example, you have only this script: "ExZoom.cs" attachable to a game object.

    Other scripts are helper scripts, named to be located fastly in your graph.
    For example the script "ExZoom_deZoom_Logic_RightClick.cs"
    is a helper script that belongs in the graph "ExZoom", inside the State "deZoom", inside the logic named "Logic" and contains the code corresponding to the logic node "RightClick".

    This way helps to identify which node is represented by which script. if someone is interested in the code of a logic node, he can find the corresponding code quickly.