Here’s yet another option…
First make sure you have “Need Parent UV” ticked in your Basic Emitter Attributes.
Then make the sphere a goal for the particles. Make sure the goal weight is NOT zero (use 1.0 if you want them to stick to an animated surface)
Select the particle object. Look in the Attribute Editor, find the particleShape node/tab. Look in the section called “Per Particle (Array) Attributes” for the following attributes:
Parent U, Parent V, Goal U, and Goal V.
If they are not there, you need to add them - you do this in the section just below, called “Add Dynamic Attributes”, hit the “General” button. You will find them in the “particle” tab.
Enter a Creation Expression for the particles (right-click on one of the Per Particle attributes and select “Creation Expression…”. This opens the Expression Editor.) Type in the following:
goalU = parentU;
goalV = parentV;
and hit the “Create” button in the Expression Editor.
In the Attribute Editor, on the particleShape node, look for “Goal Weights and Objects”. Hit the button “Create GoalWorldNormal 0 PP”.
In the “Instancer (Geometry Replacement)” section, set the “Aim Direction” to be GoalWorldNormal0PP.
(In short, you have now made the particles aware of their place of birth on the object, in terms of U and V coordinates. These coords are then set to be their birth goal, and is then used to read the normal from the object. And you then feed this to the instancer.)
Now, this is more specific to the scene you had already made…
you had Rotation Type (in the Instancer section) set to “Force”. Set it to “None” as is the default.
select the polyPlane (the object you use for instancing).
in the channel box, enter -90 for Rotation Z.
Freeze Transformations (if your polyPlane is not at the origin of the scene, then you will want to use the option to only freeze rotations)
The polyPlane’s object X-axis is now pointing same direction as the normal of the polyPlane, and it will align as you described.
Note: you can hide your instance object, so you don’t have to move it away from the scene origin. Making the original instance object invisible will not affect rendering of the particle instances.