you could play around with the time displace effect. it will displace time based on the luminance of a layer map. so you could use a simple gradient to have the morph start at the bottom and end at the top.
it may not give you quite what you want, but i think you could get close.
your morphing square-circle will need to be precomped, then create a shape layer with a gradient fill and adjust the gradient to go top-to-bottom.
apply the time displacement effect to the precomp, select the shape layer as the layer map and adjust the displacement time to see if you can get what you need.
i think if you animate the displacement time to start at 0 when the morph starts, then increase to the duration of the morph at the midpoint, then back to zero at the end of the morph, you’ll be close…
ex: say your morph from square to circle is 4 seconds. on the first frame set the time displacement to 0, at the 2 second mark, set it to 4 and ad the 4 second mark set it back to 0.
Kevin Camp
Art Director
KCPQ, KZJO & KRCW