An important bug have been fixed.
(It is a show-stopper for "them", so releasing this new version on a short notice to remedy the problem.)

Accumulate + output vertex colors now produces proper results.

Added non-linear remapping through a ramp.
Keep in mind that the remapArray node can handle vector and point arrays along with the double and integer ones.
That's why i am using color ramp - for the parity between color (rgb) and vector/point (xyz) - so we can work with individual axis simultaneously.
Quote 2 0
Yes !
Thanks Peter
Quote 0 0
Bruce Lee
How are you, Peter.I am a Chinese.I specially like the soup plug-in.Now I have a problem to ask toward you.Can the node  " arrayExpression" carry out the automatic calculation?Be don't need to click the apply and can compute, be like"point" and"pyExpression".I test, can click the apply then can compute once.If can automatically compute, that this node will have the very big function.I hope you can let this node auto calculation.Thank you!!
Quote 0 0
Hi there,

glad you like SOuP.

If the node is part of a nodal graph that is constructed in a way that Maya evaluates it - the arrayExpression will be auto-evaluated for you by the DG mechanism.

Like any other node in Maya it will evaluate if something tries to read data from its output attributes. You can test this by simply doing `getAttr arrayExpression1.outArray`.

If you use it in a more obscure way, where its outputs are not connected to other nodes that could trigger its evaluation, you have to force it by doing the getAttr approach explained above, use Python OpenMaya call, or the dgeval command.

There are example scenes that show how arrayExpression is automatically evaluated - that's how it is intended to work.

Let me know if i didn't understand your question properly and my answers are off.
If you can - be more specific about the problem you are facing and i will try to provide some answers and hopefully solution.
Quote 0 0
Bruce Lee
   I can not find the arrayExpression example.Please spread up the engineering that the arrayExpression can automatically compute. thank you!

   I up spread my test engineering.The "point1" can automatically compute, but" arrayExpression1" can't automatically compute. I hope the arrayExpression can automatically compute. Ask you to see, thank you!
   Forgot to say, can automatically compute at the time of English is not good, sorry.
Quote 0 0
I see what you are doing there.
This is not how the node is designed to work.
If you look at the nodal network, you will see that there is nothing in the upstream graph of this node that is changing during animation. DG optimizations are skipping the evaluation of the node and just pass to the downstream graph (in your case point2) the data in arrayExpression1.outArray as is.

But also, i see your point and will add two things to the pyExpresison node:
- inTime
- inMessageList
Basically will make it work the same way as the point node.
Quote 0 0
Bruce Lee
GIF.gif  Can't the arrayExpression automatically compute? I had no way. thank you!
Quote 0 0
Check the attached file (arrayExpression). Move the sphere.
Why it works ?
Because the inputs of the arrayExpression node are marked "dirty", by the act of moving the transform node.
When we manipulate the transform nodes the shapes and the entire hierarchy underneath is getting evaluated.

Your problem is that you are violating the rules of DG.
You are trying to make the node react on external signal (time1.outTime) but without explicit attribute connection on the graph.
You are swimming against the stream here.

Yes, you can force it to evaluate at the expense of a node added in front of arrayExpression that is designed to do that. There are couple of them in SOuP and some in Maya. I used "point" one in this case.
Check the attached file arrayExpression2.

Quote 0 0
Bruce Lee
Thank you very much!! I understand.You solved my question.I more like you with your SOuP!
Quote 0 0