FruehBird
I am using the pyExpression node to randomly create and animate points which is then piped into a dynamic array node and from there into an instancer. When scrubbing and rendering (VRay) through Maya everything works as expected until I try to batch render (locally). At this point it seems that the pyExpression node is not updating correctly.

Is there a way to force the node to update while in batch mode? 

Ssing Soup for Maya 2014 and the latest pyExpression plugin(2016?). 
Quote 0 0
pshipkov
Hard to say really. Can you provide an example scene showing the problem ?
You can directly email it to me.
Quote 0 0
FruehBird
Thanks pshipkov, I have attached a simplified scene using the same method. Works fine scrubbing and rendering to the pictureviewer but does not work via batch render. 
Quote 0 0
pshipkov
Can you try switching from PE evaluation back to DG and see that works ?
Quote 0 0
FruehBird
If I am interpreting that correctly PE as parallel evaluation? Maya 2014 does not have settings to switch to PE so It must be using the dependency graph? 
Quote 0 0
pshipkov
You are right.
Thing is i don't have anymore Maya2014 to test on.
Quote 0 0
FruehBird
Thanks pshipkov. Does the test scene batchrender fine on the Maya version you are running? 
Quote 0 0
pshipkov
Yes. There is no animation, so the single frame seems to be matching.
Quote 0 0
FruehBird
There should be animation. I have the time variable T offsetting the rotation output.

I have also tried to pipe the y channel of an animated locator to input F[0] and setting it to OF[0] and attaching that to another locator and no animation seemed to happen. When running batch mode the pyExpression plugin states that it is loaded however the array data is not updated as it is when scrubbing the timeline. 
Quote 0 0
pshipkov
Something is troubling me with the way you are doing this.
I think it is asking for trouble. Probably that's why there is no animation in Maya2017

The better way (there are many, but that's the first thing that comes to mind - from simplicity stand point):

Create a linear curve and rebuild it with history - this will define the number of points you want to have in the system.
There so many ways to generate point cloud in SOuP, but again - simple things first.

rebuildCurveNode.outputCurve - >point.inGeometry
point.outGeometry -> curveShape.create

Enable the "position", "normal" and "weight" expressions.
Implement your logic there. Use "normal" as rotation and "weight" as uniform scale for the instancer.
From that point everything will evaluate properly for sure.

Another way to do that is to use the arrayExpression node. But i am not sure anymore if i have SOuP builds for 2014 with that node.

When it comes down to stuff like what you want to do MASH does pretty good job at simplifying the setup.
SOuP is a more generic and requires additional step or few.

Quote 0 0
FruehBird
Thanks for the reply pshipkov.

The example file is just for a point cloud that mimicked what I am doing on my end. I Am exporting particles with many attributes from Houdini into Maya. Using the Houdini engine and baking out a cache file increases cache sizes to staggering amounts due to all the extra attributes that are added automatically. Using python I can write the particle data as a custom file format out of Houdini and Load it into Maya using the PyExpression node and only save and use the necessary attributes saving massive amounts of space. However, over the weekend I had discovered the SOup nCache manager that helped break down the cacheFile command which helped a lot.

In the end what I was hoping for is a way to rig up user controls to adjust the attributes of an already cached file such as speeding up or slowing down rotation or changing item id's. We are in the process of transitioning into 2018 but for the time being we are working with 2014. 2014 does have the ArrayExpression and it does not work with Cache array data. This would be really useful to have the arrayExpression or a new cacheArrayExpression to use to alter incoming cache data.

Thanks again for your time!
Quote 0 0
pshipkov
The latest version of SOuP has the arrayToDynArray nodes upgraded - you can extract individual channels from cache streams with them, then pipe that through whatever SOuP or other nodal networks you need to. That would solve so many problems for you here.
Quote 1 0

Add a Website Forum to your website.