Réunion du 20-01-2026
Apparence
Changements du code de la semaine
osNpcPlayAnimation
Commit et Mantis
- Mantis 9224 : osNpcPlayAnimation n'accepte pas les clés.
- Commit 483365 : permet à osNpcPlayAnimation de lire n'importe quelle animation à partir du service d'assets, si un UUID est fourni à la place des seules animations par défaut.
Prototype de la fonction
osNpcPlayAnimation(key npc, string animation)
Lance l'animation sur le PNJ identifié par sa clé.
Discussion
- La fonction osNpcPlayAnimation lit désormais directement les UUID des animations. Il n'est plus besoin de placer les animations dans l'inventaire de l'objet. C'est une demande qui a été faites via [[Lexique_des_réunions#Mantis |Mantis].
Compilateur
Commit
- Commit 86a879 : Le compilateur Linux est perturbé...
Discussion
- Sur Linux le compilateur semblait avoir du mal avec une déclaration potentiellement ambiguë.
- Vincent Sylvester mentionne des ambiguïtés liées à l'utilisation de listes ou de tableaux. Des éléments comme [list - 1] et [.. list] sont difficilement compréhensibles.
- Il y a très peu d'informations sur les raisons pour lesquelles la compilation a échoué. Apparemment cela a été corrigé. Comme c'est Microsoft, ils ne le comprennent probablement pas eux-même.
Avertissement
| Attention : Ce résumé existe pour orienter vos recherches. Des erreurs d'interprétation ne sont pas à exclure. Pour plus de précisions, veuillez vous référer aux sources ou vous adresser directement aux développeurs d'OpenSimulator en assistant aux réunions du mardi ou sur le canal IRC. Je ne fais pas partie des développeurs, ne vous adressez pas à moi pour les joindre. Merci.😉 |
Informations
Pourrait-on utiliser les UUID avec llStartAnimation ?
Question
- Cuga Rajal demande s'il serait possible d'utiliser les identifiants des animations avec llStartAnimation comme dans [http://opensimulator.org/wiki/OsNpcPlayAnimation OsNpcPlayAnimation.
NDLR :
|
Prototype de llStartAnimation
Function: llStartAnimation( string anim );
Lance l'animation anim pour l'agent qui a donné au script le droit PERMISSION_TRIGGER_ANIMATION et si les droits n'ont pas été révoqués depuis.
Sécurité
- Dans le cas de llStatAnimation, pour des raisons de sécurité, l'animation doit figurer dans l'inventaire de la primitive. La lecture d'animations sur les avatars est limitée aux animations des inventaires des primitives ou aux animations standards connues des viewers.
- Il ne faudrait pas que les avatars puissent être soumis à des animations aléatoires auxquelles les utilisateurs n'auraient pas consenti.
- Cela semble plus logique d'utiliser les identifiants des animations pour les PNJ (NPC). Ils ne peuvent pas refuser une animation.
- Guga Rajal ne comprends pas pourquoi on ne peut pas utiliser les UUID des animations alors que l'utilisation des UUID des textures est permise.
- Pour plus de protection, il faudrait désactiver OSSL. La plupart des fonctions OSSL ne vérifient pas beaucoup les les autorisations.
- Vincent Sylvester voit toujours des fonctions d'animations forcée utilisées au lieu de vérifier les permissions avec run_time_permissions.
Autorisations
- D'après Gavin Hird, c'est aussi une question de droits d'auteur. L'utilisation de l'identifiant d'une animation permettrait à tout le monde de l'utiliser gratuitement sans la posséder. Il ne voit pas la différence entre un PNJ et les avatars. Les PNJ ont aussi un créateur et s'il ne dispose pas des autorisations appropriées pour une animation, alors la PNJ ne doit pas pouvoir l'utiliser.
- Vincent Sylvester signale que pour les PNJ c'est inoffensif et pour la question des autorisations, l'animation est accessible mais seulement à ceux qui auraient de toute façon les moyens de contourner les mesures qui pourraient être mise en place. Verrouiller les assets pour le commerce est une décision au niveau de la grille qui nécessite déjà des modifications du code si vous souhaitez obtenir une expérience totalement verrouillée.
- Ubit Umarov indique qu'il n'y a aucune vérification des autorisations d'animation sur les PNJ, les assets n'ont pas d'autorisations pour les PNJ. Comment pourrait-on vérifier les autorisations sur la lecture ? Faudrait-il ne pas laisser les autres utilisateurs voir l'animation, sauf s'ils ont toutes les autorisations ? Ce n'est pas très utile de lire une animation que seul le propriétaire peut voir.
- Gavin Hird répond que cela fonctionnerait de la même manière que si vous aviez une ancienne animation de remplacement.
- Sur OpenSim, les assets ne sont pas tenus d'avoir des informations sur ou leur propriétaire, ce sont des métadonnées facultatives. Donc, il faudrait rechercher le propriétaire du PNJ et vérifier son inventaire pour voir s'il contient l'animation, ce qui est une tâche lourde car cela nécessite d'appeler l'inventaire. Si vous lisez beaucoup d'animations, cela va générer une certaine charge. Ceux qui peuvent faire apparaître des PNJ ont généralement des droits de propriété de toute façon, donc la plupart des mesures de sécurité ont déjà été supprimées.
- Si on connait l'UUID d'une animation configurée pour ne pas être transférée, il est possible de la lire avec un PNJ. Mais, les UUID sont protégés par les viewers. On ne peut pas copier l'UUID d'une animation qu'on ne possède pas et il en va de même pour les textures, les sons, etc. Bien entendu, cette protection ne concerne que les gens qui ne savent pas comment contourner cela. Ce qui est un défaut et il n'y a pas grand-chose à faire sans rompre la compatibilité. Linden Lab suppose également qu'on ne peut pas extraire des éléments du cache du viewer.
- Les meshes ont des informations sur le créateur ajoutées par les viewers lors du téléchargement.
Enregistrement des assets des visiteurs hypergrid
Problème
- Il a reçu un jour la visite d'un visiteur hypergrid avec un inventaire très important, il a ajouté à lui seul 5 Go de données à la table des assets. La console a craché des copies de dossiers pendant une heure après son départ.
Discussion
- Gavin Hird aimerait vraiment que creatorID soit obligatoire, cela permettrait de se débarrasser de toutes sortes d'assets inutiles qui encombrent la base de données par les visiteurs hypergrid. Il émet l'hypothèse que le visiteur hypergrid qui a inondé sa base de données venait d'une grille qui ne prenait pas en charge la valise, car tout son inventaire avait été copié.
- En hypergrid, à l'arrivée, les assets sont copiés dans les assets de la grille locale, pour éviter d'avoir à les récupérer sur toutes les téléportations. L'inventaire n'est pas copié, seulement ce qui se trouve dans les attachements ou quand l'utilisateur fait un rez (mais ces assets restent uniquement dans la région).
- Dans ce cas, Gavin Hird se demande pourquoi la table assets a augmenté de 5Go avec un seul visiteur.
- Les assets des visiteurs hypergrid devraient être stokées ailleurs, l'enregistrement dans la base de données pose trop de problèmes. De plus la valise hypergrid est déjà en piteux état bien qu'elle soit très utile.
- Vincent Sylvester imagine que le visiteur hypergrid a utilisé une valise hypergrid ou il avait copié tout son inventaire.
- Une valise semble être une bonne idée sur le papier, mais ensuite il ne faut pas oublier qu'a chaque téléportation hypergrid, elle va être lue par la région ce qui ajoute chaque fois du stress au simulateur. Certains y mettent tout un tas de choses pour ne pas avoir à revenir, de sorte que la quantité de choses copiées peut être supérieure à celle obtenue en utilisant simplement l'inventaire ouvert.
- De plus les ressources vont continuer à augmenter. Vincent Sylvester a téléchargé une texture de 4k de 198 Mo
Viewers
Les assets sont-ils envoyés via UDP au viewer ?
Question
- Les assets sont-ils envoyés via UDP au viewer et non via HTTP ? HTTP est-il destiné au serveur d'assets direct vers le viewer ?
- Qu'est ce que Firestorm utilisent en ce qui concerne les meshes ? Vincent Sylvester pose cette question parce qu'il a vu certains meshes ne pas s'afficher correctement et TJ se demandait si cela était dû à une perte de paquets UDP.
Réponse
- Cela dépend des viewers. La plupart utilisent désormais HTTP mais certains viewer utilisent toujours UDP comme les sources des scripts. Avec HTTP si vous connaissez l'UUID d'un asset, vous pouvez l'obtenir.
- Les meshes sont uniquement envoyés en HTTP. Il y avait auparavant une solution de secours UDP, elle a été supprimée. Donc c'est autre chose que la perte de paquets UDP qui cause l'échec du rendu des meshes. Ubit Umarov dit qu'il y a plein de raisons pour que le rendu échoue. Il a donné une solution aux développeurs de Firestorm pour un seul cas.
- L'échec du rendu semble aléatoire mais cela pourrait être dû à une corruption du mesh. Il faut que beaucoup d'étoiles soient alignées pour que le rendu fonctionne.
Sources
http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2026-01-20