With the advent of MOGRT, Essential Graphics and templated AE tools, there is a need to have more data exposed surrounding AE's "Point text" and "Box text" layers that the current sourceRectAtTime does not provide. Having more typographic bound data exposed would be extremely useful for procedurally aligning type.
The main issue that one might encounter is ascenders and descenders influencing the sourceRectAtTime dimensions, which is a typographic no-no if using these properties to align type to just about anything.
Currently, sourceRectAtTime only has an option "includeExtents" which returns a Box text's (paragraph) bounding box. This is a good start, but there are some other things that would be extremely helpful!
Additional optional parameters for sourceRectAtTime might be:
1) typeBounds (Bool) (optional)
- sourceRectAtTime.top and sourceRectAtTime.height would be calculated from the topmost capheight to the bottommost baseline. The key is ignoring ascenders and descenders that currently influence the height & position of the rectangle.
- sourceRectAtTime.left and sourceRectAtTime.width would be calculated differently as well depending on the type layer's "Left align text" or "Right align text" settings. For type aligned left, sourceRectAtTime.left would return the character's typographic left x position (i.e. it would be 0 without left margin indent for left aligned) and width would give us all the way to the rightmost visual edge. For type aligned right, sourceRectAtTime.left and sourceRectAtTime.width would behave much the same but mirrored.
2) ignoreTextAnimators (Bool) (optional)
- This option simply serves to get the type layer's rectangle data before or after any text animators have been applied. Much needed for aligning several type layers with text animators.
Additionally, it would be very helpful to expose the properties of a paragraph/box text layer's bounds on the type layer itself as:
sourceText.paragraphBox.size
sourceText.paragraphBox.position
Thanks for your consideration! For the time being I have been able to get around these issues with some very silly and overly complex expressions, but it would be much appreciated to have these data points built in / more readily accessible. I am certain that designers & animators would find it extremely helpful when building MOGRTs / using Essential Graphics for procedural template design.