Search Unity

[Released] uNode - Visual Scripting [Support C# Import/Export]

Discussion in 'Assets and Asset Store' started by wahid_rachmawan, Oct 18, 2017.

  1. Innocent-Dev

    Innocent-Dev

    Joined:
    Apr 1, 2015
    Posts:
    23
    There is an idea how to make a state graph, more on the picture ! unode states.jpg
     
    wahid_rachmawan likes this.
  2. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    This will be fixed in next update.

    1. It will be fixed soon.
    2. Will available in next update.
    3. Hmm not sure how it should be, would you like to give a picture/design?

    With the proxy features i think there is no need to swap, try to convert wire to proxy by right click on it and i think the graph will look more great.

    That's very good and clean design, i will try to implement it soon.

    Everyone, Thanks you very much for suggestion and feedback.
     
    Innocent-Dev likes this.
  3. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    I know I can use PROXY and I use - but loops - I often have extensive and it suits me to put them on the right - but if it's a problem, change the order, even if it's optional - I understand
    --->
    2019-04-10_15-42-27a.png
     
  4. eggeuk

    eggeuk

    Joined:
    Sep 1, 2013
    Posts:
    88
    What alisia shows in the picture are very good ideas.
    It's my goal too, dividing things in smaller parts for better understanding and in parallel seeing how they are combined.
     
    Innocent-Dev likes this.
  5. eggeuk

    eggeuk

    Joined:
    Sep 1, 2013
    Posts:
    88
    The picture about how the Region should be adjustable..
     

    Attached Files:

  6. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Okay i understand, for this i think will made a automatic order based on pin target position or manual tuning.

    Yes its very good idea.

    Already added and will available in next update, thanks for request it.
     
    Innocent-Dev likes this.
  7. eggeuk

    eggeuk

    Joined:
    Sep 1, 2013
    Posts:
    88
    Thanks for your reply. Just one more question to 'Sticky Notes'.
    Please see the picture.
    It could be easy because 'Region Node' is already there.
    Sticky Notes are text fields with some color and adjustable highs and with. No functionality to other nodes like region.
    Sticky notes could be used as comments, not for a special node, but for the overall thoughts of the author.
     

    Attached Files:

  8. eggeuk

    eggeuk

    Joined:
    Sep 1, 2013
    Posts:
    88
    Vertical Design, new Unity Graphs

    Unity has build a new design for visual/graphical programming.
    Please see picture taken from sample-with-visual-effect-graph/
    They use blocks gathering some nodes. The nodes and blocks are then connected.
    Unity uses Lines for long way connections and Blocks for nodes that are straight together.

    uNode does have something like Unity Blocks, it is the 'Region Node'.
    Maybe a special region node is necessary. For clarity I will call it uNode 'Block Node'.

    Within a Block Node lines are not used for connections each nodes follow another.
    uNode did it already with the concept of 'Event Sheet'.
    But in Blocks the normal Nodes are used and put together one after the other.

    If/case-nodes would leave the Block Node with lines to other nodes or blocks.
    One, might be the True, can stay in the Block Node and other nodes can follow.

    The above could be the first step.
    Secondly it would be nice if the Block Node by itself would have Connectors for input and output, like Unity does.
    The Block Node can then be scaled down with a header and when we need a look, it can popped up or opened may be in a second window.

    With the long vertical Block Nodes there would be a clean vertical design showing what belongs together.

    And not to underrate uNode what be the one and first visual programming language taking the concept of Unity Block Design!!!

    Ok, so much for the moment. What do you think about this?
     

    Attached Files:

    Last edited: Apr 11, 2019
  9. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    I have a plan to make Sticky Note but delayed due to fucusing on vertical design but i think i'll try to implement it before releasing an update (not sure next update will be available).

    For the blocks like in VFX, uNode already have it in Action and Condition nodes ( this is what features in Event Sheet ) but currently its can only edited from inspector instead of graph, i have a plans to make it too just like the design in VFX blocks but firstly i need to make sure most of the main feature of the old graph has implemented in vertical design and once its finished i will start to make it. The current WIP feature for vertical graph :
    • Support for state node, the design will be like @alisia posted
    • Support for region node
    • Auto/manual port orders
    The above feature i think will not take long time so a blocks system will be started and available soon.
    And sure the block will have connection, header with icon, and drag & drop.


    Thanks for the great idea.
     
    Szaruga and Innocent-Dev like this.
  10. eggeuk

    eggeuk

    Joined:
    Sep 1, 2013
    Posts:
    88
    This all sounds really good. I wish much success to your work.
     
  11. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan
    VerticalTheme looks great now - very thanks :)
    If node "Action" will look like --->
    2019-04-11_19-21-10.png
    It's fantastic :)
    Is there a chance for something like this? --->
    2019-04-11_19-08-18a.png

    but... nevermind...
    uNode already leaves behind all competition. :cool::):cool:
     
    wahid_rachmawan and Innocent-Dev like this.
  12. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Thanks.

    Yes something like that but the design will be more similar to VFX block.
    No because to make it uNode need many of high level actions and each action need to have custom editor just only for vertical design.
     
  13. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Just finished making state node support for vertical graph.
    Thanks @alisia for the great idea, the State node is now seamlessly to combine with regular nodes.
    Capture.PNG
     
  14. Innocent-Dev

    Innocent-Dev

    Joined:
    Apr 1, 2015
    Posts:
    23
    Very nice!!! can't wait to try!!! :)
     
  15. eggeuk

    eggeuk

    Joined:
    Sep 1, 2013
    Posts:
    88
    Yes Vertical Design is great! So I installed 2018.3.0 and did same playing.
    Yes it' looks impressive, waiting for more news ...
     
  16. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan
    Sometimes when I try to move nodes coming out of the loop - something like that arises. --->
    2019-04-12_02-32-00.png

    In addition, the editor very slow down and it is difficult to work.
     
  17. AthrunVLokiz

    AthrunVLokiz

    Joined:
    Jun 7, 2017
    Posts:
    32
    I'm sorry, at the moment I don't have time for test an uNode new version, but in a previous version, I got some problem with uNode runtime when I use it with complex class and run it(edit and go to Playmode multiple time) for a long time. and then Unity editor takes a lot of memories(Ram) until 2-3 GB.

    Is this an issue? Like a Chrome browser which uses for a long time?

    Thanks
     
  18. eggeuk

    eggeuk

    Joined:
    Sep 1, 2013
    Posts:
    88
    Bug - Copy and Paste a Node, both have the same Node-Name - Error with C# preview

    I like copy and paste and I got some strange results.
    When using 'Debug.log Node' we can get a second instance with copy and paste.
    Sadly both carry the same name.
    I suppose the 'Preview-Bug' belongs to the error with double name.

    Please see picture.
    Unity 2018.3.0f2, uNode 1.7.5
    Same Copy and Paste Bug with
    Unity 2018.3,0f2, UNode 1.8b3fix

    Edit:
    Seems to be a global problem. Another node here used 'Action' got the same 'Copy and Paste Error'.
     

    Attached Files:

    Last edited: Apr 12, 2019
  19. eggeuk

    eggeuk

    Joined:
    Sep 1, 2013
    Posts:
    88
    Bug - Get Type about Prefab is lost, Warning at installing uNode 1.7.5
    Is this OK? Or is something importend missing?
     
  20. eggeuk

    eggeuk

    Joined:
    Sep 1, 2013
    Posts:
    88
    Question to forum - How using a third party tool?

    Try to use a small tool, it is 'EasyCsv' by Redscarf.
    Last release from Nov 29,2018 and it loads without any errors.
    It is working fine. We can use a csv-file and write and read dates in Unity Runtime

    I don't know how to combine it with uNode.
    I have done parsing File 'CsvTest.cs' in 'Demo' and got some Objects in Hierarchy.
    uNode Editor showed 3 'unassigned'-errors but no graph.
    - unassigned body OnGUI : Foreach Loop
    - unassigned body OnGUI : Using
    - unassigned body OnGUI : Using

    Picture shows Monobehavior. Do you have any ideas??
    Unity 2018.3.0f2, uNode 1.8b3
     
    Last edited: Apr 13, 2019
  21. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Hmm something went wrong, i will investigate and fix it soon, alternatively you can fix it by click on 'Refresh' button.

    Yes it still slow because there's still no optimization on performance, and performance will be optimized when it has less bug and most of functions are working properly.
    And i hear in Unity 2019.2 have UI Rendering Optimization that makes UI Element run faster which is good for Vertical graph.
    Screenshot_20190413_022709.png

    I think uNode runtime takes a lot of memories because of debug is enabled because when debug is enabled every value on connection/node is stored on the dictionary debug information, imagine every uNode runtime have many debug information which is still exist even the uNode runtime is destroyed so many uNode runtime in the scene will takes a lot of memories but the memory should be clean when you leave the playmode and if not i think its not from uNode runtime. The uNode runtime has some optimization for running in build (game) it has less cost on performance and memory usage but if you very care about performance i recommend to use generated c# instead or only use uNode runtime as few as possible. And i have a plans to create automatic convert uNode runtime to c# on build so anyone don't worry about performance overheat in uNode runtime.

    Its not a bug because i not implementing auto rename the node name on paste.

    The same node name should not have any problem.
    Please post the stack trace so i can investigate and fix it, thanks.

    You can ignore it, the warning related to obsolete API in newer unity version but it still works.

    If you want to use the third party API you just need to import it and uNode will automatic creating new node menu based on third party API, you can access it from node creation menu.
    But if not, tell me what do you need?

    Its look like c# parser have a new bug caused by using and foreach, sorry but please send the text script instead of images.
     
    Last edited: Apr 13, 2019
  22. eggeuk

    eggeuk

    Joined:
    Sep 1, 2013
    Posts:
    88
    Here is the C#-File for testing with Parser.
     

    Attached Files:

  23. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    No.......................
    I meant that the editor slows down only when the error occurs.
     
  24. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Please send the library too because its has error in consoles after import.

    Sorry for misunderstanding, yes error may cause editor slows so what is the error?
     
  25. eggeuk

    eggeuk

    Joined:
    Sep 1, 2013
    Posts:
    88
    Hi, here is the unitypackage 'EasyCsv'.

    EasyCsv do read and write of CSV files.
    It is free, works at runtime and has release date of Nov 29, 2018. Author is Redscarf.
    I want to use it for data write/reading, defining parameter external and internal of unity app.

    Quick start help:
    CsvHelper.Init()
    var table = CsvHelper.Create("csvName","csv text");
    Debug.Log(table.Read(0,0));
     

    Attached Files:

  26. AthrunVLokiz

    AthrunVLokiz

    Joined:
    Jun 7, 2017
    Posts:
    32
    @wahid_rachmawan
    I want to use uNode runtime to making a Prototype only(for fast little change on runtime) and then convert to c# later, but when I switch between Play-mode and Edit-mode it's lag for 5 sec(when using normal compile c# in Unity not lag at all). If I use uNode class(for debug mode) I will generate c# for every little change. I'm not sure which one to choose.

    Thanks for explain
     
  27. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    There is nothing in console.
     
  28. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Thanks you, it has been fixed in next update.

    At start uNode runtime has to initialize some of functions to works but it not take so much time until you have hundred of uNode with complex graph at the game start. Please use profiler with deep profiling to find where that makes it lag.
    And if you just only use uNode runtime only for making prototype, just use uNode runtime as less as possible this can speed up the game start.

    It weird, do you know where the error is?
    It's hard for me to detect error that not show on the console.
     
    AthrunVLokiz likes this.
  29. eggeuk

    eggeuk

    Joined:
    Sep 1, 2013
    Posts:
    88
    Wishlist 'Recent Nodes' and 'Node Browser'
    At first many thanks to your recent work. I'm sure next release will be an important step.

    Now when I'm working with uNode I found some helpful things for easier workflow.
    The suggestion I have taken from an other VPL easing the handling of 'Add Node'-List.

    For Wishlist:
    - A 'Node Browser' opened from menu, without the need to start node editor and clicking canvas, with better highs across the screen seeing all nodes following another. Just for learning and better overview.
    - A help of using 'Add Node' list, a region for 'Recent Nodes'. I'm just working with my EasyCsv'-Tool. Every Time I want to look at a node I have to type 'csv' then the related nodes are shown. If Add-Node-Window would remember my recent typed characters this would be a great help.
    Please see the Pictures.
     

    Attached Files:

    Last edited: Apr 14, 2019
    Innocent-Dev likes this.
  30. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    That's a great idea, with Node Browser and Recent Nodes i think will improve productivity.
    Thanks you, i added to priority plan and will available soon.

    And everyone, i just made blocks features for action & condition system.
    Screenshot (300).png
    What do you think?
    Are that's good enough or maybe need to be improved?
    Of course its not only for action, i will add it to all node that uses action & condition system.
     
    Last edited: Apr 15, 2019
    Innocent-Dev and AthrunVLokiz like this.
  31. AthrunVLokiz

    AthrunVLokiz

    Joined:
    Jun 7, 2017
    Posts:
    32
    I like above

    Can you make regular node use verticle sorting like this? or,
    Can the action node contain all types of the regular node? and,
    How action node generate c# look like(I mean clean c#)?

    Because I think it's so clean when working around them or track errors.

    It's close to the new Unity Visual Script.

    Thank you for listening.
     
  32. eggeuk

    eggeuk

    Joined:
    Sep 1, 2013
    Posts:
    88
    Yes it looks very good, really a block system within a graphical programming system.
    You spoke about condition too. Here some questions
    1. Do you have a first impression about condition system?
    2. How is commenting be done? Is it possible to write some comments to left or right of each node?
    Are those comments within the borders of the block? I would prefer they would be outside.
    3. How is commenting of the block itself be done?
    4. Can the block be down scaled? I would think, showing only a header and the comments?
     
  33. eggeuk

    eggeuk

    Joined:
    Sep 1, 2013
    Posts:
    88
    blocks, condition node

    Oh, I understand now.
    In graph 'Input Get Key' is a condition. It's reacting with 'key 'W' pressed'.
    If 'key 'W'' then 'GameObject-FindTag' is executed.

    Sorry, but for the first moment user (me) do not see the difference between condition and action.
    User has to read the text to understand what is going on.
    I am sure there has to be a visual difference between the graphical looking of conditions and actions.

    To blow it not up, there is only one real difference,
    condition has at least two outputs (more than one) and
    action has only one output.

    This means, as I remarked in a post before, the true-condition output should stay in the block.
    Just as you have done it.
    And the false-condition output should leave the block, perhaps going to the right.

    In case of that 'get -key condition' the false-output is always null.
    Or connected to null.
    It could be, we are waiting for 'W' to be pressed and handle something if 'W' is not pressed.

    The false condition should be seen and we have a difference between condition and action nodes.
    I will do an edit to this post with a picture of me thoughts.

    Edit1:
    My edit text is gone, I have destroyed it in any way, don't know how.
    But picture is there.
    Edit 2:
    In the meantime I think 'Null' is a data. Flow should not go from 'Null' to left into the Block.
    The node with 'Null' should better be a kind of 'Placeholder' doing nothing. A place for adding flows if necessary.
    Otherwise, just stopping the false-flow of condition.
    If one don't like this, then default False-Output can be used.
     

    Attached Files:

    Last edited: Apr 15, 2019
  34. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    1. No because it has different approach and nodes can't be inside of blocks but blocks can.
    2. Block doesn't contain all types of regular node but it does contain the most useful feature in regular node like reflection node, set value node, comparison, is, etc.
    3. Of course its generate pure c# like regular nodes.

    1. Hmm i think with condition system anyone can validate something with less node and more clear.
    2. Don't know what the suitable design for comment right now, maybe you have suggestion?
    Yes its possible but don't know what it should be.
    3. Don't know, this is what i still consider before, do you have any ideas?
    4. Yes, i have it now.

    The image i post above is still considered as action;).
    The action will execute block from up to bottom once every node is executed in one frame.
    And Action is not combined with Condition.

    The condition design is not complete yet but i will share for clarification.
    This is the condition in Vertical graph:
    Capture.PNG
    The condition in inspector:
    Capture2.PNG

    Unlike action, condition return boolean (true for success and false for failure) and every block have it too. It executed just like regular 'if' statement in c#, it compare every block whether it return true or false.
    For multi output condition, with the current system it doesn't support because its not just used in graph but in event sheet and anyone can do integrate it with only a few line of codes. You can just use regular node instead and maybe combine it with regular nodes.
     
    Last edited: Apr 15, 2019
    AthrunVLokiz likes this.
  35. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    I can't get this error again right now.

    VerticalTheme - It's almost perfect for me.
    Here is an example of great transparency for me - I also like the cross-shaped loop system (marked yellow) --->
    sz_tactical_map_UI - f_Up_Current_Unit - Vertical 1.png

    There are two things that look problematic
    1. Switch and many exits - the more they are, the harder it is to arrange nodes - I have no idea how to improve it. --->
    2019-04-15_17-16-11.png
    2. Constructor and many inputs --->
    2019-04-15_17-28-05.png

    About new action & condition system - It's only when I start using - I'll see if I like it

    I have a few suggestions, but I will wait until more important things are ready. However, there is a small detail ...
    2019-04-15_17-42-54.png
    Snap Node - at this time it does not work in a vertical layout
    Can you make the "snap node" option work with the vertical layout (preferably with customizable grid spacing)?
     
  36. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    Your graph looking very good using vertical theme.

    Added to planned feature.

    Me too not know how to improve it, because of there's not idea to improve it i will leave it as is.

    For this i think can make little improvement by minimizing value node that has no inputs.

    Of course;).
     
    Szaruga and Innocent-Dev like this.
  37. BebopTune

    BebopTune

    Joined:
    Apr 7, 2019
    Posts:
    25
    Can we have , hold and drag connection from node , when we not hold mouse button it's reset and right click on existing connection it reset. like UE4 Blueprints?

    At the moment one click pull and stick , if I change my mind and want to leave it , I have to full stop my mouse and click right .

    For deleting existing connection I have to right click on it and click reset . why not just one right click and done .

    Also hold and drag kind a feel good when you thinking were to connect

    By the way I liked Action system block design.
     
    Last edited: Apr 16, 2019
    Innocent-Dev likes this.
  38. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    The new vertical theme have it, use it instead.
     
    Szaruga likes this.
  39. sledgeman

    sledgeman

    Joined:
    Jun 23, 2014
    Posts:
    389
    Very nice new graph accomplishment ! I like the blocks for condition & actions :)

    Good point from "Szaruga". It could be a lil bit problematic, from the ui-perspective. Maybe this could be a inspiration :
    uNode_anim-graph.gif
    What i like to show, with this mock-up is, to put the numerics out of the node-window. This way it could grow as much as you want. Also it could be possible to implement a collapse / expand button. Maybe a solution for this ui-prob.
     
    BebopTune, eggeuk and Szaruga like this.
  40. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @sledgeman
    Great idea :) - additionally something like this (sliding) --->
    2019-04-16_02-29-04.png

    @wahid_rachmawan
    I do not know what you mean o_O
    anyway....
    I like it --->
    asdfgh.png

    I do not like this --->
    asdfgh1.png
     
  41. wahid_rachmawan

    wahid_rachmawan

    Joined:
    Oct 4, 2017
    Posts:
    516
    That's very great idea, i think it will solve graph problematic but with the current UI Elements API i think it is near impossible to do that but i will try to implement it in the future thanks for the great idea.

    This is more complex than @sledgeman idea and its near impossible for now, but thanks you for the idea.

    I mean a cross shaped loop marked as yellow feature was added to roadmap and it will be implemented in the future.

    This is has been fixed in upcoming version that has automatic port order:
    Capture.PNG
     
    Szaruga likes this.
  42. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    Don't worry - uNode is the best tool in its class in the world anyway. :cool::):cool:

    edit//
    raport a small error --->
    2019-04-13_03-55-43.png
     
    Last edited: Apr 16, 2019
  43. Innocent-Dev

    Innocent-Dev

    Joined:
    Apr 1, 2015
    Posts:
    23
    2018-12-21_20-02-55 (1) (1).gif
    Do you have any plans for creating macros like in a "flow canvas" or superunit in a "bolt"?
    Just a little bit left to perfect visual scripting!!! thanks!!!
     
    BebopTune likes this.
  44. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    These are toys and not tools - they do not generate pure C # code and, like Blueprints in Unreal Engine, they reduce application performance.
    Bolt looks nice and is easy to use but the performance is poor.
     
  45. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,525
    Macros would be nice
     
  46. Innocent-Dev

    Innocent-Dev

    Joined:
    Apr 1, 2015
    Posts:
    23
    You are right about the bolt. I just would like to have a way to create my own blocks, for example, there is a "do once" block in flow canvas(I use it often) and there is no block in unode. With a macro, I could make it and use it in a my project. unfortunately my c# is very low, to make my own blocks on c#.
    do once.jpg

    not necessarily a macro can some kind of block compilator ? ? ?
    For example: part of the blocks with compile into one block ?
     
    Last edited: Apr 16, 2019
    Lars-Steenhoff likes this.
  47. Innocent-Dev

    Innocent-Dev

    Joined:
    Apr 1, 2015
    Posts:
    23
    Something like this. macross.jpg
    maybe this is all very difficult to do. I’m not a programmer.
     
    eggeuk likes this.
  48. Szaruga

    Szaruga

    Joined:
    Jan 29, 2016
    Posts:
    403
    @wahid_rachmawan
    Unity 2019.1 released...
    Will the next version of uNode work with this version?
     
    eggeuk likes this.
  49. eggeuk

    eggeuk

    Joined:
    Sep 1, 2013
    Posts:
    88
    Hi alisia, what a good idea and a simple workflow - if possible.
     
    Innocent-Dev likes this.
  50. Innocent-Dev

    Innocent-Dev

    Joined:
    Apr 1, 2015
    Posts:
    23
    Variant 2 (Block constructor) macross.jpg
     
    Last edited: Apr 17, 2019
    Lars-Steenhoff, eggeuk and BebopTune like this.