The first option only changes when the animations are different so it is really the most efficient although the efficiency gains aren't very big. The second and third (2nd: every tick, 3rd: no condition) are exactly the same. They both happen every tick. The last option is basically an every tick situation but only 1 of the 2 options is happening every tick depending on if the character is moving or not.
With all that said though, the animation engine, as far as I understand it, will handle all these pretty close to the same. You aren't going to get huge gains from choosing any specific option above.
Thanks for the input, yes maybe it's true that it may not have much impact in code that is simple and only involves a few objects.
I personally prefer the first option, because I prevent the system from continuously carrying out unnecessary processes.
The last option, I think is not efficient in terms of writing code because I group events based on certain criteria. So that the codes are not spread wildly across various lines.
Thank you for explaining to me how the system works. I need to get this fundamental information early, so that when the code starts to get complex, I can do code maintenance more easily in the future.