Bend by Object
Bend by Object allows you to change the angle of scattered items so that they rotate away or towards a selected object. It's ideal for illustrating objects interacting with grass or rugs with many other possible applications. To use it:
- Use the Object property to select an object from the scene that will be used to affect the angle of scattered items.
- Use leanOutAmount to change the amount objects will bend. Negative values lean away from the object and positive values lean towards the object.
- Use leanOutDistance to control the distance from the object that the angle change affects. The effect will falloff until it reaches this distance.
- Use randomWiggle to add some rotation variation to the items that are affected by the bend effect.
Effect Script:
Vector vec1 = object.position - fpItem.position; real angle = atan2(vec1.x,vec1.y)-degtorad(90); real lengthVec = length(vec1); real leanOutX = easeIN( length(vec1),Lean_Out_Distance,0,fpItem.rotation.x,sin(angle+degtorad(randomReal(-randomWiggle,randomWiggle)))*Lean_Out_Amount); real LeanOutY = easeIn( length(vec1),Lean_Out_Distance,0,fpItem.rotation.y,cos(angle+degtorad(randomReal(-randomWiggle,randomWiggle)))*Lean_Out_Amount); fpItem.rotation.x = leanOutX; fpItem.rotation.y = leanOuty;
You can find this Effect within the Forest Effects Library.
This Effect Uses:
Parameters
- Object
Type: Object - Lean_Out_Amount
Type: Real - Lean_Out_Distance
Type: Scene Units - RandomWiggle
Type: Real
Attributes
- fpItem.areaIncNearest
Vector to nearest include area edge. - fpItem.areaIncDistance
Distance to nearest include area. fpItem.position
Position vector of individual fp Item.fpItem.rotation.x
Individual item's X rotation.- fpItem.rotation.y
Individual item's Y rotation.
Functions
- length(v)
The length of v. - atan2(x,y)
Returns the principal value of the arc tangent of y/x, expressed in radians - degToRad(p)
Converts degrees to radians. - easeIn(x,x1,x2,y1,y2)
Returns an ease-in interpolation between y1 and y2. Returns y1 when x < x1