Brevet FR2879875A1 — publié le 20060623

PROCÉDÉ ET SYSTÈME D'IMPLÉMENTATION D'AVATAR À LA DEMANDE D'UN UTILISATEUR La présente invention se rapporte à l'affichage et à 5 la transmission à un utilisateur d'objets graphiques personnalisables fixes ou animés. La présente invention se rapporte plus particulièrement à un tel affichage en utilisant des objets de type avatar. Un exemple d'utilisation de la présente invention est l'affichage sur des terminaux mobiles de type téléphone portable ou PDA. L'art antérieur connaît de nombreux procédés où des avatars sont préenregistrés dans une base de données et téléchargés à la demande de l'utilisateur. De telles solutions ne sont pas satisfaisantes puisque la taille des bases de données limite la diversité des avatars disponibles. Dans le domaine de l'affichage d'avatars sous une forme non prédéterminée, l'art antérieur connaît particulièrement la demande PCT 2004/053799 (SONY Ericsson). Dans cette demande, une bibliothèque d'avatar est utilisée. Elle comprend un ensemble de couches correspondant à des parties de l'avatar final affichable (par exemple cheveux, tête, bouche). Ces parties sont stockées de préférence en tant que document XML et représentent des images en deux dimensions. Une telle base de données en deux dimensions est tout à fait limitée en termes de modifications disponibles pour l'utilisateur. On pourrait donc penser à remédier à ces inconvénients en utilisant une base de données des parties d'avatars stockés en tant qu'objets en 3 dimensions étant générés en temps réel au niveau d'un serveur distant et transmis à l'utilisateur sur requête. Cependant, en pratique, ce procédé nécessite des temps de calcul et de chargement trop long pour satisfaire un 10 utilisateur désirant télécharger son avatar. La présente invention entend donc solutionner le problème du chargement d'avatar en utilisant d'une part une base de données d'objets en 3 dimensions qui sont générés sur demande de l'utilisateur, et d'autre part, une base de données en deux dimensions correspondant aux avatars 3D qui ont été déjà calculés. Le système obtenu fourni donc une grande liberté de choix des possibilités de personnalisation d'avatar grâce à la base de données d'objets 3D, tout en maintenant une rapidité de chargement acceptable dans le cas où les éléments constituants de l'avatar avaient déjà été calculés au niveau du serveur. Pour ce faire, la présente invention est du type décrit ci-dessus et elle est remarquable, dans son acception la plus large, en ce qu'elle concerne un procédé de personnalisation d'un objet graphique pour un utilisateur muni d'un poste client à partir d'un premier serveur distant, caractérisé en ce que ledit premier serveur comprend au moins une base de données comprenant un ensemble d'objets élémentaires 3D de personnalisation, et en ce qu'il comprend les étapes consistant à - générer au niveau dudit poste client, une requête de personnalisation vers ledit serveur pour l'affichage d'un objet graphique personnalisé correspondant à la combinaison d'un ensemble d'objets élémentaires 3D de ladite base de données. enregistrer un identifiant unique de ladite combinaison dans une base d'identifiant de requête; - si ledit identifiant n'existe pas déjà dans la base d'identifiant: - générer au niveau dudit serveur distant, en réponse à ladite requête, au moins un objet 3D correspondant à ladite combinaison; - stocker dans une seconde base de données d'éléments en deux dimensions, sous la forme d'une image en 2 dimensions, ledit objet graphique personnalisé correspondant à ladite combinaison; - envoyer ledit objet graphique au niveau du poste client. - si ledit identifiant existe déjà dans la base d' identifiant: - envoyer ledit objet graphique issu de la base de données d'éléments en deux dimensions au niveau du 25 poste client. De préférence, ladite étape de d'envoi au niveau du poste client est réalisée par un réseau de télécommunication et est réalisée par une communication de type GSM, GPRS ou 30 UMTS. Avantageusement, ledit objet graphique personnalisé correspond à un personnage virtuel (avatar). Selon une variante, ledit objet graphique personnalisé 5 correspond à une partie d'une scène pour la décoration. De préférence, ladite image en deux dimensions du procédé selon l'invention, est dans un format comprenant une composante de profondeur. On comprendra mieux l'invention à l'aide de la description, faite ci-après à titre purement explicatif, d'un mode de réalisation de l'invention, en référence aux figures annexées où : - la figure 1 représente le principe général de la création d'avatar sur demande à partir d'objets 3D; - la figure 2 représente l'architecture d'échange entre un client et un serveur pour l'obtention d'avatars; - la figure 3 représente un exemple simple de base de données utilisée pour l'invention; - la figure 4 représente un exemple de menu accessible au client; - la figure 5 représente un squelette en pose selon l'invention; - la figure 6 représente le procédé de skinning pour l'animation des points des modèles; - la figure 7 représente le schéma de fonctionnement de l'invention par la collaboration d'une base 3D et d'une base 2D pour les requêtes préexistantes. Un avatar est théoriquement la représentation d'un utilisateur dans un environnement virtuel. La présente invention est particulièrement adaptée à ce type de représentation, mais il doit être entendu qu'elle est également applicable à tout type de représentation d'objets ou ensemble d'objets personnalisables. Dans le cas d'avatars, ces objets sont par exemple des personnages auxquels on ajoute des vêtements ou des accessoires. Dans le domaine de la représentation d'un espace de vie, ces objets sont par exemple des meubles auxquels on ajoute une texture ou une finition. Nous décrivons dans une première partie la génération d'avatar à partir de la base de données d'éléments simples 3D. Illustré figure 1, de façon très générale, lorsque l'utilisateur émet la requête signifiant qu'il désire chargé un avatar constitué des éléments elt1, elt2, elt3, elt4, elt5 et elt6, cette requête est envoyée à la base de données d'objets 3D qui calcule l'avatar correspondant à cette combinaison. Une fois l'avatar calculé, il le renvoie au niveau du terminal de l'utilisateur. Nous décrirons maintenant deux modes de réalisation de cette étape de génération d'un avatar à partir d'objets 3D correspondant d'une part à un objet de type avatar humain déformable généré à partir de squelettes et d'autre part à un objet non déformable. L'homme du métier comprendra cependant que ces modes de mise en oeuvre ne sont pas limitatifs. La figure 2 représente une architecture générale client serveur de type téléphone mobile sur laquelle est installé le système selon l'invention. Encore une fois, il est entendu que ce mode de réalisation n'est pas limitatif puisque le terminal destinataire peut être un ordinateur personnel fixe ou mobile accédant à Internet, et plus généralement, tout terminal ayant une capacité d'affichage et de communication à distance. Il peut être de type Wap, I-Mode, ou www, et également correspondre à une borne interactive sur un réseau local. Le serveur 1 comprend les logiciels et les bases de données nécessaires à la mise en uvre. Il comprend plus particulièrement un premier script (4) permettant l'interprétation des requêtes des utilisateurs. Ce script permet la gestion des informations nécessaires à la génération des objets en 3 dimensions pour la personnalisation. Il gère par exemple les importations des objets dans une scène vierge, les données de position et/ou de rotation dans un espace 3D, les informations de shading et/ou de mapping, les informations de position des caméras et/ou de focale. L'homme du métier connaît les informations nécessaires pour la génération d'une scène 3D, et il est entendu que la lite précédente n'est pas limitative. Il convient enfin de noter que le script est adapté au logiciel de traitement 3D (5) permettant la génération des objets de personnalisation à partir des informations du script et des bases de données d'objets (3). La figure 3 représente un exemple simple de base de 25 données utilisée pour l'invention, les têtes, les corps, et les bas correspondant à différentes options de personnalisation possibles. Selon un premier mode de réalisation, les objets 3D de personnalisation sont des objets pouvant changer de forme et de position. Ils sont générés à partir de squelettes et sont particulièrement adaptés à la réalisation d'avatars humains. Les champs de pose (posing) correspondent au squelette du personnage sur lequel les différents accessoires vont venir s'insérer. Dans le domaine de la 3D, l'homme du métier connaît la 5 définition des objets par squelette et skinning. Nous décrivons ici simplement le principe général du skinning pour une meilleure compréhension de l'invention. Il est cependant entendu que ce mode de réalisation n'est pas limitatif et que l'homme du métier est à même d'utiliser un autre mode de définition des objets. L'homme du métier connaît par exemple également une technologie voisine appelée cloth > permettant de simuler le mouvement des vêtements. Cette technique est également applicable à la présente invention. La première étape de la création de l'objet est l'obtention d'un squelette S, correspondant globalement à un ensemble d'os qui seront amenés à être animés. Ce squelette est donc un système contraint où l'on définit les racines, les liaisons, et les différentes contraintes sur les liaisons. Une représentation d'un squelette est visible figure 5. D'une façon générale, on peut appeler squelette tout objet sur lequel des points sont assignés de façon fixe, les points se déplaçant avec le déplacement du squelette. À partir de ce squelette, une étape de skinning est 30 réalisée afin de définir le modèle 3D. Ce modèle est défini par un ensemble de points Mi, attachés de façon fixe à un ou plusieurs os du squelette. L'attachement aux différents os est représenté par un vecteur de pondération dont la somme des poids est 1. Le mouvement des os entraînera alors le mouvement des points qui lui sont attachés, comme c'est visible sur la figure 6. Les animations du squelette sont définies par des matrices de rotation et de translations, qui sont appliquées également aux points fixes dans l'espace du squelette. On définit alors une pose du squelette comme une combinaison de ces matrices de rotation et de translation sur les différents os. On définit également la pose au repos comme le 15 squelette non soumis à un mouvement (donc sans rotation ni translation). On définit enfin la pose animée comme une pose image de la pose au repos par un ensemble de transformations géométriques. Il est entendu que comme les points sont fixes dans l'espace des os, on peut définir de la même façon un modèle au repos et un modèle animé correspondant aux transformations géométriques sur les os vues dans l'espace du modèle. Selon la présente invention, les poses sont stockées dans une base de données du serveur distant et différents modèles leur sont associés. Ces modèles correspondent par exemple à différentes parties du corps pour un squelette humain. La structure de la base de données est représentée figure 2, avec par exemple un ensemble de têtes, de corps, et de bas de silhouette. Les propriétés de skinning permettent de ne stocker que les modèles au repos, puisque le modèle animé sera calculé automatiquement par les transformations appliquées 5 au squelette. Une fois le modèle défini, il est possible de changer sa texture. En effet, le modèle 3D peut être maillé, et différentes textures sont appliquées à ce maillage. Encore une fois, seule une texture en 2 dimensions peut être stockée, puisqu'elle viendra s'adapter automatiquement au modèle défini par les coordonnées de mapping. Cette technique de mapping appliquée à la texture des objets est connue de l'homme du métier. Ce changement de texture peut correspondre à un simple changement de couleur ou à un changement de d'image mappée ou encore à un changement des valeurs physiques constitutives du type de texture comme le bump, la réflexion ou la transparence dans un modèle. On stocke alors la couleur rouge, et en cas de requête de l' ur=,ilisateur, cette couleur vient s'appliquer sur la partie du modèle sélectionnée. Cette possibilité de changement de texture est particulièrement avantageuse dans le domaine de la décoration d'intérieure, il est donc possible pour l'utilisateur de visualiser sur requêtes les changements sur des parties d'une scène 3D. Cette notion de mapping par texture permet également à l'utilisateur de définir des textures particulières, par exemple sous forme de photographie. Une photographie de visage peut donc être inséré à la place d'un visage par défaut sur un des modèles 3D selon l'invention. Pour ce faire, une photographie est placée dans un gabarit permettant de définir des zones du visage, et est uploadée vers le serveur pour traitement et texturing de l'avatar par la photographie. L'avatar personnalisé avec le visage correspondant à la photographie est alors renvoyé vers le poste client. Le menu proposé à l'utilisateur est alors adapté à ce 10 type de définition des données de l'avatar, comme sur la figure 4. À l'aide d'un browser ou d'une application par exemple de type applet java sur son équipement mobile ou fixe, l'utilisateur choisit le type de pose (squelette). Pour plus de convivialité, le squelette est par exemple présenté selon un modèle nu ou par défaut, pouvant prendre différentes formes. L'utilisateur choisit également des modèles spécifiques correspondant aux différentes parties du squelette, ainsi qu'éventuellement un ensemble de textures correspondant à des parties des modèles. Une fois que l'utilisateur a défini sa requête, celle-ci est envoyée au serveur 1 par un réseau de communication. Le choix d'une pose et des modèles détermine alors un avatar animé (ou avatar au repos Si l'utilisateur a choisi la pose au repos). L'avatar correspondant à l'association des différents 30 modèles et textures est alors affiché sur l'écran de l'utilisateur. Si l'utilisateur décide de changer un modèle, par exemple s'il décide que son avatar possède une coupe de cheveux différente, il sélectionne la caractéristique correspondante dans son menu et envoie sa requête. La pose courante étant enregistrée au niveau du serveur, le brun est alors adapté à la pose actuelle et est envoyé pour l'affichage. Si l'utilisateur décide de changer la silhouette tout en gardant les mêmes modèles, ceux-ci sont rechargés afin de correspondre à la nouvelle pose. L'utilisateur peut également modifier l'échelle générale de son avatar pour un meilleur affichage au niveau de son équipement distant. Il convient de noter que l'utilisation de modèles 3D permet une grande liberté dans l'animation des avatars personnalisés. Pour cela, l'utilisateur peut éventuellement définir différentes positions d'un modèle et demander l'animation de son avatar personnalisé. Un programme au niveau du serveur calcule alors une animation sur la période déterminée et envoi cette animation au niveau du poste utilisateur. Le display de cette animation peut se faire soit via un lecteur multimédia (quicktime, flashplayer, windows media...) soit via des systèmes 3d temps réels. Ces modèles 3D peuvent également être visualisé sous différents angles de prise de vue. Des requêtes de changement de caméra sont donc envoyées par le client, et le serveur génère le modèle sous la prise de vue demandée. Par ailleurs, il est entendu que les différentes scènes visualisées peuvent contenir également un arrière- plan sous forme 2D ou 3D pour personnaliser l'environnement d'évolution de l'avatar. Enfin, l'utilisateur a accès à des accessoires pouvant être associés aux modèles 3D. Ces accessoires sont par exemple des lunettes associées à un visage. Dans ce cas, l'accessoire est assigné au modèle, comme le modèle était assigné au squelette. Selon un second mode de réalisation, les objets à personnaliser peuvent être de type non déformable. Ce mode de réalisation est particulièrement adapté à des applications de décoration d'intérieur en ligne. Dans ce cas, les objets de référence sont non plus définis comme des squelettes, mais comme un ensemble de points possédant des propriétés de positions, de rotation, de pivot dans l'espace à trois dimensions. La personnalisation est cette fois réalisée par des méthodes de mapping connues de l'homme du métier. Comme précédemment, toutes les textures et/ou les couleurs des objets sont modifiées au niveau du serveur sur requête de l'utilisateur. Par ailleurs, comme il a déjà été mentionné, l'ensemble de ces calculs à partir d'objets 3D nécessite souvent d'important temps de traitement incompatibles avec la demande des utilisateurs. L'invention consiste donc également, à partir de ces calculs sur des objets 3D, à tenir une base de données d'éléments en 2 dimensions correspondant aux éléments simples constituant l'avatar déjà calculés à partir de la base de données 3D lors d'une première requête. Ce type de procédé correspond donc globalement à la combinaison à un traitement 3D et d'un apprentissage 2D. Illustré figure 7, lors de la première requête d'une combinaison eltl, elt2, elt3, ..., elt6, l'avatar est calculé au niveau de la base de données 3D comme il a été vu précédemment. L'avatar obtenu dans sa forme 2D est alors stocké dans la base de données d'éléments 2D. Ainsi, lors d'une requête d'une combinaison d'élément, on procède à une reconnaissance de la combinaison. Cette combinaison est par exemple enregistrée sous la forme d'un identifiant unique au niveau d'une base d'identifiant pour la comparaison future avec les nouvelles requêtes. Si cette combinaison existe dans la base de données 2D, l'avatar 2D correspondant sera directement envoyé à l'utilisateur. Si cette combinaison n'existe pas, c'est donc une combinaison nouvelle qui doit être calculée à partir de la base de données 3D. Cette nouvelle combinaison est alors, en fin de traitement stockée dans la base de donnée 2D pour les appels ultérieurs. De cette manière, on garde donc toute la liberté de création de nouveaux avatars par la génération d'objets 3D, tout en ayant un temps de calcul rapide pour les objets connus. Enfin, les images 2D stockées dans la base de données 2D sont dans un format IFF qui contient une information de profondeur (z depth) pour chaque pixel de l'image. Il est donc extrêmement simple de retrouver la constitution originale de l'image 3d même si l'enchevêtrement des couches est complexe. Ce format IFF est par exemple utilisé par le logiciel Maya. L'homme du métier comprendra que le procédé selon l'invention est particulièrement adapté à la représentation virtuelle d'un individu dans un chat, sur un blog, dans un échange communicationnel via terminal mobile ou encore dans une messagerie instantanée. Da manière générale il est applicable dans tout espace virtuel. L'invention est décrite dans ce qui précède à titre d'exemple. Il est entendu que l'homme du métier est à même de réaliser différentes variantes de l'invention sans pour autant sortir du cadre du brevet. REVENDICATIONS 1. Procédé de personnalisation d'un objet graphique pour un utilisateur muni d'un poste client à partir d'un premier serveur distant, caractérisé en ce que ledit premier serveur comprend au moins une base de données comprenant un ensemble d'objets élémentaires 3D de personnalisation, et en ce qu'il comprend les étapes consistant à . - générer au niveau dudit poste client, une requête de personnalisation vers ledit serveur pour l'affichage d'un objet graphique personnalisé correspondant à la combinaison d'un ensemble d'objets élémentaires 3D de ladite base de données. enregistrer un identifiant unique de ladite combinaison dans une base d'identifiant de requête; - si ledit identifiant n'existe pas déjà dans la base 20 d'identifiant: - générer au niveau dudit serveur distant, en réponse à ladite requête, au moins un objet 3D correspondant à ladite combinaison; - stocker dans une seconde base de données d'éléments en deux dimensions, sous la forme d'une image en 2 dimensions, ledit objet graphique personnalisé correspondant à ladite combinaison; - envoyer ledit objet graphique au niveau du poste client. - si ledit identifiant existe déjà dans la base d'identifiant: envoyer ledit objet graphique issu de la base de données d'éléments en deux dimensions au niveau du poste client. 2. Procédé de personnalisation d'un objet graphique selon la revendication 1, caractérisé en ce que ladite étape de d'envoi au niveau du poste client est réalisée par un réseau de télécommunication et est réalisée par une communication de type GSM, GPRS ou UMTS. 3. Procédé de personnalisation d'un objet graphique selon la revendication 1, caractérisé en ce que ledit objet graphique personnalisé correspond à un personnage virtuel (avatar). 4. Procédé de personnalisation d'un objet graphique selon la revendication 1, caractérisé en ce que ledit objet graphique personnalisé correspond à une partie d'une scène pour la décoration. 5. Procédé de personnalisation d'un objet graphique selon la revendication 1, caractérisé en ce que ladite image en deux dimensions est dans un format comprenant une composante de profondeur. 6. Procédé de personnalisation d'un objet graphique selon la revendication 1, caractérisé en ce qu'il comprend en outre une étape de mapping.