Altering Particle Size with CHOPs

Following the Video Tutorials by Jarrett Smith, in Session4 he shows how to control Particle Size with Expressions. I try to achieve the same with CHOPs, this should perform faster. What would be the “right” and most efficient way to do it ?

This is what I try, and where I fail.
I grab the Life Attribute of my particle SOP with a SOP to CHOP, and rename the Scope to “age” and “lifespan”. With a select CHOP i get rid of “lifespan” and keep only the “age” attribute, I see all the particle age channels moving up in the operators viewer.

I connect the select CHOP to a keyframe COMP, with this one I would like to drive the scale of each Particle based on his age. In the keyframe COMP I create a “pscale” attribute and keyframe it the way I want each particle to behave.

Now I connect my particle SOP to a channel SOP and grab the keyframe COMP with it. I get a warning on the channel SOP saying “Ignoring some Attributes” and the pscale does not display. How do I feed the pscale into my particles ?

I have even no idea if this SOP to CHOP into Keyframe COMP system works, as the viewer of the keyframe COMPS does not show the paramter movement that I’d expect ( a remap of the age Channels ). I fiddle around with the keyframe CHOP in the COMP, but I can’t find the right settings. Tox attached, any advice ?

Cheers, searching for the Pivot of my Soul, PP !!!
Particles1.tox (2.78 KB)

It would not be faster to use CHOPs, expressions would be the better solution in this case.

A few things about your setup however;
The Keyframe COMP is expecting a time-sliced input. The input is just for looking up into the Keyframe’s x-index (in this case time). The Keyframe COMP will not do a per-sample lookup for you.

You need to connect the Point SOP you have there into the Channel SOP. The particles do not have a pscale attribute until they go through this Point SOP.

Then on the Channel SOP the attribute scope parmaeter should read pscale not life. You can always find out the proper name of the attributes by looking at the info (middle-mouse click) of the input SOP to the Channel SOP.

Something to add to this thread as another question:

If I am using a DAT to SOP to create a bunch of static point sprite particles, but I would still like to change their size, what is the method for getting a custom attribute into the expression that defines the pscale in my point sop?

Currently I’m just using an expression to look at a CHOP, and it works fine, but it seemed cleaner to define a custom attribute based on that CHOP, and have it waiting with each point to be used in the expression to create pscale. Is there a rigid syntax to what I can call the attributes or how I use them?

I am attaching a tox. You can see I am appending a column, PS(0), for the custom attribute in the points DAT. When I set the expression at Point Scale in the Point SOP to $PS or $PSX it doesn’t work.

Thanks!
pt_sprite_part_scale_psistrom.tox (2.35 KB)