MA_NodeEditor v1

Updated on April 12, 2017 in  [S] Works in progress
Share on Facebook0Tweet about this on TwitterShare on Google+0Share on Reddit0
12 on December 28, 2016

MA_NodeEditor v1

A Unity Editor extension where I’m working on. It’s an extension for editing/creating textures & materials in Unity. This could be useful if you don’t have access to Photoshop (or similar programs) or when your artist doesn’t have the time to edit.
With this program you don’t have to leave Unity in order to make quick changes to textures and when you make changes the original texture keeps intact (nondestructive).

Another part of the extension is the painter, in this painter you can draw texture masks, this makes the editor a lot more use full as you can draw in Untiy and apply it directly onto your textures.
For example if you need some puddles in your road texture or when you are blending some textures.

This is a really really early version, I’m looking for some feedback/first impressions and if you have some ideas, feel free to tell them here down below.

YouTube:
[MA_NodeEditor] Update 1 – SearchBar & PerlinNoise – Unity
[MA_NodeEditor] Editing Bricks – Unity
[MA_NodeEditor] Creating Lava – Unity 
[MA_NodeEditor] QuickMask – Unity 
[MA_NodeEditor] QuickMask Edit – Unity

Future updates will be posted in this topic.

Things I would like to add in the future:
Procedural textures, noises, clouds etc. (Like in substance)
More effects.
Node search bar.
Overall improving on the editors.
Generators.
Undo/Redo options
Fix the alpha settings.

Max.

contact: info@maxartz15.com
website: maxartz15.com

  • Liked by
  • ererbe
  • Or Aviram
  • HunGARE
  • Snowy
  • Job
  • +2
Reply
2 on December 28, 2016

Looking very good!
Hope to see more of this 🙂

Wise
on December 29, 2016

Thanks!
It will maybe take some time, but when there is an update I will post it here.
(or should I post mini updates?)

Devoted
on December 29, 2016

Mini updates are the best. But they are the best on social media, here you can update whenever there is a big update, and small updates I would do on some social media (if you will, so just so you know, I prefer Twitter 😉 ).

Show more replies
  • Liked by
Reply
Cancel
2 on December 28, 2016

Woah :O

If you need help publishing, hit me up

Wise
on December 29, 2016

Thanks, I am still far away from publishing but I will keep you in mind.
(and in which way can you help?)

Wise
on December 29, 2016

I can help you make the images for the asset store / help with marketing, i have some experience

Show more replies
  • Liked by
Reply
Cancel
1 on December 29, 2016

This is nice, but there are MANY thinks I think you can change.

General Improvements:
This is too generic.
Like, some people just want the node-based scripting, some people might only want the material editor, some only the texture editor, etc..
I recommend you making a separate asset for each thing. You could have a full package for all of them together if you want, like with <a href="https://www.assetstore.unity3d.com/en/#!/search/page=1/sortby=popularity/query=publisher:4892″>Cinema Suite.
I would also recommend you making each editor a complete seperate editor, and the assets different types of assets (like, a script would be different from a material).
It will also let you use better names than “graph”, and “node editor”, which are kinda confusing.

Editor improvements:
1.
First of all, the biggest thing for me, is snapping for the nodes. PLEASE.
2. Do you have a feature for selection boxes when dragging? Because if not, DO IT.
3. Do you have zooming in and out? I didn’t see, but if you don’t, it can be really useful.
4. Have the values on the node itself as well. It will just make it a little bit faster. You could have a collapsing feature if you think it will get messy. It will also allow you to get the values as inputs from other nodes.
5. The wires between the nodes are too curved. It’s kinda ugly, to be honest. Look at Unreal Engine’s wires in their node editors (except for the animation one) to see what I think you should do.
6. Have an outline when selecting a node.
7. Change the mouse cursor based on where you are on the node (like, when you are on a place when you can drag, make it a moving arrow).

Wise
on December 29, 2016

