Rotation from Particle to Copy sop

Copy Sop doesn't get angler velocity information. It just converts moment velocity to copied objects.

This work flow allow you to calculate angler velocity with moment velocity when using copy sop from particle or any point.

at Particle

Prepare Attributes on Particles

  • pCenter(get from just Position"P")
  • rotSpeed(float)
  • rotAxis(vector3)

Set Rot(from quaternion vop) Attribute for Rotation

  • Angle <- rotSpeed * frame($FF or age * $FPS)
  • Axis <-normalize<- rotAxis

Make sure check Use Template point Attribute at copy sop

At Copied Object

  • Offset to Center and arrange axis to Y up <offsetedObj = (Position - pCenter) * inverted Align(from[0,1,0]torotAxis and invert)>
  • We don't need height <XZdistancedObj = multiply [1,0,1]>
  • Calculate Cross by Y axis <crossedOBJ = cross product (vector1 = [0,1,0], vector2 = XZdistancedObj)>
  • Calculate rotation speed <radianVelocityOBJ = multiply rotSpeed>
  • Multiply Pi * fps / 180 (in case length of radianVelocityOBJ(vector) is radius. See *1
  • Restore axis <result = Align(from[0,1,0]torotAxis)
  • to Velocity <v = v + result>

tips

Probably you need to change the name v attribute to (storeV or something) before copy sop.

And then rename the storeV to v.

(This is for objects are not orienting velocity direction.)

(*1

2 * Pi * r= (360 / fps) * angleVel

angleVel = 2 * Pi * r * fps / 360

Links