It would be easier to do this with two separate clouds. If you clone the first cloud's points on emission, then the creation order and therefore the point indices will be the same so you can use Switch Context. You can set the cloned particles' size to 0 if you want to hide them and then "trigger" them some time after emission.
Otherwise... 1. Store the ID as a custom attribute, say ParentID, before cloning. This will get cloned and establishes a correspondence between parent and child. 2. Clone. 3. Use Build Array from Set to put ParentID into an array. Find the parent's ParentID in the array. You should get an array with two indices, the one that isn't the parent is the cloned child (safe to say it will be the second one). 4. . Use Build Array from Set again to put the tangents into an array. Use the child's index to get the tangent you want. gray From: softimage-boun...@listproc.autodesk.com [mailto:softimage-boun...@listproc.autodesk.com] On Behalf Of Alan Fregtman Sent: Wednesday, July 17, 2013 9:45 AM To: XSI Mailing List Subject: Re: Setting data on a particle based off data from another particle in the same cloud @ Julian & Leonard, Thank you guys. I will check your scenes and explanations when I get home later. @Ciaran, It does, but only so for the particles with strands. Particles without strands get filtered out of the logic. So even though I can work out the orientation I need from the location StrandPosition's, when I set self.Orientation, it only sets it for the strandy particles, not the others. That's my main problem. How do I force my set on self.Orientation to be on the original particle IDs? On Wed, Jul 17, 2013 at 9:28 AM, Ciaran Moloney <moloney.cia...@gmail.com<mailto:moloney.cia...@gmail.com>> wrote: I guess I don't understand the problem....why not do just ID to Location >> strand positions ? It's quick and gives you the array you need right away. On Wed, Jul 17, 2013 at 1:29 PM, Leonard Koch <leonardkoch...@gmail.com<mailto:leonardkoch...@gmail.com>> wrote: Hm somehow my first email didn't get through. The trick is to turn the per point data into arrays, use a lot of find in array nodes and to calculate the direction vector on the strand particles instead of trying to get the strand data from them and then calculating it on the other particles. Hope this helps. Here you can download the scene: https://leonard-koch.squarespace.com/s/SeparatingStrandsAndParticlesForAlan.scn And here is the image of the ice tree used in the scene On Wed, Jul 17, 2013 at 2:07 PM, Christian Keller <chris3...@me.com<mailto:chris3...@me.com>> wrote: If you clone the points clone the id into a new attribute, then you know which particle is the parent. And add a attribute that it's a clone. You can use that later to decide not to put orientation values on. Build a set from you tangent, whatever values and then you can select the corresponding value from that set. I'm not in front of a computer right now, but I'll have a quick look at it if you don't get it working. Chris -- christian keller visual effects|direction m +49 179 69 36 248<tel:%2B49%20179%2069%2036%20248> f +49 40 386 835 33<tel:%2B49%2040%20386%20835%2033> chris3...@me.com<mailto:chris3...@me.com> gesendet von meinem iDing Am 17.07.2013 um 12:02 schrieb Ciaran Moloney <moloney.cia...@gmail.com<mailto:moloney.cia...@gmail.com>>: Maybe you're not getting the right ID to look up the strandpoints on? On Wed, Jul 17, 2013 at 2:34 AM, Alan Fregtman <alan.fregt...@gmail.com<mailto:alan.fregt...@gmail.com>> wrote: I thought that too, but it's not cutting it. :( The "do stuff" part doesn't get any StrandPosition data for the points without strands. (Tried both ID to Location & Point Index to Location.) On Tue, Jul 16, 2013 at 9:27 PM, Ciaran Moloney <moloney.cia...@gmail.com<mailto:moloney.cia...@gmail.com>> wrote: Point ID to location >> get strand positions >> do stuff >> Set Self.Orientation Ciaran On Wed, Jul 17, 2013 at 1:54 AM, Alan Fregtman <alan.fregt...@gmail.com<mailto:alan.fregt...@gmail.com>> wrote: Hey guys, Scratching my head over this... So, I have two sets of particles. One is emitted then a second particle is born (via Clone Point) and this one gets some strand stuff. This one follows the original's motion. I wanna align the first particle to the strands' tangent from the second particle. I got this working when it was all with one set of particle, but now that I separated them, I'm a little lost with the context. Getting self.StrandPosition to work out the tangents sets the context to per-point and so if I set any data it does it to that original point I read the StrandPosition from, therefore I end up affecting my strandy particles, not the original. Any idea how I can get the StrandPosition from the strandy particles and have it so when I set the Orientation I do so on the original first set of particles? Any help appreciated. Cheers, -- Alan
<<attachment: winmail.dat>>