Les exemples précédents affectent la valeur d'un device aussi rapidement que le matériel le peut. Bien entendu, vous souhaitez certainement faire quelquechose de plus élaboré comme atteindre une certaine valeur dans un temps donné (en millisecondes):
headPan = 30 time:3000;
qui va atteindre la valeur 30 (degrés) en 3000ms. Quand vous avez à exprimer une valeur temporelle avec URBI, vous pouvez toujours préciser explicitement l'unité que vous souhaitez employer:
headPan = 30 time:3s; headPan = 30 time:3000ms; headPan = 30 time:3m; headPan = 30 time:3h26m15s;
Vous pouvez utiliser des jours (d), des heures (h), des minutes (m), des secondes (s) et des millisecondes (ms), avec des valeurs décimales. Par défaut, l'unité est la milliseconde si aucune unité n'est précisée ou lorsqu'une variable est utilisée.
D'autrepart, vous pouvez également régler la vitesse à la laquelle la valeur doit être atteinte, exprimée en unité/s:
headPan = 30 speed:1.4;
Ou l'accélération (exprimée en unité/s²):
headPan = 30 accel:0.4;
Une manière très utile d'affecter une variable avec un profil dynamique est d'employer l'oscillation sinusoïdale:
headPan = 30 sin:2s ampli:20,
Cela va faire osciller le device HeadPan autour de 30 degrés avec une amplitude de 20 degrés et une période de 2 secondes. Remarquez que la commande se conclue par une virgule et non un point-virgule. Nous expliquerons ceci en détail plus tard, mais, en deux mots, la raison est que l'oscillation ne termine jamais et la virgule signifie en quelque sorte "mais fais tourner ceci en tâche de fond" pour permettre aux commandes suivantes d'être exécutées. Autrement, avec un point-virgule, aucune autre commande ne pourrait ensuite être exécutée puisque l'oscillation ne termine jamais. Il s'agit d'une erreur courante de la part des débutants en URBI.
time, speed et sin sont appelés des modificateurs. Il en existe beaucoup d'autres comme phase, getphase ou smooth. Rendez-vous dans le document "URBI Language Specification" pour une liste exhaustive des modificateurs.
Un modificateur particulièrement puissant est une fonction qui affecte une fonction temporelle complexe en tant que variable de trajectoire. Tout ceci est décrit dans "URBI Language Specification" et ne sera disponible qu'à partir de la version 2.0 des serveurs.