3dsMax 2018 MCG has many fundamental core changes which make MCG easier to use/make for users. The MCG guru at 3dsMax dev team Martin has the introduction post of 3dsMax 2018 MCG on Area with awesome new sample packs. I’ll try to go over some of these changes here. Today let me talk about Easy Map / Live Types / Undo.
When you try to learn MCG, the first obstacle would be the understanding Map and Combine. Map/Combine is equivalent to for in other programming languages. It allows you to iterate a function through an array(or arrays).in 2018, Map operator actually renamed as For Each. Considering the most typical MCG task is doing something over a vertex/face array. This is probably the most important function in MCG world.
The problem was that how Map/Combine was presented in MCG editor was not that intuitive. You can not directly connect your input array to the connector of the function. You must leave the input connector open and draw the imaginary line in your mind to know which input goes where.
In 3dMax 2018 , you don’t need to use Map or Combine anymore for most cases. You can just directly connect input array to a function operator. Check out the following image. This is a simplified version of my ExtractDelta MCG modifier. I removed all error checking and stuff to make it easy/clear to see the core functions.
What this modifier does is that, it read 2 objects and calculate the difference of vertex position between them and put that difference(delta) into the curent mesh.
Look at the calculate Detals. group. in 2017 graph. you need to use Combine to iterate over two vertex position arrays and subtract vectors from one array to another.
In 2017 graph(top). you need to use Combine to iterate over two vertex position arrays and subtract vectors from one array to another. The open connector of value1 is invisibly connected to the mesh vertices array of corrective shape. The open connector of value2 is invisibly connected to the mesh vertices array of original geometry.
in 2018 graph(bottom), you can see that you can just plug the two mesh vertice arrays into Subtract operator input.
The 2018 graph is more intuitive and a lot easier to understand what’s happening in the graph.
Next look at Add deltas to mesh group. After we got the deltas array, we want to multiply Amount input to the deltas and add the result to the vertex position of our current mesh.
In 2018, you can just directly plug delta array and Amount value to the Multiply Vector operator and plug the connection to Add operator. You don’t need to use Combine operator at all.
You can still use Map/Combine if you want to make your MCG backward compatible to the older version. If you use Easy Map method, your graph will be compatible with older version.
Let me borrow the explanation from Martin’s blog.
One of the major challenges in previous versions of MCG was keeping track of all the types flowing through your nodes. If a problem crept up, you only knew about it when you tried to evaluate your graph, and that often meant doing some detective work based on an error message as your only clue.
In 2018, the types flowing through your nodes are updated as you wire them, so you know exactly where you’re going. If two types don’t match up, a red wire will indicate that the connection is incompatible or that the graph is incomplete.
So… what does this actually means in MCG graph? Let’s check out the above image again. If you see the output connector of Mesh Vertices operator and the input connector of Subtract operator in calculate Detals. group, 2017 graph connector label just shows as value(IArray). It doesn’t show what kinds of array this is. 2018 graph display the same thing as Array[vector3] to give more clear information. This labels will be dynamically updated as you update the connection. If you make a wrong connection,
Also If you make a wrong connection, for example trying to connect vector array and integer array for Add operator, the connection line color will be changed to red to show the input is wrong.
Finally you can undo your mistake in MCG editor! Ctrl+Z and Ctrl+Y.
OK. That’s al lto today.