First of all, thank you for giving so much feedback! I will definitely keep it in mind while working on the editor.

General Improvements:
Splitting the editor up in different parts could be a good thing, but right now I’m feeling that the strong point of the editor is that it all works together. The painter on its own isn’t that special but when it is connected to the node editor it makes a lot more sense to use it. From the other side, I get you point that it will be too generic and confusing.

In my head, I already decided that I will be focusing on the texture/painting part of the editor and that the other topics are for a different time. (there are already some good assets out there that focus on scripting etc.)

Still I could separate the painter from the graph editor to give people a choice and have more/better marketing options.

Editor improvements:
1. Snapping is a feature. (if you mean the nodes snap to the grid?)
2. This is a great idea and I will have a look in to it. (Right now, you can use node groups to move them together.)
3. Zooming isn’t a thing right now, I have been experimenting with it and there are some options, I’m testing this in the painter and previewer part and when I find the right way of doing this I will add it to the main editor.
4. In some previous versions, I had values on the nodes, and in some cases this is helpful. But why I’m not doing this on the texture editing nodes is because it is all about the visual part, numbers aren’t that important.
(here is a screen from an older version.)image image2
5. I will have a look at that!
6. Good idea, right now only the gradient line changes from color.
7. This would be great some more visual feedback on what you are about to do. I was also thinking about a status bar, this for information and for showing the progress when loading a big file or do some heavy calculations.

But thank you, and as I said this is a really early version and I’m always looking for some feedback to improve!

Show more replies
  • Liked by
Reply
Cancel
0 on December 29, 2016

First of all, thank you for giving so much feedback! I will definitely keep it in mind while working on the editor.

General Improvements:
Splitting the editor up in different parts could be a good thing, but right now I’m feeling that the strong point of the editor is that it all works together. The painter on its own isn’t that special but when it is connected to the node editor it makes a lot more sense to use it. From the other side, I get you point that it will be too generic and confusing.

In my head, I already decided that I will be focusing on the texture/painting part of the editor and that the other topics are for a different time. (there are already some good assets out there that focus on scripting etc.)

Still I could separate the painter from the graph editor to give people a choice and have more/better marketing options.

Editor improvements:
1. Snapping is a feature. (if you mean the nodes snap to the grid?)
2. This is a great idea and I will have a look in to it. (Right now, you can use node groups to move them together.)
3. Zooming isn’t a thing right now, I have been experimenting with it and there are some options, I’m testing this in the painter and previewer part and when I find the right way of doing this I will add it to the main editor.
4. In some previous versions, I had values on the nodes, and in some cases this is helpful. But why I’m not doing this on the texture editing nodes is because it is all about the visual part, numbers aren’t that important.
(here is a screen from an older version.)image image2
5. I will have a look at that!
6. Good idea, right now only the gradient line changes from color.
7. This would be great some more visual feedback on what you are about to do. I was also thinking about a status bar, this for information and for showing the progress when loading a big file or do some heavy calculations.

But thank you, and as I said this is a really early version and I’m always looking for some feedback to improve!

From maxartz15


Sorry for not replying to your reply but making a new comment…the forum just doesn’t allow making extra lines, and it makes long paragraphs look messy.

The texture editor can be useful and unique even without the other editors. Even though you said it won’t be special without the node editor… You should make it into a node editor, just not with the other editors. Like, you could export it into a texture and use it wherever you want, like if you have the other editors as well, use it with them, or even if you don’t it will be useful for the normal material editor, for example.
You also said yourself that combining so many things that the only common thing between them is that they are edited in a node editor can be confusing, which in my opinion is a deal breaker.

And about the editor:
1. When I say snapping I am not talking about you moving it and it  will snap to the grid after you release, but snapping like when you drag it it will snap (like in Unity’s animator). So it won’t move smoothly.
4. It is about the visual part, but numbers do matter. Like in the brightness one. It can be very useful for complicated calculations, instead of just constant numbers. You could connect other nodes to it if you had it on the node, which can really increase what people can do.

