[Closed] Schematic Material Editor Progress
I’ve decided to make a thread to follow progress of Schematic Material Editor for 3dsmax I’m working on. I’ll post all new beta releases here along with progress reports. Feel free to comment and suggest improvements. You can also study sme code if you wish as all SME files are in .ms format and you can open them as any other maxscript.
To-do list:
- Shift+Drag = copy node
- Select multiple objects
- Possibility store SME somehow? Dropdown to switch different views?
- Float to Color node, perhaps Color.channel to float too.
- Rename hide to something more describing
- Resize node with show parameters (Optional!)
- Add Show sockets to RCMenu
- Some import map/mat addition to rcmenu
- Selected from MEDIT button
- Material from selection, material of 1. object in selection
Known bugs:
- Math nodes value is not shown when created, you need to refresh the node to see it
- Deleting material node connected to another material will crash
– SME Beta Version 0.1.1 –
Download: http://www.niksula.cs.hut.fi/~jylilamm/Resources/SME_Beta_0_1_1.rar
- Fixed problems with Simbiont materials. Now they are fully supported. Probably fixed some other materials and maps too. Subtexmap count was calculated incorrectly on shader node creation.
- “Edit” doesn’t appear on rightclick menu for float/color/math nodes any longer.
EDIT: – Also fixed macroscript, thx vansan
– SME Beta Version 0.1.2 –
Download: http://www.niksula.cs.hut.fi/~jylilamm/Resources/SME_Beta_0_1_2.rar
Release info:
- Shortcuts to RCMenu to import materials/maps from different sources like scene, medit, selection NOTE: There are some problems with these because it seems after you’ve opened material browser dialog from material editor the maxscript function these use no longer works as it should.
- Math node values are now shown correctly
- Deleting material connected to material now works and doesn’t crash
- Renamed “Hide” to “Discard”, it simply removes targeted node from SME. If material/map exists somewhere else, its unaffected. If material/map doesn’t exist anywhere it is effectivly deleted because there is no way to get access to it.
- Automaticly shortens long socket names (Replaces “Reflection” with “rfL.” etc.)
- All sockets for node can now be viewed in three different ways. By selecting node, moving mouse over it or double clicking it.
- More maxlike icons, thanks to Mauricio Duarte
Hi Jerry,
First of all – this is great stuff! A schematic editor has been sorely missed in 3ds max, and particularily now that most competing software has one (Maya, XSI, even Lightwave). I’m surprised to find this to be free. You should at least has some PayPal donation thing for this. If money can keep this in development, I’d be happy to pay some. A good thing such as this should not go away!
I’ve got a couple of feature suggestions to you, hope you don’t mind
-
Some smoother integration to the ME would be nice, like direct drag and drop of maps and materials.
-
If ME integration can’t be smoother, some kind of library inside SME would be neat. Like a bar on the top where you could save out different workspaces – that would be saved out to disk-
-
Some workspace navigator would be nice (like in Photoshop or Fusion), but I reckon this is a job for Helium
-
It would be neat being able to drag the ends to reconnect to another socket. Guess this is dependant of Helium as well?
-
Locking of nodes would be nice, for example with a little key icon on the top corner. A locked icon should not expand when connecting or moving the mouse over it, and it just need to show a thumbnail and a name.
-
Will there be other math nodes, like expressions and “time”, “frame” etc?
-
Any plans on supporting expression controllers? I have some materials that use expressions, but they error out when opening inside SME.
-
How about some way of extracting color-nodes from an existing map/material. You could add a “Create Color Node” to the requester that say “Add Map” and “cancel” when you drag a connection from a color socket.
-
Dark color nodes should have white text
-
How about a simple double-click to open a node for editing in ME. It’s quicker than menus and buttons.
That’s all I had after two hours of playing with the thing. Again, thanks a lot for developing this – it’s great finally having a schematic mat editor inside 3ds max!!
Cheers, Rune
Hi Rune,
The ‘workspace navigator’ is on my own wishlist for helium as well, hope to supply that sometime in the near future.
ttyl,
-Kees
Hi Rune, I’d like to have drag’n’drop support too but unfortunately it cannot be made with maxscript. I wonder if it’d be easy to add it to Helium? I took a fast look at maxsdk and I think it’d be possible using IDADWindow and DADMgr classes, the drop part would probably be easier but about dragging node from helium to medit/scene/etc, I dont know. What do you think kees?
Lockable nodes shouldn’t be too hard to add and custom script/expression controller support is on my to-do list. I’ll also add some math nodes like to convert floats to colors but I don’t think I’ll add more complex expressions. You can do these with custom script/expression controlelrs when they are supported.
You cannot change text color in current Helium so I can’t do anything about color nodes. Converting map to color would be rather pointless. If some property in material/map support maps to controll stuff then they are already visible and you can connect maps to them.
I’ll add some shortcut to editing material/map in medit. Ctrl+left click for example. Double-clicking is already used to view all sockets (if you’ve selected it from settings).
- Jerry
Cool – I’m really looking forward to seeing how this ends up when it’s finished. It’s already great as it is, my suggestions are only – literally – suggestions
Ah, I see that my english stumbled a bit on that one. It’s not my first language, you see.
I didn’t actually mean converting maps to colors, as that would not only be pointless, but also plain stupid. What I meant was the ability to drag out color nodes from materials or maps that has color slots. I don’t know if SME remembers color nodes when you close the SME window (I don’t have max in front of me, but I assume it doesn’t do that), but being able to drag out color nodes from existing color slots could be a quick way or reusing your carefully chosen colors elsewhere in the material tree.
I don’t know how other people work, but color instancing is one of the things I use the most. It’s excellent for doing deep color adjustments across a material (example: using the same color in an RGB multiply on a diffuse map, and in the spec color slot and in color slots inside a reflection falloff map). That’s why I consider Blur Studios’ “solidColor” to be the single most handy freeware plugin available for 3ds max. Perhaps SME could detect the installation of solidColor and use that for its color instancing? That could be very nice.
Just a single word of philosophy from me After having used Maya and 3ds max side by side for a couple of years, there is one thing I have noticed: 3ds max have plenty of high level functionality – but a lot of key pushing and mouse clicking. Maya have very low level functionalty – but with very few operations on the mouse and keyboard for it’s basic functions. So my ideal software must combine the best of those two worlds – I want a fairly high level functionality, but with the fewest hand operations that is possible. That’s why I prefer context sensitive mouse-clicking, keyboard shortcuts, drag and drop, and easily accesible libraries and so on. My 3 cents (as usual)…
Rune
Okey, that clears it up. I’ll add it to to-do list. Shouldn’t be too hard. SME does “remember” colors because it uses color controllers instead of plain color values. One benifit of this is that the color is truly instanced so changing controllers value anywhere will change it for every material its assigned. The downside is that some materials require 4 point colors (RGBA) which aint compatable with normal colors (RGB), SME doens’t support these yet and I’ll have to look into how to convert normal colors into 4point.
The second downside is that max doesn’t allow you to remove controllers from tracks which they’ve been assigned. So basicly if you assign color controller to diffuse of standard material you can NEVER remove that controller and return to the “controllerless color” mode, only way to get around this is remaking the material. I’ll have to try if it’d be possible to do just this so each time user disconnects controller (color/float/math node) from material/map it would remake it, I’m not entirely sure it is possible.
I haven’t used blurs solidColor but I undestand its simply a map? So it should work with SME just fine. I can’t really use it to color instancing since its a map, not a color value or color controller.
MasterBercon,
You can’t supply an ‘undefined’ to remove the controller?
If the plugin is properly written (not all in max are I have noticed) then this should remove the controller:
$.mat.diffuse_controller.controller = undefined
(sample code, I haven’t tested it)
-Kees
Well it might work on something else, but not on materials or maps. You can try it yourself at maxscript listener
meditMaterials[1].diffuse.controller = bezier_color()
Controller:Bezier_Color
meditMaterials[1].diffuse.controller.value = (color 200 100 0)
(color 200 100 0)
meditMaterials[1].diffuse.controller = undefined
-- Type error: Assign needs controller, got: undefined
After following you can also go to curve editor and you’ll see when selecting the controller (or diffuse channel to be exact) that the Delete Controller option is greyed out.
Here is a quote from 3ds max user reference:
“On the Track View Controllers menu, choose Delete Controller.
The controller is deleted.
Note: Most controllers cannot be deleted, only replaced. The Delete Controller menu item is available only if the controller track selected is an applicable type.”
Let me know if you need any additional maxscript access to anything for your tool.
Chris J.