oh dear oh dear, if that really was the example in the book then its completely whacked! No wonder i have to reteach fundamentals all the time over and over again.
Lets just say you probably want to be pretty carefully with leveraging that info in real world. I mena hey come on its not even mel its supposed to be a expression. So important to note number 1:
MEL ia NOT equal to Expressions
Anyway im ignoring the wrong kind of tick here just the code as if it was written as suggested with backticks
int $time = 'currentTime -query' ;
Really, why would anybody bother to do this? Is the intention to really makes sure maya will not evaluate anything sane ever anymore? Why poll when less typing does the job several magnitudes better with a actual attribute trigger? Its stunts like this that cause maya to need to evaluate every frigging frame by refreshing when theres REALLY NO NEED TO! But its really easy to fix:
float $time = frame ;
in fact yes youd probably just want to delete the line and replace each occurrence of $time with frame.
Converting it to int woudl mean you wouldnt be motion blurring the object. Did you really intend to kill motion blur?
int $delay10 = 'getAttr -time ($time - 10) Hips.rotateY';
suggest you fix things to:
float $delay10 = getAttr -time (frame - 10) "Hips.rotateY"
;
ok ill grant you a consession here, there really is no sane way fo doing this in maya without a programmer worth his weight in gold. But seriously is your original intention to actually round the values by dropping the remainder. Wouldnt float delay be better?
There is a dangerous hard to find bug here that may affect you if you use this line tough if somebody actually uses maya defaults set to radians then your rig just ceased working with no real indication of it. The output would fix this automatically off course but your input does not.
Theres a second dangerous hard to find bug in this ive emphasized this by putting things in quotes. See Hips.rotateY IS actually a string, unlike for example the Hips.rotateY on the following line:
tailroot.rotateZ = Hips.rotateY ;
Where Hips.rotateY a connection. Understanding this is important because IT DOES cause problems frequently, when people start doing references to yoru rig, change names etc etc. To be totaly honest this is a actually a lame design limitation in the expression engine but no matter its still there. I could go on and on for pages since theres still things i would fix but you couldnt load the data into your head in one go.
But yeah it sort of makes sense in the kind of way that football means the same thing to a person form states and a person form europe. Both are popular sports with lots of fans, probably your audience would relate quite well, tough they'd be thinking 2 completely different things.