Here are some other extra things about the editor I thought of:
1. Comments. Just like in code. I thought about something like in Unreal, where you can go to each node and add a comment, and you can make a big comment on a group (which actually looks like what you did with the node groups, but the first part I think you should definitely do).
2. On the scripting thing (which you said you kinda put aside for a little bit, since it’s not that unique, but I will still give you feedback on that for later), I think you should, have different colors for each kind of knob (again, this idea comes from Unreal :P). Like, for each type (no need to make a different color for each kind of knob, like input or output, you know those by the side). So I am talking about the type, so a boolean will be different from a float, or a Vector3. As well as execution pins (this is a name I stole from Unreal, like always), which will say what comes after what. As for user defined types, you can either color them by the type of the type (like enum, struct, class, etc.), or let the user select a color/texture for it.
3. Separation for structs. Again, another thing from Unreal. Structs could be separated to their variables. Like, a Vector3 will be separated to X, Y and Z, a Quaternion will have X, Y, Z and W, etc..
4. Again, about the scripting thing. For the user to make a custom method that is callable by the node editor, make an attribute. Here are the properties I think you should allow the user to have:

  • Display name: The default name will be the name of the method, but if the user gives this property a value, this value will be used.
  • Call type: It can either be pure or callable. Again, those names are completely stolen from Unreal. Callable means it has execution pins, so it’s only being called when the execution pin is connected, it is used when things are being changed in it. Pure means it doesn’t change anything, but it only returns a value, and it is only being called when the callable function that uses it’s value is called, it’s useful for things like getters.
  • Category: You could have foldouts for each category. A / will mean it’s a sub-category. The category doesn’t have anything to do with the name, so the last word will not be the name but the category.
  • Keys: When searching, it will help finding something when the name doesn’t match (like a function called “Equals” will have a key for “==”).
  • Background image/Text: Unreal ripoffs! 😀 An image that will be in the background of the node.

5. If you want to implement generics, I found this great free asset to help you: https://bitbucket.org/rotorz/classtypereference-for-unity

  • Liked by
Reply
Cancel
0 on January 20, 2017

[MA_NodeEditor] Update 1 – SearchBar & PerlinNoise – Unity 

I didn’t have that much time last week, but here is the first little update for the editor. I have added a search bar, it speaks for itself; you can search nodes and functions to add/use them.
And the first noise/procedural generator node, it’s a simple perlin noise generator and I say simple because I have used the Unity build in perlin noise generator. But it is a good test and I’m looking forward to add more kind of these nodes. It is a very interesting topic.

Youtube:
[MA_NodeEditor] Update 1 – SearchBar & PerlinNoise – Unity

  • Liked by
Reply
Cancel
0 on March 8, 2017

[MA_NodeEditor] Update 2 – Histogram – Unity


Update 2 for the texture editor, this time I have added a histogram/levels view in the preview window.
Also I have been experimenting with multi-threading in the unity editor. So hopefully it will be working ‘soon™’, I’m thinking about making this an option to turn on and off.

And the last thing I’m working on is a small editor to create your own nodes for in the editor, people will then be able to extend on it and maybe there will be a community library of nodes, but this is still only an idea.

Youtube:
[MA_NodeEditor] Update 2 – Histogram – Unity

  • Liked by
Reply
Cancel
0 on April 12, 2017

[MA_NodeEditor] Update 3 – Editor Multithreading / Background Processing – Unity 

In this update, I have added Multithreading for the editor, now heavy calculations can run in the background and you can continue working. Before the editor would freeze up when processing heavy calculations.
Because you can’t use Coroutines in editor scripts this had to be done in a separate way.

Thanks to Quill18creates for making a simple tutorial on multithreading in Unity.

Youtube:
[MA_NodeEditor] Update 3 – Editor Multithreading / Background Processing – Unity

  • Liked by
Reply
Cancel