Just tested the points follows nulls idea. It works.
You have to make two copies of your animated mask. One gets “points follows nulls” and one gets “nulls follows points”. Then you can pickwhip the position value of the nulls AE generated that control mask (that has suddenly stopped animating because you used points follows nulls and the new nulls have no animation on them) and link those to the nulls AE generated that are following the first mask around. After you do this pickwhipping, both masks will be back moving around the way you have animated them. Then pick the one you want to stop moving and apply an expression to the null that controls that point (not the null that is following that point around)
It would be something like:
a=thisComp.layer(“MySolid 1: Mask 1 [1.0]”).transform.position // this sets a= to the position of the null that is following the node on the mask around
if(time>20 || time<60) { // this defines the spot in time (in seconds) where you want the null to freeze
b=[20,30]; // this sets the position of the null during the freeze (here’s its x=20 and y=30)
}
else { // if not within your time parameters do the following
b=a; // set the null to the position of the null that is following the mask around
}
You could also have the null figure out where it is in time so it sets the static position correctly (using the valueAtTime() paramater.
In the first line of the code the “Mask 1 [1.0] stuff is just the index of the node point. So the third node would be[1.2] because the node indexes start at zero.