Artwork > Finished Works and Works in Progress

Scene with animated trees WIP

<< < (3/3)

dwsel:
@ENSONIQ5:
Thanks! I'm quite happy with current frequencies. I still see some faults: the worst one is that fronds are crossing in some places, or (for me) visually changing length, but I hope it won't be that noticeable when view from distance/in the scene/with having multiple instances viewed from different angles. Matte painting and lighting are the next elements ;)


@cello95:
I don't want to redistribute modified palm model which is not mine, but I hope my answer will satisfy your curiosity.

Idea:

http://http.developer.nvidia.com/GPUGems3/gpugems3_ch16.html
http://http.developer.nvidia.com/GPUGems3/gpugems3_ch06.html


Hierarchy:

+- root
| +- trunk1
| | +- trunk2
| | | +- trunk3
| | | | +- trunk4
| | | | | +- frond01
| | | | | +- frond02
| | | | | +- frond03
.
.
.
| | | | | +- frond20

Trunk1-4 are sliced parts of the trunk with pivot points at (0,0,0), if available I'd rather use bones here. There are two requirements:
1. bones parameters visible for scripting
2. bones linkable into hierarchy in the scene mode
Trunk parts have xz rotation driven by equation, fronds have xyz rotation + noise morph + xyz bend morph all driven by equation.

Equation:

F(T) = A1 * sin ( P1 * T - O1) + A2 * sin ( P2 * T - O2) + ...

T - time
A - amplitude
P - prime number frequency modifier
O - offset ( if you want looping animation put (T - O) into parentheses )

General rule in this example:

Each following level in the hierarchy has higher frequency, bigger offset. Leaves are bending so they need morphs. I deformed each of them separately with custom script in x, y and z, but possibly single morph would be enough.

Sample:

controller { "orientation"
  script {
   "float $x;"
   "float $y;"
   "float $z;"
   ""
   "$x = (1.25 * sin(3 * (time+0.8))) + (0.75 * cos(5 * (time+0.9)));"
   "$z = (1.25 * cos(3 * (time+1.0))) + (0.75 * sin(5 * (time+1.1)));"
   "$y = 0.5 * cos(15 * (time+0.0));"
   ""
   "$orientation = RPYtoQuaternion($x, 0.0, $z);"
  }
  track {
   qkey { 0 (0 0 0 1) "S" }
  }
}
controller { "morph.morph01"
  script {
   "$morph.morph01 = 0.4 * cos(5 * (time+0.8));"
  }
}
controller { "morph.morphy"
  script {
   "$morph.morphy = 0.15 * cos(1 * (time+0.8));"
  }
}
controller { "morph.morphx"
  script {
   "$morph.morphx = (0.15 * sin(3 * (time+0.75))) + (0.1 * cos(5 * (time+0.85)));"
  }
}
controller { "morph.morphz"
  script {
   "$morph.morphz = (0.15 * cos(3 * (time+0.95))) + (0.1 * sin(5 * (time+0.05)));"
  }
}

davdud101:
WAIT! dwsel, before you assume this is complete, and Ensoniq, before you assume this project is bullsh** free;
I know Anim8or isn't capable of any physics on it's own, but dwsel, I'd urge you to even go as far as the consider that the motion of the tree itself would additivley cause the leaves to move. Like, even further down the hierarchy, I guess, aside from them moving just as a result of wind.

I mean, realistically, it looks great the way it is. But from a super-analysis like mine, those leaves would have transferred just a weeeeeee bit of additional kinetic energy from the neck of the tree's motion.

And yes, I know it's insanely analytical, but ya know. "Only the best, and forget the rest."

Navigation

[0] Message Index

[*] Previous page

Go to full version