<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Madi</id>
		<title>Ryzom Forge Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Madi"/>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/wiki/Special:Contributions/Madi"/>
		<updated>2026-04-20T02:12:39Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.29.1</generator>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1081</id>
		<title>EN Teddybear</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1081"/>
				<updated>2014-07-27T20:31:51Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: /* Object of the month: creating and deploying cudlly toys &amp;quot;Atys' mobs&amp;quot; in game */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TabLang|EN|Teddybaer|EN Teddybear|ES|FR Peluche|RU}}&lt;br /&gt;
&lt;br /&gt;
{{ToTrad}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇩↓⇊⇓⬇ votre texte ⬇⇓⇊↓⇩ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Translation under progress - if you want to complete it, please update this line so that no one will edit it in the meantime)&lt;br /&gt;
&lt;br /&gt;
The aim of this tutorial is to show how to create cuddly toys based on the models of atysian animals. &lt;br /&gt;
&lt;br /&gt;
=Object of the month: creating and deploying cudlly toys &amp;quot;Atys' mobs&amp;quot; in game=&lt;br /&gt;
&lt;br /&gt;
[[File:00-tuto-peluche.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Prerequisite for modelising only the cuddly toy:&lt;br /&gt;
&lt;br /&gt;
* Having installed Ryzom assets and properly set-up the repositories (NEL tools expect to find the assets in the W:\database folder).&lt;br /&gt;
* Having installed 3DSMax and set-up the NEL plugin (Beware the plugin works only with versions 32bits of 3DSMax, and from version 9 till version 2012).&lt;br /&gt;
* Advised but not mandatory: having installed the NEL tool &amp;quot;''tga2dds.exe''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Prerequisite for deploying the cuddly toy on a game server:&lt;br /&gt;
&lt;br /&gt;
* Having compiled and installed a game server, and having set-up a client to use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: it is possible to test this cuddly toy IG without having a game server through a trick which will be explained a bit further in this tutorial.&lt;br /&gt;
&lt;br /&gt;
Some usefeul linkds for these prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Downloading the assets and tools: https://ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows&lt;br /&gt;
* Set-up the drive letter for the assets : https://ryzomcore.atlassian.net/wiki/display/RC/How+to+set+up+the+Build+Pipeline&lt;br /&gt;
* Insalling the NEL plugin of 3DSMax: https://ryzomcore.atlassian.net/wiki/display/RC/Installing+the+Max+Plugins&lt;br /&gt;
&lt;br /&gt;
==  Step 1: choosing the model we'll use for our cuddly toy ==&lt;br /&gt;
&lt;br /&gt;
All 3d models for Ryzom fauna are gathered in the &amp;quot;W:\database\stuff\tryker\agents\monsters&amp;quot; folder, by creature family. In this tutorial, we'll use the &amp;quot;Gubani&amp;quot; model, which is located in the &amp;quot;horse&amp;quot; (&amp;quot;cheval&amp;quot; in French) folder, to create our cuddly toy:&lt;br /&gt;
&lt;br /&gt;
W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:01-tuto-peluche-dossiers-mobs.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 2: Getting the model and creating a dedicated work folder  ==&lt;br /&gt;
&lt;br /&gt;
In 3DSMax, open the &amp;quot;W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
Use the menu =&amp;gt; &amp;quot;File&amp;quot; =&amp;gt; &amp;quot;Manage&amp;quot; =&amp;gt; &amp;quot;Asset Tracking&amp;quot; to check the list of the files used in this model, especially the textures. Notice this two files:&lt;br /&gt;
&lt;br /&gt;
* The 3d model: &amp;quot;tr_mo_h12.max&amp;quot;&lt;br /&gt;
* The texture for the gubani: &amp;quot;ju_mo_h12.png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:02-tuto-peluche-asset-tracking.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The aim here is to deploy cuddly monbs for the month object. Hence, we'll create a dedicated folder for our to-be toys and respect the naming convention used by Ryzom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we'll create a &amp;quot;soft-toy&amp;quot; folder, in the &amp;quot;W:\database\stuff\generique\agents\accessories&amp;quot; folder. We'll save our model by renaming it under: ge_acc_teddy-gubani_01.max&lt;br /&gt;
&lt;br /&gt;
* the first &amp;quot;ge_&amp;quot; prefix in the file name specifies the ecosystem, here _ge_neric (tr: tryker, fy: fyros, etc...).&lt;br /&gt;
* the second prefix in the file name specifies the type of model (hom: male homin, mo: monster, wea: weapon, etc...). Here &amp;quot;acc&amp;quot; for _acc_essory.&lt;br /&gt;
* and last, the name of our model &amp;quot;teddy-gubani&amp;quot;, which will be suffixed with a number, in order to be able to create several variants of the teddy-gubani.&lt;br /&gt;
&lt;br /&gt;
For the texture, we should also copy it under &amp;quot;W:\database\stuff\generique\agents\_textures\accessories&amp;quot;, but we'll do it more simply. We'll place it in the same folder as the 3d model and rename it according to the same convention: &amp;quot;ge_acc_teddy-gubani_01.png&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ryzom core knwo only how to show textures with a &amp;quot;.tga&amp;quot; or &amp;quot;.dds&amp;quot; format. TGA is a raw format without compression which makes it useful for edition, but less efficient in term of memory space. DDS format is a compressed image format which, as jpeg, is destructive. It is the format used internally by Ryzom to minimize the textures' memory space. With your favorite editor, convert the &amp;quot;.png&amp;quot; image into a &amp;quot;.tga&amp;quot; one. That's the one we'll keep for edition. We'll use the NEL tool &amp;quot;'tga2dds'&amp;quot; to generate a texture image under &amp;quot;.dds&amp;quot; format for the 3d model. That's the one which well be used in 3DSMax.&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
If you don't have this tool, you gan keep the &amp;quot;.tga&amp;quot; version. It will work for the IG tests.&lt;br /&gt;
In the &amp;quot;soft-toy&amp;quot; folder, you should now have as a result:&lt;br /&gt;
&lt;br /&gt;
[[File:03-tuto-peluche-dossier-soft-toy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 3: Cleaing the 3D model using 3DSMax ==&lt;br /&gt;
The monster 3D model contains a skeleton and animation tracks. This is not necessary for a toy accessory and unnecessarily overburden the final ryzom model. We will delete it. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:04-tuto-peluche-animation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Select with the mouse the &amp;quot;Gubani&amp;quot; model. In the right panel, select the &amp;quot;''modify''&amp;quot; tab. You should see the mesh called &amp;quot;TR_MO_H12&amp;quot; and in the  stack one modifier called &amp;quot;physical&amp;quot;. We will delete&lt;br /&gt;
&lt;br /&gt;
[[File:05-tuto-peluche-physique.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons ouvrir l'écran affichant les éléments de la scene via le menu &amp;quot;Tools&amp;quot;=&amp;gt; &amp;quot;New Scene Explorer&amp;quot; et supprimer tous les éléments constituant le squelette du modèle pour ne garder au final que le mesh de l'animal.&lt;br /&gt;
&lt;br /&gt;
Then we will open the scene explorer screen  via the &amp;quot;Tools&amp;quot; menu =&amp;gt; &amp;quot;New Scene Explorer&amp;quot; and delete all the elements constituting the skeleton of the model and keep only the animal mesh.&lt;br /&gt;
&lt;br /&gt;
[[File:06-tuto-peluche-bones-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Now we have only one element in our &amp;quot;scene&amp;quot;: the Gubani mesh &amp;quot;TR_MO_H12&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the right panel, we will rename the mesh &amp;quot;ge_acc_tedy-gubani_01&amp;quot;. This name will be used by the export &amp;quot;NEL&amp;quot; to name the generated file when exporting to &amp;quot;shape&amp;quot; NEL format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele-fin.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 4 : Map the right texture to the model  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this section, we will adapt the texturing of 3d model. In principle, we would just change the base texture &amp;quot;ju_mo_h12.png&amp;quot; to point to our &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot;  texture (or the &amp;quot;. tga&amp;quot; one). However, this will be a bit more complicated: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First we open the &amp;quot;Material Editor&amp;quot; (1) screen, then we select the unique material of the scene (2) by double clicking on it. In the central viewport select the node named &amp;quot;Map # 1 Nel Multi Bitmap&amp;quot; by double clicking on it (3). In the right sidebar, a description of its properties (4) appear. The &amp;quot;Nel Multi Bitmap&amp;quot; allow to specify  8 different images. It is not multi-texturing, but the ability to configure multiple texture images. Only one is applied at a given moment on the model. This is used for the mobs to specify one texture for each ecosystem. This is also used by and environmental objects to specify a different texture for each season. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:08-tuto-peluche-texture.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The ID 1  slot is used for textures of Tryker ecosystem, the second solt (ID 2) for the Fyros ecosystem Fyros. The third slot (ID 3) for Zoraï ecosystem and the fourth  one (ID 4) for the Primes Root ecosystem. Do not look for Matis slot. As good aesthetes, they understood that beauty lay in the Zorai nature and therefore use Zoraï textures for all their animals. Note that here the Gubani is being ponly resent in jungle primes root. Only slots 3 and 4 are used&lt;br /&gt;
&lt;br /&gt;
The same system is also used for other IG objects, such as buildings. In this case, the 4 slots correspond to the four seasons. Thus we can note the presence of snow on some Zoraï buildings in winter. &lt;br /&gt;
&lt;br /&gt;
[[File:09-tuto-peluche-multi-texture.png]]&lt;br /&gt;
&lt;br /&gt;
We will not use this mechanism. We will therefore deleted the &amp;quot;NEL Multi Bitmap&amp;quot; and replace it with a simple &amp;quot;Bitmap&amp;quot; by dragging the mouse from  the output of &amp;quot;1 tTexture 1&amp;quot; as shown in the above image. When release the mouse, a menu appears (2), select &amp;quot;Bitmap&amp;quot; entry: &lt;br /&gt;
&lt;br /&gt;
[[File:10-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Then select our texture &amp;quot;W:\database\stuff\generic\agents\ _textures\accessories\ oft-toyge_acc_teddy gubani_01.dds&amp;quot; (or &amp;quot;.tga&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:11-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Repeat the operation on the other &amp;quot;Nel Multi Bitmap&amp;quot; which reference the same image.&lt;br /&gt;
&lt;br /&gt;
==  Étape 5 : Scaling the model  ==&lt;br /&gt;
&lt;br /&gt;
Our 3d model is almost ready. However, its size does not match what expected. If you use the 3dsmax measuring tool you will see that the Gubani is 2m high. The simplest way to put it in the right size is to load a Homin model to have visual comparison and ensure that the teddybear can be taken in hand.&lt;br /&gt;
&lt;br /&gt;
So we will temporarily put in our scene a reference to another 3d model via the File menu (1) =&amp;gt; References (2) =&amp;gt; Xref Scene (3) and then clicking on the Add button (4) :&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the Homin model &amp;quot;W:\database\stuff\generic\agents\actors\male\ge_hom_armor02.max&amp;quot; which should appear in your 3d scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref-02.png]]&lt;br /&gt;
&lt;br /&gt;
Scale the Gubani modeland move via tools &amp;quot;Scale&amp;quot; and &amp;quot;Move&amp;quot; from the popup menu that appears when you click the model with the right mouse button.&lt;br /&gt;
&lt;br /&gt;
[[File:16-tuto-peluche-echelle.png]]&lt;br /&gt;
&lt;br /&gt;
Once at the right scale, remove the reference to the homin model through the File menu =&amp;gt; References =&amp;gt; Xref Scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reposition the Gubani model  at the scene origin  (x = 0, y = 0, z = 0), because when the object is carried the position (0,0,0) is located in the hand.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape  6 : Adapt the texture for a fluffy look  ==&lt;br /&gt;
&lt;br /&gt;
In terms of texture, to give a &amp;quot;plush effect&amp;quot;, give free rein to your imagination&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-source.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I edited the &amp;quot;ge_acc_teddy-gubani_01.tga&amp;quot; image with the Gimp application. I used the filter &amp;quot;Artistic&amp;gt; GIMPressionist&amp;quot; using the &amp;quot;canvas&amp;quot; model for a weft fabric effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-peluche.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the image saved, I re-generated the dds texture with the command:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Here is the result on the 3d model in 3dsmax:&lt;br /&gt;
&lt;br /&gt;
[[File:18-tuto-peluche-modele3d.png]]&lt;br /&gt;
&lt;br /&gt;
==  Step 7 : Shape export   ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It's time to test the teddybear IG. For this game you have to export the model to the &amp;quot;shape&amp;quot; file used by the Ryzom engine&lt;br /&gt;
&lt;br /&gt;
If this is not already the case I add the ''NEL export'' button on your  right side panel by clicking on the&amp;quot;utilities&amp;quot; tab thant &amp;quot;More&amp;quot; button and selecting the &amp;quot;NEL Export&amp;quot; option : &lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-01.png]]&lt;br /&gt;
&lt;br /&gt;
Then select the Gubani mesh with the mouse and click on the &amp;quot;Export Model&amp;quot; button. You must specify the folder on wihc the file &amp;quot;ge_acc_teddy-Gubani-01.shape&amp;quot; will be created.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-02.png]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 8 : Tester la peluche  IG  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, il faudrait ajouter le ''datasheet'' de la peluche au serveur de jeu et patcher le client. Cette méthode sera détaillée plus loin. Cependant il existe une solution de contournement si vous n'avez pas votre propre serveur de jeu pour réaliser ces opérations.&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu'une peluche n'est rien d'autre qu'une arme équipée. Ainsi nous pourrions remplacer le modèle de la dague par celui de notre gubani pour le tester sur le serveur officiel. Il existe une astuce simple pour cela. Le client de jeu recherche les modèles et textures dans le dossier &amp;quot;user&amp;quot; avant d'aller voir le dossier &amp;quot;data&amp;quot;. Il suffit de copier notre fichier shape et la texture associée dans le dossier &amp;quot;user&amp;quot;, puis de renommer le shape du gubani en celui de la dague : &amp;quot;GE_Wea_Dague.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A présent lorsque vous équiperez une dague IG, vous aurez en main notre peluche &amp;quot;gubani&amp;quot;.&lt;br /&gt;
Pour retrouver la dague d'origine, il suffit de supprimer le fichier shape du dossier &amp;quot;user&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:21-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En réalisant ce test vous pouvez noter une anomalie : la peluche est tenue par le pied, ce qui n'est pas forcément ce que nous voulons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : orientation et positionnement d'un objet porté  ==&lt;br /&gt;
&lt;br /&gt;
Le point de fixation d'un objet tenu en main correspond au point de coordonnée (0,0,0) de l'objet.Son orientation suit la règle suivante  :&lt;br /&gt;
&lt;br /&gt;
  l'axe X remonte le long de l'avant-bras ;&lt;br /&gt;
  l'axe Y part depuis le dos de la main vers l'extérieur ;&lt;br /&gt;
  l'axe Z pointe vers le haut de l'objet tenu fermement en main.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous réorientons la peluche gubani dans 3dsmax comme le montre l'image suivante : l'axe X sort du dos du gubani pour remonter le long du bras qui le portera. L'axe Z sort de la main et est donc dans le prolongement de la tête de la peluche :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe-3dsmax.png]]&lt;br /&gt;
  &lt;br /&gt;
Après réorientation du modèle gubani et réexportation du shape nous obtenons enfin une peluche qui est tenue par le tronc :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin sur les objets portés, je vous conseille de lire ce tutorial :  http://khaganat.net/wikhan/fr:todo:dessiner:creation_d_un_objet_prehensible_en_jeu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : Créer l’icône pour l'inventaire et la barre d'actions  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut créer un icône pour l'affichage de l'item peluche gubani dans l'inventaire et dans la barre  d'actions.&lt;br /&gt;
Cet au icône au format tga doit faire 40x40 pixels avec un fond transparent. Nous le nommerons &amp;quot;icon_teddygubani.tga&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'icône de 40x40 pixels :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani.png|80px]]&lt;br /&gt;
&lt;br /&gt;
Pour des questions de performance, ces icônes ne sont pas stockés individuellement mais regroupés dans une seule image dénommée : &amp;quot;texture_interfaces_v3.tga&amp;quot;. Le fichier texte associé dénommé &amp;quot;texture_interfaces_v3.txt&amp;quot; liste les icones présents et leur position dans l'image :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte-txt.png]]&lt;br /&gt;
&lt;br /&gt;
le fichier texte utilise le format suivant pour chaque ligne :&lt;br /&gt;
&lt;br /&gt;
  NomFichierIcone u1 v1 u2 v2&lt;br /&gt;
&lt;br /&gt;
Avec :&lt;br /&gt;
* u1,v1 la position du point supérieur gauche de l'icône&lt;br /&gt;
* u2,v2 la position du coin inférieur droit de l'icône&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la différence des coordonnées en pixels, ces coordonnées qui utilisent la technique du UV Mapping en 3d ont leurs valeurs dans l’intervalle [0 .. 1]. la coordonnée (0,0) correspond au point supérieur gauche de l'image et (1,1) au point inférieur droit de l'image.&lt;br /&gt;
&lt;br /&gt;
Le passage d'un système à l'autre est simple. Soit (x1,y1) la position en pixels du coin haut gauche de notre icône dans l'image globale et (x2,y2) la position du point inférieur droit de l'icône dans l'image, alors :&lt;br /&gt;
* u1 = x1 / largeur-image&lt;br /&gt;
* v1 = y1 / hauteur-image&lt;br /&gt;
* u2 = x2 / largeur-image&lt;br /&gt;
* v2 = y2 / hauteur-image&lt;br /&gt;
&lt;br /&gt;
Sachant que la texture &amp;quot;texture_interfaces_v3.tga&amp;quot; fait 1024x1024 pixel, et que dans l'exemple l'icône &amp;quot;icon_teddygubani.tga&amp;quot; se situe à la position (x1=118,y1=798), que le point inférieur gauche étant à la position (x2=157,y2=837), le fichier txt contient donc la ligne : &lt;br /&gt;
&lt;br /&gt;
  icon_teddygubani.tga 0.115234375 0.779296875 0.1533203125 0.8173828125&lt;br /&gt;
  &lt;br /&gt;
Même si cela peut être ajouté à la main, la bonne méthode et d'utiliser l'outil dédié de NEL ''build_interface'' comme indiqué dans le tutorial https://khaganat.net/wikhan/fr:todo:dessiner:creer_icone_objet qui recrée la texture globale et le fichier txt à partir d'un dossier contenant tous les icones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: L'ajout de l'icône ne suffit pas, il faut également créer le datasheet de l'objet peluche et spécifier dedans le nom de notre icône à utiliser comme nous le verrons plus loin dans ce tutorial. Au final nous obtenons le résultat suivant IG :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Etape 11 : créer le fichiers des noms  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A compléter.&lt;br /&gt;
&lt;br /&gt;
[[File:30-tuto-peluche-txtfile.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 12 : créer le datasheet   ==&lt;br /&gt;
&lt;br /&gt;
A la base, une peluche reste est un objet porté comme une arme. De fait le datasheet de la peluche est trs semblable à celui d'une arme une main, comme l'exemple de la dague ci-dessous.&lt;br /&gt;
&lt;br /&gt;
__icrm1pd.sitem  ( datasheet de la dague du réfugié ) :__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.2 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;refugee dagger&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;refugee&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Drop or Sell&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;CraftPlan&amp;quot; Value=&amp;quot;bcrmea06.sbrick&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Saleable&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce qui change c'est :&lt;br /&gt;
&lt;br /&gt;
* la référénce au shape dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* la référence à l'icone utilisé dans la barre d'état et l'inventaire dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* les caractéristiques de base qui diffèrent d'une arme : pas de niveau requis, pas de brique de plan, etc..&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voila donc le datasheet de la peluche gubani  que nous nommerons &amp;quot;teddygubani.sitem&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.7 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&amp;lt;/LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Étape 13 : Déployer la peluche sur le serveur et le client de jeu   ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de déployer la peluche en jeu la méthode officielle consiste à utiliser la pipeline &amp;quot;build_gamedata&amp;quot; (cf. https:''ryzomcore.atlassian.net/wiki/display/RC/Gamedata+Build+Pipeline). Je vais vous proposer une méthode différente, où les opérations seront effectués à la mains, mais uniquement celles nécessaires à notre peluche :&lt;br /&gt;
&lt;br /&gt;
Nous avons besoin des fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* teddygubani.sitem ( le datasheet de la peluche gunabi )&lt;br /&gt;
* ge_acc_teddy-gubani_01.shape ( le modèle 3d NEL de la peluche )&lt;br /&gt;
* ge_acc_teddy-gubani_01.dds ( la texture du modèle 3d )&lt;br /&gt;
&lt;br /&gt;
De plus le déploiement de cette peluche va impacter les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* les fichiers &amp;quot;*.packed_sheets&amp;quot; utilisée par le serveur et le client qui sont une version compilé des datasheets&lt;br /&gt;
* le fichier &amp;quot;sheet_id.bin&amp;quot; qui est un index de tous les datasheets utilisés par le jeu&lt;br /&gt;
* le fichier &amp;quot;visual_slot.tab&amp;quot; qui liste les éléments affichables coté client&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, nous allons également créer un fichier &amp;quot;soft-toy.bnp&amp;quot; qui contiendra les shapes et les textures de toutes les futures peluches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour la suite des opérations nous partons du principe que notre serveur de jeu fonctionne sous linux, et que les variables d'envrionnement suivantes sont définies :&lt;br /&gt;
&lt;br /&gt;
* LEVELDESIGNPATH pointe sur le dossier des datas du level design&lt;br /&gt;
* RYZOM_HOME sur l'installation des sources du serveur&lt;br /&gt;
&lt;br /&gt;
===  Ajout du datasheet &amp;quot;teddygubani.sitem&amp;quot; au serveur   ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Coté serveur nous allons créer un dossier dédié pour les datasheets des peluches et y placer celui du gubani :&lt;br /&gt;
&lt;br /&gt;
  $ mkdir $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
  $ cp teddygubani.sitem $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
&lt;br /&gt;
===  Nettoyages préalables  ===&lt;br /&gt;
&lt;br /&gt;
===  Re-générer le fichier &amp;quot;sheet_id.bin&amp;quot;   ===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à regénérer le fichier d'index des datasheet via la commande &amp;quot;make_sheet_id&amp;quot;. Il reprend le fichier d'index existant et va le compléter avec les datasheets du dossier $RYZOM_LEVELPATH/leveldesign/game_element/sitem/soft-toy c'est-à-dire les datasheets de nos peluches&lt;br /&gt;
&lt;br /&gt;
  $ make_sheet_id -o$LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
&lt;br /&gt;
===  Re-générer les &amp;quot;*.packed_sheets&amp;quot; et &amp;quot;visual_slot.tab&amp;quot;  ===&lt;br /&gt;
&lt;br /&gt;
Il faut regénérer les &amp;quot;*.packed_sheets&amp;quot;.Ce sont les versions pré-compilées des datasheets :&lt;br /&gt;
&lt;br /&gt;
  $ sheets_packer&lt;br /&gt;
&lt;br /&gt;
Cette commande va également re-générer le fichier visual_slot.tab&lt;br /&gt;
&lt;br /&gt;
===  Copier les fichiers nécessaires coté client  ===&lt;br /&gt;
&lt;br /&gt;
* Nous copions le fichier &amp;quot;visual_slot.tab&amp;quot; généré dans le dossier courant dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous copions le fichier $LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous remplaçons les fichiers packet_sheets du dossier &amp;quot;data&amp;quot; du client par ceux générés ici $RYZOM_HOME/code/ryzom/client/data/*.packed_sheets par la commande ''sheets_packer''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Créer un bnp pour le modèle de la peluche  ===&lt;br /&gt;
&lt;br /&gt;
Pour finir il faut copier le shape et la texture de la peluche dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
Cependant pour bien faire les choses, autant créer un fichier &amp;quot;.bnp&amp;quot; dédié.&lt;br /&gt;
Un fichier &amp;quot;.bnp&amp;quot; est une sorte de zip regroupant les différents fichiers shape, dds, txt, ou autres par thème.&lt;br /&gt;
&lt;br /&gt;
Créer on dossier &amp;quot;soft-toy&amp;quot;, copions y  tous les shapes et textures de nos peluche, à savoir pour le moment &amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot; et &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot; et créons un fichier BNP pour les contenur&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  bnp_make /p soft-toy&lt;br /&gt;
&lt;br /&gt;
La commande va créer un fichier &amp;quot;soft-toy,bnp&amp;quot; qui contiendra nos deux fichiers. A présent il faut le copier dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Tester IG  ===&lt;br /&gt;
&lt;br /&gt;
Relancer le serveur avec la commande ''shard start'' puis connectez vous avec votre client.&lt;br /&gt;
&lt;br /&gt;
Si tout c'est bien déroulé, en lançant votre client de jeu, vous pouvez créer une peluche dans votre inventaire avec la commande :&lt;br /&gt;
&lt;br /&gt;
  /a createItemInBag teddygubani 1 5&lt;br /&gt;
&lt;br /&gt;
=Sources=&lt;br /&gt;
&lt;br /&gt;
https://khaganat.net/wikhan/fr:todo:dessiner:peluche &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇧↑⇈⇑⬆ votre texte ⬆⇧↑⇈⇑ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TPInWikiRyzom}}&lt;br /&gt;
[[Category:EN]]&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1040</id>
		<title>EN Teddybear</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1040"/>
				<updated>2014-07-26T23:30:20Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: /* Étape 7 : Export du shape */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tabLang|EN|DE|EN Teddybear|ES|FR Peluche|RU}}&lt;br /&gt;
&lt;br /&gt;
{{ToTrad}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇩↓⇊⇓⬇ votre texte ⬇⇓⇊↓⇩ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Translation under progress - if you want to complete it, please update this line so that no one will edit it in the meantime)&lt;br /&gt;
&lt;br /&gt;
The aim of this tutorial is to show how to create cuddly toys based on the models of atysian animals. &lt;br /&gt;
&lt;br /&gt;
=Object of the month: creating and deploying cudlly toys &amp;quot;Atys' mobs&amp;quot; in game=&lt;br /&gt;
&lt;br /&gt;
[[File:00-tuto-peluche.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Prerequisite for modelising only the cuddly toy:&lt;br /&gt;
&lt;br /&gt;
* Having installed Ryzom assets and properly set-up the repositories (NEL tools expect to find the assets in the W:\database folder).&lt;br /&gt;
* Having installed 3DSMax and set-up the NEL plugin (Beware the plugin works only with versions 32bits of 3DSMax, and from version 9 till version 2012).&lt;br /&gt;
* Advised but not mandatory: having installed the NEL tool &amp;quot;''tga2dds.exe''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Prerequisite for deploying the cuddly toy on a game server:&lt;br /&gt;
&lt;br /&gt;
* Having compiled and installed a game server, and having set-up a client to use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: it is possible to test this cuddly toy IG without having a game server through a trick which will be explained a bit further in this tutorial.&lt;br /&gt;
&lt;br /&gt;
Some usefeul linkds for these prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Downloading the assets and tools: https://ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows&lt;br /&gt;
* Set-up of the readers: https://ryzomcore.atlassian.net/wiki/display/RC/How+to+set+up+the+Build+Pipeline&lt;br /&gt;
* Insalling the NEL plugin of 3DSMax: https://ryzomcore.atlassian.net/wiki/display/RC/Installing+the+Max+Plugins&lt;br /&gt;
&lt;br /&gt;
==  Step 1: choosing the model we'll use for our cuddly toy ==&lt;br /&gt;
&lt;br /&gt;
All 3d models for Ryzom fauna are gathered in the &amp;quot;W:\database\stuff\tryker\agents\monsters&amp;quot; folder, by creature family. In this tutorial, we'll use the &amp;quot;Gubani&amp;quot; model, which is located in the &amp;quot;horse&amp;quot; (&amp;quot;cheval&amp;quot; in French) folder, to create our cuddly toy:&lt;br /&gt;
&lt;br /&gt;
W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:01-tuto-peluche-dossiers-mobs.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 2: Getting the model and creating a dedicated work folder  ==&lt;br /&gt;
&lt;br /&gt;
In 3DSMax, open the &amp;quot;W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
Use the menu =&amp;gt; &amp;quot;File&amp;quot; =&amp;gt; &amp;quot;Manage&amp;quot; =&amp;gt; &amp;quot;Asset Tracking&amp;quot; to check the list of the files used in this model, especially the textures. Notice this two files:&lt;br /&gt;
&lt;br /&gt;
* The 3d model: &amp;quot;tr_mo_h12.max&amp;quot;&lt;br /&gt;
* The texture for the gubani: &amp;quot;ju_mo_h12.png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:02-tuto-peluche-asset-tracking.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The aim here is to deploy cuddly monbs for the month object. Hence, we'll create a dedicated folder for our to-be toys and respect the naming convention used by Ryzom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we'll create a &amp;quot;soft-toy&amp;quot; folder, in the &amp;quot;W:\database\stuff\generique\agents\accessories&amp;quot; folder. We'll save our model by renaming it under: ge_acc_teddy-gubani_01.max&lt;br /&gt;
&lt;br /&gt;
* the first &amp;quot;ge_&amp;quot; prefix in the file name specifies the ecosystem, here _ge_neric (tr: tryker, fy: fyros, etc...).&lt;br /&gt;
* the second prefix in the file name specifies the type of model (hom: male homin, mo: monster, wea: weapon, etc...). Here &amp;quot;acc&amp;quot; for _acc_essory.&lt;br /&gt;
* and last, the name of our model &amp;quot;teddy-gubani&amp;quot;, which will be suffixed with a number, in order to be able to create several variants of the teddy-gubani.&lt;br /&gt;
&lt;br /&gt;
For the texture, we should also copy it under &amp;quot;W:\database\stuff\generique\agents\_textures\accessories&amp;quot;, but we'll do it more simply. We'll place it in the same folder as the 3d model and rename it according to the same convention: &amp;quot;ge_acc_teddy-gubani_01.png&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ryzom core knwo only how to show textures with a &amp;quot;.tga&amp;quot; or &amp;quot;.dds&amp;quot; format. TGA is a raw format without compression which makes it useful for edition, but less efficient in term of memory space. DDS format is a compressed image format which, as jpeg, is destructive. It is the format used internally by Ryzom to minimize the textures' memory space. With your favorite editor, convert the &amp;quot;.png&amp;quot; image into a &amp;quot;.tga&amp;quot; one. That's the one we'll keep for edition. We'll use the NEL tool &amp;quot;'tga2dds'&amp;quot; to generate a texture image under &amp;quot;.dds&amp;quot; format for the 3d model. That's the one which well be used in 3DSMax.&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
If you don't have this tool, you gan keep the &amp;quot;.tga&amp;quot; version. It will work for the IG tests.&lt;br /&gt;
In the &amp;quot;soft-toy&amp;quot; folder, you should now have as a result:&lt;br /&gt;
&lt;br /&gt;
[[File:03-tuto-peluche-dossier-soft-toy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 3: Cleaing the 3D model using 3DSMax ==&lt;br /&gt;
The monster 3D model contains a skeleton and animation tracks. This is not necessary for a toy accessory and unnecessarily overburden the final ryzom model. We will delete it. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:04-tuto-peluche-animation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Select with the mouse the &amp;quot;Gubani&amp;quot; model. In the right panel, select the &amp;quot;''modify''&amp;quot; tab. You should see the mesh called &amp;quot;TR_MO_H12&amp;quot; and in the  stack one modifier called &amp;quot;physical&amp;quot;. We will delete&lt;br /&gt;
&lt;br /&gt;
[[File:05-tuto-peluche-physique.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons ouvrir l'écran affichant les éléments de la scene via le menu &amp;quot;Tools&amp;quot;=&amp;gt; &amp;quot;New Scene Explorer&amp;quot; et supprimer tous les éléments constituant le squelette du modèle pour ne garder au final que le mesh de l'animal.&lt;br /&gt;
&lt;br /&gt;
Then we will open the scene explorer screen  via the &amp;quot;Tools&amp;quot; menu =&amp;gt; &amp;quot;New Scene Explorer&amp;quot; and delete all the elements constituting the skeleton of the model and keep only the animal mesh.&lt;br /&gt;
&lt;br /&gt;
[[File:06-tuto-peluche-bones-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Now we have only one element in our &amp;quot;scene&amp;quot;: the Gubani mesh &amp;quot;TR_MO_H12&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the right panel, we will rename the mesh &amp;quot;ge_acc_tedy-gubani_01&amp;quot;. This name will be used by the export &amp;quot;NEL&amp;quot; to name the generated file when exporting to &amp;quot;shape&amp;quot; NEL format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele-fin.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 4 : Map the right texture to the model  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this section, we will adapt the texturing of 3d model. In principle, we would just change the base texture &amp;quot;ju_mo_h12.png&amp;quot; to point to our &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot;  texture (or the &amp;quot;. tga&amp;quot; one). However, this will be a bit more complicated: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First we open the &amp;quot;Material Editor&amp;quot; (1) screen, then we select the unique material of the scene (2) by double clicking on it. In the central viewport select the node named &amp;quot;Map # 1 Nel Multi Bitmap&amp;quot; by double clicking on it (3). In the right sidebar, a description of its properties (4) appear. The &amp;quot;Nel Multi Bitmap&amp;quot; allow to specify  8 different images. It is not multi-texturing, but the ability to configure multiple texture images. Only one is applied at a given moment on the model. This is used for the mobs to specify one texture for each ecosystem. This is also used by and environmental objects to specify a different texture for each season. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:08-tuto-peluche-texture.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The ID 1  slot is used for textures of Tryker ecosystem, the second solt (ID 2) for the Fyros ecosystem Fyros. The third slot (ID 3) for Zoraï ecosystem and the fourth  one (ID 4) for the Primes Root ecosystem. Do not look for Matis slot. As good aesthetes, they understood that beauty lay in the Zorai nature and therefore use Zoraï textures for all their animals. Note that here the Gubani is being ponly resent in jungle primes root. Only slots 3 and 4 are used&lt;br /&gt;
&lt;br /&gt;
The same system is also used for other IG objects, such as buildings. In this case, the 4 slots correspond to the four seasons. Thus we can note the presence of snow on some Zoraï buildings in winter. &lt;br /&gt;
&lt;br /&gt;
[[File:09-tuto-peluche-multi-texture.png]]&lt;br /&gt;
&lt;br /&gt;
We will not use this mechanism. We will therefore deleted the &amp;quot;NEL Multi Bitmap&amp;quot; and replace it with a simple &amp;quot;Bitmap&amp;quot; by dragging the mouse from  the output of &amp;quot;1 tTexture 1&amp;quot; as shown in the above image. When release the mouse, a menu appears (2), select &amp;quot;Bitmap&amp;quot; entry: &lt;br /&gt;
&lt;br /&gt;
[[File:10-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Then select our texture &amp;quot;W:\database\stuff\generic\agents\ _textures\accessories\ oft-toyge_acc_teddy gubani_01.dds&amp;quot; (or &amp;quot;.tga&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:11-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Repeat the operation on the other &amp;quot;Nel Multi Bitmap&amp;quot; which reference the same image.&lt;br /&gt;
&lt;br /&gt;
==  Étape 5 : Scaling the model  ==&lt;br /&gt;
&lt;br /&gt;
Our 3d model is almost ready. However, its size does not match what expected. If you use the 3dsmax measuring tool you will see that the Gubani is 2m high. The simplest way to put it in the right size is to load a Homin model to have visual comparison and ensure that the teddybear can be taken in hand.&lt;br /&gt;
&lt;br /&gt;
So we will temporarily put in our scene a reference to another 3d model via the File menu (1) =&amp;gt; References (2) =&amp;gt; Xref Scene (3) and then clicking on the Add button (4) :&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the Homin model &amp;quot;W:\database\stuff\generic\agents\actors\male\ge_hom_armor02.max&amp;quot; which should appear in your 3d scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref-02.png]]&lt;br /&gt;
&lt;br /&gt;
Scale the Gubani modeland move via tools &amp;quot;Scale&amp;quot; and &amp;quot;Move&amp;quot; from the popup menu that appears when you click the model with the right mouse button.&lt;br /&gt;
&lt;br /&gt;
[[File:16-tuto-peluche-echelle.png]]&lt;br /&gt;
&lt;br /&gt;
Once at the right scale, remove the reference to the homin model through the File menu =&amp;gt; References =&amp;gt; Xref Scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reposition the Gubani model  at the scene origin  (x = 0, y = 0, z = 0), because when the object is carried the position (0,0,0) is located in the hand.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape  6 : Adapt the texture for a fluffy look  ==&lt;br /&gt;
&lt;br /&gt;
In terms of texture, to give a &amp;quot;plush effect&amp;quot;, give free rein to your imagination&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-source.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I edited the &amp;quot;ge_acc_teddy-gubani_01.tga&amp;quot; image with the Gimp application. I used the filter &amp;quot;Artistic&amp;gt; GIMPressionist&amp;quot; using the &amp;quot;canvas&amp;quot; model for a weft fabric effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-peluche.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the image saved, I re-generated the dds texture with the command:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Here is the result on the 3d model in 3dsmax:&lt;br /&gt;
&lt;br /&gt;
[[File:18-tuto-peluche-modele3d.png]]&lt;br /&gt;
&lt;br /&gt;
==  Step 7 : Shape export   ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It's time to test the teddybear IG. For this game you have to export the model to the &amp;quot;shape&amp;quot; file used by the Ryzom engine&lt;br /&gt;
&lt;br /&gt;
If this is not already the case I add the ''NEL export'' button on your  right side panel by clicking on the&amp;quot;utilities&amp;quot; tab thant &amp;quot;More&amp;quot; button and selecting the &amp;quot;NEL Export&amp;quot; option : &lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-01.png]]&lt;br /&gt;
&lt;br /&gt;
Then select the Gubani mesh with the mouse and click on the &amp;quot;Export Model&amp;quot; button. You must specify the folder on wihc the file &amp;quot;ge_acc_teddy-Gubani-01.shape&amp;quot; will be created.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-02.png]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 8 : Tester la peluche  IG  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, il faudrait ajouter le ''datasheet'' de la peluche au serveur de jeu et patcher le client. Cette méthode sera détaillée plus loin. Cependant il existe une solution de contournement si vous n'avez pas votre propre serveur de jeu pour réaliser ces opérations.&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu'une peluche n'est rien d'autre qu'une arme équipée. Ainsi nous pourrions remplacer le modèle de la dague par celui de notre gubani pour le tester sur le serveur officiel. Il existe une astuce simple pour cela. Le client de jeu recherche les modèles et textures dans le dossier &amp;quot;user&amp;quot; avant d'aller voir le dossier &amp;quot;data&amp;quot;. Il suffit de copier notre fichier shape et la texture associée dans le dossier &amp;quot;user&amp;quot;, puis de renommer le shape du gubani en celui de la dague : &amp;quot;GE_Wea_Dague.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A présent lorsque vous équiperez une dague IG, vous aurez en main notre peluche &amp;quot;gubani&amp;quot;.&lt;br /&gt;
Pour retrouver la dague d'origine, il suffit de supprimer le fichier shape du dossier &amp;quot;user&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:21-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En réalisant ce test vous pouvez noter une anomalie : la peluche est tenue par le pied, ce qui n'est pas forcément ce que nous voulons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : orientation et positionnement d'un objet porté  ==&lt;br /&gt;
&lt;br /&gt;
Le point de fixation d'un objet tenu en main correspond au point de coordonnée (0,0,0) de l'objet.Son orientation suit la règle suivante  :&lt;br /&gt;
&lt;br /&gt;
  l'axe X remonte le long de l'avant-bras ;&lt;br /&gt;
  l'axe Y part depuis le dos de la main vers l'extérieur ;&lt;br /&gt;
  l'axe Z pointe vers le haut de l'objet tenu fermement en main.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous réorientons la peluche gubani dans 3dsmax comme le montre l'image suivante : l'axe X sort du dos du gubani pour remonter le long du bras qui le portera. L'axe Z sort de la main et est donc dans le prolongement de la tête de la peluche :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe-3dsmax.png]]&lt;br /&gt;
  &lt;br /&gt;
Après réorientation du modèle gubani et réexportation du shape nous obtenons enfin une peluche qui est tenue par le tronc :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin sur les objets portés, je vous conseille de lire ce tutorial :  http://khaganat.net/wikhan/fr:todo:dessiner:creation_d_un_objet_prehensible_en_jeu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : Créer l’icône pour l'inventaire et la barre d'actions  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut créer un icône pour l'affichage de l'item peluche gubani dans l'inventaire et dans la barre  d'actions.&lt;br /&gt;
Cet au icône au format tga doit faire 40x40 pixels avec un fond transparent. Nous le nommerons &amp;quot;icon_teddygubani.tga&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'icône de 40x40 pixels :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani.png|80px]]&lt;br /&gt;
&lt;br /&gt;
Pour des questions de performance, ces icônes ne sont pas stockés individuellement mais regroupés dans une seule image dénommée : &amp;quot;texture_interfaces_v3.tga&amp;quot;. Le fichier texte associé dénommé &amp;quot;texture_interfaces_v3.txt&amp;quot; liste les icones présents et leur position dans l'image :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte-txt.png]]&lt;br /&gt;
&lt;br /&gt;
le fichier texte utilise le format suivant pour chaque ligne :&lt;br /&gt;
&lt;br /&gt;
  NomFichierIcone u1 v1 u2 v2&lt;br /&gt;
&lt;br /&gt;
Avec :&lt;br /&gt;
* u1,v1 la position du point supérieur gauche de l'icône&lt;br /&gt;
* u2,v2 la position du coin inférieur droit de l'icône&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la différence des coordonnées en pixels, ces coordonnées qui utilisent la technique du UV Mapping en 3d ont leurs valeurs dans l’intervalle [0 .. 1]. la coordonnée (0,0) correspond au point supérieur gauche de l'image et (1,1) au point inférieur droit de l'image.&lt;br /&gt;
&lt;br /&gt;
Le passage d'un système à l'autre est simple. Soit (x1,y1) la position en pixels du coin haut gauche de notre icône dans l'image globale et (x2,y2) la position du point inférieur droit de l'icône dans l'image, alors :&lt;br /&gt;
* u1 = x1 / largeur-image&lt;br /&gt;
* v1 = y1 / hauteur-image&lt;br /&gt;
* u2 = x2 / largeur-image&lt;br /&gt;
* v2 = y2 / hauteur-image&lt;br /&gt;
&lt;br /&gt;
Sachant que la texture &amp;quot;texture_interfaces_v3.tga&amp;quot; fait 1024x1024 pixel, et que dans l'exemple l'icône &amp;quot;icon_teddygubani.tga&amp;quot; se situe à la position (x1=118,y1=798), que le point inférieur gauche étant à la position (x2=157,y2=837), le fichier txt contient donc la ligne : &lt;br /&gt;
&lt;br /&gt;
  icon_teddygubani.tga 0.115234375 0.779296875 0.1533203125 0.8173828125&lt;br /&gt;
  &lt;br /&gt;
Même si cela peut être ajouté à la main, la bonne méthode et d'utiliser l'outil dédié de NEL ''build_interface'' comme indiqué dans le tutorial https://khaganat.net/wikhan/fr:todo:dessiner:creer_icone_objet qui recrée la texture globale et le fichier txt à partir d'un dossier contenant tous les icones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: L'ajout de l'icône ne suffit pas, il faut également créer le datasheet de l'objet peluche et spécifier dedans le nom de notre icône à utiliser comme nous le verrons plus loin dans ce tutorial. Au final nous obtenons le résultat suivant IG :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Etape 11 : créer le fichiers des noms  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A compléter.&lt;br /&gt;
&lt;br /&gt;
[[File:30-tuto-peluche-txtfile.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 12 : créer le datasheet   ==&lt;br /&gt;
&lt;br /&gt;
A la base, une peluche reste est un objet porté comme une arme. De fait le datasheet de la peluche est trs semblable à celui d'une arme une main, comme l'exemple de la dague ci-dessous.&lt;br /&gt;
&lt;br /&gt;
__icrm1pd.sitem  ( datasheet de la dague du réfugié ) :__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.2 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;refugee dagger&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;refugee&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Drop or Sell&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;CraftPlan&amp;quot; Value=&amp;quot;bcrmea06.sbrick&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Saleable&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce qui change c'est :&lt;br /&gt;
&lt;br /&gt;
* la référénce au shape dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* la référence à l'icone utilisé dans la barre d'état et l'inventaire dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* les caractéristiques de base qui diffèrent d'une arme : pas de niveau requis, pas de brique de plan, etc..&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voila donc le datasheet de la peluche gubani  que nous nommerons &amp;quot;teddygubani.sitem&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.7 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&amp;lt;/LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Étape 13 : Déployer la peluche sur le serveur et le client de jeu   ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de déployer la peluche en jeu la méthode officielle consiste à utiliser la pipeline &amp;quot;build_gamedata&amp;quot; (cf. https:''ryzomcore.atlassian.net/wiki/display/RC/Gamedata+Build+Pipeline). Je vais vous proposer une méthode différente, où les opérations seront effectués à la mains, mais uniquement celles nécessaires à notre peluche :&lt;br /&gt;
&lt;br /&gt;
Nous avons besoin des fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* teddygubani.sitem ( le datasheet de la peluche gunabi )&lt;br /&gt;
* ge_acc_teddy-gubani_01.shape ( le modèle 3d NEL de la peluche )&lt;br /&gt;
* ge_acc_teddy-gubani_01.dds ( la texture du modèle 3d )&lt;br /&gt;
&lt;br /&gt;
De plus le déploiement de cette peluche va impacter les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* les fichiers &amp;quot;*.packed_sheets&amp;quot; utilisée par le serveur et le client qui sont une version compilé des datasheets&lt;br /&gt;
* le fichier &amp;quot;sheet_id.bin&amp;quot; qui est un index de tous les datasheets utilisés par le jeu&lt;br /&gt;
* le fichier &amp;quot;visual_slot.tab&amp;quot; qui liste les éléments affichables coté client&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, nous allons également créer un fichier &amp;quot;soft-toy.bnp&amp;quot; qui contiendra les shapes et les textures de toutes les futures peluches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour la suite des opérations nous partons du principe que notre serveur de jeu fonctionne sous linux, et que les variables d'envrionnement suivantes sont définies :&lt;br /&gt;
&lt;br /&gt;
* LEVELDESIGNPATH pointe sur le dossier des datas du level design&lt;br /&gt;
* RYZOM_HOME sur l'installation des sources du serveur&lt;br /&gt;
&lt;br /&gt;
===  Ajout du datasheet &amp;quot;teddygubani.sitem&amp;quot; au serveur   ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Coté serveur nous allons créer un dossier dédié pour les datasheets des peluches et y placer celui du gubani :&lt;br /&gt;
&lt;br /&gt;
  $ mkdir $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
  $ cp teddygubani.sitem $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
&lt;br /&gt;
===  Nettoyages préalables  ===&lt;br /&gt;
&lt;br /&gt;
===  Re-générer le fichier &amp;quot;sheet_id.bin&amp;quot;   ===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à regénérer le fichier d'index des datasheet via la commande &amp;quot;make_sheet_id&amp;quot;. Il reprend le fichier d'index existant et va le compléter avec les datasheets du dossier $RYZOM_LEVELPATH/leveldesign/game_element/sitem/soft-toy c'est-à-dire les datasheets de nos peluches&lt;br /&gt;
&lt;br /&gt;
  $ make_sheet_id -o$LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
&lt;br /&gt;
===  Re-générer les &amp;quot;*.packed_sheets&amp;quot; et &amp;quot;visual_slot.tab&amp;quot;  ===&lt;br /&gt;
&lt;br /&gt;
Il faut regénérer les &amp;quot;*.packed_sheets&amp;quot;.Ce sont les versions pré-compilées des datasheets :&lt;br /&gt;
&lt;br /&gt;
  $ sheets_packer&lt;br /&gt;
&lt;br /&gt;
Cette commande va également re-générer le fichier visual_slot.tab&lt;br /&gt;
&lt;br /&gt;
===  Copier les fichiers nécessaires coté client  ===&lt;br /&gt;
&lt;br /&gt;
* Nous copions le fichier &amp;quot;visual_slot.tab&amp;quot; généré dans le dossier courant dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous copions le fichier $LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous remplaçons les fichiers packet_sheets du dossier &amp;quot;data&amp;quot; du client par ceux générés ici $RYZOM_HOME/code/ryzom/client/data/*.packed_sheets par la commande ''sheets_packer''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Créer un bnp pour le modèle de la peluche  ===&lt;br /&gt;
&lt;br /&gt;
Pour finir il faut copier le shape et la texture de la peluche dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
Cependant pour bien faire les choses, autant créer un fichier &amp;quot;.bnp&amp;quot; dédié.&lt;br /&gt;
Un fichier &amp;quot;.bnp&amp;quot; est une sorte de zip regroupant les différents fichiers shape, dds, txt, ou autres par thème.&lt;br /&gt;
&lt;br /&gt;
Créer on dossier &amp;quot;soft-toy&amp;quot;, copions y  tous les shapes et textures de nos peluche, à savoir pour le moment &amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot; et &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot; et créons un fichier BNP pour les contenur&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  bnp_make /p soft-toy&lt;br /&gt;
&lt;br /&gt;
La commande va créer un fichier &amp;quot;soft-toy,bnp&amp;quot; qui contiendra nos deux fichiers. A présent il faut le copier dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Tester IG  ===&lt;br /&gt;
&lt;br /&gt;
Relancer le serveur avec la commande ''shard start'' puis connectez vous avec votre client.&lt;br /&gt;
&lt;br /&gt;
Si tout c'est bien déroulé, en lançant votre client de jeu, vous pouvez créer une peluche dans votre inventaire avec la commande :&lt;br /&gt;
&lt;br /&gt;
  /a createItemInBag teddygubani 1 5 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Sources=&lt;br /&gt;
&lt;br /&gt;
https://khaganat.net/wikhan/fr:todo:dessiner:peluche &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇧↑⇈⇑⬆ votre texte ⬆⇧↑⇈⇑ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TPInWikiRyzom}}&lt;br /&gt;
[[Category:EN]]&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1034</id>
		<title>EN Teddybear</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1034"/>
				<updated>2014-07-26T23:22:37Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: /* Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tabLang|EN|DE|EN Teddybear|ES|FR Peluche|RU}}&lt;br /&gt;
&lt;br /&gt;
{{ToTrad}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇩↓⇊⇓⬇ votre texte ⬇⇓⇊↓⇩ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Translation under progress - if you want to complete it, please update this line so that no one will edit it in the meantime)&lt;br /&gt;
&lt;br /&gt;
The aim of this tutorial is to show how to create cuddly toys based on the models of atysian animals. &lt;br /&gt;
&lt;br /&gt;
=Object of the month: creating and deploying cudlly toys &amp;quot;Atys' mobs&amp;quot; in game=&lt;br /&gt;
&lt;br /&gt;
[[File:00-tuto-peluche.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Prerequisite for modelising only the cuddly toy:&lt;br /&gt;
&lt;br /&gt;
* Having installed Ryzom assets and properly set-up the repositories (NEL tools expect to find the assets in the W:\database folder).&lt;br /&gt;
* Having installed 3DSMax and set-up the NEL plugin (Beware the plugin works only with versions 32bits of 3DSMax, and from version 9 till version 2012).&lt;br /&gt;
* Advised but not mandatory: having installed the NEL tool &amp;quot;''tga2dds.exe''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Prerequisite for deploying the cuddly toy on a game server:&lt;br /&gt;
&lt;br /&gt;
* Having compiled and installed a game server, and having set-up a client to use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: it is possible to test this cuddly toy IG without having a game server through a trick which will be explained a bit further in this tutorial.&lt;br /&gt;
&lt;br /&gt;
Some usefeul linkds for these prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Downloading the assets and tools: https://ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows&lt;br /&gt;
* Set-up of the readers: https://ryzomcore.atlassian.net/wiki/display/RC/How+to+set+up+the+Build+Pipeline&lt;br /&gt;
* Insalling the NEL plugin of 3DSMax: https://ryzomcore.atlassian.net/wiki/display/RC/Installing+the+Max+Plugins&lt;br /&gt;
&lt;br /&gt;
==  Step 1: choosing the model we'll use for our cuddly toy ==&lt;br /&gt;
&lt;br /&gt;
All 3d models for Ryzom fauna are gathered in the &amp;quot;W:\database\stuff\tryker\agents\monsters&amp;quot; folder, by creature family. In this tutorial, we'll use the &amp;quot;Gubani&amp;quot; model, which is located in the &amp;quot;horse&amp;quot; (&amp;quot;cheval&amp;quot; in French) folder, to create our cuddly toy:&lt;br /&gt;
&lt;br /&gt;
W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:01-tuto-peluche-dossiers-mobs.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 2: Getting the model and creating a dedicated work folder  ==&lt;br /&gt;
&lt;br /&gt;
In 3DSMax, open the &amp;quot;W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
Use the menu =&amp;gt; &amp;quot;File&amp;quot; =&amp;gt; &amp;quot;Manage&amp;quot; =&amp;gt; &amp;quot;Asset Tracking&amp;quot; to check the list of the files used in this model, especially the textures. Notice this two files:&lt;br /&gt;
&lt;br /&gt;
* The 3d model: &amp;quot;tr_mo_h12.max&amp;quot;&lt;br /&gt;
* The texture for the gubani: &amp;quot;ju_mo_h12.png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:02-tuto-peluche-asset-tracking.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The aim here is to deploy cuddly monbs for the month object. Hence, we'll create a dedicated folder for our to-be toys and respect the naming convention used by Ryzom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we'll create a &amp;quot;soft-toy&amp;quot; folder, in the &amp;quot;W:\database\stuff\generique\agents\accessories&amp;quot; folder. We'll save our model by renaming it under: ge_acc_teddy-gubani_01.max&lt;br /&gt;
&lt;br /&gt;
* the first &amp;quot;ge_&amp;quot; prefix in the file name specifies the ecosystem, here _ge_neric (tr: tryker, fy: fyros, etc...).&lt;br /&gt;
* the second prefix in the file name specifies the type of model (hom: male homin, mo: monster, wea: weapon, etc...). Here &amp;quot;acc&amp;quot; for _acc_essory.&lt;br /&gt;
* and last, the name of our model &amp;quot;teddy-gubani&amp;quot;, which will be suffixed with a number, in order to be able to create several variants of the teddy-gubani.&lt;br /&gt;
&lt;br /&gt;
For the texture, we should also copy it under &amp;quot;W:\database\stuff\generique\agents\_textures\accessories&amp;quot;, but we'll do it more simply. We'll place it in the same folder as the 3d model and rename it according to the same convention: &amp;quot;ge_acc_teddy-gubani_01.png&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ryzom core knwo only how to show textures with a &amp;quot;.tga&amp;quot; or &amp;quot;.dds&amp;quot; format. TGA is a raw format without compression which makes it useful for edition, but less efficient in term of memory space. DDS format is a compressed image format which, as jpeg, is destructive. It is the format used internally by Ryzom to minimize the textures' memory space. With your favorite editor, convert the &amp;quot;.png&amp;quot; image into a &amp;quot;.tga&amp;quot; one. That's the one we'll keep for edition. We'll use the NEL tool &amp;quot;'tga2dds'&amp;quot; to generate a texture image under &amp;quot;.dds&amp;quot; format for the 3d model. That's the one which well be used in 3DSMax.&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
If you don't have this tool, you gan keep the &amp;quot;.tga&amp;quot; version. It will work for the IG tests.&lt;br /&gt;
In the &amp;quot;soft-toy&amp;quot; folder, you should now have as a result:&lt;br /&gt;
&lt;br /&gt;
[[File:03-tuto-peluche-dossier-soft-toy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 3: Cleaing the 3D model using 3DSMax ==&lt;br /&gt;
The monster 3D model contains a skeleton and animation tracks. This is not necessary for a toy accessory and unnecessarily overburden the final ryzom model. We will delete it. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:04-tuto-peluche-animation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Select with the mouse the &amp;quot;Gubani&amp;quot; model. In the right panel, select the &amp;quot;''modify''&amp;quot; tab. You should see the mesh called &amp;quot;TR_MO_H12&amp;quot; and in the  stack one modifier called &amp;quot;physical&amp;quot;. We will delete&lt;br /&gt;
&lt;br /&gt;
[[File:05-tuto-peluche-physique.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons ouvrir l'écran affichant les éléments de la scene via le menu &amp;quot;Tools&amp;quot;=&amp;gt; &amp;quot;New Scene Explorer&amp;quot; et supprimer tous les éléments constituant le squelette du modèle pour ne garder au final que le mesh de l'animal.&lt;br /&gt;
&lt;br /&gt;
Then we will open the scene explorer screen  via the &amp;quot;Tools&amp;quot; menu =&amp;gt; &amp;quot;New Scene Explorer&amp;quot; and delete all the elements constituting the skeleton of the model and keep only the animal mesh.&lt;br /&gt;
&lt;br /&gt;
[[File:06-tuto-peluche-bones-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Now we have only one element in our &amp;quot;scene&amp;quot;: the Gubani mesh &amp;quot;TR_MO_H12&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the right panel, we will rename the mesh &amp;quot;ge_acc_tedy-gubani_01&amp;quot;. This name will be used by the export &amp;quot;NEL&amp;quot; to name the generated file when exporting to &amp;quot;shape&amp;quot; NEL format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele-fin.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 4 : Map the right texture to the model  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this section, we will adapt the texturing of 3d model. In principle, we would just change the base texture &amp;quot;ju_mo_h12.png&amp;quot; to point to our &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot;  texture (or the &amp;quot;. tga&amp;quot; one). However, this will be a bit more complicated: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First we open the &amp;quot;Material Editor&amp;quot; (1) screen, then we select the unique material of the scene (2) by double clicking on it. In the central viewport select the node named &amp;quot;Map # 1 Nel Multi Bitmap&amp;quot; by double clicking on it (3). In the right sidebar, a description of its properties (4) appear. The &amp;quot;Nel Multi Bitmap&amp;quot; allow to specify  8 different images. It is not multi-texturing, but the ability to configure multiple texture images. Only one is applied at a given moment on the model. This is used for the mobs to specify one texture for each ecosystem. This is also used by and environmental objects to specify a different texture for each season. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:08-tuto-peluche-texture.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The ID 1  slot is used for textures of Tryker ecosystem, the second solt (ID 2) for the Fyros ecosystem Fyros. The third slot (ID 3) for Zoraï ecosystem and the fourth  one (ID 4) for the Primes Root ecosystem. Do not look for Matis slot. As good aesthetes, they understood that beauty lay in the Zorai nature and therefore use Zoraï textures for all their animals. Note that here the Gubani is being ponly resent in jungle primes root. Only slots 3 and 4 are used&lt;br /&gt;
&lt;br /&gt;
The same system is also used for other IG objects, such as buildings. In this case, the 4 slots correspond to the four seasons. Thus we can note the presence of snow on some Zoraï buildings in winter. &lt;br /&gt;
&lt;br /&gt;
[[File:09-tuto-peluche-multi-texture.png]]&lt;br /&gt;
&lt;br /&gt;
We will not use this mechanism. We will therefore deleted the &amp;quot;NEL Multi Bitmap&amp;quot; and replace it with a simple &amp;quot;Bitmap&amp;quot; by dragging the mouse from  the output of &amp;quot;1 tTexture 1&amp;quot; as shown in the above image. When release the mouse, a menu appears (2), select &amp;quot;Bitmap&amp;quot; entry: &lt;br /&gt;
&lt;br /&gt;
[[File:10-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Then select our texture &amp;quot;W:\database\stuff\generic\agents\ _textures\accessories\ oft-toyge_acc_teddy gubani_01.dds&amp;quot; (or &amp;quot;.tga&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:11-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Repeat the operation on the other &amp;quot;Nel Multi Bitmap&amp;quot; which reference the same image.&lt;br /&gt;
&lt;br /&gt;
==  Étape 5 : Scaling the model  ==&lt;br /&gt;
&lt;br /&gt;
Our 3d model is almost ready. However, its size does not match what expected. If you use the 3dsmax measuring tool you will see that the Gubani is 2m high. The simplest way to put it in the right size is to load a Homin model to have visual comparison and ensure that the teddybear can be taken in hand.&lt;br /&gt;
&lt;br /&gt;
So we will temporarily put in our scene a reference to another 3d model via the File menu (1) =&amp;gt; References (2) =&amp;gt; Xref Scene (3) and then clicking on the Add button (4) :&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the Homin model &amp;quot;W:\database\stuff\generic\agents\actors\male\ge_hom_armor02.max&amp;quot; which should appear in your 3d scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref-02.png]]&lt;br /&gt;
&lt;br /&gt;
Scale the Gubani modeland move via tools &amp;quot;Scale&amp;quot; and &amp;quot;Move&amp;quot; from the popup menu that appears when you click the model with the right mouse button.&lt;br /&gt;
&lt;br /&gt;
[[File:16-tuto-peluche-echelle.png]]&lt;br /&gt;
&lt;br /&gt;
Once at the right scale, remove the reference to the homin model through the File menu =&amp;gt; References =&amp;gt; Xref Scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reposition the Gubani model  at the scene origin  (x = 0, y = 0, z = 0), because when the object is carried the position (0,0,0) is located in the hand.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape  6 : Adapt the texture for a fluffy look  ==&lt;br /&gt;
&lt;br /&gt;
In terms of texture, to give a &amp;quot;plush effect&amp;quot;, give free rein to your imagination&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-source.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I edited the &amp;quot;ge_acc_teddy-gubani_01.tga&amp;quot; image with the Gimp application. I used the filter &amp;quot;Artistic&amp;gt; GIMPressionist&amp;quot; using the &amp;quot;canvas&amp;quot; model for a weft fabric effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-peluche.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the image saved, I re-generated the dds texture with the command:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Here is the result on the 3d model in 3dsmax:&lt;br /&gt;
&lt;br /&gt;
[[File:18-tuto-peluche-modele3d.png]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 7 : Export du shape  ==&lt;br /&gt;
&lt;br /&gt;
Il est temps de tester cette peluche en jeu. Pour cela il va falloir exporter le modèle en générant le fichier &amp;quot;shape&amp;quot; utilisé par le moteur Ryzom&lt;br /&gt;
&lt;br /&gt;
Si ce n'est pas déjà je cas, ajouter le bouton ''d'export NEL'' au panneau latéral droit en cliquant sur l'onglet &amp;quot;''utilities''&amp;quot;, puis &amp;quot;''More''&amp;quot; et en sélectionnant l'option &amp;quot;''NEL Export''&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-01.png]]&lt;br /&gt;
&lt;br /&gt;
Ensuite sélectionner le mesh du gubani puis cliquer sur le bouton &amp;quot;Export Model&amp;quot;. Il vous faut alors spécifier le dossier où sera crée le fichier &amp;quot;ge_acc_teddy-gubani-01.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-02.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 8 : Tester la peluche  IG  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, il faudrait ajouter le ''datasheet'' de la peluche au serveur de jeu et patcher le client. Cette méthode sera détaillée plus loin. Cependant il existe une solution de contournement si vous n'avez pas votre propre serveur de jeu pour réaliser ces opérations.&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu'une peluche n'est rien d'autre qu'une arme équipée. Ainsi nous pourrions remplacer le modèle de la dague par celui de notre gubani pour le tester sur le serveur officiel. Il existe une astuce simple pour cela. Le client de jeu recherche les modèles et textures dans le dossier &amp;quot;user&amp;quot; avant d'aller voir le dossier &amp;quot;data&amp;quot;. Il suffit de copier notre fichier shape et la texture associée dans le dossier &amp;quot;user&amp;quot;, puis de renommer le shape du gubani en celui de la dague : &amp;quot;GE_Wea_Dague.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A présent lorsque vous équiperez une dague IG, vous aurez en main notre peluche &amp;quot;gubani&amp;quot;.&lt;br /&gt;
Pour retrouver la dague d'origine, il suffit de supprimer le fichier shape du dossier &amp;quot;user&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:21-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En réalisant ce test vous pouvez noter une anomalie : la peluche est tenue par le pied, ce qui n'est pas forcément ce que nous voulons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : orientation et positionnement d'un objet porté  ==&lt;br /&gt;
&lt;br /&gt;
Le point de fixation d'un objet tenu en main correspond au point de coordonnée (0,0,0) de l'objet.Son orientation suit la règle suivante  :&lt;br /&gt;
&lt;br /&gt;
  l'axe X remonte le long de l'avant-bras ;&lt;br /&gt;
  l'axe Y part depuis le dos de la main vers l'extérieur ;&lt;br /&gt;
  l'axe Z pointe vers le haut de l'objet tenu fermement en main.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous réorientons la peluche gubani dans 3dsmax comme le montre l'image suivante : l'axe X sort du dos du gubani pour remonter le long du bras qui le portera. L'axe Z sort de la main et est donc dans le prolongement de la tête de la peluche :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe-3dsmax.png]]&lt;br /&gt;
  &lt;br /&gt;
Après réorientation du modèle gubani et réexportation du shape nous obtenons enfin une peluche qui est tenue par le tronc :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin sur les objets portés, je vous conseille de lire ce tutorial :  http://khaganat.net/wikhan/fr:todo:dessiner:creation_d_un_objet_prehensible_en_jeu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : Créer l’icône pour l'inventaire et la barre d'actions  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut créer un icône pour l'affichage de l'item peluche gubani dans l'inventaire et dans la barre  d'actions.&lt;br /&gt;
Cet au icône au format tga doit faire 40x40 pixels avec un fond transparent. Nous le nommerons &amp;quot;icon_teddygubani.tga&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'icône de 40x40 pixels :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani.png|80px]]&lt;br /&gt;
&lt;br /&gt;
Pour des questions de performance, ces icônes ne sont pas stockés individuellement mais regroupés dans une seule image dénommée : &amp;quot;texture_interfaces_v3.tga&amp;quot;. Le fichier texte associé dénommé &amp;quot;texture_interfaces_v3.txt&amp;quot; liste les icones présents et leur position dans l'image :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte-txt.png]]&lt;br /&gt;
&lt;br /&gt;
le fichier texte utilise le format suivant pour chaque ligne :&lt;br /&gt;
&lt;br /&gt;
  NomFichierIcone u1 v1 u2 v2&lt;br /&gt;
&lt;br /&gt;
Avec :&lt;br /&gt;
* u1,v1 la position du point supérieur gauche de l'icône&lt;br /&gt;
* u2,v2 la position du coin inférieur droit de l'icône&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la différence des coordonnées en pixels, ces coordonnées qui utilisent la technique du UV Mapping en 3d ont leurs valeurs dans l’intervalle [0 .. 1]. la coordonnée (0,0) correspond au point supérieur gauche de l'image et (1,1) au point inférieur droit de l'image.&lt;br /&gt;
&lt;br /&gt;
Le passage d'un système à l'autre est simple. Soit (x1,y1) la position en pixels du coin haut gauche de notre icône dans l'image globale et (x2,y2) la position du point inférieur droit de l'icône dans l'image, alors :&lt;br /&gt;
* u1 = x1 / largeur-image&lt;br /&gt;
* v1 = y1 / hauteur-image&lt;br /&gt;
* u2 = x2 / largeur-image&lt;br /&gt;
* v2 = y2 / hauteur-image&lt;br /&gt;
&lt;br /&gt;
Sachant que la texture &amp;quot;texture_interfaces_v3.tga&amp;quot; fait 1024x1024 pixel, et que dans l'exemple l'icône &amp;quot;icon_teddygubani.tga&amp;quot; se situe à la position (x1=118,y1=798), que le point inférieur gauche étant à la position (x2=157,y2=837), le fichier txt contient donc la ligne : &lt;br /&gt;
&lt;br /&gt;
  icon_teddygubani.tga 0.115234375 0.779296875 0.1533203125 0.8173828125&lt;br /&gt;
  &lt;br /&gt;
Même si cela peut être ajouté à la main, la bonne méthode et d'utiliser l'outil dédié de NEL ''build_interface'' comme indiqué dans le tutorial https://khaganat.net/wikhan/fr:todo:dessiner:creer_icone_objet qui recrée la texture globale et le fichier txt à partir d'un dossier contenant tous les icones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: L'ajout de l'icône ne suffit pas, il faut également créer le datasheet de l'objet peluche et spécifier dedans le nom de notre icône à utiliser comme nous le verrons plus loin dans ce tutorial. Au final nous obtenons le résultat suivant IG :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Etape 11 : créer le fichiers des noms  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A compléter.&lt;br /&gt;
&lt;br /&gt;
[[File:30-tuto-peluche-txtfile.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 12 : créer le datasheet   ==&lt;br /&gt;
&lt;br /&gt;
A la base, une peluche reste est un objet porté comme une arme. De fait le datasheet de la peluche est trs semblable à celui d'une arme une main, comme l'exemple de la dague ci-dessous.&lt;br /&gt;
&lt;br /&gt;
__icrm1pd.sitem  ( datasheet de la dague du réfugié ) :__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.2 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;refugee dagger&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;refugee&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Drop or Sell&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;CraftPlan&amp;quot; Value=&amp;quot;bcrmea06.sbrick&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Saleable&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce qui change c'est :&lt;br /&gt;
&lt;br /&gt;
* la référénce au shape dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* la référence à l'icone utilisé dans la barre d'état et l'inventaire dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* les caractéristiques de base qui diffèrent d'une arme : pas de niveau requis, pas de brique de plan, etc..&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voila donc le datasheet de la peluche gubani  que nous nommerons &amp;quot;teddygubani.sitem&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.7 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&amp;lt;/LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Étape 13 : Déployer la peluche sur le serveur et le client de jeu   ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de déployer la peluche en jeu la méthode officielle consiste à utiliser la pipeline &amp;quot;build_gamedata&amp;quot; (cf. https:''ryzomcore.atlassian.net/wiki/display/RC/Gamedata+Build+Pipeline). Je vais vous proposer une méthode différente, où les opérations seront effectués à la mains, mais uniquement celles nécessaires à notre peluche :&lt;br /&gt;
&lt;br /&gt;
Nous avons besoin des fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* teddygubani.sitem ( le datasheet de la peluche gunabi )&lt;br /&gt;
* ge_acc_teddy-gubani_01.shape ( le modèle 3d NEL de la peluche )&lt;br /&gt;
* ge_acc_teddy-gubani_01.dds ( la texture du modèle 3d )&lt;br /&gt;
&lt;br /&gt;
De plus le déploiement de cette peluche va impacter les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* les fichiers &amp;quot;*.packed_sheets&amp;quot; utilisée par le serveur et le client qui sont une version compilé des datasheets&lt;br /&gt;
* le fichier &amp;quot;sheet_id.bin&amp;quot; qui est un index de tous les datasheets utilisés par le jeu&lt;br /&gt;
* le fichier &amp;quot;visual_slot.tab&amp;quot; qui liste les éléments affichables coté client&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, nous allons également créer un fichier &amp;quot;soft-toy.bnp&amp;quot; qui contiendra les shapes et les textures de toutes les futures peluches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour la suite des opérations nous partons du principe que notre serveur de jeu fonctionne sous linux, et que les variables d'envrionnement suivantes sont définies :&lt;br /&gt;
&lt;br /&gt;
* LEVELDESIGNPATH pointe sur le dossier des datas du level design&lt;br /&gt;
* RYZOM_HOME sur l'installation des sources du serveur&lt;br /&gt;
&lt;br /&gt;
===  Ajout du datasheet &amp;quot;teddygubani.sitem&amp;quot; au serveur   ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Coté serveur nous allons créer un dossier dédié pour les datasheets des peluches et y placer celui du gubani :&lt;br /&gt;
&lt;br /&gt;
  $ mkdir $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
  $ cp teddygubani.sitem $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
&lt;br /&gt;
===  Nettoyages préalables  ===&lt;br /&gt;
&lt;br /&gt;
===  Re-générer le fichier &amp;quot;sheet_id.bin&amp;quot;   ===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à regénérer le fichier d'index des datasheet via la commande &amp;quot;make_sheet_id&amp;quot;. Il reprend le fichier d'index existant et va le compléter avec les datasheets du dossier $RYZOM_LEVELPATH/leveldesign/game_element/sitem/soft-toy c'est-à-dire les datasheets de nos peluches&lt;br /&gt;
&lt;br /&gt;
  $ make_sheet_id -o$LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
&lt;br /&gt;
===  Re-générer les &amp;quot;*.packed_sheets&amp;quot; et &amp;quot;visual_slot.tab&amp;quot;  ===&lt;br /&gt;
&lt;br /&gt;
Il faut regénérer les &amp;quot;*.packed_sheets&amp;quot;.Ce sont les versions pré-compilées des datasheets :&lt;br /&gt;
&lt;br /&gt;
  $ sheets_packer&lt;br /&gt;
&lt;br /&gt;
Cette commande va également re-générer le fichier visual_slot.tab&lt;br /&gt;
&lt;br /&gt;
===  Copier les fichiers nécessaires coté client  ===&lt;br /&gt;
&lt;br /&gt;
* Nous copions le fichier &amp;quot;visual_slot.tab&amp;quot; généré dans le dossier courant dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous copions le fichier $LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous remplaçons les fichiers packet_sheets du dossier &amp;quot;data&amp;quot; du client par ceux générés ici $RYZOM_HOME/code/ryzom/client/data/*.packed_sheets par la commande ''sheets_packer''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Créer un bnp pour le modèle de la peluche  ===&lt;br /&gt;
&lt;br /&gt;
Pour finir il faut copier le shape et la texture de la peluche dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
Cependant pour bien faire les choses, autant créer un fichier &amp;quot;.bnp&amp;quot; dédié.&lt;br /&gt;
Un fichier &amp;quot;.bnp&amp;quot; est une sorte de zip regroupant les différents fichiers shape, dds, txt, ou autres par thème.&lt;br /&gt;
&lt;br /&gt;
Créer on dossier &amp;quot;soft-toy&amp;quot;, copions y  tous les shapes et textures de nos peluche, à savoir pour le moment &amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot; et &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot; et créons un fichier BNP pour les contenur&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  bnp_make /p soft-toy&lt;br /&gt;
&lt;br /&gt;
La commande va créer un fichier &amp;quot;soft-toy,bnp&amp;quot; qui contiendra nos deux fichiers. A présent il faut le copier dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Tester IG  ===&lt;br /&gt;
&lt;br /&gt;
Relancer le serveur avec la commande ''shard start'' puis connectez vous avec votre client.&lt;br /&gt;
&lt;br /&gt;
Si tout c'est bien déroulé, en lançant votre client de jeu, vous pouvez créer une peluche dans votre inventaire avec la commande :&lt;br /&gt;
&lt;br /&gt;
  /a createItemInBag teddygubani 1 5 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Sources=&lt;br /&gt;
&lt;br /&gt;
https://khaganat.net/wikhan/fr:todo:dessiner:peluche &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇧↑⇈⇑⬆ votre texte ⬆⇧↑⇈⇑ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TPInWikiRyzom}}&lt;br /&gt;
[[Category:EN]]&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1033</id>
		<title>EN Teddybear</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1033"/>
				<updated>2014-07-26T23:21:25Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: /* Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tabLang|EN|DE|EN Teddybear|ES|FR Peluche|RU}}&lt;br /&gt;
&lt;br /&gt;
{{ToTrad}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇩↓⇊⇓⬇ votre texte ⬇⇓⇊↓⇩ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Translation under progress - if you want to complete it, please update this line so that no one will edit it in the meantime)&lt;br /&gt;
&lt;br /&gt;
The aim of this tutorial is to show how to create cuddly toys based on the models of atysian animals. &lt;br /&gt;
&lt;br /&gt;
=Object of the month: creating and deploying cudlly toys &amp;quot;Atys' mobs&amp;quot; in game=&lt;br /&gt;
&lt;br /&gt;
[[File:00-tuto-peluche.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Prerequisite for modelising only the cuddly toy:&lt;br /&gt;
&lt;br /&gt;
* Having installed Ryzom assets and properly set-up the repositories (NEL tools expect to find the assets in the W:\database folder).&lt;br /&gt;
* Having installed 3DSMax and set-up the NEL plugin (Beware the plugin works only with versions 32bits of 3DSMax, and from version 9 till version 2012).&lt;br /&gt;
* Advised but not mandatory: having installed the NEL tool &amp;quot;''tga2dds.exe''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Prerequisite for deploying the cuddly toy on a game server:&lt;br /&gt;
&lt;br /&gt;
* Having compiled and installed a game server, and having set-up a client to use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: it is possible to test this cuddly toy IG without having a game server through a trick which will be explained a bit further in this tutorial.&lt;br /&gt;
&lt;br /&gt;
Some usefeul linkds for these prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Downloading the assets and tools: https://ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows&lt;br /&gt;
* Set-up of the readers: https://ryzomcore.atlassian.net/wiki/display/RC/How+to+set+up+the+Build+Pipeline&lt;br /&gt;
* Insalling the NEL plugin of 3DSMax: https://ryzomcore.atlassian.net/wiki/display/RC/Installing+the+Max+Plugins&lt;br /&gt;
&lt;br /&gt;
==  Step 1: choosing the model we'll use for our cuddly toy ==&lt;br /&gt;
&lt;br /&gt;
All 3d models for Ryzom fauna are gathered in the &amp;quot;W:\database\stuff\tryker\agents\monsters&amp;quot; folder, by creature family. In this tutorial, we'll use the &amp;quot;Gubani&amp;quot; model, which is located in the &amp;quot;horse&amp;quot; (&amp;quot;cheval&amp;quot; in French) folder, to create our cuddly toy:&lt;br /&gt;
&lt;br /&gt;
W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:01-tuto-peluche-dossiers-mobs.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 2: Getting the model and creating a dedicated work folder  ==&lt;br /&gt;
&lt;br /&gt;
In 3DSMax, open the &amp;quot;W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
Use the menu =&amp;gt; &amp;quot;File&amp;quot; =&amp;gt; &amp;quot;Manage&amp;quot; =&amp;gt; &amp;quot;Asset Tracking&amp;quot; to check the list of the files used in this model, especially the textures. Notice this two files:&lt;br /&gt;
&lt;br /&gt;
* The 3d model: &amp;quot;tr_mo_h12.max&amp;quot;&lt;br /&gt;
* The texture for the gubani: &amp;quot;ju_mo_h12.png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:02-tuto-peluche-asset-tracking.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The aim here is to deploy cuddly monbs for the month object. Hence, we'll create a dedicated folder for our to-be toys and respect the naming convention used by Ryzom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we'll create a &amp;quot;soft-toy&amp;quot; folder, in the &amp;quot;W:\database\stuff\generique\agents\accessories&amp;quot; folder. We'll save our model by renaming it under: ge_acc_teddy-gubani_01.max&lt;br /&gt;
&lt;br /&gt;
* the first &amp;quot;ge_&amp;quot; prefix in the file name specifies the ecosystem, here _ge_neric (tr: tryker, fy: fyros, etc...).&lt;br /&gt;
* the second prefix in the file name specifies the type of model (hom: male homin, mo: monster, wea: weapon, etc...). Here &amp;quot;acc&amp;quot; for _acc_essory.&lt;br /&gt;
* and last, the name of our model &amp;quot;teddy-gubani&amp;quot;, which will be suffixed with a number, in order to be able to create several variants of the teddy-gubani.&lt;br /&gt;
&lt;br /&gt;
For the texture, we should also copy it under &amp;quot;W:\database\stuff\generique\agents\_textures\accessories&amp;quot;, but we'll do it more simply. We'll place it in the same folder as the 3d model and rename it according to the same convention: &amp;quot;ge_acc_teddy-gubani_01.png&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ryzom core knwo only how to show textures with a &amp;quot;.tga&amp;quot; or &amp;quot;.dds&amp;quot; format. TGA is a raw format without compression which makes it useful for edition, but less efficient in term of memory space. DDS format is a compressed image format which, as jpeg, is destructive. It is the format used internally by Ryzom to minimize the textures' memory space. With your favorite editor, convert the &amp;quot;.png&amp;quot; image into a &amp;quot;.tga&amp;quot; one. That's the one we'll keep for edition. We'll use the NEL tool &amp;quot;'tga2dds'&amp;quot; to generate a texture image under &amp;quot;.dds&amp;quot; format for the 3d model. That's the one which well be used in 3DSMax.&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
If you don't have this tool, you gan keep the &amp;quot;.tga&amp;quot; version. It will work for the IG tests.&lt;br /&gt;
In the &amp;quot;soft-toy&amp;quot; folder, you should now have as a result:&lt;br /&gt;
&lt;br /&gt;
[[File:03-tuto-peluche-dossier-soft-toy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 3: Cleaing the 3D model using 3DSMax ==&lt;br /&gt;
The monster 3D model contains a skeleton and animation tracks. This is not necessary for a toy accessory and unnecessarily overburden the final ryzom model. We will delete it. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:04-tuto-peluche-animation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Select with the mouse the &amp;quot;Gubani&amp;quot; model. In the right panel, select the &amp;quot;''modify''&amp;quot; tab. You should see the mesh called &amp;quot;TR_MO_H12&amp;quot; and in the  stack one modifier called &amp;quot;physical&amp;quot;. We will delete&lt;br /&gt;
&lt;br /&gt;
[[File:05-tuto-peluche-physique.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons ouvrir l'écran affichant les éléments de la scene via le menu &amp;quot;Tools&amp;quot;=&amp;gt; &amp;quot;New Scene Explorer&amp;quot; et supprimer tous les éléments constituant le squelette du modèle pour ne garder au final que le mesh de l'animal.&lt;br /&gt;
&lt;br /&gt;
Then we will open the scene explorer screen  via the &amp;quot;Tools&amp;quot; menu =&amp;gt; &amp;quot;New Scene Explorer&amp;quot; and delete all the elements constituting the skeleton of the model and keep only the animal mesh.&lt;br /&gt;
&lt;br /&gt;
[[File:06-tuto-peluche-bones-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Now we have only one element in our &amp;quot;scene&amp;quot;: the Gubani mesh &amp;quot;TR_MO_H12&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the right panel, we will rename the mesh &amp;quot;ge_acc_tedy-gubani_01&amp;quot;. This name will be used by the export &amp;quot;NEL&amp;quot; to name the generated file when exporting to &amp;quot;shape&amp;quot; NEL format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele-fin.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 4 : Map the right texture to the model  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this section, we will adapt the texturing of 3d model. In principle, we would just change the base texture &amp;quot;ju_mo_h12.png&amp;quot; to point to our &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot;  texture (or the &amp;quot;. tga&amp;quot; one). However, this will be a bit more complicated: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First we open the &amp;quot;Material Editor&amp;quot; (1) screen, then we select the unique material of the scene (2) by double clicking on it. In the central viewport select the node named &amp;quot;Map # 1 Nel Multi Bitmap&amp;quot; by double clicking on it (3). In the right sidebar, a description of its properties (4) appear. The &amp;quot;Nel Multi Bitmap&amp;quot; allow to specify  8 different images. It is not multi-texturing, but the ability to configure multiple texture images. Only one is applied at a given moment on the model. This is used for the mobs to specify one texture for each ecosystem. This is also used by and environmental objects to specify a different texture for each season. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:08-tuto-peluche-texture.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The ID 1  slot is used for textures of Tryker ecosystem, the second solt (ID 2) for the Fyros ecosystem Fyros. The third slot (ID 3) for Zoraï ecosystem and the fourth  one (ID 4) for the Primes Root ecosystem. Do not look for Matis slot. As good aesthetes, they understood that beauty lay in the Zorai nature and therefore use Zoraï textures for all their animals. Note that here the Gubani is being ponly resent in jungle primes root. Only slots 3 and 4 are used&lt;br /&gt;
&lt;br /&gt;
The same system is also used for other IG objects, such as buildings. In this case, the 4 slots correspond to the four seasons. Thus we can note the presence of snow on some Zoraï buildings in winter. &lt;br /&gt;
&lt;br /&gt;
[[File:09-tuto-peluche-multi-texture.png]]&lt;br /&gt;
&lt;br /&gt;
We will not use this mechanism. We will therefore deleted the &amp;quot;NEL Multi Bitmap&amp;quot; and replace it with a simple &amp;quot;Bitmap&amp;quot; by dragging the mouse from  the output of &amp;quot;1 tTexture 1&amp;quot; as shown in the above image. When release the mouse, a menu appears (2), select &amp;quot;Bitmap&amp;quot; entry: &lt;br /&gt;
&lt;br /&gt;
[[File:10-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Then select our texture &amp;quot;W:\database\stuff\generic\agents\ _textures\accessories\ oft-toyge_acc_teddy gubani_01.dds&amp;quot; (or &amp;quot;.tga&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:11-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Repeat the operation on the other &amp;quot;Nel Multi Bitmap&amp;quot; which reference the same image.&lt;br /&gt;
&lt;br /&gt;
==  Étape 5 : Scaling the model  ==&lt;br /&gt;
&lt;br /&gt;
Our 3d model is almost ready. However, its size does not match what expected. If you use the 3dsmax measuring tool you will see that the Gubani is 2m high. The simplest way to put it in the right size is to load a Homin model to have visual comparison and ensure that the teddybear can be taken in hand.&lt;br /&gt;
&lt;br /&gt;
So we will temporarily put in our scene a reference to another 3d model via the File menu (1) =&amp;gt; References (2) =&amp;gt; Xref Scene (3) and then clicking on the Add button (4) :&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the Homin model &amp;quot;W:\database\stuff\generic\agents\actors\male\ge_hom_armor02.max&amp;quot; which should appear in your 3d scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref-02.png]]&lt;br /&gt;
&lt;br /&gt;
Scale the Gubani modeland move via tools &amp;quot;Scale&amp;quot; and &amp;quot;Move&amp;quot; from the popup menu that appears when you click the model with the right mouse button.&lt;br /&gt;
&lt;br /&gt;
[[File:16-tuto-peluche-echelle.png]]&lt;br /&gt;
&lt;br /&gt;
Once at the right scale, remove the reference to the homin model through the File menu =&amp;gt; References =&amp;gt; Xref Scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reposition the Gubani model  at the scene origin  (x = 0, y = 0, z = 0), because when the object is carried the position (0,0,0) is located in the hand.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape  6 : Adapt the texture for a fluffy look  ==&lt;br /&gt;
&lt;br /&gt;
In terms of texture, to give a &amp;quot;plush effect&amp;quot;, give free rein to your imagination&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-source.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I edited the &amp;quot;ge_acc_teddy-gubani_01.tga&amp;quot; image with the Gimp application. I used the filter &amp;quot;Artistic&amp;gt; GIMPressionist&amp;quot; using the &amp;quot;canvas&amp;quot; model for a weft fabric effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-peluche.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the image saved, I re-generated the dds texture with the command:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Here is the result on the 3d model in 3dsmax:&lt;br /&gt;
&lt;br /&gt;
[[File:18-tuto-peluche-modele3d.png]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 7 : Export du shape  ==&lt;br /&gt;
&lt;br /&gt;
Il est temps de tester cette peluche en jeu. Pour cela il va falloir exporter le modèle en générant le fichier &amp;quot;shape&amp;quot; utilisé par le moteur Ryzom&lt;br /&gt;
&lt;br /&gt;
Si ce n'est pas déjà je cas, ajouter le bouton ''d'export NEL'' au panneau latéral droit en cliquant sur l'onglet &amp;quot;''utilities''&amp;quot;, puis &amp;quot;''More''&amp;quot; et en sélectionnant l'option &amp;quot;''NEL Export''&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-01.png]]&lt;br /&gt;
&lt;br /&gt;
Ensuite sélectionner le mesh du gubani puis cliquer sur le bouton &amp;quot;Export Model&amp;quot;. Il vous faut alors spécifier le dossier où sera crée le fichier &amp;quot;ge_acc_teddy-gubani-01.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-02.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Sources=&lt;br /&gt;
&lt;br /&gt;
https://khaganat.net/wikhan/fr:todo:dessiner:peluche &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇧↑⇈⇑⬆ votre texte ⬆⇧↑⇈⇑ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TPInWikiRyzom}}&lt;br /&gt;
[[Category:EN]]&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1025</id>
		<title>EN Teddybear</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1025"/>
				<updated>2014-07-26T22:57:17Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: /* Étape 4 : Modifier le mapping des textures du modèle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tabLang|EN|DE|EN Teddybear|ES|FR Peluche|RU}}&lt;br /&gt;
&lt;br /&gt;
{{ToTrad}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇩↓⇊⇓⬇ votre texte ⬇⇓⇊↓⇩ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Translation under progress - if you want to complete it, please update this line so that no one will edit it in the meantime)&lt;br /&gt;
&lt;br /&gt;
The aim of this tutorial is to show how to create cuddly toys based on the models of atysian animals. &lt;br /&gt;
&lt;br /&gt;
=Object of the month: creating and deploying cudlly toys &amp;quot;Atys' mobs&amp;quot; in game=&lt;br /&gt;
&lt;br /&gt;
[[File:00-tuto-peluche.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Prerequisite for modelising only the cuddly toy:&lt;br /&gt;
&lt;br /&gt;
* Having installed Ryzom assets and properly set-up the repositories (NEL tools expect to find the assets in the W:\database folder).&lt;br /&gt;
* Having installed 3DSMax and set-up the NEL plugin (Beware the plugin works only with versions 32bits of 3DSMax, and from version 9 till version 2012).&lt;br /&gt;
* Advised but not mandatory: having installed the NEL tool &amp;quot;''tga2dds.exe''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Prerequisite for deploying the cuddly toy on a game server:&lt;br /&gt;
&lt;br /&gt;
* Having compiled and installed a game server, and having set-up a client to use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: it is possible to test this cuddly toy IG without having a game server through a trick which will be explained a bit further in this tutorial.&lt;br /&gt;
&lt;br /&gt;
Some usefeul linkds for these prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Downloading the assets and tools: https://ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows&lt;br /&gt;
* Set-up of the readers: https://ryzomcore.atlassian.net/wiki/display/RC/How+to+set+up+the+Build+Pipeline&lt;br /&gt;
* Insalling the NEL plugin of 3DSMax: https://ryzomcore.atlassian.net/wiki/display/RC/Installing+the+Max+Plugins&lt;br /&gt;
&lt;br /&gt;
==  Step 1: choosing the model we'll use for our cuddly toy ==&lt;br /&gt;
&lt;br /&gt;
All 3d models for Ryzom fauna are gathered in the &amp;quot;W:\database\stuff\tryker\agents\monsters&amp;quot; folder, by creature family. In this tutorial, we'll use the &amp;quot;Gubani&amp;quot; model, which is located in the &amp;quot;horse&amp;quot; (&amp;quot;cheval&amp;quot; in French) folder, to create our cuddly toy:&lt;br /&gt;
&lt;br /&gt;
W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:01-tuto-peluche-dossiers-mobs.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 2: Getting the model and creating a dedicated work folder  ==&lt;br /&gt;
&lt;br /&gt;
In 3DSMax, open the &amp;quot;W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
Use the menu =&amp;gt; &amp;quot;File&amp;quot; =&amp;gt; &amp;quot;Manage&amp;quot; =&amp;gt; &amp;quot;Asset Tracking&amp;quot; to check the list of the files used in this model, especially the textures. Notice this two files:&lt;br /&gt;
&lt;br /&gt;
* The 3d model: &amp;quot;tr_mo_h12.max&amp;quot;&lt;br /&gt;
* The texture for the gubani: &amp;quot;ju_mo_h12.png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:02-tuto-peluche-asset-tracking.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The aim here is to deploy cuddly monbs for the month object. Hence, we'll create a dedicated folder for our to-be toys and respect the naming convention used by Ryzom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we'll create a &amp;quot;soft-toy&amp;quot; folder, in the &amp;quot;W:\database\stuff\generique\agents\accessories&amp;quot; folder. We'll save our model by renaming it under: ge_acc_teddy-gubani_01.max&lt;br /&gt;
&lt;br /&gt;
* the first &amp;quot;ge_&amp;quot; prefix in the file name specifies the ecosystem, here _ge_neric (tr: tryker, fy: fyros, etc...).&lt;br /&gt;
* the second prefix in the file name specifies the type of model (hom: male homin, mo: monster, wea: weapon, etc...). Here &amp;quot;acc&amp;quot; for _acc_essory.&lt;br /&gt;
* and last, the name of our model &amp;quot;teddy-gubani&amp;quot;, which will be suffixed with a number, in order to be able to create several variants of the teddy-gubani.&lt;br /&gt;
&lt;br /&gt;
For the texture, we should also copy it under &amp;quot;W:\database\stuff\generique\agents\_textures\accessories&amp;quot;, but we'll do it more simply. We'll place it in the same folder as the 3d model and rename it according to the same convention: &amp;quot;ge_acc_teddy-gubani_01.png&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ryzom core knwo only how to show textures with a &amp;quot;.tga&amp;quot; or &amp;quot;.dds&amp;quot; format. TGA is a raw format without compression which makes it useful for edition, but less efficient in term of memory space. DDS format is a compressed image format which, as jpeg, is destructive. It is the format used internally by Ryzom to minimize the textures' memory space. With your favorite editor, convert the &amp;quot;.png&amp;quot; image into a &amp;quot;.tga&amp;quot; one. That's the one we'll keep for edition. We'll use the NEL tool &amp;quot;'tga2dds'&amp;quot; to generate a texture image under &amp;quot;.dds&amp;quot; format for the 3d model. That's the one which well be used in 3DSMax.&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
If you don't have this tool, you gan keep the &amp;quot;.tga&amp;quot; version. It will work for the IG tests.&lt;br /&gt;
In the &amp;quot;soft-toy&amp;quot; folder, you should now have as a result:&lt;br /&gt;
&lt;br /&gt;
[[File:03-tuto-peluche-dossier-soft-toy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 3: Cleaing the 3D model using 3DSMax ==&lt;br /&gt;
The monster 3D model contains a skeleton and animation tracks. This is not necessary for a toy accessory and unnecessarily overburden the final ryzom model. We will delete it. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:04-tuto-peluche-animation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Select with the mouse the &amp;quot;Gubani&amp;quot; model. In the right panel, select the &amp;quot;''modify''&amp;quot; tab. You should see the mesh called &amp;quot;TR_MO_H12&amp;quot; and in the  stack one modifier called &amp;quot;physical&amp;quot;. We will delete&lt;br /&gt;
&lt;br /&gt;
[[File:05-tuto-peluche-physique.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons ouvrir l'écran affichant les éléments de la scene via le menu &amp;quot;Tools&amp;quot;=&amp;gt; &amp;quot;New Scene Explorer&amp;quot; et supprimer tous les éléments constituant le squelette du modèle pour ne garder au final que le mesh de l'animal.&lt;br /&gt;
&lt;br /&gt;
Then we will open the scene explorer screen  via the &amp;quot;Tools&amp;quot; menu =&amp;gt; &amp;quot;New Scene Explorer&amp;quot; and delete all the elements constituting the skeleton of the model and keep only the animal mesh.&lt;br /&gt;
&lt;br /&gt;
[[File:06-tuto-peluche-bones-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Now we have only one element in our &amp;quot;scene&amp;quot;: the Gubani mesh &amp;quot;TR_MO_H12&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the right panel, we will rename the mesh &amp;quot;ge_acc_tedy-gubani_01&amp;quot;. This name will be used by the export &amp;quot;NEL&amp;quot; to name the generated file when exporting to &amp;quot;shape&amp;quot; NEL format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele-fin.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 4 : Map the right texture to the model  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this section, we will adapt the texturing of 3d model. In principle, we would just change the base texture &amp;quot;ju_mo_h12.png&amp;quot; to point to our &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot;  texture (or the &amp;quot;. tga&amp;quot; one). However, this will be a bit more complicated: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First we open the &amp;quot;Material Editor&amp;quot; (1) screen, then we select the unique material of the scene (2) by double clicking on it. In the central viewport select the node named &amp;quot;Map # 1 Nel Multi Bitmap&amp;quot; by double clicking on it (3). In the right sidebar, a description of its properties (4) appear. The &amp;quot;Nel Multi Bitmap&amp;quot; allow to specify  8 different images. It is not multi-texturing, but the ability to configure multiple texture images. Only one is applied at a given moment on the model. This is used for the mobs to specify one texture for each ecosystem. This is also used by and environmental objects to specify a different texture for each season. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:08-tuto-peluche-texture.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The ID 1  slot is used for textures of Tryker ecosystem, the second solt (ID 2) for the Fyros ecosystem Fyros. The third slot (ID 3) for Zoraï ecosystem and the fourth  one (ID 4) for the Primes Root ecosystem. Do not look for Matis slot. As good aesthetes, they understood that beauty lay in the Zorai nature and therefore use Zoraï textures for all their animals. Note that here the Gubani is being ponly resent in jungle primes root. Only slots 3 and 4 are used&lt;br /&gt;
&lt;br /&gt;
The same system is also used for other IG objects, such as buildings. In this case, the 4 slots correspond to the four seasons. Thus we can note the presence of snow on some Zoraï buildings in winter. &lt;br /&gt;
&lt;br /&gt;
[[File:09-tuto-peluche-multi-texture.png]]&lt;br /&gt;
&lt;br /&gt;
We will not use this mechanism. We will therefore deleted the &amp;quot;NEL Multi Bitmap&amp;quot; and replace it with a simple &amp;quot;Bitmap&amp;quot; by dragging the mouse from  the output of &amp;quot;1 tTexture 1&amp;quot; as shown in the above image. When release the mouse, a menu appears (2), select &amp;quot;Bitmap&amp;quot; entry: &lt;br /&gt;
&lt;br /&gt;
[[File:10-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Then select our texture &amp;quot;W:\database\stuff\generic\agents\ _textures\accessories\ oft-toyge_acc_teddy gubani_01.dds&amp;quot; (or &amp;quot;.tga&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:11-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Repeat the operation on the other &amp;quot;Nel Multi Bitmap&amp;quot; which reference the same image.&lt;br /&gt;
&lt;br /&gt;
==  Étape 5 : Scaling the model  ==&lt;br /&gt;
&lt;br /&gt;
Our 3d model is almost ready. However, its size does not match what expected. If you use the 3dsmax measuring tool you will see that the Gubani is 2m high. The simplest way to put it in the right size is to load a Homin model to have visual comparison and ensure that the teddybear can be taken in hand.&lt;br /&gt;
&lt;br /&gt;
So we will temporarily put in our scene a reference to another 3d model via the File menu (1) =&amp;gt; References (2) =&amp;gt; Xref Scene (3) and then clicking on the Add button (4) :&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the Homin model &amp;quot;W:\database\stuff\generic\agents\actors\male\ge_hom_armor02.max&amp;quot; which should appear in your 3d scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref-02.png]]&lt;br /&gt;
&lt;br /&gt;
Scale the Gubani modeland move via tools &amp;quot;Scale&amp;quot; and &amp;quot;Move&amp;quot; from the popup menu that appears when you click the model with the right mouse button.&lt;br /&gt;
&lt;br /&gt;
[[File:16-tuto-peluche-echelle.png]]&lt;br /&gt;
&lt;br /&gt;
Once at the right scale, remove the reference to the homin model through the File menu =&amp;gt; References =&amp;gt; Xref Scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reposition the Gubani model  at the scene origin  (x = 0, y = 0, z = 0), because when the object is carried the position (0,0,0) is located in the hand.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape  6 : Adapt the texture for a fluffy look  ==&lt;br /&gt;
&lt;br /&gt;
In terms of texture, to give a &amp;quot;plush effect&amp;quot;, give free rein to your imagination&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-source.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I edited the &amp;quot;ge_acc_teddy-gubani_01.tga&amp;quot; image with the Gimp application. I used the filter &amp;quot;Artistic&amp;gt; GIMPressionist&amp;quot; using the &amp;quot;canvas&amp;quot; model for a weft fabric effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-peluche.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the image saved, I re-generated the dds texture with the command:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Here is the result on the 3d model in 3dsmax:&lt;br /&gt;
&lt;br /&gt;
[[File:18-tuto-peluche-modele3d.png]]&lt;br /&gt;
&lt;br /&gt;
=Sources=&lt;br /&gt;
&lt;br /&gt;
https://khaganat.net/wikhan/fr:todo:dessiner:peluche &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇧↑⇈⇑⬆ votre texte ⬆⇧↑⇈⇑ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TPInWikiRyzom}}&lt;br /&gt;
[[Category:EN]]&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1024</id>
		<title>EN Teddybear</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1024"/>
				<updated>2014-07-26T22:55:50Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: /* Étape  6 : modifier la texture pour un rendu peluche */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tabLang|EN|DE|EN Teddybear|ES|FR Peluche|RU}}&lt;br /&gt;
&lt;br /&gt;
{{ToTrad}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇩↓⇊⇓⬇ votre texte ⬇⇓⇊↓⇩ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Translation under progress - if you want to complete it, please update this line so that no one will edit it in the meantime)&lt;br /&gt;
&lt;br /&gt;
The aim of this tutorial is to show how to create cuddly toys based on the models of atysian animals. &lt;br /&gt;
&lt;br /&gt;
=Object of the month: creating and deploying cudlly toys &amp;quot;Atys' mobs&amp;quot; in game=&lt;br /&gt;
&lt;br /&gt;
[[File:00-tuto-peluche.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Prerequisite for modelising only the cuddly toy:&lt;br /&gt;
&lt;br /&gt;
* Having installed Ryzom assets and properly set-up the repositories (NEL tools expect to find the assets in the W:\database folder).&lt;br /&gt;
* Having installed 3DSMax and set-up the NEL plugin (Beware the plugin works only with versions 32bits of 3DSMax, and from version 9 till version 2012).&lt;br /&gt;
* Advised but not mandatory: having installed the NEL tool &amp;quot;''tga2dds.exe''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Prerequisite for deploying the cuddly toy on a game server:&lt;br /&gt;
&lt;br /&gt;
* Having compiled and installed a game server, and having set-up a client to use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: it is possible to test this cuddly toy IG without having a game server through a trick which will be explained a bit further in this tutorial.&lt;br /&gt;
&lt;br /&gt;
Some usefeul linkds for these prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Downloading the assets and tools: https://ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows&lt;br /&gt;
* Set-up of the readers: https://ryzomcore.atlassian.net/wiki/display/RC/How+to+set+up+the+Build+Pipeline&lt;br /&gt;
* Insalling the NEL plugin of 3DSMax: https://ryzomcore.atlassian.net/wiki/display/RC/Installing+the+Max+Plugins&lt;br /&gt;
&lt;br /&gt;
==  Step 1: choosing the model we'll use for our cuddly toy ==&lt;br /&gt;
&lt;br /&gt;
All 3d models for Ryzom fauna are gathered in the &amp;quot;W:\database\stuff\tryker\agents\monsters&amp;quot; folder, by creature family. In this tutorial, we'll use the &amp;quot;Gubani&amp;quot; model, which is located in the &amp;quot;horse&amp;quot; (&amp;quot;cheval&amp;quot; in French) folder, to create our cuddly toy:&lt;br /&gt;
&lt;br /&gt;
W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:01-tuto-peluche-dossiers-mobs.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 2: Getting the model and creating a dedicated work folder  ==&lt;br /&gt;
&lt;br /&gt;
In 3DSMax, open the &amp;quot;W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
Use the menu =&amp;gt; &amp;quot;File&amp;quot; =&amp;gt; &amp;quot;Manage&amp;quot; =&amp;gt; &amp;quot;Asset Tracking&amp;quot; to check the list of the files used in this model, especially the textures. Notice this two files:&lt;br /&gt;
&lt;br /&gt;
* The 3d model: &amp;quot;tr_mo_h12.max&amp;quot;&lt;br /&gt;
* The texture for the gubani: &amp;quot;ju_mo_h12.png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:02-tuto-peluche-asset-tracking.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The aim here is to deploy cuddly monbs for the month object. Hence, we'll create a dedicated folder for our to-be toys and respect the naming convention used by Ryzom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we'll create a &amp;quot;soft-toy&amp;quot; folder, in the &amp;quot;W:\database\stuff\generique\agents\accessories&amp;quot; folder. We'll save our model by renaming it under: ge_acc_teddy-gubani_01.max&lt;br /&gt;
&lt;br /&gt;
* the first &amp;quot;ge_&amp;quot; prefix in the file name specifies the ecosystem, here _ge_neric (tr: tryker, fy: fyros, etc...).&lt;br /&gt;
* the second prefix in the file name specifies the type of model (hom: male homin, mo: monster, wea: weapon, etc...). Here &amp;quot;acc&amp;quot; for _acc_essory.&lt;br /&gt;
* and last, the name of our model &amp;quot;teddy-gubani&amp;quot;, which will be suffixed with a number, in order to be able to create several variants of the teddy-gubani.&lt;br /&gt;
&lt;br /&gt;
For the texture, we should also copy it under &amp;quot;W:\database\stuff\generique\agents\_textures\accessories&amp;quot;, but we'll do it more simply. We'll place it in the same folder as the 3d model and rename it according to the same convention: &amp;quot;ge_acc_teddy-gubani_01.png&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ryzom core knwo only how to show textures with a &amp;quot;.tga&amp;quot; or &amp;quot;.dds&amp;quot; format. TGA is a raw format without compression which makes it useful for edition, but less efficient in term of memory space. DDS format is a compressed image format which, as jpeg, is destructive. It is the format used internally by Ryzom to minimize the textures' memory space. With your favorite editor, convert the &amp;quot;.png&amp;quot; image into a &amp;quot;.tga&amp;quot; one. That's the one we'll keep for edition. We'll use the NEL tool &amp;quot;'tga2dds'&amp;quot; to generate a texture image under &amp;quot;.dds&amp;quot; format for the 3d model. That's the one which well be used in 3DSMax.&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
If you don't have this tool, you gan keep the &amp;quot;.tga&amp;quot; version. It will work for the IG tests.&lt;br /&gt;
In the &amp;quot;soft-toy&amp;quot; folder, you should now have as a result:&lt;br /&gt;
&lt;br /&gt;
[[File:03-tuto-peluche-dossier-soft-toy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 3: Cleaing the 3D model using 3DSMax ==&lt;br /&gt;
The monster 3D model contains a skeleton and animation tracks. This is not necessary for a toy accessory and unnecessarily overburden the final ryzom model. We will delete it. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:04-tuto-peluche-animation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Select with the mouse the &amp;quot;Gubani&amp;quot; model. In the right panel, select the &amp;quot;''modify''&amp;quot; tab. You should see the mesh called &amp;quot;TR_MO_H12&amp;quot; and in the  stack one modifier called &amp;quot;physical&amp;quot;. We will delete&lt;br /&gt;
&lt;br /&gt;
[[File:05-tuto-peluche-physique.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons ouvrir l'écran affichant les éléments de la scene via le menu &amp;quot;Tools&amp;quot;=&amp;gt; &amp;quot;New Scene Explorer&amp;quot; et supprimer tous les éléments constituant le squelette du modèle pour ne garder au final que le mesh de l'animal.&lt;br /&gt;
&lt;br /&gt;
Then we will open the scene explorer screen  via the &amp;quot;Tools&amp;quot; menu =&amp;gt; &amp;quot;New Scene Explorer&amp;quot; and delete all the elements constituting the skeleton of the model and keep only the animal mesh.&lt;br /&gt;
&lt;br /&gt;
[[File:06-tuto-peluche-bones-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Now we have only one element in our &amp;quot;scene&amp;quot;: the Gubani mesh &amp;quot;TR_MO_H12&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the right panel, we will rename the mesh &amp;quot;ge_acc_tedy-gubani_01&amp;quot;. This name will be used by the export &amp;quot;NEL&amp;quot; to name the generated file when exporting to &amp;quot;shape&amp;quot; NEL format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele-fin.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 4 : Modifier le mapping des textures du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Dans cette partie, nous allons revoir la texturation du modèle 3d. A priori, il faudrait juste changer la texture de base «ju_mo_h12.png» pour pointer sur la notre «ge_acc_teddy-gubani_01.dds» (ou «.tga» à défaut) puis l'adapter comme nous le voulons visuellement. Cependant, cela va être un peu plus compliqué :&lt;br /&gt;
&lt;br /&gt;
In this section, we will adapt the texturing of 3d model. In principle, we would just change the base texture &amp;quot;ju_mo_h12.png&amp;quot; to point to our &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot;  texture (or the &amp;quot;. tga&amp;quot; one). However, this will be a bit more complicated: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First we open the &amp;quot;Material Editor&amp;quot; (1) screen, then we select the unique material of the scene (2) by double clicking on it. In the central viewport select the node named &amp;quot;Map # 1 Nel Multi Bitmap&amp;quot; by double clicking on it (3). In the right sidebar, a description of its properties (4) appear. The &amp;quot;Nel Multi Bitmap&amp;quot; allow to specify  8 different images. It is not multi-texturing, but the ability to configure multiple texture images. Only one is applied at a given moment on the model. This is used for the mobs to specify one texture for each ecosystem. This is also used by and environmental objects to specify a different texture for each season. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:08-tuto-peluche-texture.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The ID 1  slot is used for textures of Tryker ecosystem, the second solt (ID 2) for the Fyros ecosystem Fyros. The third slot (ID 3) for Zoraï ecosystem and the fourth  one (ID 4) for the Primes Root ecosystem. Do not look for Matis slot. As good aesthetes, they understood that beauty lay in the Zorai nature and therefore use Zoraï textures for all their animals. Note that here the Gubani is being ponly resent in jungle primes root. Only slots 3 and 4 are used&lt;br /&gt;
&lt;br /&gt;
The same system is also used for other IG objects, such as buildings. In this case, the 4 slots correspond to the four seasons. Thus we can note the presence of snow on some Zoraï buildings in winter. &lt;br /&gt;
&lt;br /&gt;
[[File:09-tuto-peluche-multi-texture.png]]&lt;br /&gt;
&lt;br /&gt;
We will not use this mechanism. We will therefore deleted the &amp;quot;NEL Multi Bitmap&amp;quot; and replace it with a simple &amp;quot;Bitmap&amp;quot; by dragging the mouse from  the output of &amp;quot;1 tTexture 1&amp;quot; as shown in the above image. When release the mouse, a menu appears (2), select &amp;quot;Bitmap&amp;quot; entry: &lt;br /&gt;
&lt;br /&gt;
[[File:10-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Then select our texture &amp;quot;W:\database\stuff\generic\agents\ _textures\accessories\ oft-toyge_acc_teddy gubani_01.dds&amp;quot; (or &amp;quot;.tga&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:11-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Repeat the operation on the other &amp;quot;Nel Multi Bitmap&amp;quot; which reference the same image. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 5 : Scaling the model  ==&lt;br /&gt;
&lt;br /&gt;
Our 3d model is almost ready. However, its size does not match what expected. If you use the 3dsmax measuring tool you will see that the Gubani is 2m high. The simplest way to put it in the right size is to load a Homin model to have visual comparison and ensure that the teddybear can be taken in hand.&lt;br /&gt;
&lt;br /&gt;
So we will temporarily put in our scene a reference to another 3d model via the File menu (1) =&amp;gt; References (2) =&amp;gt; Xref Scene (3) and then clicking on the Add button (4) :&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the Homin model &amp;quot;W:\database\stuff\generic\agents\actors\male\ge_hom_armor02.max&amp;quot; which should appear in your 3d scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref-02.png]]&lt;br /&gt;
&lt;br /&gt;
Scale the Gubani modeland move via tools &amp;quot;Scale&amp;quot; and &amp;quot;Move&amp;quot; from the popup menu that appears when you click the model with the right mouse button.&lt;br /&gt;
&lt;br /&gt;
[[File:16-tuto-peluche-echelle.png]]&lt;br /&gt;
&lt;br /&gt;
Once at the right scale, remove the reference to the homin model through the File menu =&amp;gt; References =&amp;gt; Xref Scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reposition the Gubani model  at the scene origin  (x = 0, y = 0, z = 0), because when the object is carried the position (0,0,0) is located in the hand.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape  6 : Adapt the texture for a fluffy look  ==&lt;br /&gt;
&lt;br /&gt;
In terms of texture, to give a &amp;quot;plush effect&amp;quot;, give free rein to your imagination&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-source.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I edited the &amp;quot;ge_acc_teddy-gubani_01.tga&amp;quot; image with the Gimp application. I used the filter &amp;quot;Artistic&amp;gt; GIMPressionist&amp;quot; using the &amp;quot;canvas&amp;quot; model for a weft fabric effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-peluche.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the image saved, I re-generated the dds texture with the command:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Here is the result on the 3d model in 3dsmax:&lt;br /&gt;
&lt;br /&gt;
[[File:18-tuto-peluche-modele3d.png]]&lt;br /&gt;
&lt;br /&gt;
=Sources=&lt;br /&gt;
&lt;br /&gt;
https://khaganat.net/wikhan/fr:todo:dessiner:peluche &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇧↑⇈⇑⬆ votre texte ⬆⇧↑⇈⇑ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TPInWikiRyzom}}&lt;br /&gt;
[[Category:EN]]&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1023</id>
		<title>EN Teddybear</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1023"/>
				<updated>2014-07-26T22:31:02Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: /* Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tabLang|EN|DE|EN Teddybear|ES|FR Peluche|RU}}&lt;br /&gt;
&lt;br /&gt;
{{ToTrad}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇩↓⇊⇓⬇ votre texte ⬇⇓⇊↓⇩ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Translation under progress - if you want to complete it, please update this line so that no one will edit it in the meantime)&lt;br /&gt;
&lt;br /&gt;
The aim of this tutorial is to show how to create cuddly toys based on the models of atysian animals. &lt;br /&gt;
&lt;br /&gt;
=Object of the month: creating and deploying cudlly toys &amp;quot;Atys' mobs&amp;quot; in game=&lt;br /&gt;
&lt;br /&gt;
[[File:00-tuto-peluche.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Prerequisite for modelising only the cuddly toy:&lt;br /&gt;
&lt;br /&gt;
* Having installed Ryzom assets and properly set-up the repositories (NEL tools expect to find the assets in the W:\database folder).&lt;br /&gt;
* Having installed 3DSMax and set-up the NEL plugin (Beware the plugin works only with versions 32bits of 3DSMax, and from version 9 till version 2012).&lt;br /&gt;
* Advised but not mandatory: having installed the NEL tool &amp;quot;''tga2dds.exe''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Prerequisite for deploying the cuddly toy on a game server:&lt;br /&gt;
&lt;br /&gt;
* Having compiled and installed a game server, and having set-up a client to use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: it is possible to test this cuddly toy IG without having a game server through a trick which will be explained a bit further in this tutorial.&lt;br /&gt;
&lt;br /&gt;
Some usefeul linkds for these prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Downloading the assets and tools: https://ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows&lt;br /&gt;
* Set-up of the readers: https://ryzomcore.atlassian.net/wiki/display/RC/How+to+set+up+the+Build+Pipeline&lt;br /&gt;
* Insalling the NEL plugin of 3DSMax: https://ryzomcore.atlassian.net/wiki/display/RC/Installing+the+Max+Plugins&lt;br /&gt;
&lt;br /&gt;
==  Step 1: choosing the model we'll use for our cuddly toy ==&lt;br /&gt;
&lt;br /&gt;
All 3d models for Ryzom fauna are gathered in the &amp;quot;W:\database\stuff\tryker\agents\monsters&amp;quot; folder, by creature family. In this tutorial, we'll use the &amp;quot;Gubani&amp;quot; model, which is located in the &amp;quot;horse&amp;quot; (&amp;quot;cheval&amp;quot; in French) folder, to create our cuddly toy:&lt;br /&gt;
&lt;br /&gt;
W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:01-tuto-peluche-dossiers-mobs.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 2: Getting the model and creating a dedicated work folder  ==&lt;br /&gt;
&lt;br /&gt;
In 3DSMax, open the &amp;quot;W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
Use the menu =&amp;gt; &amp;quot;File&amp;quot; =&amp;gt; &amp;quot;Manage&amp;quot; =&amp;gt; &amp;quot;Asset Tracking&amp;quot; to check the list of the files used in this model, especially the textures. Notice this two files:&lt;br /&gt;
&lt;br /&gt;
* The 3d model: &amp;quot;tr_mo_h12.max&amp;quot;&lt;br /&gt;
* The texture for the gubani: &amp;quot;ju_mo_h12.png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:02-tuto-peluche-asset-tracking.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The aim here is to deploy cuddly monbs for the month object. Hence, we'll create a dedicated folder for our to-be toys and respect the naming convention used by Ryzom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we'll create a &amp;quot;soft-toy&amp;quot; folder, in the &amp;quot;W:\database\stuff\generique\agents\accessories&amp;quot; folder. We'll save our model by renaming it under: ge_acc_teddy-gubani_01.max&lt;br /&gt;
&lt;br /&gt;
* the first &amp;quot;ge_&amp;quot; prefix in the file name specifies the ecosystem, here _ge_neric (tr: tryker, fy: fyros, etc...).&lt;br /&gt;
* the second prefix in the file name specifies the type of model (hom: male homin, mo: monster, wea: weapon, etc...). Here &amp;quot;acc&amp;quot; for _acc_essory.&lt;br /&gt;
* and last, the name of our model &amp;quot;teddy-gubani&amp;quot;, which will be suffixed with a number, in order to be able to create several variants of the teddy-gubani.&lt;br /&gt;
&lt;br /&gt;
For the texture, we should also copy it under &amp;quot;W:\database\stuff\generique\agents\_textures\accessories&amp;quot;, but we'll do it more simply. We'll place it in the same folder as the 3d model and rename it according to the same convention: &amp;quot;ge_acc_teddy-gubani_01.png&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ryzom core knwo only how to show textures with a &amp;quot;.tga&amp;quot; or &amp;quot;.dds&amp;quot; format. TGA is a raw format without compression which makes it useful for edition, but less efficient in term of memory space. DDS format is a compressed image format which, as jpeg, is destructive. It is the format used internally by Ryzom to minimize the textures' memory space. With your favorite editor, convert the &amp;quot;.png&amp;quot; image into a &amp;quot;.tga&amp;quot; one. That's the one we'll keep for edition. We'll use the NEL tool &amp;quot;'tga2dds'&amp;quot; to generate a texture image under &amp;quot;.dds&amp;quot; format for the 3d model. That's the one which well be used in 3DSMax.&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
If you don't have this tool, you gan keep the &amp;quot;.tga&amp;quot; version. It will work for the IG tests.&lt;br /&gt;
In the &amp;quot;soft-toy&amp;quot; folder, you should now have as a result:&lt;br /&gt;
&lt;br /&gt;
[[File:03-tuto-peluche-dossier-soft-toy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 3: Cleaing the 3D model using 3DSMax ==&lt;br /&gt;
The monster 3D model contains a skeleton and animation tracks. This is not necessary for a toy accessory and unnecessarily overburden the final ryzom model. We will delete it. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:04-tuto-peluche-animation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Select with the mouse the &amp;quot;Gubani&amp;quot; model. In the right panel, select the &amp;quot;''modify''&amp;quot; tab. You should see the mesh called &amp;quot;TR_MO_H12&amp;quot; and in the  stack one modifier called &amp;quot;physical&amp;quot;. We will delete&lt;br /&gt;
&lt;br /&gt;
[[File:05-tuto-peluche-physique.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons ouvrir l'écran affichant les éléments de la scene via le menu &amp;quot;Tools&amp;quot;=&amp;gt; &amp;quot;New Scene Explorer&amp;quot; et supprimer tous les éléments constituant le squelette du modèle pour ne garder au final que le mesh de l'animal.&lt;br /&gt;
&lt;br /&gt;
Then we will open the scene explorer screen  via the &amp;quot;Tools&amp;quot; menu =&amp;gt; &amp;quot;New Scene Explorer&amp;quot; and delete all the elements constituting the skeleton of the model and keep only the animal mesh.&lt;br /&gt;
&lt;br /&gt;
[[File:06-tuto-peluche-bones-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Now we have only one element in our &amp;quot;scene&amp;quot;: the Gubani mesh &amp;quot;TR_MO_H12&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the right panel, we will rename the mesh &amp;quot;ge_acc_tedy-gubani_01&amp;quot;. This name will be used by the export &amp;quot;NEL&amp;quot; to name the generated file when exporting to &amp;quot;shape&amp;quot; NEL format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele-fin.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 4 : Modifier le mapping des textures du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Dans cette partie, nous allons revoir la texturation du modèle 3d. A priori, il faudrait juste changer la texture de base «ju_mo_h12.png» pour pointer sur la notre «ge_acc_teddy-gubani_01.dds» (ou «.tga» à défaut) puis l'adapter comme nous le voulons visuellement. Cependant, cela va être un peu plus compliqué :&lt;br /&gt;
&lt;br /&gt;
In this section, we will adapt the texturing of 3d model. In principle, we would just change the base texture &amp;quot;ju_mo_h12.png&amp;quot; to point to our &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot;  texture (or the &amp;quot;. tga&amp;quot; one). However, this will be a bit more complicated: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First we open the &amp;quot;Material Editor&amp;quot; (1) screen, then we select the unique material of the scene (2) by double clicking on it. In the central viewport select the node named &amp;quot;Map # 1 Nel Multi Bitmap&amp;quot; by double clicking on it (3). In the right sidebar, a description of its properties (4) appear. The &amp;quot;Nel Multi Bitmap&amp;quot; allow to specify  8 different images. It is not multi-texturing, but the ability to configure multiple texture images. Only one is applied at a given moment on the model. This is used for the mobs to specify one texture for each ecosystem. This is also used by and environmental objects to specify a different texture for each season. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:08-tuto-peluche-texture.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The ID 1  slot is used for textures of Tryker ecosystem, the second solt (ID 2) for the Fyros ecosystem Fyros. The third slot (ID 3) for Zoraï ecosystem and the fourth  one (ID 4) for the Primes Root ecosystem. Do not look for Matis slot. As good aesthetes, they understood that beauty lay in the Zorai nature and therefore use Zoraï textures for all their animals. Note that here the Gubani is being ponly resent in jungle primes root. Only slots 3 and 4 are used&lt;br /&gt;
&lt;br /&gt;
The same system is also used for other IG objects, such as buildings. In this case, the 4 slots correspond to the four seasons. Thus we can note the presence of snow on some Zoraï buildings in winter. &lt;br /&gt;
&lt;br /&gt;
[[File:09-tuto-peluche-multi-texture.png]]&lt;br /&gt;
&lt;br /&gt;
We will not use this mechanism. We will therefore deleted the &amp;quot;NEL Multi Bitmap&amp;quot; and replace it with a simple &amp;quot;Bitmap&amp;quot; by dragging the mouse from  the output of &amp;quot;1 tTexture 1&amp;quot; as shown in the above image. When release the mouse, a menu appears (2), select &amp;quot;Bitmap&amp;quot; entry: &lt;br /&gt;
&lt;br /&gt;
[[File:10-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Then select our texture &amp;quot;W:\database\stuff\generic\agents\ _textures\accessories\ oft-toyge_acc_teddy gubani_01.dds&amp;quot; (or &amp;quot;.tga&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:11-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Repeat the operation on the other &amp;quot;Nel Multi Bitmap&amp;quot; which reference the same image. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 5 : Scaling the model  ==&lt;br /&gt;
&lt;br /&gt;
Our 3d model is almost ready. However, its size does not match what expected. If you use the 3dsmax measuring tool you will see that the Gubani is 2m high. The simplest way to put it in the right size is to load a Homin model to have visual comparison and ensure that the teddybear can be taken in hand.&lt;br /&gt;
&lt;br /&gt;
So we will temporarily put in our scene a reference to another 3d model via the File menu (1) =&amp;gt; References (2) =&amp;gt; Xref Scene (3) and then clicking on the Add button (4) :&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the Homin model &amp;quot;W:\database\stuff\generic\agents\actors\male\ge_hom_armor02.max&amp;quot; which should appear in your 3d scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref-02.png]]&lt;br /&gt;
&lt;br /&gt;
Scale the Gubani modeland move via tools &amp;quot;Scale&amp;quot; and &amp;quot;Move&amp;quot; from the popup menu that appears when you click the model with the right mouse button.&lt;br /&gt;
&lt;br /&gt;
[[File:16-tuto-peluche-echelle.png]]&lt;br /&gt;
&lt;br /&gt;
Once at the right scale, remove the reference to the homin model through the File menu =&amp;gt; References =&amp;gt; Xref Scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reposition the Gubani model  at the scene origin  (x = 0, y = 0, z = 0), because when the object is carried the position (0,0,0) is located in the hand.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape  6 : modifier la texture pour un rendu peluche  ==&lt;br /&gt;
&lt;br /&gt;
In terms of texture, to give a &amp;quot;plush effect&amp;quot;, give free rein to your imagination&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-source.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I edited the &amp;quot;ge_acc_teddy-gubani_01.tga&amp;quot; image with the Gimp application. I used the filter &amp;quot;Artistic&amp;gt; GIMPressionist&amp;quot; using the &amp;quot;canvas&amp;quot; model for a weft fabric effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-peluche.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the image saved, I re-generated the dds texture with the command:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Here is the result on the 3d model in 3dsmax:&lt;br /&gt;
&lt;br /&gt;
[[File:18-tuto-peluche-modele3d.png]]&lt;br /&gt;
&lt;br /&gt;
=Sources=&lt;br /&gt;
&lt;br /&gt;
https://khaganat.net/wikhan/fr:todo:dessiner:peluche &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇧↑⇈⇑⬆ votre texte ⬆⇧↑⇈⇑ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TPInWikiRyzom}}&lt;br /&gt;
[[Category:EN]]&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1021</id>
		<title>EN Teddybear</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1021"/>
				<updated>2014-07-26T21:58:30Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: /* Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tabLang|EN|DE|EN Teddybear|ES|FR Peluche|RU}}&lt;br /&gt;
&lt;br /&gt;
{{ToTrad}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇩↓⇊⇓⬇ votre texte ⬇⇓⇊↓⇩ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Translation under progress - if you want to complete it, please update this line so that no one will edit it in the meantime)&lt;br /&gt;
&lt;br /&gt;
The aim of this tutorial is to show how to create cuddly toys based on the models of atysian animals. &lt;br /&gt;
&lt;br /&gt;
=Object of the month: creating and deploying cudlly toys &amp;quot;Atys' mobs&amp;quot; in game=&lt;br /&gt;
&lt;br /&gt;
[[File:00-tuto-peluche.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Prerequisite for modelising only the cuddly toy:&lt;br /&gt;
&lt;br /&gt;
* Having installed Ryzom assets and properly set-up the repositories (NEL tools expect to find the assets in the W:\database folder).&lt;br /&gt;
* Having installed 3DSMax and set-up the NEL plugin (Beware the plugin works only with versions 32bits of 3DSMax, and from version 9 till version 2012).&lt;br /&gt;
* Advised but not mandatory: having installed the NEL tool &amp;quot;''tga2dds.exe''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Prerequisite for deploying the cuddly toy on a game server:&lt;br /&gt;
&lt;br /&gt;
* Having compiled and installed a game server, and having set-up a client to use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: it is possible to test this cuddly toy IG without having a game server through a trick which will be explained a bit further in this tutorial.&lt;br /&gt;
&lt;br /&gt;
Some usefeul linkds for these prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Downloading the assets and tools: https://ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows&lt;br /&gt;
* Set-up of the readers: https://ryzomcore.atlassian.net/wiki/display/RC/How+to+set+up+the+Build+Pipeline&lt;br /&gt;
* Insalling the NEL plugin of 3DSMax: https://ryzomcore.atlassian.net/wiki/display/RC/Installing+the+Max+Plugins&lt;br /&gt;
&lt;br /&gt;
==  Step 1: choosing the model we'll use for our cuddly toy ==&lt;br /&gt;
&lt;br /&gt;
All 3d models for Ryzom fauna are gathered in the &amp;quot;W:\database\stuff\tryker\agents\monsters&amp;quot; folder, by creature family. In this tutorial, we'll use the &amp;quot;Gubani&amp;quot; model, which is located in the &amp;quot;horse&amp;quot; (&amp;quot;cheval&amp;quot; in French) folder, to create our cuddly toy:&lt;br /&gt;
&lt;br /&gt;
W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:01-tuto-peluche-dossiers-mobs.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 2: Getting the model and creating a dedicated work folder  ==&lt;br /&gt;
&lt;br /&gt;
In 3DSMax, open the &amp;quot;W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
Use the menu =&amp;gt; &amp;quot;File&amp;quot; =&amp;gt; &amp;quot;Manage&amp;quot; =&amp;gt; &amp;quot;Asset Tracking&amp;quot; to check the list of the files used in this model, especially the textures. Notice this two files:&lt;br /&gt;
&lt;br /&gt;
* The 3d model: &amp;quot;tr_mo_h12.max&amp;quot;&lt;br /&gt;
* The texture for the gubani: &amp;quot;ju_mo_h12.png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:02-tuto-peluche-asset-tracking.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The aim here is to deploy cuddly monbs for the month object. Hence, we'll create a dedicated folder for our to-be toys and respect the naming convention used by Ryzom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we'll create a &amp;quot;soft-toy&amp;quot; folder, in the &amp;quot;W:\database\stuff\generique\agents\accessories&amp;quot; folder. We'll save our model by renaming it under: ge_acc_teddy-gubani_01.max&lt;br /&gt;
&lt;br /&gt;
* the first &amp;quot;ge_&amp;quot; prefix in the file name specifies the ecosystem, here _ge_neric (tr: tryker, fy: fyros, etc...).&lt;br /&gt;
* the second prefix in the file name specifies the type of model (hom: male homin, mo: monster, wea: weapon, etc...). Here &amp;quot;acc&amp;quot; for _acc_essory.&lt;br /&gt;
* and last, the name of our model &amp;quot;teddy-gubani&amp;quot;, which will be suffixed with a number, in order to be able to create several variants of the teddy-gubani.&lt;br /&gt;
&lt;br /&gt;
For the texture, we should also copy it under &amp;quot;W:\database\stuff\generique\agents\_textures\accessories&amp;quot;, but we'll do it more simply. We'll place it in the same folder as the 3d model and rename it according to the same convention: &amp;quot;ge_acc_teddy-gubani_01.png&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ryzom core knwo only how to show textures with a &amp;quot;.tga&amp;quot; or &amp;quot;.dds&amp;quot; format. TGA is a raw format without compression which makes it useful for edition, but less efficient in term of memory space. DDS format is a compressed image format which, as jpeg, is destructive. It is the format used internally by Ryzom to minimize the textures' memory space. With your favorite editor, convert the &amp;quot;.png&amp;quot; image into a &amp;quot;.tga&amp;quot; one. That's the one we'll keep for edition. We'll use the NEL tool &amp;quot;'tga2dds'&amp;quot; to generate a texture image under &amp;quot;.dds&amp;quot; format for the 3d model. That's the one which well be used in 3DSMax.&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
If you don't have this tool, you gan keep the &amp;quot;.tga&amp;quot; version. It will work for the IG tests.&lt;br /&gt;
In the &amp;quot;soft-toy&amp;quot; folder, you should now have as a result:&lt;br /&gt;
&lt;br /&gt;
[[File:03-tuto-peluche-dossier-soft-toy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 3: Cleaing the 3D model using 3DSMax ==&lt;br /&gt;
The monster 3D model contains a skeleton and animation tracks. This is not necessary for a toy accessory and unnecessarily overburden the final ryzom model. We will delete it. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:04-tuto-peluche-animation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Select with the mouse the &amp;quot;Gubani&amp;quot; model. In the right panel, select the &amp;quot;''modify''&amp;quot; tab. You should see the mesh called &amp;quot;TR_MO_H12&amp;quot; and in the  stack one modifier called &amp;quot;physical&amp;quot;. We will delete&lt;br /&gt;
&lt;br /&gt;
[[File:05-tuto-peluche-physique.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons ouvrir l'écran affichant les éléments de la scene via le menu &amp;quot;Tools&amp;quot;=&amp;gt; &amp;quot;New Scene Explorer&amp;quot; et supprimer tous les éléments constituant le squelette du modèle pour ne garder au final que le mesh de l'animal.&lt;br /&gt;
&lt;br /&gt;
Then we will open the scene explorer screen  via the &amp;quot;Tools&amp;quot; menu =&amp;gt; &amp;quot;New Scene Explorer&amp;quot; and delete all the elements constituting the skeleton of the model and keep only the animal mesh.&lt;br /&gt;
&lt;br /&gt;
[[File:06-tuto-peluche-bones-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Now we have only one element in our &amp;quot;scene&amp;quot;: the Gubani mesh &amp;quot;TR_MO_H12&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the right panel, we will rename the mesh &amp;quot;ge_acc_tedy-gubani_01&amp;quot;. This name will be used by the export &amp;quot;NEL&amp;quot; to name the generated file when exporting to &amp;quot;shape&amp;quot; NEL format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele-fin.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 4 : Modifier le mapping des textures du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Dans cette partie, nous allons revoir la texturation du modèle 3d. A priori, il faudrait juste changer la texture de base «ju_mo_h12.png» pour pointer sur la notre «ge_acc_teddy-gubani_01.dds» (ou «.tga» à défaut) puis l'adapter comme nous le voulons visuellement. Cependant, cela va être un peu plus compliqué :&lt;br /&gt;
&lt;br /&gt;
In this section, we will adapt the texturing of 3d model. In principle, we would just change the base texture &amp;quot;ju_mo_h12.png&amp;quot; to point to our &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot;  texture (or the &amp;quot;. tga&amp;quot; one). However, this will be a bit more complicated: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First we open the &amp;quot;Material Editor&amp;quot; (1) screen, then we select the unique material of the scene (2) by double clicking on it. In the central viewport select the node named &amp;quot;Map # 1 Nel Multi Bitmap&amp;quot; by double clicking on it (3). In the right sidebar, a description of its properties (4) appear. The &amp;quot;Nel Multi Bitmap&amp;quot; allow to specify  8 different images. It is not multi-texturing, but the ability to configure multiple texture images. Only one is applied at a given moment on the model. This is used for the mobs to specify one texture for each ecosystem. This is also used by and environmental objects to specify a different texture for each season. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:08-tuto-peluche-texture.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The ID 1  slot is used for textures of Tryker ecosystem, the second solt (ID 2) for the Fyros ecosystem Fyros. The third slot (ID 3) for Zoraï ecosystem and the fourth  one (ID 4) for the Primes Root ecosystem. Do not look for Matis slot. As good aesthetes, they understood that beauty lay in the Zorai nature and therefore use Zoraï textures for all their animals. Note that here the Gubani is being ponly resent in jungle primes root. Only slots 3 and 4 are used&lt;br /&gt;
&lt;br /&gt;
The same system is also used for other IG objects, such as buildings. In this case, the 4 slots correspond to the four seasons. Thus we can note the presence of snow on some Zoraï buildings in winter. &lt;br /&gt;
&lt;br /&gt;
[[File:09-tuto-peluche-multi-texture.png]]&lt;br /&gt;
&lt;br /&gt;
We will not use this mechanism. We will therefore deleted the &amp;quot;NEL Multi Bitmap&amp;quot; and replace it with a simple &amp;quot;Bitmap&amp;quot; by dragging the mouse from  the output of &amp;quot;1 tTexture 1&amp;quot; as shown in the above image. When release the mouse, a menu appears (2), select &amp;quot;Bitmap&amp;quot; entry: &lt;br /&gt;
&lt;br /&gt;
[[File:10-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Then select our texture &amp;quot;W:\database\stuff\generic\agents\ _textures\accessories\ oft-toyge_acc_teddy gubani_01.dds&amp;quot; (or &amp;quot;.tga&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:11-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Repeat the operation on the other &amp;quot;Nel Multi Bitmap&amp;quot; which reference the same image. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 5 : Scaling the model  ==&lt;br /&gt;
&lt;br /&gt;
Our 3d model is almost ready. However, its size does not match what expected. If you use the 3dsmax measuring tool you will see that the Gubani is 2m high. The simplest way to put it in the right size is to load a Homin model to have visual comparison and ensure that the teddybear can be taken in hand.&lt;br /&gt;
&lt;br /&gt;
So we will temporarily put in our scene a reference to another 3d model via the File menu (1) =&amp;gt; References (2) =&amp;gt; Xref Scene (3) and then clicking on the Add button (4) :&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the Homin model &amp;quot;W:\database\stuff\generic\agents\actors\male\ge_hom_armor02.max&amp;quot; which should appear in your 3d scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref-02.png]]&lt;br /&gt;
&lt;br /&gt;
Scale the Gubani modeland move via tools &amp;quot;Scale&amp;quot; and &amp;quot;Move&amp;quot; from the popup menu that appears when you click the model with the right mouse button.&lt;br /&gt;
&lt;br /&gt;
[[File:16-tuto-peluche-echelle.png]]&lt;br /&gt;
&lt;br /&gt;
Once at the right scale, remove the reference to the homin model through the File menu =&amp;gt; References =&amp;gt; Xref Scene.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reposition the Gubani model  at the scene origin  (x = 0, y = 0, z = 0), because when the object is carried the position (0,0,0) is located in the hand.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Sources=&lt;br /&gt;
&lt;br /&gt;
https://khaganat.net/wikhan/fr:todo:dessiner:peluche &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇧↑⇈⇑⬆ votre texte ⬆⇧↑⇈⇑ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TPInWikiRyzom}}&lt;br /&gt;
[[Category:EN]]&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1020</id>
		<title>EN Teddybear</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1020"/>
				<updated>2014-07-26T20:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: /* Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tabLang|EN|DE|EN Teddybear|ES|FR Peluche|RU}}&lt;br /&gt;
&lt;br /&gt;
{{ToTrad}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇩↓⇊⇓⬇ votre texte ⬇⇓⇊↓⇩ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Translation under progress - if you want to complete it, please update this line so that no one will edit it in the meantime)&lt;br /&gt;
&lt;br /&gt;
The aim of this tutorial is to show how to create cuddly toys based on the models of atysian animals. &lt;br /&gt;
&lt;br /&gt;
=Object of the month: creating and deploying cudlly toys &amp;quot;Atys' mobs&amp;quot; in game=&lt;br /&gt;
&lt;br /&gt;
[[File:00-tuto-peluche.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Prerequisite for modelising only the cuddly toy:&lt;br /&gt;
&lt;br /&gt;
* Having installed Ryzom assets and properly set-up the repositories (NEL tools expect to find the assets in the W:\database folder).&lt;br /&gt;
* Having installed 3DSMax and set-up the NEL plugin (Beware the plugin works only with versions 32bits of 3DSMax, and from version 9 till version 2012).&lt;br /&gt;
* Advised but not mandatory: having installed the NEL tool &amp;quot;''tga2dds.exe''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Prerequisite for deploying the cuddly toy on a game server:&lt;br /&gt;
&lt;br /&gt;
* Having compiled and installed a game server, and having set-up a client to use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: it is possible to test this cuddly toy IG without having a game server through a trick which will be explained a bit further in this tutorial.&lt;br /&gt;
&lt;br /&gt;
Some usefeul linkds for these prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Downloading the assets and tools: https://ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows&lt;br /&gt;
* Set-up of the readers: https://ryzomcore.atlassian.net/wiki/display/RC/How+to+set+up+the+Build+Pipeline&lt;br /&gt;
* Insalling the NEL plugin of 3DSMax: https://ryzomcore.atlassian.net/wiki/display/RC/Installing+the+Max+Plugins&lt;br /&gt;
&lt;br /&gt;
==  Step 1: choosing the model we'll use for our cuddly toy ==&lt;br /&gt;
&lt;br /&gt;
All 3d models for Ryzom fauna are gathered in the &amp;quot;W:\database\stuff\tryker\agents\monsters&amp;quot; folder, by creature family. In this tutorial, we'll use the &amp;quot;Gubani&amp;quot; model, which is located in the &amp;quot;horse&amp;quot; (&amp;quot;cheval&amp;quot; in French) folder, to create our cuddly toy:&lt;br /&gt;
&lt;br /&gt;
W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:01-tuto-peluche-dossiers-mobs.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 2: Getting the model and creating a dedicated work folder  ==&lt;br /&gt;
&lt;br /&gt;
In 3DSMax, open the &amp;quot;W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
Use the menu =&amp;gt; &amp;quot;File&amp;quot; =&amp;gt; &amp;quot;Manage&amp;quot; =&amp;gt; &amp;quot;Asset Tracking&amp;quot; to check the list of the files used in this model, especially the textures. Notice this two files:&lt;br /&gt;
&lt;br /&gt;
* The 3d model: &amp;quot;tr_mo_h12.max&amp;quot;&lt;br /&gt;
* The texture for the gubani: &amp;quot;ju_mo_h12.png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:02-tuto-peluche-asset-tracking.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The aim here is to deploy cuddly monbs for the month object. Hence, we'll create a dedicated folder for our to-be toys and respect the naming convention used by Ryzom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we'll create a &amp;quot;soft-toy&amp;quot; folder, in the &amp;quot;W:\database\stuff\generique\agents\accessories&amp;quot; folder. We'll save our model by renaming it under: ge_acc_teddy-gubani_01.max&lt;br /&gt;
&lt;br /&gt;
* the first &amp;quot;ge_&amp;quot; prefix in the file name specifies the ecosystem, here _ge_neric (tr: tryker, fy: fyros, etc...).&lt;br /&gt;
* the second prefix in the file name specifies the type of model (hom: male homin, mo: monster, wea: weapon, etc...). Here &amp;quot;acc&amp;quot; for _acc_essory.&lt;br /&gt;
* and last, the name of our model &amp;quot;teddy-gubani&amp;quot;, which will be suffixed with a number, in order to be able to create several variants of the teddy-gubani.&lt;br /&gt;
&lt;br /&gt;
For the texture, we should also copy it under &amp;quot;W:\database\stuff\generique\agents\_textures\accessories&amp;quot;, but we'll do it more simply. We'll place it in the same folder as the 3d model and rename it according to the same convention: &amp;quot;ge_acc_teddy-gubani_01.png&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ryzom core knwo only how to show textures with a &amp;quot;.tga&amp;quot; or &amp;quot;.dds&amp;quot; format. TGA is a raw format without compression which makes it useful for edition, but less efficient in term of memory space. DDS format is a compressed image format which, as jpeg, is destructive. It is the format used internally by Ryzom to minimize the textures' memory space. With your favorite editor, convert the &amp;quot;.png&amp;quot; image into a &amp;quot;.tga&amp;quot; one. That's the one we'll keep for edition. We'll use the NEL tool &amp;quot;'tga2dds'&amp;quot; to generate a texture image under &amp;quot;.dds&amp;quot; format for the 3d model. That's the one which well be used in 3DSMax.&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
If you don't have this tool, you gan keep the &amp;quot;.tga&amp;quot; version. It will work for the IG tests.&lt;br /&gt;
In the &amp;quot;soft-toy&amp;quot; folder, you should now have as a result:&lt;br /&gt;
&lt;br /&gt;
[[File:03-tuto-peluche-dossier-soft-toy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 3: Cleaing the 3D model using 3DSMax ==&lt;br /&gt;
The monster 3D model contains a skeleton and animation tracks. This is not necessary for a toy accessory and unnecessarily overburden the final ryzom model. We will delete it. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:04-tuto-peluche-animation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Select with the mouse the &amp;quot;Gubani&amp;quot; model. In the right panel, select the &amp;quot;''modify''&amp;quot; tab. You should see the mesh called &amp;quot;TR_MO_H12&amp;quot; and in the  stack one modifier called &amp;quot;physical&amp;quot;. We will delete&lt;br /&gt;
&lt;br /&gt;
[[File:05-tuto-peluche-physique.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons ouvrir l'écran affichant les éléments de la scene via le menu &amp;quot;Tools&amp;quot;=&amp;gt; &amp;quot;New Scene Explorer&amp;quot; et supprimer tous les éléments constituant le squelette du modèle pour ne garder au final que le mesh de l'animal.&lt;br /&gt;
&lt;br /&gt;
Then we will open the scene explorer screen  via the &amp;quot;Tools&amp;quot; menu =&amp;gt; &amp;quot;New Scene Explorer&amp;quot; and delete all the elements constituting the skeleton of the model and keep only the animal mesh.&lt;br /&gt;
&lt;br /&gt;
[[File:06-tuto-peluche-bones-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Now we have only one element in our &amp;quot;scene&amp;quot;: the Gubani mesh &amp;quot;TR_MO_H12&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the right panel, we will rename the mesh &amp;quot;ge_acc_tedy-gubani_01&amp;quot;. This name will be used by the export &amp;quot;NEL&amp;quot; to name the generated file when exporting to &amp;quot;shape&amp;quot; NEL format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele-fin.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 4 : Modifier le mapping des textures du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Dans cette partie, nous allons revoir la texturation du modèle 3d. A priori, il faudrait juste changer la texture de base «ju_mo_h12.png» pour pointer sur la notre «ge_acc_teddy-gubani_01.dds» (ou «.tga» à défaut) puis l'adapter comme nous le voulons visuellement. Cependant, cela va être un peu plus compliqué :&lt;br /&gt;
&lt;br /&gt;
In this section, we will adapt the texturing of 3d model. In principle, we would just change the base texture &amp;quot;ju_mo_h12.png&amp;quot; to point to our &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot;  texture (or the &amp;quot;. tga&amp;quot; one). However, this will be a bit more complicated: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First we open the &amp;quot;Material Editor&amp;quot; (1) screen, then we select the unique material of the scene (2) by double clicking on it. In the central viewport select the node named &amp;quot;Map # 1 Nel Multi Bitmap&amp;quot; by double clicking on it (3). In the right sidebar, a description of its properties (4) appear. The &amp;quot;Nel Multi Bitmap&amp;quot; allow to specify  8 different images. It is not multi-texturing, but the ability to configure multiple texture images. Only one is applied at a given moment on the model. This is used for the mobs to specify one texture for each ecosystem. This is also used by and environmental objects to specify a different texture for each season. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:08-tuto-peluche-texture.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The ID 1  slot is used for textures of Tryker ecosystem, the second solt (ID 2) for the Fyros ecosystem Fyros. The third slot (ID 3) for Zoraï ecosystem and the fourth  one (ID 4) for the Primes Root ecosystem. Do not look for Matis slot. As good aesthetes, they understood that beauty lay in the Zorai nature and therefore use Zoraï textures for all their animals. Note that here the Gubani is being ponly resent in jungle primes root. Only slots 3 and 4 are used&lt;br /&gt;
&lt;br /&gt;
The same system is also used for other IG objects, such as buildings. In this case, the 4 slots correspond to the four seasons. Thus we can note the presence of snow on some Zoraï buildings in winter. &lt;br /&gt;
&lt;br /&gt;
[[File:09-tuto-peluche-multi-texture.png]]&lt;br /&gt;
&lt;br /&gt;
We will not use this mechanism. We will therefore deleted the &amp;quot;NEL Multi Bitmap&amp;quot; and replace it with a simple &amp;quot;Bitmap&amp;quot; by dragging the mouse from  the output of &amp;quot;1 tTexture 1&amp;quot; as shown in the above image. When release the mouse, a menu appears (2), select &amp;quot;Bitmap&amp;quot; entry: &lt;br /&gt;
&lt;br /&gt;
[[File:10-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Then select our texture &amp;quot;W:\database\stuff\generic\agents\ _textures\accessories\ oft-toyge_acc_teddy gubani_01.dds&amp;quot; (or &amp;quot;.tga&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:11-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Repeat the operation on the other &amp;quot;Nel Multi Bitmap&amp;quot; which reference the same image. &lt;br /&gt;
&lt;br /&gt;
=Sources=&lt;br /&gt;
&lt;br /&gt;
https://khaganat.net/wikhan/fr:todo:dessiner:peluche &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇧↑⇈⇑⬆ votre texte ⬆⇧↑⇈⇑ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TPInWikiRyzom}}&lt;br /&gt;
[[Category:EN]]&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1019</id>
		<title>EN Teddybear</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1019"/>
				<updated>2014-07-26T20:05:31Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: /* Step 3: Cleaing the 3D model using 3DSMax */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tabLang|EN|DE|EN Teddybear|ES|FR Peluche|RU}}&lt;br /&gt;
&lt;br /&gt;
{{ToTrad}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇩↓⇊⇓⬇ votre texte ⬇⇓⇊↓⇩ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Translation under progress - if you want to complete it, please update this line so that no one will edit it in the meantime)&lt;br /&gt;
&lt;br /&gt;
The aim of this tutorial is to show how to create cuddly toys based on the models of atysian animals. &lt;br /&gt;
&lt;br /&gt;
=Object of the month: creating and deploying cudlly toys &amp;quot;Atys' mobs&amp;quot; in game=&lt;br /&gt;
&lt;br /&gt;
[[File:00-tuto-peluche.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Prerequisite for modelising only the cuddly toy:&lt;br /&gt;
&lt;br /&gt;
* Having installed Ryzom assets and properly set-up the repositories (NEL tools expect to find the assets in the W:\database folder).&lt;br /&gt;
* Having installed 3DSMax and set-up the NEL plugin (Beware the plugin works only with versions 32bits of 3DSMax, and from version 9 till version 2012).&lt;br /&gt;
* Advised but not mandatory: having installed the NEL tool &amp;quot;''tga2dds.exe''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Prerequisite for deploying the cuddly toy on a game server:&lt;br /&gt;
&lt;br /&gt;
* Having compiled and installed a game server, and having set-up a client to use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: it is possible to test this cuddly toy IG without having a game server through a trick which will be explained a bit further in this tutorial.&lt;br /&gt;
&lt;br /&gt;
Some usefeul linkds for these prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Downloading the assets and tools: https://ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows&lt;br /&gt;
* Set-up of the readers: https://ryzomcore.atlassian.net/wiki/display/RC/How+to+set+up+the+Build+Pipeline&lt;br /&gt;
* Insalling the NEL plugin of 3DSMax: https://ryzomcore.atlassian.net/wiki/display/RC/Installing+the+Max+Plugins&lt;br /&gt;
&lt;br /&gt;
==  Step 1: choosing the model we'll use for our cuddly toy ==&lt;br /&gt;
&lt;br /&gt;
All 3d models for Ryzom fauna are gathered in the &amp;quot;W:\database\stuff\tryker\agents\monsters&amp;quot; folder, by creature family. In this tutorial, we'll use the &amp;quot;Gubani&amp;quot; model, which is located in the &amp;quot;horse&amp;quot; (&amp;quot;cheval&amp;quot; in French) folder, to create our cuddly toy:&lt;br /&gt;
&lt;br /&gt;
W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:01-tuto-peluche-dossiers-mobs.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 2: Getting the model and creating a dedicated work folder  ==&lt;br /&gt;
&lt;br /&gt;
In 3DSMax, open the &amp;quot;W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
Use the menu =&amp;gt; &amp;quot;File&amp;quot; =&amp;gt; &amp;quot;Manage&amp;quot; =&amp;gt; &amp;quot;Asset Tracking&amp;quot; to check the list of the files used in this model, especially the textures. Notice this two files:&lt;br /&gt;
&lt;br /&gt;
* The 3d model: &amp;quot;tr_mo_h12.max&amp;quot;&lt;br /&gt;
* The texture for the gubani: &amp;quot;ju_mo_h12.png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:02-tuto-peluche-asset-tracking.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The aim here is to deploy cuddly monbs for the month object. Hence, we'll create a dedicated folder for our to-be toys and respect the naming convention used by Ryzom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we'll create a &amp;quot;soft-toy&amp;quot; folder, in the &amp;quot;W:\database\stuff\generique\agents\accessories&amp;quot; folder. We'll save our model by renaming it under: ge_acc_teddy-gubani_01.max&lt;br /&gt;
&lt;br /&gt;
* the first &amp;quot;ge_&amp;quot; prefix in the file name specifies the ecosystem, here _ge_neric (tr: tryker, fy: fyros, etc...).&lt;br /&gt;
* the second prefix in the file name specifies the type of model (hom: male homin, mo: monster, wea: weapon, etc...). Here &amp;quot;acc&amp;quot; for _acc_essory.&lt;br /&gt;
* and last, the name of our model &amp;quot;teddy-gubani&amp;quot;, which will be suffixed with a number, in order to be able to create several variants of the teddy-gubani.&lt;br /&gt;
&lt;br /&gt;
For the texture, we should also copy it under &amp;quot;W:\database\stuff\generique\agents\_textures\accessories&amp;quot;, but we'll do it more simply. We'll place it in the same folder as the 3d model and rename it according to the same convention: &amp;quot;ge_acc_teddy-gubani_01.png&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ryzom core knwo only how to show textures with a &amp;quot;.tga&amp;quot; or &amp;quot;.dds&amp;quot; format. TGA is a raw format without compression which makes it useful for edition, but less efficient in term of memory space. DDS format is a compressed image format which, as jpeg, is destructive. It is the format used internally by Ryzom to minimize the textures' memory space. With your favorite editor, convert the &amp;quot;.png&amp;quot; image into a &amp;quot;.tga&amp;quot; one. That's the one we'll keep for edition. We'll use the NEL tool &amp;quot;'tga2dds'&amp;quot; to generate a texture image under &amp;quot;.dds&amp;quot; format for the 3d model. That's the one which well be used in 3DSMax.&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
If you don't have this tool, you gan keep the &amp;quot;.tga&amp;quot; version. It will work for the IG tests.&lt;br /&gt;
In the &amp;quot;soft-toy&amp;quot; folder, you should now have as a result:&lt;br /&gt;
&lt;br /&gt;
[[File:03-tuto-peluche-dossier-soft-toy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 3: Cleaing the 3D model using 3DSMax ==&lt;br /&gt;
The monster 3D model contains a skeleton and animation tracks. This is not necessary for a toy accessory and unnecessarily overburden the final ryzom model. We will delete it. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:04-tuto-peluche-animation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Select with the mouse the &amp;quot;Gubani&amp;quot; model. In the right panel, select the &amp;quot;''modify''&amp;quot; tab. You should see the mesh called &amp;quot;TR_MO_H12&amp;quot; and in the  stack one modifier called &amp;quot;physical&amp;quot;. We will delete&lt;br /&gt;
&lt;br /&gt;
[[File:05-tuto-peluche-physique.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons ouvrir l'écran affichant les éléments de la scene via le menu &amp;quot;Tools&amp;quot;=&amp;gt; &amp;quot;New Scene Explorer&amp;quot; et supprimer tous les éléments constituant le squelette du modèle pour ne garder au final que le mesh de l'animal.&lt;br /&gt;
&lt;br /&gt;
Then we will open the scene explorer screen  via the &amp;quot;Tools&amp;quot; menu =&amp;gt; &amp;quot;New Scene Explorer&amp;quot; and delete all the elements constituting the skeleton of the model and keep only the animal mesh.&lt;br /&gt;
&lt;br /&gt;
[[File:06-tuto-peluche-bones-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Now we have only one element in our &amp;quot;scene&amp;quot;: the Gubani mesh &amp;quot;TR_MO_H12&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the right panel, we will rename the mesh &amp;quot;ge_acc_tedy-gubani_01&amp;quot;. This name will be used by the export &amp;quot;NEL&amp;quot; to name the generated file when exporting to &amp;quot;shape&amp;quot; NEL format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele-fin.png|800px]]&lt;br /&gt;
&lt;br /&gt;
=Sources=&lt;br /&gt;
&lt;br /&gt;
https://khaganat.net/wikhan/fr:todo:dessiner:peluche &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇧↑⇈⇑⬆ votre texte ⬆⇧↑⇈⇑ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TPInWikiRyzom}}&lt;br /&gt;
[[Category:EN]]&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1018</id>
		<title>EN Teddybear</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=EN_Teddybear&amp;diff=1018"/>
				<updated>2014-07-26T19:35:33Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: /* Step 2: Getting the model and creating a dedicated work folder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tabLang|EN|DE|EN Teddybear|ES|FR Peluche|RU}}&lt;br /&gt;
&lt;br /&gt;
{{ToTrad}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇩↓⇊⇓⬇ votre texte ⬇⇓⇊↓⇩ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Translation under progress - if you want to complete it, please update this line so that no one will edit it in the meantime)&lt;br /&gt;
&lt;br /&gt;
The aim of this tutorial is to show how to create cuddly toys based on the models of atysian animals. &lt;br /&gt;
&lt;br /&gt;
=Object of the month: creating and deploying cudlly toys &amp;quot;Atys' mobs&amp;quot; in game=&lt;br /&gt;
&lt;br /&gt;
[[File:00-tuto-peluche.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Prerequisite for modelising only the cuddly toy:&lt;br /&gt;
&lt;br /&gt;
* Having installed Ryzom assets and properly set-up the repositories (NEL tools expect to find the assets in the W:\database folder).&lt;br /&gt;
* Having installed 3DSMax and set-up the NEL plugin (Beware the plugin works only with versions 32bits of 3DSMax, and from version 9 till version 2012).&lt;br /&gt;
* Advised but not mandatory: having installed the NEL tool &amp;quot;''tga2dds.exe''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Prerequisite for deploying the cuddly toy on a game server:&lt;br /&gt;
&lt;br /&gt;
* Having compiled and installed a game server, and having set-up a client to use it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: it is possible to test this cuddly toy IG without having a game server through a trick which will be explained a bit further in this tutorial.&lt;br /&gt;
&lt;br /&gt;
Some usefeul linkds for these prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Downloading the assets and tools: https://ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows&lt;br /&gt;
* Set-up of the readers: https://ryzomcore.atlassian.net/wiki/display/RC/How+to+set+up+the+Build+Pipeline&lt;br /&gt;
* Insalling the NEL plugin of 3DSMax: https://ryzomcore.atlassian.net/wiki/display/RC/Installing+the+Max+Plugins&lt;br /&gt;
&lt;br /&gt;
==  Step 1: choosing the model we'll use for our cuddly toy ==&lt;br /&gt;
&lt;br /&gt;
All 3d models for Ryzom fauna are gathered in the &amp;quot;W:\database\stuff\tryker\agents\monsters&amp;quot; folder, by creature family. In this tutorial, we'll use the &amp;quot;Gubani&amp;quot; model, which is located in the &amp;quot;horse&amp;quot; (&amp;quot;cheval&amp;quot; in French) folder, to create our cuddly toy:&lt;br /&gt;
&lt;br /&gt;
W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:01-tuto-peluche-dossiers-mobs.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 2: Getting the model and creating a dedicated work folder  ==&lt;br /&gt;
&lt;br /&gt;
In 3DSMax, open the &amp;quot;W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
Use the menu =&amp;gt; &amp;quot;File&amp;quot; =&amp;gt; &amp;quot;Manage&amp;quot; =&amp;gt; &amp;quot;Asset Tracking&amp;quot; to check the list of the files used in this model, especially the textures. Notice this two files:&lt;br /&gt;
&lt;br /&gt;
* The 3d model: &amp;quot;tr_mo_h12.max&amp;quot;&lt;br /&gt;
* The texture for the gubani: &amp;quot;ju_mo_h12.png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:02-tuto-peluche-asset-tracking.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The aim here is to deploy cuddly monbs for the month object. Hence, we'll create a dedicated folder for our to-be toys and respect the naming convention used by Ryzom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So we'll create a &amp;quot;soft-toy&amp;quot; folder, in the &amp;quot;W:\database\stuff\generique\agents\accessories&amp;quot; folder. We'll save our model by renaming it under: ge_acc_teddy-gubani_01.max&lt;br /&gt;
&lt;br /&gt;
* the first &amp;quot;ge_&amp;quot; prefix in the file name specifies the ecosystem, here _ge_neric (tr: tryker, fy: fyros, etc...).&lt;br /&gt;
* the second prefix in the file name specifies the type of model (hom: male homin, mo: monster, wea: weapon, etc...). Here &amp;quot;acc&amp;quot; for _acc_essory.&lt;br /&gt;
* and last, the name of our model &amp;quot;teddy-gubani&amp;quot;, which will be suffixed with a number, in order to be able to create several variants of the teddy-gubani.&lt;br /&gt;
&lt;br /&gt;
For the texture, we should also copy it under &amp;quot;W:\database\stuff\generique\agents\_textures\accessories&amp;quot;, but we'll do it more simply. We'll place it in the same folder as the 3d model and rename it according to the same convention: &amp;quot;ge_acc_teddy-gubani_01.png&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ryzom core knwo only how to show textures with a &amp;quot;.tga&amp;quot; or &amp;quot;.dds&amp;quot; format. TGA is a raw format without compression which makes it useful for edition, but less efficient in term of memory space. DDS format is a compressed image format which, as jpeg, is destructive. It is the format used internally by Ryzom to minimize the textures' memory space. With your favorite editor, convert the &amp;quot;.png&amp;quot; image into a &amp;quot;.tga&amp;quot; one. That's the one we'll keep for edition. We'll use the NEL tool &amp;quot;'tga2dds'&amp;quot; to generate a texture image under &amp;quot;.dds&amp;quot; format for the 3d model. That's the one which well be used in 3DSMax.&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
If you don't have this tool, you gan keep the &amp;quot;.tga&amp;quot; version. It will work for the IG tests.&lt;br /&gt;
In the &amp;quot;soft-toy&amp;quot; folder, you should now have as a result:&lt;br /&gt;
&lt;br /&gt;
[[File:03-tuto-peluche-dossier-soft-toy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Step 3: Cleaing the 3D model using 3DSMax ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Sources=&lt;br /&gt;
&lt;br /&gt;
https://khaganat.net/wikhan/fr:todo:dessiner:peluche &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇧↑⇈⇑⬆ votre texte ⬆⇧↑⇈⇑ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TPInWikiRyzom}}&lt;br /&gt;
[[Category:EN]]&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_Peluche&amp;diff=978</id>
		<title>FR Peluche</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_Peluche&amp;diff=978"/>
				<updated>2014-07-25T22:19:46Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: /* Objets du mois : Déployer en Jeu des peluches « mobs d'atys » */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TabLang|FR|DE|EN|ES|​​{{FULLPAGENAME}}|RU}}&lt;br /&gt;
&lt;br /&gt;
{{ToTrad}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇩↓⇊⇓⬇ votre texte en dessous ⬇⇓⇊↓⇩ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Banner|fed|Cette Page est préformatée|Il ne vous reste qu'à écrire votre texte entre les deux lignes suivantes visibles en mode édition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;!--⇩↓⇊⇓⬇  votre texte&lt;br /&gt;
en dessous⬇⇓&lt;br /&gt;
⇊↓⇩--&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;et &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;!--⇧↑⇈&lt;br /&gt;
⇑⬆   votre texte&lt;br /&gt;
au dessus ⬆⇧&lt;br /&gt;
⇈↑⇑--&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez effacer le contenu qui s'y trouve déjà en guise de guide.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un brève introduction de votre page '''{{FULLPAGENAME}}''' avant le premier titre qui se fait toujours avec 2 &amp;quot;'''='''&amp;quot; devant et derrière, comme ici. L'index des matières apparaît tout seul dès qu'il y a trois titres.&lt;br /&gt;
==Premier titre==&lt;br /&gt;
==Références==&lt;br /&gt;
===Voir aussi===&lt;br /&gt;
===Remarques===&lt;br /&gt;
===Sources===&lt;br /&gt;
===Notes===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ⇧↑⇈⇑⬆ votre texte au dessus ⬆⇧↑⇈⇑ --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{TPInWikiRyzom}}&lt;br /&gt;
[[Category:FR]]&lt;br /&gt;
&lt;br /&gt;
=  Objets du mois : Déployer en Jeu des peluches « mobs d'atys »  =&lt;br /&gt;
&lt;br /&gt;
( Source : https://khaganat.net/wikhan/fr:todo:dessiner:peluche )&lt;br /&gt;
&lt;br /&gt;
[[File:00-tuto-peluche.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Le but de ce tutorial est de montrer comment réaliser des peluches basées sur les modèles des animaux atysiens.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pré-requis pour modéliser uniquement la peluche :&lt;br /&gt;
&lt;br /&gt;
* Avoir installé les assets ryzom et configuré correctement les lecteurs (les outils NEL s'attendent à trouver les données des assets dans le dossier ( W:\database ).&lt;br /&gt;
* Avoir installé 3DSMax et configuré le plugin  NEL ( Attention le plugin ne fonctionne qu'avec les version 32bits de 3DSmax et de la versions  9 à la version 2012).&lt;br /&gt;
* Conseillé mais non nécessaire : avoir installé l'outil NEL &amp;quot;''tga2dds.exe''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Pré-requis pour déployer la peluche sur un serveur de jeu :&lt;br /&gt;
&lt;br /&gt;
* Avoir compilé et installé un serveur de jeu et configuré un client pour l'utiliser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note : il est possible de tester cette peluche IG sans disposer d'un serveur de jeu via une astuce qui sera expliquée plus loin dans ce tutoriel.&lt;br /&gt;
&lt;br /&gt;
Quelques liens utiles pour ces pré-requis :&lt;br /&gt;
&lt;br /&gt;
* Liens de téléchargement des assets et outils : https://ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows&lt;br /&gt;
* Configuration des lecteurs : https://ryzomcore.atlassian.net/wiki/display/RC/How+to+set+up+the+Build+Pipeline&lt;br /&gt;
* Installation du plugin NEL de 3dsmax  : https://ryzomcore.atlassian.net/wiki/display/RC/Installing+the+Max+Plugins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 1: choisir le modèle qui servira pour notre peluche  ==&lt;br /&gt;
&lt;br /&gt;
L'ensemble des modèles 3d de la faune de ryzom sont regroupés dans le dossier « W:\database\stuff\tryker\agents\monsters » par famille de créature. Dans ce tutorial nous allons utiliser le modèle du « Gubani » qui est situé dans le sous-dossier des créatures « chevalines » pour réaliser notre peluche :&lt;br /&gt;
&lt;br /&gt;
W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:01-tuto-peluche-dossiers-mobs.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 2 : Reprendre le modèle et se créer un dossier dédié pour travailler  ==&lt;br /&gt;
&lt;br /&gt;
Dans 3dsmax ouvrir le fichier  « W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max »&lt;br /&gt;
&lt;br /&gt;
Nous consultons la liste des fichiers  utilisés par le modèle, notamment les textures via le menu =&amp;gt; «Fichier» =&amp;gt;  « Manage » =&amp;gt; « Asset Tracking ». On note deux fichiers :&lt;br /&gt;
&lt;br /&gt;
* Le modèle 3d : « tr_mo_h12.max »&lt;br /&gt;
* La texture du gubani « ju_mo_h12.png »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:02-tuto-peluche-asset-tracking.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Le but ici étant de déployer des peluches monstres pour les objets du mois, nous allons donc se créer un dossier dédié pour nos futures peluches et respecter les conventions de nomination de ryzom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous allons donc créer un dossier « soft-toy » dans le dossier « W:\database\stuff\generique\agents\accessories ». Nous y sauvegarderons notre modèle en le renommant : ge_acc_teddy-gubani_01.max&lt;br /&gt;
&lt;br /&gt;
* le premier préfixe «ge_» du nom de fichier est pour spécifier l'écosystème, ici  __gé__nérique (tr : tryker, fy : fyros, etc...)&lt;br /&gt;
* le second préfixe du nom du fichier est pour spécifier le type de modèle ( hom : homin masculin, mo : monstre, wea weapon, etc... ), ici « acc » pour __acc__essoire. &lt;br /&gt;
* Enfin  le nom de notre modèle « teddy-gubani » que nous suffixons par un numéro afin de pouvoir créer plusieurs variantes de peluches gubani.&lt;br /&gt;
&lt;br /&gt;
Pour la texture, nous devrions aussi la copier dans « W:\database\stuff\generique\agents\_textures\accessories », mais nous allons faire plus simple. Nous allons la mettre dans le même dossier que le modèle 3d et la renommer en suivant la même convention : « ge_acc_teddy-gubani_01.png »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cependant, le moteur de ryzom ne sait afficher que les textures au format &amp;quot;.tga&amp;quot; ou &amp;quot;.dds&amp;quot;. TGA est un format brut sans compression ce qui le rend pratique pour l'édition mais moins performant en espace mémoire occupé. le format DDS est un format d'image compressée qui comme le jpep est destructeur. C'est le format utilisé en interne par ryzom pour minimiser l'espace des textures en mémoire. Avec votre éditeur préféré convertissez l'image &amp;quot;.png&amp;quot; en &amp;quot;.tga&amp;quot;. C'est elle-ci que nous garderons pour l'édition. Nous allons utiliser l'outil NEL &amp;quot;''tga2dds''&amp;quot; pour générer une image texture au format &amp;quot;.dds&amp;quot; pour le modèle 3d. C'est celle que nous utiliserons dans 3dsmax&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Si vous n'avez pas l'outil, vous pouvez garder la version &amp;quot;.tga&amp;quot;. Elle fonctionne pour les tests IG.&lt;br /&gt;
Dans le dossier soft-toy vous devriez avoir comme résultat :&lt;br /&gt;
&lt;br /&gt;
[[File:03-tuto-peluche-dossier-soft-toy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 3 : Nettoyer le modèle 3D sous 3dsmax  ==&lt;br /&gt;
&lt;br /&gt;
Le modèle 3D du monstre contient un squelette et toutes ce qu'il faut pour l'animer. Cela n'est pas nécessaire pour un accessoire peluche et surchargerait inutilement le modèle ryzom final. Nous allons dons les supprimer.&lt;br /&gt;
&lt;br /&gt;
[[File:04-tuto-peluche-animation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Sélectionner le modèle &amp;quot;Gubani&amp;quot; avec la souris. Dans le panneau latéral droit, sélectionner l'onglet &amp;quot;''modify''&amp;quot;. Vous devez voir apparaître le mesh dénommé &amp;quot;TR_MO_H12&amp;quot; et dans la pile des &amp;quot;''modifiers''&amp;quot; celui nommé &amp;quot;physique&amp;quot;. Nous allons le supprimer&lt;br /&gt;
&lt;br /&gt;
[[File:05-tuto-peluche-physique.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons ouvrir l'écran affichant les éléments de la scene via le menu &amp;quot;Tools&amp;quot;=&amp;gt; &amp;quot;New Scene Explorer&amp;quot; et supprimer tous les éléments constituant le squelette du modèle pour ne garder au final que le mesh de l'animal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:06-tuto-peluche-bones-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Au final nous n'avons plus qu'un seul élément dans notre &amp;quot;scène&amp;quot; : le mesh du gubani &amp;quot;TR_MO_H12&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Dans le panneau latéral droit, nous allons renommer ce mesh en &amp;quot;ge_acc_tedy-gubani_01&amp;quot;. C'est ce nom qui sera utilisé par l'export &amp;quot;NEL&amp;quot; pour nommer le fichier &amp;quot;shape&amp;quot; généré lors de l'export.&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele-fin.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 4 : Modifier le mapping des textures du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Dans cette partie, nous allons revoir la texturation du modèle 3d. A priori, il faudrait juste changer la texture de base «ju_mo_h12.png» pour pointer sur la notre «ge_acc_teddy-gubani_01.dds» (ou «.tga» à défaut) puis l'adapter comme nous le voulons visuellement. Cependant, cela va être un peu plus compliqué :&lt;br /&gt;
&lt;br /&gt;
Nous allons d'abord ouvrir l'écran &amp;quot;Material Editor&amp;quot; (1), puis sélectionner le seul matériel de la scène (2) en double cliquant dessus. Dans l'écran centrale sélectionnez le noeud dénommé &amp;quot;Map #1 Nel Multi Bitmap&amp;quot; en double cliquant dessus (3). Vous verrez alors s'afficher dans le panneau latéral de droite le détail de ses propriétés (4). Le &amp;quot;Nel Multi Bitmap&amp;quot; permet de définir 8 images différentes. Il ne s'agit pas de multi-texturing, mais de la possibilité de configurer plusieurs images de texture. Seule une est appliqué à un instant donné sur le modèle. Cela est utilisé pour les mobs pour spécifier une texture par écosystème et par certains objets environnementaux pour spécifier une texture différente par saison.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:08-tuto-peluche-texture.png|800px]]&lt;br /&gt;
Le slot ID 1 est utilisé pour les textures de l'écosystème tryker, le second (ID 2) pour l'écosystème fyros, le troisième (ID 3) pour l'écosystème zoraï et le quatrième (ID 4) pour l'écosystème des primes racines. Ne cherchez pas de slot matis, en bon esthètes, ils ont compris que la beauté résidait dans la nature zoraï et utilisent donc les textures zoraï pour tous leurs animaux. Notez qu'ici le gubani  n'étant présent qu'en jungle et en primes racines, seuls les slots 3 et 4 sont utilisés&lt;br /&gt;
&lt;br /&gt;
Le même système est aussi utilisé pour d'autres objets IG, comme les bâtiments.dans ce cas, les 4 slots correspondent aux quatre saisons. C'est ainsi que l'on peut noter la présence de neige sur certaines bâtisses zoraï en hiver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:09-tuto-peluche-multi-texture.png]]&lt;br /&gt;
&lt;br /&gt;
De notre coté nous n'allons pas utilisé ce mécanisme. Nous allons donc supprimé le &amp;quot;NEL Multi Bitmap&amp;quot; et le remplacer par un simple &amp;quot;Bitmap&amp;quot; en tirant avec la souris sur la sortie de la &amp;quot;''tTexture 1''&amp;quot; comme le montre l'image ci-dessus. En relâchant la souris, un menu contextuel apparait (2), sélectionner l'entrée &amp;quot;Bitmap&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:10-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Puis aller chercher notre image dans &amp;quot;W:\database\stuff\generique\agents\_textures\accessories\soft-toyge_acc_teddy-gubani_01.dds&amp;quot; (ou &amp;quot;.tga&amp;quot;).  &lt;br /&gt;
&lt;br /&gt;
[[File:11-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Répéter l'opération pour l'autre &amp;quot;Nel Multi Bitmap&amp;quot; qui référence la même image.&lt;br /&gt;
&lt;br /&gt;
==  Étape 5 : Mise à échelle du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Note modèle 3d est presque prêt à l'emploi. Cependant sa taille ne correspond pas à celle attendue d'une peluche. Si vous utilisez l'outil de mesure de 3dsmax vous verrez que le gubani  mesure plus 2m de haut. Le plus simple pour le mettre à la bonne taille est de charger un modèle d'homin afin d'avoir un comparatif visuel et s'assurer que la peluche peut être prise en main.&lt;br /&gt;
&lt;br /&gt;
On va donc insérer temporairement dans notre scène 3dsmax une référence vers un autre modèle 3d en passant par le menu Fichier (1) =&amp;gt; References (2) =&amp;gt; Xref Scène (3) et en cliquant sur le bouton Add (4) de la fenêtre qui apparait :&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Sélectionner alors le modèle d'homin &amp;quot;W:\database\stuff\generique\agents\actors\male\ge_hom_armor02.max&amp;quot; qui devrait apparaître dans votre scène 3d.&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref-02.png]]&lt;br /&gt;
&lt;br /&gt;
Mettre a échelle le modèle de gubani et le déplacer via les outils &amp;quot;Scale&amp;quot; et &amp;quot;Move&amp;quot; du menu contextuel apparaissant lorsqu'on clique sur le modèle avec le bouton droit de la souris. &lt;br /&gt;
&lt;br /&gt;
[[File:16-tuto-peluche-echelle.png]]&lt;br /&gt;
&lt;br /&gt;
Une fois la peluche à la bonne échelle, il ne reste plus qu'a supprimer la référence au modèle d'homin en repassant par le menu  Fichier =&amp;gt; References =&amp;gt; Xref Scene.&lt;br /&gt;
&lt;br /&gt;
Repositionner le modèle gubani à l'origine de la scène (x=0, y=0, z=0), car lorsqu'un objet est porté la position (0,0,0) se place au niveau de la main.&lt;br /&gt;
&lt;br /&gt;
==  Étape  6 : modifier la texture pour un rendu peluche  ==&lt;br /&gt;
&lt;br /&gt;
Au niveau de la texture, pour donner un effet peluche, laissez libre court à votre imagination&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-source.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ici j'ai édité l'image &amp;quot;ge_acc_teddy-gubani_01.tga&amp;quot; dans l'outil Gimp. J'ai utilisé le filtre &amp;quot;Artistiques &amp;gt; GIMPressioniste&amp;quot; en utilisant le modèle &amp;quot;canvas&amp;quot; pour obtenir un effet trame de tissu.&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-peluche.png]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'image sauvegardée, j'ai re-généré la texture au format &amp;quot;.dds&amp;quot; via la commande :&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Voila le résultat obtenu sur le modèle 3d dans 3dsmax :&lt;br /&gt;
&lt;br /&gt;
[[File:18-tuto-peluche-modele3d.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 7 : Export du shape  ==&lt;br /&gt;
&lt;br /&gt;
Il est temps de tester cette peluche en jeu. Pour cela il va falloir exporter le modèle en générant le fichier &amp;quot;shape&amp;quot; utilisé par le moteur Ryzom&lt;br /&gt;
&lt;br /&gt;
Si ce n'est pas déjà je cas, ajouter le bouton ''d'export NEL'' au panneau latéral droit en cliquant sur l'onglet &amp;quot;''utilities''&amp;quot;, puis &amp;quot;''More''&amp;quot; et en sélectionnant l'option &amp;quot;''NEL Export''&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-01.png]]&lt;br /&gt;
&lt;br /&gt;
Ensuite sélectionner le mesh du gubani puis cliquer sur le bouton &amp;quot;Export Model&amp;quot;. Il vous faut alors spécifier le dossier où sera crée le fichier &amp;quot;ge_acc_teddy-gubani-01.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-02.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 8 : Tester la peluche  IG  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, il faudrait ajouter le ''datasheet'' de la peluche au serveur de jeu et patcher le client. Cette méthode sera détaillée plus loin. Cependant il existe une solution de contournement si vous n'avez pas votre propre serveur de jeu pour réaliser ces opérations.&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu'une peluche n'est rien d'autre qu'une arme équipée. Ainsi nous pourrions remplacer le modèle de la dague par celui de notre gubani pour le tester sur le serveur officiel. Il existe une astuce simple pour cela. Le client de jeu recherche les modèles et textures dans le dossier &amp;quot;user&amp;quot; avant d'aller voir le dossier &amp;quot;data&amp;quot;. Il suffit de copier notre fichier shape et la texture associée dans le dossier &amp;quot;user&amp;quot;, puis de renommer le shape du gubani en celui de la dague : &amp;quot;GE_Wea_Dague.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A présent lorsque vous équiperez une dague IG, vous aurez en main notre peluche &amp;quot;gubani&amp;quot;.&lt;br /&gt;
Pour retrouver la dague d'origine, il suffit de supprimer le fichier shape du dossier &amp;quot;user&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:21-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En réalisant ce test vous pouvez noter une anomalie : la peluche est tenue par le pied, ce qui n'est pas forcément ce que nous voulons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : orientation et positionnement d'un objet porté  ==&lt;br /&gt;
&lt;br /&gt;
Le point de fixation d'un objet tenu en main correspond au point de coordonnée (0,0,0) de l'objet.Son orientation suit la règle suivante  :&lt;br /&gt;
&lt;br /&gt;
  l'axe X remonte le long de l'avant-bras ;&lt;br /&gt;
  l'axe Y part depuis le dos de la main vers l'extérieur ;&lt;br /&gt;
  l'axe Z pointe vers le haut de l'objet tenu fermement en main.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous réorientons la peluche gubani dans 3dsmax comme le montre l'image suivante : l'axe X sort du dos du gubani pour remonter le long du bras qui le portera. L'axe Z sort de la main et est donc dans le prolongement de la tête de la peluche :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe-3dsmax.png]]&lt;br /&gt;
  &lt;br /&gt;
Après réorientation du modèle gubani et réexportation du shape nous obtenons enfin une peluche qui est tenue par le tronc :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin sur les objets portés, je vous conseille de lire ce tutorial :  http://khaganat.net/wikhan/fr:todo:dessiner:creation_d_un_objet_prehensible_en_jeu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : Créer l’icône pour l'inventaire et la barre d'actions  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut créer un icône pour l'affichage de l'item peluche gubani dans l'inventaire et dans la barre  d'actions.&lt;br /&gt;
Cet au icône au format tga doit faire 40x40 pixels avec un fond transparent. Nous le nommerons &amp;quot;icon_teddygubani.tga&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'icône de 40x40 pixels :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani.png|80px]]&lt;br /&gt;
&lt;br /&gt;
Pour des questions de performance, ces icônes ne sont pas stockés individuellement mais regroupés dans une seule image dénommée : &amp;quot;texture_interfaces_v3.tga&amp;quot;. Le fichier texte associé dénommé &amp;quot;texture_interfaces_v3.txt&amp;quot; liste les icones présents et leur position dans l'image :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte-txt.png]]&lt;br /&gt;
&lt;br /&gt;
le fichier texte utilise le format suivant pour chaque ligne :&lt;br /&gt;
&lt;br /&gt;
  NomFichierIcone u1 v1 u2 v2&lt;br /&gt;
&lt;br /&gt;
Avec :&lt;br /&gt;
* u1,v1 la position du point supérieur gauche de l'icône&lt;br /&gt;
* u2,v2 la position du coin inférieur droit de l'icône&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la différence des coordonnées en pixels, ces coordonnées qui utilisent la technique du UV Mapping en 3d ont leurs valeurs dans l’intervalle [0 .. 1]. la coordonnée (0,0) correspond au point supérieur gauche de l'image et (1,1) au point inférieur droit de l'image.&lt;br /&gt;
&lt;br /&gt;
Le passage d'un système à l'autre est simple. Soit (x1,y1) la position en pixels du coin haut gauche de notre icône dans l'image globale et (x2,y2) la position du point inférieur droit de l'icône dans l'image, alors :&lt;br /&gt;
* u1 = x1 / largeur-image&lt;br /&gt;
* v1 = y1 / hauteur-image&lt;br /&gt;
* u2 = x2 / largeur-image&lt;br /&gt;
* v2 = y2 / hauteur-image&lt;br /&gt;
&lt;br /&gt;
Sachant que la texture &amp;quot;texture_interfaces_v3.tga&amp;quot; fait 1024x1024 pixel, et que dans l'exemple l'icône &amp;quot;icon_teddygubani.tga&amp;quot; se situe à la position (x1=118,y1=798), que le point inférieur gauche étant à la position (x2=157,y2=837), le fichier txt contient donc la ligne : &lt;br /&gt;
&lt;br /&gt;
  icon_teddygubani.tga 0.115234375 0.779296875 0.1533203125 0.8173828125&lt;br /&gt;
  &lt;br /&gt;
Même si cela peut être ajouté à la main, la bonne méthode et d'utiliser l'outil dédié de NEL ''build_interface'' comme indiqué dans le tutorial https://khaganat.net/wikhan/fr:todo:dessiner:creer_icone_objet qui recrée la texture globale et le fichier txt à partir d'un dossier contenant tous les icones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: L'ajout de l'icône ne suffit pas, il faut également créer le datasheet de l'objet peluche et spécifier dedans le nom de notre icône à utiliser comme nous le verrons plus loin dans ce tutorial. Au final nous obtenons le résultat suivant IG :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Etape 11 : créer le fichiers des noms  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A compléter.&lt;br /&gt;
&lt;br /&gt;
[[File:30-tuto-peluche-txtfile.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 12 : créer le datasheet   ==&lt;br /&gt;
&lt;br /&gt;
A la base, une peluche reste est un objet porté comme une arme. De fait le datasheet de la peluche est trs semblable à celui d'une arme une main, comme l'exemple de la dague ci-dessous.&lt;br /&gt;
&lt;br /&gt;
__icrm1pd.sitem  ( datasheet de la dague du réfugié ) :__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.2 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;refugee dagger&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;refugee&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Drop or Sell&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;CraftPlan&amp;quot; Value=&amp;quot;bcrmea06.sbrick&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Saleable&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce qui change c'est :&lt;br /&gt;
&lt;br /&gt;
* la référénce au shape dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* la référence à l'icone utilisé dans la barre d'état et l'inventaire dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* les caractéristiques de base qui diffèrent d'une arme : pas de niveau requis, pas de brique de plan, etc..&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voila donc le datasheet de la peluche gubani  que nous nommerons &amp;quot;teddygubani.sitem&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.7 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&amp;lt;/LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Étape 13 : Déployer la peluche sur le serveur et le client de jeu   ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de déployer la peluche en jeu la méthode officielle consiste à utiliser la pipeline &amp;quot;build_gamedata&amp;quot; (cf. https:''ryzomcore.atlassian.net/wiki/display/RC/Gamedata+Build+Pipeline). Je vais vous proposer une méthode différente, où les opérations seront effectués à la mains, mais uniquement celles nécessaires à notre peluche :&lt;br /&gt;
&lt;br /&gt;
Nous avons besoin des fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* teddygubani.sitem ( le datasheet de la peluche gunabi )&lt;br /&gt;
* ge_acc_teddy-gubani_01.shape ( le modèle 3d NEL de la peluche )&lt;br /&gt;
* ge_acc_teddy-gubani_01.dds ( la texture du modèle 3d )&lt;br /&gt;
&lt;br /&gt;
De plus le déploiement de cette peluche va impacter les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* les fichiers &amp;quot;*.packed_sheets&amp;quot; utilisée par le serveur et le client qui sont une version compilé des datasheets&lt;br /&gt;
* le fichier &amp;quot;sheet_id.bin&amp;quot; qui est un index de tous les datasheets utilisés par le jeu&lt;br /&gt;
* le fichier &amp;quot;visual_slot.tab&amp;quot; qui liste les éléments affichables coté client&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, nous allons également créer un fichier &amp;quot;soft-toy.bnp&amp;quot; qui contiendra les shapes et les textures de toutes les futures peluches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour la suite des opérations nous partons du principe que notre serveur de jeu fonctionne sous linux, et que les variables d'envrionnement suivantes sont définies :&lt;br /&gt;
&lt;br /&gt;
* LEVELDESIGNPATH pointe sur le dossier des datas du level design&lt;br /&gt;
* RYZOM_HOME sur l'installation des sources du serveur&lt;br /&gt;
&lt;br /&gt;
===  Ajout du datasheet &amp;quot;teddygubani.sitem&amp;quot; au serveur   ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Coté serveur nous allons créer un dossier dédié pour les datasheets des peluches et y placer celui du gubani :&lt;br /&gt;
&lt;br /&gt;
  $ mkdir $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
  $ cp teddygubani.sitem $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
&lt;br /&gt;
===  Nettoyages préalables  ===&lt;br /&gt;
&lt;br /&gt;
===  Re-générer le fichier &amp;quot;sheet_id.bin&amp;quot;   ===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à regénérer le fichier d'index des datasheet via la commande &amp;quot;make_sheet_id&amp;quot;. Il reprend le fichier d'index existant et va le compléter avec les datasheets du dossier $RYZOM_LEVELPATH/leveldesign/game_element/sitem/soft-toy c'est-à-dire les datasheets de nos peluches&lt;br /&gt;
&lt;br /&gt;
  $ make_sheet_id -o$LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
&lt;br /&gt;
===  Re-générer les &amp;quot;*.packed_sheets&amp;quot; et &amp;quot;visual_slot.tab&amp;quot;  ===&lt;br /&gt;
&lt;br /&gt;
Il faut regénérer les &amp;quot;*.packed_sheets&amp;quot;.Ce sont les versions pré-compilées des datasheets :&lt;br /&gt;
&lt;br /&gt;
  $ sheets_packer&lt;br /&gt;
&lt;br /&gt;
Cette commande va également re-générer le fichier visual_slot.tab&lt;br /&gt;
&lt;br /&gt;
===  Copier les fichiers nécessaires coté client  ===&lt;br /&gt;
&lt;br /&gt;
* Nous copions le fichier &amp;quot;visual_slot.tab&amp;quot; généré dans le dossier courant dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous copions le fichier $LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous remplaçons les fichiers packet_sheets du dossier &amp;quot;data&amp;quot; du client par ceux générés ici $RYZOM_HOME/code/ryzom/client/data/*.packed_sheets par la commande ''sheets_packer''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Créer un bnp pour le modèle de la peluche  ===&lt;br /&gt;
&lt;br /&gt;
Pour finir il faut copier le shape et la texture de la peluche dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
Cependant pour bien faire les choses, autant créer un fichier &amp;quot;.bnp&amp;quot; dédié.&lt;br /&gt;
Un fichier &amp;quot;.bnp&amp;quot; est une sorte de zip regroupant les différents fichiers shape, dds, txt, ou autres par thème.&lt;br /&gt;
&lt;br /&gt;
Créer on dossier &amp;quot;soft-toy&amp;quot;, copions y  tous les shapes et textures de nos peluche, à savoir pour le moment &amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot; et &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot; et créons un fichier BNP pour les contenur&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  bnp_make /p soft-toy&lt;br /&gt;
&lt;br /&gt;
La commande va créer un fichier &amp;quot;soft-toy,bnp&amp;quot; qui contiendra nos deux fichiers. A présent il faut le copier dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Tester IG  ===&lt;br /&gt;
&lt;br /&gt;
Relancer le serveur avec la commande ''shard start'' puis connectez vous avec votre client.&lt;br /&gt;
&lt;br /&gt;
Si tout c'est bien déroulé, en lançant votre client de jeu, vous pouvez créer une peluche dans votre inventaire avec la commande :&lt;br /&gt;
&lt;br /&gt;
  /a createItemInBag teddygubani 1 5 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{tag&amp;gt;Tag_a_ajouter}}&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_Peluche&amp;diff=976</id>
		<title>FR Peluche</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_Peluche&amp;diff=976"/>
				<updated>2014-07-25T21:27:23Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: /* Objets du mois : Déployer en Jeu des peluches « mobs d'atys » */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  Objets du mois : Déployer en Jeu des peluches « mobs d'atys »  =&lt;br /&gt;
&lt;br /&gt;
[[File:00-tuto-peluche.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Le but de ce tutorial est de montrer comment réaliser des peluches basées sur les modèles des animaux atysiens.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pré-requis pour modéliser uniquement la peluche :&lt;br /&gt;
&lt;br /&gt;
* Avoir installé les assets ryzom et configuré correctement les lecteurs (les outils NEL s'attendent à trouver les données des assets dans le dossier ( W:\database ).&lt;br /&gt;
* Avoir installé 3DSMax et configuré le plugin  NEL ( Attention le plugin ne fonctionne qu'avec les version 32bits de 3DSmax et de la versions  9 à la version 2012).&lt;br /&gt;
* Conseillé mais non nécessaire : avoir installé l'outil NEL &amp;quot;''tga2dds.exe''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Pré-requis pour déployer la peluche sur un serveur de jeu :&lt;br /&gt;
&lt;br /&gt;
* Avoir compilé et installé un serveur de jeu et configuré un client pour l'utiliser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note : il est possible de tester cette peluche IG sans disposer d'un serveur de jeu via une astuce qui sera expliquée plus loin dans ce tutoriel.&lt;br /&gt;
&lt;br /&gt;
Quelques liens utiles pour ces pré-requis :&lt;br /&gt;
&lt;br /&gt;
* Liens de téléchargement des assets et outils : https://ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows&lt;br /&gt;
* Configuration des lecteurs : https://ryzomcore.atlassian.net/wiki/display/RC/How+to+set+up+the+Build+Pipeline&lt;br /&gt;
* Installation du plugin NEL de 3dsmax  : https://ryzomcore.atlassian.net/wiki/display/RC/Installing+the+Max+Plugins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 1: choisir le modèle qui servira pour notre peluche  ==&lt;br /&gt;
&lt;br /&gt;
L'ensemble des modèles 3d de la faune de ryzom sont regroupés dans le dossier « W:\database\stuff\tryker\agents\monsters » par famille de créature. Dans ce tutorial nous allons utiliser le modèle du « Gubani » qui est situé dans le sous-dossier des créatures « chevalines » pour réaliser notre peluche :&lt;br /&gt;
&lt;br /&gt;
W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:01-tuto-peluche-dossiers-mobs.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 2 : Reprendre le modèle et se créer un dossier dédié pour travailler  ==&lt;br /&gt;
&lt;br /&gt;
Dans 3dsmax ouvrir le fichier  « W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max »&lt;br /&gt;
&lt;br /&gt;
Nous consultons la liste des fichiers  utilisés par le modèle, notamment les textures via le menu =&amp;gt; «Fichier» =&amp;gt;  « Manage » =&amp;gt; « Asset Tracking ». On note deux fichiers :&lt;br /&gt;
&lt;br /&gt;
* Le modèle 3d : « tr_mo_h12.max »&lt;br /&gt;
* La texture du gubani « ju_mo_h12.png »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:02-tuto-peluche-asset-tracking.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Le but ici étant de déployer des peluches monstres pour les objets du mois, nous allons donc se créer un dossier dédié pour nos futures peluches et respecter les conventions de nomination de ryzom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous allons donc créer un dossier « soft-toy » dans le dossier « W:\database\stuff\generique\agents\accessories ». Nous y sauvegarderons notre modèle en le renommant : ge_acc_teddy-gubani_01.max&lt;br /&gt;
&lt;br /&gt;
* le premier préfixe «ge_» du nom de fichier est pour spécifier l'écosystème, ici  __gé__nérique (tr : tryker, fy : fyros, etc...)&lt;br /&gt;
* le second préfixe du nom du fichier est pour spécifier le type de modèle ( hom : homin masculin, mo : monstre, wea weapon, etc... ), ici « acc » pour __acc__essoire. &lt;br /&gt;
* Enfin  le nom de notre modèle « teddy-gubani » que nous suffixons par un numéro afin de pouvoir créer plusieurs variantes de peluches gubani.&lt;br /&gt;
&lt;br /&gt;
Pour la texture, nous devrions aussi la copier dans « W:\database\stuff\generique\agents\_textures\accessories », mais nous allons faire plus simple. Nous allons la mettre dans le même dossier que le modèle 3d et la renommer en suivant la même convention : « ge_acc_teddy-gubani_01.png »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cependant, le moteur de ryzom ne sait afficher que les textures au format &amp;quot;.tga&amp;quot; ou &amp;quot;.dds&amp;quot;. TGA est un format brut sans compression ce qui le rend pratique pour l'édition mais moins performant en espace mémoire occupé. le format DDS est un format d'image compressée qui comme le jpep est destructeur. C'est le format utilisé en interne par ryzom pour minimiser l'espace des textures en mémoire. Avec votre éditeur préféré convertissez l'image &amp;quot;.png&amp;quot; en &amp;quot;.tga&amp;quot;. C'est elle-ci que nous garderons pour l'édition. Nous allons utiliser l'outil NEL &amp;quot;''tga2dds''&amp;quot; pour générer une image texture au format &amp;quot;.dds&amp;quot; pour le modèle 3d. C'est celle que nous utiliserons dans 3dsmax&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Si vous n'avez pas l'outil, vous pouvez garder la version &amp;quot;.tga&amp;quot;. Elle fonctionne pour les tests IG.&lt;br /&gt;
Dans le dossier soft-toy vous devriez avoir comme résultat :&lt;br /&gt;
&lt;br /&gt;
[[File:03-tuto-peluche-dossier-soft-toy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 3 : Nettoyer le modèle 3D sous 3dsmax  ==&lt;br /&gt;
&lt;br /&gt;
Le modèle 3D du monstre contient un squelette et toutes ce qu'il faut pour l'animer. Cela n'est pas nécessaire pour un accessoire peluche et surchargerait inutilement le modèle ryzom final. Nous allons dons les supprimer.&lt;br /&gt;
&lt;br /&gt;
[[File:04-tuto-peluche-animation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Sélectionner le modèle &amp;quot;Gubani&amp;quot; avec la souris. Dans le panneau latéral droit, sélectionner l'onglet &amp;quot;''modify''&amp;quot;. Vous devez voir apparaître le mesh dénommé &amp;quot;TR_MO_H12&amp;quot; et dans la pile des &amp;quot;''modifiers''&amp;quot; celui nommé &amp;quot;physique&amp;quot;. Nous allons le supprimer&lt;br /&gt;
&lt;br /&gt;
[[File:05-tuto-peluche-physique.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons ouvrir l'écran affichant les éléments de la scene via le menu &amp;quot;Tools&amp;quot;=&amp;gt; &amp;quot;New Scene Explorer&amp;quot; et supprimer tous les éléments constituant le squelette du modèle pour ne garder au final que le mesh de l'animal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:06-tuto-peluche-bones-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Au final nous n'avons plus qu'un seul élément dans notre &amp;quot;scène&amp;quot; : le mesh du gubani &amp;quot;TR_MO_H12&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Dans le panneau latéral droit, nous allons renommer ce mesh en &amp;quot;ge_acc_tedy-gubani_01&amp;quot;. C'est ce nom qui sera utilisé par l'export &amp;quot;NEL&amp;quot; pour nommer le fichier &amp;quot;shape&amp;quot; généré lors de l'export.&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele-fin.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 4 : Modifier le mapping des textures du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Dans cette partie, nous allons revoir la texturation du modèle 3d. A priori, il faudrait juste changer la texture de base «ju_mo_h12.png» pour pointer sur la notre «ge_acc_teddy-gubani_01.dds» (ou «.tga» à défaut) puis l'adapter comme nous le voulons visuellement. Cependant, cela va être un peu plus compliqué :&lt;br /&gt;
&lt;br /&gt;
Nous allons d'abord ouvrir l'écran &amp;quot;Material Editor&amp;quot; (1), puis sélectionner le seul matériel de la scène (2) en double cliquant dessus. Dans l'écran centrale sélectionnez le noeud dénommé &amp;quot;Map #1 Nel Multi Bitmap&amp;quot; en double cliquant dessus (3). Vous verrez alors s'afficher dans le panneau latéral de droite le détail de ses propriétés (4). Le &amp;quot;Nel Multi Bitmap&amp;quot; permet de définir 8 images différentes. Il ne s'agit pas de multi-texturing, mais de la possibilité de configurer plusieurs images de texture. Seule une est appliqué à un instant donné sur le modèle. Cela est utilisé pour les mobs pour spécifier une texture par écosystème et par certains objets environnementaux pour spécifier une texture différente par saison.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:08-tuto-peluche-texture.png|800px]]&lt;br /&gt;
Le slot ID 1 est utilisé pour les textures de l'écosystème tryker, le second (ID 2) pour l'écosystème fyros, le troisième (ID 3) pour l'écosystème zoraï et le quatrième (ID 4) pour l'écosystème des primes racines. Ne cherchez pas de slot matis, en bon esthètes, ils ont compris que la beauté résidait dans la nature zoraï et utilisent donc les textures zoraï pour tous leurs animaux. Notez qu'ici le gubani  n'étant présent qu'en jungle et en primes racines, seuls les slots 3 et 4 sont utilisés&lt;br /&gt;
&lt;br /&gt;
Le même système est aussi utilisé pour d'autres objets IG, comme les bâtiments.dans ce cas, les 4 slots correspondent aux quatre saisons. C'est ainsi que l'on peut noter la présence de neige sur certaines bâtisses zoraï en hiver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:09-tuto-peluche-multi-texture.png]]&lt;br /&gt;
&lt;br /&gt;
De notre coté nous n'allons pas utilisé ce mécanisme. Nous allons donc supprimé le &amp;quot;NEL Multi Bitmap&amp;quot; et le remplacer par un simple &amp;quot;Bitmap&amp;quot; en tirant avec la souris sur la sortie de la &amp;quot;''tTexture 1''&amp;quot; comme le montre l'image ci-dessus. En relâchant la souris, un menu contextuel apparait (2), sélectionner l'entrée &amp;quot;Bitmap&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:10-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Puis aller chercher notre image dans &amp;quot;W:\database\stuff\generique\agents\_textures\accessories\soft-toyge_acc_teddy-gubani_01.dds&amp;quot; (ou &amp;quot;.tga&amp;quot;).  &lt;br /&gt;
&lt;br /&gt;
[[File:11-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Répéter l'opération pour l'autre &amp;quot;Nel Multi Bitmap&amp;quot; qui référence la même image.&lt;br /&gt;
&lt;br /&gt;
==  Étape 5 : Mise à échelle du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Note modèle 3d est presque prêt à l'emploi. Cependant sa taille ne correspond pas à celle attendue d'une peluche. Si vous utilisez l'outil de mesure de 3dsmax vous verrez que le gubani  mesure plus 2m de haut. Le plus simple pour le mettre à la bonne taille est de charger un modèle d'homin afin d'avoir un comparatif visuel et s'assurer que la peluche peut être prise en main.&lt;br /&gt;
&lt;br /&gt;
On va donc insérer temporairement dans notre scène 3dsmax une référence vers un autre modèle 3d en passant par le menu Fichier (1) =&amp;gt; References (2) =&amp;gt; Xref Scène (3) et en cliquant sur le bouton Add (4) de la fenêtre qui apparait :&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Sélectionner alors le modèle d'homin &amp;quot;W:\database\stuff\generique\agents\actors\male\ge_hom_armor02.max&amp;quot; qui devrait apparaître dans votre scène 3d.&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref-02.png]]&lt;br /&gt;
&lt;br /&gt;
Mettre a échelle le modèle de gubani et le déplacer via les outils &amp;quot;Scale&amp;quot; et &amp;quot;Move&amp;quot; du menu contextuel apparaissant lorsqu'on clique sur le modèle avec le bouton droit de la souris. &lt;br /&gt;
&lt;br /&gt;
[[File:16-tuto-peluche-echelle.png]]&lt;br /&gt;
&lt;br /&gt;
Une fois la peluche à la bonne échelle, il ne reste plus qu'a supprimer la référence au modèle d'homin en repassant par le menu  Fichier =&amp;gt; References =&amp;gt; Xref Scene.&lt;br /&gt;
&lt;br /&gt;
Repositionner le modèle gubani à l'origine de la scène (x=0, y=0, z=0), car lorsqu'un objet est porté la position (0,0,0) se place au niveau de la main.&lt;br /&gt;
&lt;br /&gt;
==  Étape  6 : modifier la texture pour un rendu peluche  ==&lt;br /&gt;
&lt;br /&gt;
Au niveau de la texture, pour donner un effet peluche, laissez libre court à votre imagination&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-source.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ici j'ai édité l'image &amp;quot;ge_acc_teddy-gubani_01.tga&amp;quot; dans l'outil Gimp. J'ai utilisé le filtre &amp;quot;Artistiques &amp;gt; GIMPressioniste&amp;quot; en utilisant le modèle &amp;quot;canvas&amp;quot; pour obtenir un effet trame de tissu.&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-peluche.png]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'image sauvegardée, j'ai re-généré la texture au format &amp;quot;.dds&amp;quot; via la commande :&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Voila le résultat obtenu sur le modèle 3d dans 3dsmax :&lt;br /&gt;
&lt;br /&gt;
[[File:18-tuto-peluche-modele3d.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 7 : Export du shape  ==&lt;br /&gt;
&lt;br /&gt;
Il est temps de tester cette peluche en jeu. Pour cela il va falloir exporter le modèle en générant le fichier &amp;quot;shape&amp;quot; utilisé par le moteur Ryzom&lt;br /&gt;
&lt;br /&gt;
Si ce n'est pas déjà je cas, ajouter le bouton ''d'export NEL'' au panneau latéral droit en cliquant sur l'onglet &amp;quot;''utilities''&amp;quot;, puis &amp;quot;''More''&amp;quot; et en sélectionnant l'option &amp;quot;''NEL Export''&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-01.png]]&lt;br /&gt;
&lt;br /&gt;
Ensuite sélectionner le mesh du gubani puis cliquer sur le bouton &amp;quot;Export Model&amp;quot;. Il vous faut alors spécifier le dossier où sera crée le fichier &amp;quot;ge_acc_teddy-gubani-01.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-02.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 8 : Tester la peluche  IG  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, il faudrait ajouter le ''datasheet'' de la peluche au serveur de jeu et patcher le client. Cette méthode sera détaillée plus loin. Cependant il existe une solution de contournement si vous n'avez pas votre propre serveur de jeu pour réaliser ces opérations.&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu'une peluche n'est rien d'autre qu'une arme équipée. Ainsi nous pourrions remplacer le modèle de la dague par celui de notre gubani pour le tester sur le serveur officiel. Il existe une astuce simple pour cela. Le client de jeu recherche les modèles et textures dans le dossier &amp;quot;user&amp;quot; avant d'aller voir le dossier &amp;quot;data&amp;quot;. Il suffit de copier notre fichier shape et la texture associée dans le dossier &amp;quot;user&amp;quot;, puis de renommer le shape du gubani en celui de la dague : &amp;quot;GE_Wea_Dague.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A présent lorsque vous équiperez une dague IG, vous aurez en main notre peluche &amp;quot;gubani&amp;quot;.&lt;br /&gt;
Pour retrouver la dague d'origine, il suffit de supprimer le fichier shape du dossier &amp;quot;user&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:21-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En réalisant ce test vous pouvez noter une anomalie : la peluche est tenue par le pied, ce qui n'est pas forcément ce que nous voulons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : orientation et positionnement d'un objet porté  ==&lt;br /&gt;
&lt;br /&gt;
Le point de fixation d'un objet tenu en main correspond au point de coordonnée (0,0,0) de l'objet.Son orientation suit la règle suivante  :&lt;br /&gt;
&lt;br /&gt;
  l'axe X remonte le long de l'avant-bras ;&lt;br /&gt;
  l'axe Y part depuis le dos de la main vers l'extérieur ;&lt;br /&gt;
  l'axe Z pointe vers le haut de l'objet tenu fermement en main.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous réorientons la peluche gubani dans 3dsmax comme le montre l'image suivante : l'axe X sort du dos du gubani pour remonter le long du bras qui le portera. L'axe Z sort de la main et est donc dans le prolongement de la tête de la peluche :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe-3dsmax.png]]&lt;br /&gt;
  &lt;br /&gt;
Après réorientation du modèle gubani et réexportation du shape nous obtenons enfin une peluche qui est tenue par le tronc :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin sur les objets portés, je vous conseille de lire ce tutorial :  http://khaganat.net/wikhan/fr:todo:dessiner:creation_d_un_objet_prehensible_en_jeu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : Créer l’icône pour l'inventaire et la barre d'actions  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut créer un icône pour l'affichage de l'item peluche gubani dans l'inventaire et dans la barre  d'actions.&lt;br /&gt;
Cet au icône au format tga doit faire 40x40 pixels avec un fond transparent. Nous le nommerons &amp;quot;icon_teddygubani.tga&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'icône de 40x40 pixels :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani.png|80px]]&lt;br /&gt;
&lt;br /&gt;
Pour des questions de performance, ces icônes ne sont pas stockés individuellement mais regroupés dans une seule image dénommée : &amp;quot;texture_interfaces_v3.tga&amp;quot;. Le fichier texte associé dénommé &amp;quot;texture_interfaces_v3.txt&amp;quot; liste les icones présents et leur position dans l'image :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte-txt.png]]&lt;br /&gt;
&lt;br /&gt;
le fichier texte utilise le format suivant pour chaque ligne :&lt;br /&gt;
&lt;br /&gt;
  NomFichierIcone u1 v1 u2 v2&lt;br /&gt;
&lt;br /&gt;
Avec :&lt;br /&gt;
* u1,v1 la position du point supérieur gauche de l'icône&lt;br /&gt;
* u2,v2 la position du coin inférieur droit de l'icône&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la différence des coordonnées en pixels, ces coordonnées qui utilisent la technique du UV Mapping en 3d ont leurs valeurs dans l’intervalle [0 .. 1]. la coordonnée (0,0) correspond au point supérieur gauche de l'image et (1,1) au point inférieur droit de l'image.&lt;br /&gt;
&lt;br /&gt;
Le passage d'un système à l'autre est simple. Soit (x1,y1) la position en pixels du coin haut gauche de notre icône dans l'image globale et (x2,y2) la position du point inférieur droit de l'icône dans l'image, alors :&lt;br /&gt;
* u1 = x1 / largeur-image&lt;br /&gt;
* v1 = y1 / hauteur-image&lt;br /&gt;
* u2 = x2 / largeur-image&lt;br /&gt;
* v2 = y2 / hauteur-image&lt;br /&gt;
&lt;br /&gt;
Sachant que la texture &amp;quot;texture_interfaces_v3.tga&amp;quot; fait 1024x1024 pixel, et que dans l'exemple l'icône &amp;quot;icon_teddygubani.tga&amp;quot; se situe à la position (x1=118,y1=798), que le point inférieur gauche étant à la position (x2=157,y2=837), le fichier txt contient donc la ligne : &lt;br /&gt;
&lt;br /&gt;
  icon_teddygubani.tga 0.115234375 0.779296875 0.1533203125 0.8173828125&lt;br /&gt;
  &lt;br /&gt;
Même si cela peut être ajouté à la main, la bonne méthode et d'utiliser l'outil dédié de NEL ''build_interface'' comme indiqué dans le tutorial https://khaganat.net/wikhan/fr:todo:dessiner:creer_icone_objet qui recrée la texture globale et le fichier txt à partir d'un dossier contenant tous les icones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: L'ajout de l'icône ne suffit pas, il faut également créer le datasheet de l'objet peluche et spécifier dedans le nom de notre icône à utiliser comme nous le verrons plus loin dans ce tutorial. Au final nous obtenons le résultat suivant IG :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Etape 11 : créer le fichiers des noms  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A compléter.&lt;br /&gt;
&lt;br /&gt;
[[File:30-tuto-peluche-txtfile.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 12 : créer le datasheet   ==&lt;br /&gt;
&lt;br /&gt;
A la base, une peluche reste est un objet porté comme une arme. De fait le datasheet de la peluche est trs semblable à celui d'une arme une main, comme l'exemple de la dague ci-dessous.&lt;br /&gt;
&lt;br /&gt;
__icrm1pd.sitem  ( datasheet de la dague du réfugié ) :__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.2 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;refugee dagger&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;refugee&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Drop or Sell&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;CraftPlan&amp;quot; Value=&amp;quot;bcrmea06.sbrick&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Saleable&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce qui change c'est :&lt;br /&gt;
&lt;br /&gt;
* la référénce au shape dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* la référence à l'icone utilisé dans la barre d'état et l'inventaire dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* les caractéristiques de base qui diffèrent d'une arme : pas de niveau requis, pas de brique de plan, etc..&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voila donc le datasheet de la peluche gubani  que nous nommerons &amp;quot;teddygubani.sitem&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.7 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&amp;lt;/LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Étape 13 : Déployer la peluche sur le serveur et le client de jeu   ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de déployer la peluche en jeu la méthode officielle consiste à utiliser la pipeline &amp;quot;build_gamedata&amp;quot; (cf. https:''ryzomcore.atlassian.net/wiki/display/RC/Gamedata+Build+Pipeline). Je vais vous proposer une méthode différente, où les opérations seront effectués à la mains, mais uniquement celles nécessaires à notre peluche :&lt;br /&gt;
&lt;br /&gt;
Nous avons besoin des fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* teddygubani.sitem ( le datasheet de la peluche gunabi )&lt;br /&gt;
* ge_acc_teddy-gubani_01.shape ( le modèle 3d NEL de la peluche )&lt;br /&gt;
* ge_acc_teddy-gubani_01.dds ( la texture du modèle 3d )&lt;br /&gt;
&lt;br /&gt;
De plus le déploiement de cette peluche va impacter les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* les fichiers &amp;quot;*.packed_sheets&amp;quot; utilisée par le serveur et le client qui sont une version compilé des datasheets&lt;br /&gt;
* le fichier &amp;quot;sheet_id.bin&amp;quot; qui est un index de tous les datasheets utilisés par le jeu&lt;br /&gt;
* le fichier &amp;quot;visual_slot.tab&amp;quot; qui liste les éléments affichables coté client&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, nous allons également créer un fichier &amp;quot;soft-toy.bnp&amp;quot; qui contiendra les shapes et les textures de toutes les futures peluches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour la suite des opérations nous partons du principe que notre serveur de jeu fonctionne sous linux, et que les variables d'envrionnement suivantes sont définies :&lt;br /&gt;
&lt;br /&gt;
* LEVELDESIGNPATH pointe sur le dossier des datas du level design&lt;br /&gt;
* RYZOM_HOME sur l'installation des sources du serveur&lt;br /&gt;
&lt;br /&gt;
===  Ajout du datasheet &amp;quot;teddygubani.sitem&amp;quot; au serveur   ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Coté serveur nous allons créer un dossier dédié pour les datasheets des peluches et y placer celui du gubani :&lt;br /&gt;
&lt;br /&gt;
  $ mkdir $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
  $ cp teddygubani.sitem $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
&lt;br /&gt;
===  Nettoyages préalables  ===&lt;br /&gt;
&lt;br /&gt;
===  Re-générer le fichier &amp;quot;sheet_id.bin&amp;quot;   ===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à regénérer le fichier d'index des datasheet via la commande &amp;quot;make_sheet_id&amp;quot;. Il reprend le fichier d'index existant et va le compléter avec les datasheets du dossier $RYZOM_LEVELPATH/leveldesign/game_element/sitem/soft-toy c'est-à-dire les datasheets de nos peluches&lt;br /&gt;
&lt;br /&gt;
  $ make_sheet_id -o$LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
&lt;br /&gt;
===  Re-générer les &amp;quot;*.packed_sheets&amp;quot; et &amp;quot;visual_slot.tab&amp;quot;  ===&lt;br /&gt;
&lt;br /&gt;
Il faut regénérer les &amp;quot;*.packed_sheets&amp;quot;.Ce sont les versions pré-compilées des datasheets :&lt;br /&gt;
&lt;br /&gt;
  $ sheets_packer&lt;br /&gt;
&lt;br /&gt;
Cette commande va également re-générer le fichier visual_slot.tab&lt;br /&gt;
&lt;br /&gt;
===  Copier les fichiers nécessaires coté client  ===&lt;br /&gt;
&lt;br /&gt;
* Nous copions le fichier &amp;quot;visual_slot.tab&amp;quot; généré dans le dossier courant dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous copions le fichier $LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous remplaçons les fichiers packet_sheets du dossier &amp;quot;data&amp;quot; du client par ceux générés ici $RYZOM_HOME/code/ryzom/client/data/*.packed_sheets par la commande ''sheets_packer''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Créer un bnp pour le modèle de la peluche  ===&lt;br /&gt;
&lt;br /&gt;
Pour finir il faut copier le shape et la texture de la peluche dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
Cependant pour bien faire les choses, autant créer un fichier &amp;quot;.bnp&amp;quot; dédié.&lt;br /&gt;
Un fichier &amp;quot;.bnp&amp;quot; est une sorte de zip regroupant les différents fichiers shape, dds, txt, ou autres par thème.&lt;br /&gt;
&lt;br /&gt;
Créer on dossier &amp;quot;soft-toy&amp;quot;, copions y  tous les shapes et textures de nos peluche, à savoir pour le moment &amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot; et &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot; et créons un fichier BNP pour les contenur&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  bnp_make /p soft-toy&lt;br /&gt;
&lt;br /&gt;
La commande va créer un fichier &amp;quot;soft-toy,bnp&amp;quot; qui contiendra nos deux fichiers. A présent il faut le copier dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Tester IG  ===&lt;br /&gt;
&lt;br /&gt;
Relancer le serveur avec la commande ''shard start'' puis connectez vous avec votre client.&lt;br /&gt;
&lt;br /&gt;
Si tout c'est bien déroulé, en lançant votre client de jeu, vous pouvez créer une peluche dans votre inventaire avec la commande :&lt;br /&gt;
&lt;br /&gt;
  /a createItemInBag teddygubani 1 5 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{tag&amp;gt;Tag_a_ajouter}}&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_Peluche&amp;diff=975</id>
		<title>FR Peluche</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_Peluche&amp;diff=975"/>
				<updated>2014-07-25T21:20:54Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: /* Objets du mois : Déployer en Jeu des peluches « mobs d'atys » */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  Objets du mois : Déployer en Jeu des peluches « mobs d'atys »  =&lt;br /&gt;
&lt;br /&gt;
[[File:00-tuto-peluche.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Le but de ce tutorial est de montrer comment réaliser des peluches basées sur les modèles des animaux atysiens.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pré-requis pour modéliser uniquement la peluche :&lt;br /&gt;
&lt;br /&gt;
* Avoir installé les assets ryzom et configuré correctement les lecteurs (les outils NEL s'attendent à trouver les données des assets dans le dossier ( W:database ).&lt;br /&gt;
* Avoir installé 3DSMax et configuré le plugin  NEL ( Attention le plugin ne fonctionne qu'avec les version 32bits de 3DSmax et de la versions  9 à la version 2012).&lt;br /&gt;
* Conseillé mais non nécessaire : avoir installé l'outil NEL &amp;quot;''tga2dds.exe''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Pré-requis pour déployer la peluche sur un serveur de jeu :&lt;br /&gt;
&lt;br /&gt;
* Avoir compilé et installé un serveur de jeu et configuré un client pour l'utiliser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note : il est possible de tester cette peluche IG sans disposer d'un serveur de jeu via une astuce qui sera expliquée plus loin dans ce tutoriel.&lt;br /&gt;
&lt;br /&gt;
Quelques liens utiles pour ces pré-requis :&lt;br /&gt;
&lt;br /&gt;
* Liens de téléchargement des assets et outils : https://ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows&lt;br /&gt;
* Configuration des lecteurs : https://ryzomcore.atlassian.net/wiki/display/RC/How+to+set+up+the+Build+Pipeline&lt;br /&gt;
* Installation du plugin NEL de 3dsmax  : https://ryzomcore.atlassian.net/wiki/display/RC/Installing+the+Max+Plugins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 1: choisir le modèle qui servira pour notre peluche  ==&lt;br /&gt;
&lt;br /&gt;
L'ensemble des modèles 3d de la faune de ryzom sont regroupés dans le dossier « W:\database\stuff\tryker\agents\monsters » par famille de créature. Dans ce tutorial nous allons utiliser le modèle du « Gubani » qui est situé dans le sous-dossier des créatures « chevalines » pour réaliser notre peluche :&lt;br /&gt;
&lt;br /&gt;
W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:01-tuto-peluche-dossiers-mobs.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 2 : Reprendre le modèle et se créer un dossier dédié pour travailler  ==&lt;br /&gt;
&lt;br /&gt;
Dans 3dsmax ouvrir le fichier  « W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max »&lt;br /&gt;
&lt;br /&gt;
Nous consultons la liste des fichiers  utilisés par le modèle, notamment les textures via le menu =&amp;gt; «Fichier» =&amp;gt;  « Manage » =&amp;gt; « Asset Tracking ». On note deux fichiers :&lt;br /&gt;
&lt;br /&gt;
* Le modèle 3d : « tr_mo_h12.max »&lt;br /&gt;
* La texture du gubani « ju_mo_h12.png »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:02-tuto-peluche-asset-tracking.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Le but ici étant de déployer des peluches monstres pour les objets du mois, nous allons donc se créer un dossier dédié pour nos futures peluches et respecter les conventions de nomination de ryzom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous allons donc créer un dossier « soft-toy » dans le dossier « W:\database\stuff\generique\agents\accessories ». Nous y sauvegarderons notre modèle en le renommant : ge_acc_teddy-gubani_01.max&lt;br /&gt;
&lt;br /&gt;
* le premier préfixe «ge_» du nom de fichier est pour spécifier l'écosystème, ici  __gé__nérique (tr : tryker, fy : fyros, etc...)&lt;br /&gt;
* le second préfixe du nom du fichier est pour spécifier le type de modèle ( hom : homin masculin, mo : monstre, wea weapon, etc... ), ici « acc » pour __acc__essoire. &lt;br /&gt;
* Enfin  le nom de notre modèle « teddy-gubani » que nous suffixons par un numéro afin de pouvoir créer plusieurs variantes de peluches gubani.&lt;br /&gt;
&lt;br /&gt;
Pour la texture, nous devrions aussi la copier dans « W:\database\stuff\generique\agents\_textures\accessories », mais nous allons faire plus simple. Nous allons la mettre dans le même dossier que le modèle 3d et la renommer en suivant la même convention : « ge_acc_teddy-gubani_01.png »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cependant, le moteur de ryzom ne sait afficher que les textures au format &amp;quot;.tga&amp;quot; ou &amp;quot;.dds&amp;quot;. TGA est un format brut sans compression ce qui le rend pratique pour l'édition mais moins performant en espace mémoire occupé. le format DDS est un format d'image compressée qui comme le jpep est destructeur. C'est le format utilisé en interne par ryzom pour minimiser l'espace des textures en mémoire. Avec votre éditeur préféré convertissez l'image &amp;quot;.png&amp;quot; en &amp;quot;.tga&amp;quot;. C'est elle-ci que nous garderons pour l'édition. Nous allons utiliser l'outil NEL &amp;quot;''tga2dds''&amp;quot; pour générer une image texture au format &amp;quot;.dds&amp;quot; pour le modèle 3d. C'est celle que nous utiliserons dans 3dsmax&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Si vous n'avez pas l'outil, vous pouvez garder la version &amp;quot;.tga&amp;quot;. Elle fonctionne pour les tests IG.&lt;br /&gt;
Dans le dossier soft-toy vous devriez avoir comme résultat :&lt;br /&gt;
&lt;br /&gt;
[[File:03-tuto-peluche-dossier-soft-toy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 3 : Nettoyer le modèle 3D sous 3dsmax  ==&lt;br /&gt;
&lt;br /&gt;
Le modèle 3D du monstre contient un squelette et toutes ce qu'il faut pour l'animer. Cela n'est pas nécessaire pour un accessoire peluche et surchargerait inutilement le modèle ryzom final. Nous allons dons les supprimer.&lt;br /&gt;
&lt;br /&gt;
[[File:04-tuto-peluche-animation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Sélectionner le modèle &amp;quot;Gubani&amp;quot; avec la souris. Dans le panneau latéral droit, sélectionner l'onglet &amp;quot;''modify''&amp;quot;. Vous devez voir apparaître le mesh dénommé &amp;quot;TR_MO_H12&amp;quot; et dans la pile des &amp;quot;''modifiers''&amp;quot; celui nommé &amp;quot;physique&amp;quot;. Nous allons le supprimer&lt;br /&gt;
&lt;br /&gt;
[[File:05-tuto-peluche-physique.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons ouvrir l'écran affichant les éléments de la scene via le menu &amp;quot;Tools&amp;quot;=&amp;gt; &amp;quot;New Scene Explorer&amp;quot; et supprimer tous les éléments constituant le squelette du modèle pour ne garder au final que le mesh de l'animal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:06-tuto-peluche-bones-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Au final nous n'avons plus qu'un seul élément dans notre &amp;quot;scène&amp;quot; : le mesh du gubani &amp;quot;TR_MO_H12&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Dans le panneau latéral droit, nous allons renommer ce mesh en &amp;quot;ge_acc_tedy-gubani_01&amp;quot;. C'est ce nom qui sera utilisé par l'export &amp;quot;NEL&amp;quot; pour nommer le fichier &amp;quot;shape&amp;quot; généré lors de l'export.&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele-fin.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 4 : Modifier le mapping des textures du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Dans cette partie, nous allons revoir la texturation du modèle 3d. A priori, il faudrait juste changer la texture de base «ju_mo_h12.png» pour pointer sur la notre «ge_acc_teddy-gubani_01.dds» (ou «.tga» à défaut) puis l'adapter comme nous le voulons visuellement. Cependant, cela va être un peu plus compliqué :&lt;br /&gt;
&lt;br /&gt;
Nous allons d'abord ouvrir l'écran &amp;quot;Material Editor&amp;quot; (1), puis sélectionner le seul matériel de la scène (2) en double cliquant dessus. Dans l'écran centrale sélectionnez le noeud dénommé &amp;quot;Map #1 Nel Multi Bitmap&amp;quot; en double cliquant dessus (3). Vous verrez alors s'afficher dans le panneau latéral de droite le détail de ses propriétés (4). Le &amp;quot;Nel Multi Bitmap&amp;quot; permet de définir 8 images différentes. Il ne s'agit pas de multi-texturing, mais de la possibilité de configurer plusieurs images de texture. Seule une est appliqué à un instant donné sur le modèle. Cela est utilisé pour les mobs pour spécifier une texture par écosystème et par certains objets environnementaux pour spécifier une texture différente par saison.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:08-tuto-peluche-texture.png|800px]]&lt;br /&gt;
Le slot ID 1 est utilisé pour les textures de l'écosystème tryker, le second (ID 2) pour l'écosystème fyros, le troisième (ID 3) pour l'écosystème zoraï et le quatrième (ID 4) pour l'écosystème des primes racines. Ne cherchez pas de slot matis, en bon esthètes, ils ont compris que la beauté résidait dans la nature zoraï et utilisent donc les textures zoraï pour tous leurs animaux. Notez qu'ici le gubani  n'étant présent qu'en jungle et en primes racines, seuls les slots 3 et 4 sont utilisés&lt;br /&gt;
&lt;br /&gt;
Le même système est aussi utilisé pour d'autres objets IG, comme les bâtiments.dans ce cas, les 4 slots correspondent aux quatre saisons. C'est ainsi que l'on peut noter la présence de neige sur certaines bâtisses zoraï en hiver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:09-tuto-peluche-multi-texture.png]]&lt;br /&gt;
&lt;br /&gt;
De notre coté nous n'allons pas utilisé ce mécanisme. Nous allons donc supprimé le &amp;quot;NEL Multi Bitmap&amp;quot; et le remplacer par un simple &amp;quot;Bitmap&amp;quot; en tirant avec la souris sur la sortie de la &amp;quot;''tTexture 1''&amp;quot; comme le montre l'image ci-dessus. En relâchant la souris, un menu contextuel apparait (2), sélectionner l'entrée &amp;quot;Bitmap&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:10-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Puis aller chercher notre image dans &amp;quot;W:databasestuffgeneriqueagents_texturesaccessoriessoft-toyge_acc_teddy-gubani_01.dds&amp;quot; (ou &amp;quot;.tga&amp;quot;).  &lt;br /&gt;
&lt;br /&gt;
[[File:11-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Répéter l'opération pour l'autre &amp;quot;Nel Multi Bitmap&amp;quot; qui référence la même image.&lt;br /&gt;
&lt;br /&gt;
==  Étape 5 : Mise à échelle du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Note modèle 3d est presque prêt à l'emploi. Cependant sa taille ne correspond pas à celle attendue d'une peluche. Si vous utilisez l'outil de mesure de 3dsmax vous verrez que le gubani  mesure plus 2m de haut. Le plus simple pour le mettre à la bonne taille est de charger un modèle d'homin afin d'avoir un comparatif visuel et s'assurer que la peluche peut être prise en main.&lt;br /&gt;
&lt;br /&gt;
On va donc insérer temporairement dans notre scène 3dsmax une référence vers un autre modèle 3d en passant par le menu Fichier (1) =&amp;gt; References (2) =&amp;gt; Xref Scène (3) et en cliquant sur le bouton Add (4) de la fenêtre qui apparait :&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Sélectionner alors le modèle d'homin &amp;quot;W:\database\stuff\generique\agents\actors\male\ge_hom_armor02.max&amp;quot; qui devrait apparaître dans votre scène 3d.&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref-02.png]]&lt;br /&gt;
&lt;br /&gt;
Mettre a échelle le modèle de gubani et le déplacer via les outils &amp;quot;Scale&amp;quot; et &amp;quot;Move&amp;quot; du menu contextuel apparaissant lorsqu'on clique sur le modèle avec le bouton droit de la souris. &lt;br /&gt;
&lt;br /&gt;
[[File:16-tuto-peluche-echelle.png]]&lt;br /&gt;
&lt;br /&gt;
Une fois la peluche à la bonne échelle, il ne reste plus qu'a supprimer la référence au modèle d'homin en repassant par le menu  Fichier =&amp;gt; References =&amp;gt; Xref Scene.&lt;br /&gt;
&lt;br /&gt;
Repositionner le modèle gubani à l'origine de la scène (x=0, y=0, z=0), car lorsqu'un objet est porté la position (0,0,0) se place au niveau de la main.&lt;br /&gt;
&lt;br /&gt;
==  Étape  6 : modifier la texture pour un rendu peluche  ==&lt;br /&gt;
&lt;br /&gt;
Au niveau de la texture, pour donner un effet peluche, laissez libre court à votre imagination&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-source.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ici j'ai édité l'image &amp;quot;ge_acc_teddy-gubani_01.tga&amp;quot; dans l'outil Gimp. J'ai utilisé le filtre &amp;quot;Artistiques &amp;gt; GIMPressioniste&amp;quot; en utilisant le modèle &amp;quot;canvas&amp;quot; pour obtenir un effet trame de tissu.&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-peluche.png]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'image sauvegardée, j'ai re-généré la texture au format &amp;quot;.dds&amp;quot; via la commande :&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Voila le résultat obtenu sur le modèle 3d dans 3dsmax :&lt;br /&gt;
&lt;br /&gt;
[[File:18-tuto-peluche-modele3d.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 7 : Export du shape  ==&lt;br /&gt;
&lt;br /&gt;
Il est temps de tester cette peluche en jeu. Pour cela il va falloir exporter le modèle en générant le fichier &amp;quot;shape&amp;quot; utilisé par le moteur Ryzom&lt;br /&gt;
&lt;br /&gt;
Si ce n'est pas déjà je cas, ajouter le bouton ''d'export NEL'' au panneau latéral droit en cliquant sur l'onglet &amp;quot;''utilities''&amp;quot;, puis &amp;quot;''More''&amp;quot; et en sélectionnant l'option &amp;quot;''NEL Export''&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-01.png]]&lt;br /&gt;
&lt;br /&gt;
Ensuite sélectionner le mesh du gubani puis cliquer sur le bouton &amp;quot;Export Model&amp;quot;. Il vous faut alors spécifier le dossier où sera crée le fichier &amp;quot;ge_acc_teddy-gubani-01.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-02.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 8 : Tester la peluche  IG  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, il faudrait ajouter le ''datasheet'' de la peluche au serveur de jeu et patcher le client. Cette méthode sera détaillée plus loin. Cependant il existe une solution de contournement si vous n'avez pas votre propre serveur de jeu pour réaliser ces opérations.&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu'une peluche n'est rien d'autre qu'une arme équipée. Ainsi nous pourrions remplacer le modèle de la dague par celui de notre gubani pour le tester sur le serveur officiel. Il existe une astuce simple pour cela. Le client de jeu recherche les modèles et textures dans le dossier &amp;quot;user&amp;quot; avant d'aller voir le dossier &amp;quot;data&amp;quot;. Il suffit de copier notre fichier shape et la texture associée dans le dossier &amp;quot;user&amp;quot;, puis de renommer le shape du gubani en celui de la dague : &amp;quot;GE_Wea_Dague.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A présent lorsque vous équiperez une dague IG, vous aurez en main notre peluche &amp;quot;gubani&amp;quot;.&lt;br /&gt;
Pour retrouver la dague d'origine, il suffit de supprimer le fichier shape du dossier &amp;quot;user&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:21-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En réalisant ce test vous pouvez noter une anomalie : la peluche est tenue par le pied, ce qui n'est pas forcément ce que nous voulons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : orientation et positionnement d'un objet porté  ==&lt;br /&gt;
&lt;br /&gt;
Le point de fixation d'un objet tenu en main correspond au point de coordonnée (0,0,0) de l'objet.Son orientation suit la règle suivante  :&lt;br /&gt;
&lt;br /&gt;
  l'axe X remonte le long de l'avant-bras ;&lt;br /&gt;
  l'axe Y part depuis le dos de la main vers l'extérieur ;&lt;br /&gt;
  l'axe Z pointe vers le haut de l'objet tenu fermement en main.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous réorientons la peluche gubani dans 3dsmax comme le montre l'image suivante : l'axe X sort du dos du gubani pour remonter le long du bras qui le portera. L'axe Z sort de la main et est donc dans le prolongement de la tête de la peluche :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe-3dsmax.png]]&lt;br /&gt;
  &lt;br /&gt;
Après réorientation du modèle gubani et réexportation du shape nous obtenons enfin une peluche qui est tenue par le tronc :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin sur les objets portés, je vous conseille de lire ce tutorial :  http:''khaganat.net/wikhan/fr:todo:dessiner:creation_d_un_objet_prehensible_en_jeu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : Créer l’icône pour l'inventaire et la barre d'actions  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut créer un icône pour l'affichage de l'item peluche gubani dans l'inventaire et dans la barre  d'actions.&lt;br /&gt;
Cet au icône au format tga doit faire 40x40 pixels avec un fond transparent. Nous le nommerons &amp;quot;icon_teddygubani.tga&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'icône de 40x40 pixels :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani.png|80px]]&lt;br /&gt;
&lt;br /&gt;
Pour des questions de performance, ces icônes ne sont pas stockés individuellement mais regroupés dans une seule image dénommée : &amp;quot;texture_interfaces_v3.tga&amp;quot;. Le fichier texte associé dénommé &amp;quot;texture_interfaces_v3.txt&amp;quot; liste les icones présents et leur position dans l'image :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte-txt.png]]&lt;br /&gt;
&lt;br /&gt;
le fichier texte utilise le format suivant pour chaque ligne :&lt;br /&gt;
&lt;br /&gt;
  NomFichierIcone u1 v1 u2 v2&lt;br /&gt;
&lt;br /&gt;
Avec :&lt;br /&gt;
* u1,v1 la position du point supérieur gauche de l'icône&lt;br /&gt;
* u2,v2 la position du coin inférieur droit de l'icône&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la différence des coordonnées en pixels, ces coordonnées qui utilisent la technique du UV Mapping en 3d ont leurs valeurs dans l’intervalle [0 .. 1]. la coordonnée (0,0) correspond au point supérieur gauche de l'image et (1,1) au point inférieur droit de l'image.&lt;br /&gt;
&lt;br /&gt;
Le passage d'un système à l'autre est simple. Soit (x1,y1) la position en pixels du coin haut gauche de notre icône dans l'image globale et (x2,y2) la position du point inférieur droit de l'icône dans l'image, alors :&lt;br /&gt;
* u1 = x1 / largeur-image&lt;br /&gt;
* v1 = y1 / hauteur-image&lt;br /&gt;
* u2 = x2 / largeur-image&lt;br /&gt;
* v2 = y2 / hauteur-image&lt;br /&gt;
&lt;br /&gt;
Sachant que la texture &amp;quot;texture_interfaces_v3.tga&amp;quot; fait 1024x1024 pixel, et que dans l'exemple l'icône &amp;quot;icon_teddygubani.tga&amp;quot; se situe à la position (x1=118,y1=798), que le point inférieur gauche étant à la position (x2=157,y2=837), le fichier txt contient donc la ligne : &lt;br /&gt;
&lt;br /&gt;
  icon_teddygubani.tga 0.115234375 0.779296875 0.1533203125 0.8173828125&lt;br /&gt;
  &lt;br /&gt;
Même si cela peut être ajouté à la main, la bonne méthode et d'utiliser l'outil dédié de NEL ''build_interface'' comme indiqué dans le tutorial https:''khaganat.net/wikhan/fr:todo:dessiner:creer_icone_objet qui recrée la texture globale et le fichier txt à partir d'un dossier contenant tous les icones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: L'ajout de l'icône ne suffit pas, il faut également créer le datasheet de l'objet peluche et spécifier dedans le nom de notre icône à utiliser comme nous le verrons plus loin dans ce tutorial. Au final nous obtenons le résultat suivant IG :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Etape 11 : créer le fichiers des noms  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A compléter.&lt;br /&gt;
&lt;br /&gt;
[[File:30-tuto-peluche-txtfile.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 12 : créer le datasheet   ==&lt;br /&gt;
&lt;br /&gt;
A la base, une peluche reste est un objet porté comme une arme. De fait le datasheet de la peluche est trs semblable à celui d'une arme une main, comme l'exemple de la dague ci-dessous.&lt;br /&gt;
&lt;br /&gt;
__icrm1pd.sitem  ( datasheet de la dague du réfugié ) :__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.2 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;refugee dagger&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;refugee&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Drop or Sell&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;CraftPlan&amp;quot; Value=&amp;quot;bcrmea06.sbrick&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Saleable&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce qui change c'est :&lt;br /&gt;
&lt;br /&gt;
* la référénce au shape dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* la référence à l'icone utilisé dans la barre d'état et l'inventaire dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* les caractéristiques de base qui diffèrent d'une arme : pas de niveau requis, pas de brique de plan, etc..&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voila donc le datasheet de la peluche gubani  que nous nommerons &amp;quot;teddygubani.sitem&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.7 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&amp;lt;/LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Étape 13 : Déployer la peluche sur le serveur et le client de jeu   ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de déployer la peluche en jeu la méthode officielle consiste à utiliser la pipeline &amp;quot;build_gamedata&amp;quot; (cf. https:''ryzomcore.atlassian.net/wiki/display/RC/Gamedata+Build+Pipeline). Je vais vous proposer une méthode différente, où les opérations seront effectués à la mains, mais uniquement celles nécessaires à notre peluche :&lt;br /&gt;
&lt;br /&gt;
Nous avons besoin des fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* teddygubani.sitem ( le datasheet de la peluche gunabi )&lt;br /&gt;
* ge_acc_teddy-gubani_01.shape ( le modèle 3d NEL de la peluche )&lt;br /&gt;
* ge_acc_teddy-gubani_01.dds ( la texture du modèle 3d )&lt;br /&gt;
&lt;br /&gt;
De plus le déploiement de cette peluche va impacter les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* les fichiers &amp;quot;*.packed_sheets&amp;quot; utilisée par le serveur et le client qui sont une version compilé des datasheets&lt;br /&gt;
* le fichier &amp;quot;sheet_id.bin&amp;quot; qui est un index de tous les datasheets utilisés par le jeu&lt;br /&gt;
* le fichier &amp;quot;visual_slot.tab&amp;quot; qui liste les éléments affichables coté client&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, nous allons également créer un fichier &amp;quot;soft-toy.bnp&amp;quot; qui contiendra les shapes et les textures de toutes les futures peluches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour la suite des opérations nous partons du principe que notre serveur de jeu fonctionne sous linux, et que les variables d'envrionnement suivantes sont définies :&lt;br /&gt;
&lt;br /&gt;
* LEVELDESIGNPATH pointe sur le dossier des datas du level design&lt;br /&gt;
* RYZOM_HOME sur l'installation des sources du serveur&lt;br /&gt;
&lt;br /&gt;
===  Ajout du datasheet &amp;quot;teddygubani.sitem au serveur   ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Coté serveur nous allons créer un dossier dédié pour les datasheets des peluches et y placer celui du gubani :&lt;br /&gt;
&lt;br /&gt;
  $ mkdir $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
  $ cp teddygubani.sitem $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
&lt;br /&gt;
===  Nettoyages préalables  ===&lt;br /&gt;
&lt;br /&gt;
===  Re-générer le fichier &amp;quot;sheet_id.bin&amp;quot;   ===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à regénérer le fichier d'index des datasheet via la commande &amp;quot;make_sheet_id&amp;quot;. Il reprend le fichier d'index existant et va le compléter avec les datasheets du dossier $RYZOM_LEVELPATH/leveldesign/game_element/sitem/soft-toy c'est-à-dire les datasheets de nos peluches&lt;br /&gt;
&lt;br /&gt;
  $ make_sheet_id -o$LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
&lt;br /&gt;
===  Re-générer les &amp;quot;*.packed_sheets&amp;quot; et &amp;quot;visual_slot.tab&amp;quot;  ===&lt;br /&gt;
&lt;br /&gt;
Il faut regénérer les &amp;quot;*.packed_sheets&amp;quot;.Ce sont les versions pré-compilées des datasheets :&lt;br /&gt;
&lt;br /&gt;
  $ sheets_packer&lt;br /&gt;
&lt;br /&gt;
Cette commande va également re-générer le fichier visual_slot.tab&lt;br /&gt;
&lt;br /&gt;
===  Copier les fichiers nécessaires coté client  ===&lt;br /&gt;
&lt;br /&gt;
* Nous copions le fichier &amp;quot;visual_slot.tab&amp;quot; généré dans le dossier courant dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous copions le fichier $LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous remplaçons les fichiers packet_sheets du dossier &amp;quot;data&amp;quot; du client par ceux générés ici $RYZOM_HOME/code/ryzom/client/data/*.packed_sheets par la commande ''sheets_packer''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Créer un bnp pour le modèle de la peluche  ===&lt;br /&gt;
&lt;br /&gt;
Pour finir il faut copier le shape et la texture de la peluche dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
Cependant pour bien faire les choses, autant créer un fichier &amp;quot;.bnp&amp;quot; dédié.&lt;br /&gt;
Un fichier &amp;quot;.bnp&amp;quot; est une sorte de zip regroupant les différents fichiers shape, dds, txt, ou autres par thème.&lt;br /&gt;
&lt;br /&gt;
Créer on dossier &amp;quot;soft-toy&amp;quot;, copions y  tous les shapes et textures de nos peluche, à savoir pour le moment &amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot; et &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot; et créons un fichier BNP pour les contenur&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  bnp_make /p soft-toy&lt;br /&gt;
&lt;br /&gt;
La commande va créer un fichier &amp;quot;soft-toy,bnp&amp;quot; qui contiendra nos deux fichiers. A présent il faut le copier dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Tester IG  ===&lt;br /&gt;
&lt;br /&gt;
Relancer le serveur avec la commande ''shard start'' puis connectez vous avec votre client.&lt;br /&gt;
&lt;br /&gt;
Si tout c'est bien déroulé, en lançant votre client de jeu, vous pouvez créer une peluche dans votre inventaire avec la commande :&lt;br /&gt;
&lt;br /&gt;
  /a createItemInBag teddygubani 1 5 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{tag&amp;gt;Tag_a_ajouter}}&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_Peluche&amp;diff=974</id>
		<title>FR Peluche</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_Peluche&amp;diff=974"/>
				<updated>2014-07-25T20:55:28Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: /* Ajout du datasheet &amp;quot;teddygubani.sitem au serveur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  Objets du mois : Déployer en Jeu des peluches « mobs d'atys »  =&lt;br /&gt;
&lt;br /&gt;
[[File:00-tuto-peluche.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Le but de ce tutorial est de montrer comment réaliser des peluches basées sur les modèles des animaux atysiens.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pré-requis pour modéliser uniquement la peluche :&lt;br /&gt;
&lt;br /&gt;
* Avoir installé les assets ryzom et configuré correctement les lecteurs (les outils NEL s'attendent à trouver les données des assets dans le dossier ( W:database ).&lt;br /&gt;
* Avoir installé 3DSMax et configuré le plugin  NEL ( Attention le plugin ne fonctionne qu'avec les version 32bits de 3DSmax et de la versions  9 à la version 2012).&lt;br /&gt;
* Conseillé mais non nécessaire : avoir installé l'outil NEL &amp;quot;''tga2dds.exe''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Pré-requis pour déployer la peluche sur un serveur de jeu :&lt;br /&gt;
&lt;br /&gt;
* Avoir compilé et installé un serveur de jeu et configuré un client pour l'utiliser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note : il est possible de tester cette peluche IG sans disposer d'un serveur de jeu via une astuce qui sera expliquée plus loin dans ce tutoriel.&lt;br /&gt;
&lt;br /&gt;
Quelques liens utiles pour ces pré-requis :&lt;br /&gt;
&lt;br /&gt;
* Liens de téléchargement des assets et outils : https:''ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows&lt;br /&gt;
* Configuration des lecteurs :https:''ryzomcore.atlassian.net/wiki/display/RC/How+to+set+up+the+Build+Pipeline&lt;br /&gt;
* Installation du plugin NEL de 3dsmax  :https:''ryzomcore.atlassian.net/wiki/display/RC/Installing+the+Max+Plugins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 1: choisir le modèle qui servira pour notre peluche  ==&lt;br /&gt;
&lt;br /&gt;
L'ensemble des modèles 3d de la faune de ryzom sont regroupés dans le dossier « W:\database\stuff\tryker\agents\monsters » par famille de créature. Dans ce tutorial nous allons utiliser le modèle du « Gubani » qui est situé dans le sous-dossier des créatures « chevalines » pour réaliser notre peluche :&lt;br /&gt;
&lt;br /&gt;
W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:01-tuto-peluche-dossiers-mobs.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 2 : Reprendre le modèle et se créer un dossier dédié pour travailler  ==&lt;br /&gt;
&lt;br /&gt;
Dans 3dsmax ouvrir le fichier  « W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max »&lt;br /&gt;
&lt;br /&gt;
Nous consultons la liste des fichiers  utilisés par le modèle, notamment les textures via le menu =&amp;gt; «Fichier» =&amp;gt;  « Manage » =&amp;gt; « Asset Tracking ». On note deux fichiers :&lt;br /&gt;
&lt;br /&gt;
* Le modèle 3d : « tr_mo_h12.max »&lt;br /&gt;
* La texture du gubani « ju_mo_h12.png »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:02-tuto-peluche-asset-tracking.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Le but ici étant de déployer des peluches monstres pour les objets du mois, nous allons donc se créer un dossier dédié pour nos futures peluches et respecter les conventions de nomination de ryzom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous allons donc créer un dossier « soft-toy » dans le dossier « W:\database\stuff\generique\agents\accessories ». Nous y sauvegarderons notre modèle en le renommant : ge_acc_teddy-gubani_01.max&lt;br /&gt;
&lt;br /&gt;
* le premier préfixe «ge_» du nom de fichier est pour spécifier l'écosystème, ici  __gé__nérique (tr : tryker, fy : fyros, etc...)&lt;br /&gt;
* le second préfixe du nom du fichier est pour spécifier le type de modèle ( hom : homin masculin, mo : monstre, wea weapon, etc... ), ici « acc » pour __acc__essoire. &lt;br /&gt;
* Enfin  le nom de notre modèle « teddy-gubani » que nous suffixons par un numéro afin de pouvoir créer plusieurs variantes de peluches gubani.&lt;br /&gt;
&lt;br /&gt;
Pour la texture, nous devrions aussi la copier dans « W:\database\stuff\generique\agents\_textures\accessories », mais nous allons faire plus simple. Nous allons la mettre dans le même dossier que le modèle 3d et la renommer en suivant la même convention : « ge_acc_teddy-gubani_01.png »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cependant, le moteur de ryzom ne sait afficher que les textures au format &amp;quot;.tga&amp;quot; ou &amp;quot;.dds&amp;quot;. TGA est un format brut sans compression ce qui le rend pratique pour l'édition mais moins performant en espace mémoire occupé. le format DDS est un format d'image compressée qui comme le jpep est destructeur. C'est le format utilisé en interne par ryzom pour minimiser l'espace des textures en mémoire. Avec votre éditeur préféré convertissez l'image &amp;quot;.png&amp;quot; en &amp;quot;.tga&amp;quot;. C'est elle-ci que nous garderons pour l'édition. Nous allons utiliser l'outil NEL &amp;quot;''tga2dds''&amp;quot; pour générer une image texture au format &amp;quot;.dds&amp;quot; pour le modèle 3d. C'est celle que nous utiliserons dans 3dsmax&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Si vous n'avez pas l'outil, vous pouvez garder la version &amp;quot;.tga&amp;quot;. Elle fonctionne pour les tests IG.&lt;br /&gt;
Dans le dossier soft-toy vous devriez avoir comme résultat :&lt;br /&gt;
&lt;br /&gt;
[[File:03-tuto-peluche-dossier-soft-toy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 3 : Nettoyer le modèle 3D sous 3dsmax  ==&lt;br /&gt;
&lt;br /&gt;
Le modèle 3D du monstre contient un squelette et toutes ce qu'il faut pour l'animer. Cela n'est pas nécessaire pour un accessoire peluche et surchargerait inutilement le modèle ryzom final. Nous allons dons les supprimer.&lt;br /&gt;
&lt;br /&gt;
[[File:04-tuto-peluche-animation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Sélectionner le modèle &amp;quot;Gubani&amp;quot; avec la souris. Dans le panneau latéral droit, sélectionner l'onglet &amp;quot;''modify''&amp;quot;. Vous devez voir apparaître le mesh dénommé &amp;quot;TR_MO_H12&amp;quot; et dans la pile des &amp;quot;''modifiers''&amp;quot; celui nommé &amp;quot;physique&amp;quot;. Nous allons le supprimer&lt;br /&gt;
&lt;br /&gt;
[[File:05-tuto-peluche-physique.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons ouvrir l'écran affichant les éléments de la scene via le menu &amp;quot;Tools&amp;quot;=&amp;gt; &amp;quot;New Scene Explorer&amp;quot; et supprimer tous les éléments constituant le squelette du modèle pour ne garder au final que le mesh de l'animal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:06-tuto-peluche-bones-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Au final nous n'avons plus qu'un seul élément dans notre &amp;quot;scène&amp;quot; : le mesh du gubani &amp;quot;TR_MO_H12&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Dans le panneau latéral droit, nous allons renommer ce mesh en &amp;quot;ge_acc_tedy-gubani_01&amp;quot;. C'est ce nom qui sera utilisé par l'export &amp;quot;NEL&amp;quot; pour nommer le fichier &amp;quot;shape&amp;quot; généré lors de l'export.&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele-fin.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 4 : Modifier le mapping des textures du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Dans cette partie, nous allons revoir la texturation du modèle 3d. A priori, il faudrait juste changer la texture de base «ju_mo_h12.png» pour pointer sur la notre «ge_acc_teddy-gubani_01.dds» (ou «.tga» à défaut) puis l'adapter comme nous le voulons visuellement. Cependant, cela va être un peu plus compliqué :&lt;br /&gt;
&lt;br /&gt;
Nous allons d'abord ouvrir l'écran &amp;quot;Material Editor&amp;quot; (1), puis sélectionner le seul matériel de la scène (2) en double cliquant dessus. Dans l'écran centrale sélectionnez le noeud dénommé &amp;quot;Map #1 Nel Multi Bitmap&amp;quot; en double cliquant dessus (3). Vous verrez alors s'afficher dans le panneau latéral de droite le détail de ses propriétés (4). Le &amp;quot;Nel Multi Bitmap&amp;quot; permet de définir 8 images différentes. Il ne s'agit pas de multi-texturing, mais de la possibilité de configurer plusieurs images de texture. Seule une est appliqué à un instant donné sur le modèle. Cela est utilisé pour les mobs pour spécifier une texture par écosystème et par certains objets environnementaux pour spécifier une texture différente par saison.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:08-tuto-peluche-texture.png|800px]]&lt;br /&gt;
Le slot ID 1 est utilisé pour les textures de l'écosystème tryker, le second (ID 2) pour l'écosystème fyros, le troisième (ID 3) pour l'écosystème zoraï et le quatrième (ID 4) pour l'écosystème des primes racines. Ne cherchez pas de slot matis, en bon esthètes, ils ont compris que la beauté résidait dans la nature zoraï et utilisent donc les textures zoraï pour tous leurs animaux. Notez qu'ici le gubani  n'étant présent qu'en jungle et en primes racines, seuls les slots 3 et 4 sont utilisés&lt;br /&gt;
&lt;br /&gt;
Le même système est aussi utilisé pour d'autres objets IG, comme les bâtiments.dans ce cas, les 4 slots correspondent aux quatre saisons. C'est ainsi que l'on peut noter la présence de neige sur certaines bâtisses zoraï en hiver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:09-tuto-peluche-multi-texture.png]]&lt;br /&gt;
&lt;br /&gt;
De notre coté nous n'allons pas utilisé ce mécanisme. Nous allons donc supprimé le &amp;quot;NEL Multi Bitmap&amp;quot; et le remplacer par un simple &amp;quot;Bitmap&amp;quot; en tirant avec la souris sur la sortie de la &amp;quot;''tTexture 1''&amp;quot; comme le montre l'image ci-dessus. En relâchant la souris, un menu contextuel apparait (2), sélectionner l'entrée &amp;quot;Bitmap&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:10-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Puis aller chercher notre image dans &amp;quot;W:databasestuffgeneriqueagents_texturesaccessoriessoft-toyge_acc_teddy-gubani_01.dds&amp;quot; (ou &amp;quot;.tga&amp;quot;).  &lt;br /&gt;
&lt;br /&gt;
[[File:11-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Répéter l'opération pour l'autre &amp;quot;Nel Multi Bitmap&amp;quot; qui référence la même image.&lt;br /&gt;
&lt;br /&gt;
==  Étape 5 : Mise à échelle du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Note modèle 3d est presque prêt à l'emploi. Cependant sa taille ne correspond pas à celle attendue d'une peluche. Si vous utilisez l'outil de mesure de 3dsmax vous verrez que le gubani  mesure plus 2m de haut. Le plus simple pour le mettre à la bonne taille est de charger un modèle d'homin afin d'avoir un comparatif visuel et s'assurer que la peluche peut être prise en main.&lt;br /&gt;
&lt;br /&gt;
On va donc insérer temporairement dans notre scène 3dsmax une référence vers un autre modèle 3d en passant par le menu Fichier (1) =&amp;gt; References (2) =&amp;gt; Xref Scène (3) et en cliquant sur le bouton Add (4) de la fenêtre qui apparait :&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Sélectionner alors le modèle d'homin &amp;quot;W:\database\stuff\generique\agents\actors\male\ge_hom_armor02.max&amp;quot; qui devrait apparaître dans votre scène 3d.&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref-02.png]]&lt;br /&gt;
&lt;br /&gt;
Mettre a échelle le modèle de gubani et le déplacer via les outils &amp;quot;Scale&amp;quot; et &amp;quot;Move&amp;quot; du menu contextuel apparaissant lorsqu'on clique sur le modèle avec le bouton droit de la souris. &lt;br /&gt;
&lt;br /&gt;
[[File:16-tuto-peluche-echelle.png]]&lt;br /&gt;
&lt;br /&gt;
Une fois la peluche à la bonne échelle, il ne reste plus qu'a supprimer la référence au modèle d'homin en repassant par le menu  Fichier =&amp;gt; References =&amp;gt; Xref Scene.&lt;br /&gt;
&lt;br /&gt;
Repositionner le modèle gubani à l'origine de la scène (x=0, y=0, z=0), car lorsqu'un objet est porté la position (0,0,0) se place au niveau de la main.&lt;br /&gt;
&lt;br /&gt;
==  Étape  6 : modifier la texture pour un rendu peluche  ==&lt;br /&gt;
&lt;br /&gt;
Au niveau de la texture, pour donner un effet peluche, laissez libre court à votre imagination&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-source.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ici j'ai édité l'image &amp;quot;ge_acc_teddy-gubani_01.tga&amp;quot; dans l'outil Gimp. J'ai utilisé le filtre &amp;quot;Artistiques &amp;gt; GIMPressioniste&amp;quot; en utilisant le modèle &amp;quot;canvas&amp;quot; pour obtenir un effet trame de tissu.&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-peluche.png]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'image sauvegardée, j'ai re-généré la texture au format &amp;quot;.dds&amp;quot; via la commande :&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Voila le résultat obtenu sur le modèle 3d dans 3dsmax :&lt;br /&gt;
&lt;br /&gt;
[[File:18-tuto-peluche-modele3d.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 7 : Export du shape  ==&lt;br /&gt;
&lt;br /&gt;
Il est temps de tester cette peluche en jeu. Pour cela il va falloir exporter le modèle en générant le fichier &amp;quot;shape&amp;quot; utilisé par le moteur Ryzom&lt;br /&gt;
&lt;br /&gt;
Si ce n'est pas déjà je cas, ajouter le bouton ''d'export NEL'' au panneau latéral droit en cliquant sur l'onglet &amp;quot;''utilities''&amp;quot;, puis &amp;quot;''More''&amp;quot; et en sélectionnant l'option &amp;quot;''NEL Export''&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-01.png]]&lt;br /&gt;
&lt;br /&gt;
Ensuite sélectionner le mesh du gubani puis cliquer sur le bouton &amp;quot;Export Model&amp;quot;. Il vous faut alors spécifier le dossier où sera crée le fichier &amp;quot;ge_acc_teddy-gubani-01.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-02.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 8 : Tester la peluche  IG  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, il faudrait ajouter le ''datasheet'' de la peluche au serveur de jeu et patcher le client. Cette méthode sera détaillée plus loin. Cependant il existe une solution de contournement si vous n'avez pas votre propre serveur de jeu pour réaliser ces opérations.&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu'une peluche n'est rien d'autre qu'une arme équipée. Ainsi nous pourrions remplacer le modèle de la dague par celui de notre gubani pour le tester sur le serveur officiel. Il existe une astuce simple pour cela. Le client de jeu recherche les modèles et textures dans le dossier &amp;quot;user&amp;quot; avant d'aller voir le dossier &amp;quot;data&amp;quot;. Il suffit de copier notre fichier shape et la texture associée dans le dossier &amp;quot;user&amp;quot;, puis de renommer le shape du gubani en celui de la dague : &amp;quot;GE_Wea_Dague.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A présent lorsque vous équiperez une dague IG, vous aurez en main notre peluche &amp;quot;gubani&amp;quot;.&lt;br /&gt;
Pour retrouver la dague d'origine, il suffit de supprimer le fichier shape du dossier &amp;quot;user&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:21-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En réalisant ce test vous pouvez noter une anomalie : la peluche est tenue par le pied, ce qui n'est pas forcément ce que nous voulons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : orientation et positionnement d'un objet porté  ==&lt;br /&gt;
&lt;br /&gt;
Le point de fixation d'un objet tenu en main correspond au point de coordonnée (0,0,0) de l'objet.Son orientation suit la règle suivante  :&lt;br /&gt;
&lt;br /&gt;
  l'axe X remonte le long de l'avant-bras ;&lt;br /&gt;
  l'axe Y part depuis le dos de la main vers l'extérieur ;&lt;br /&gt;
  l'axe Z pointe vers le haut de l'objet tenu fermement en main.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous réorientons la peluche gubani dans 3dsmax comme le montre l'image suivante : l'axe X sort du dos du gubani pour remonter le long du bras qui le portera. L'axe Z sort de la main et est donc dans le prolongement de la tête de la peluche :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe-3dsmax.png]]&lt;br /&gt;
  &lt;br /&gt;
Après réorientation du modèle gubani et réexportation du shape nous obtenons enfin une peluche qui est tenue par le tronc :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin sur les objets portés, je vous conseille de lire ce tutorial :  http:''khaganat.net/wikhan/fr:todo:dessiner:creation_d_un_objet_prehensible_en_jeu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : Créer l’icône pour l'inventaire et la barre d'actions  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut créer un icône pour l'affichage de l'item peluche gubani dans l'inventaire et dans la barre  d'actions.&lt;br /&gt;
Cet au icône au format tga doit faire 40x40 pixels avec un fond transparent. Nous le nommerons &amp;quot;icon_teddygubani.tga&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'icône de 40x40 pixels :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani.png|80px]]&lt;br /&gt;
&lt;br /&gt;
Pour des questions de performance, ces icônes ne sont pas stockés individuellement mais regroupés dans une seule image dénommée : &amp;quot;texture_interfaces_v3.tga&amp;quot;. Le fichier texte associé dénommé &amp;quot;texture_interfaces_v3.txt&amp;quot; liste les icones présents et leur position dans l'image :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte-txt.png]]&lt;br /&gt;
&lt;br /&gt;
le fichier texte utilise le format suivant pour chaque ligne :&lt;br /&gt;
&lt;br /&gt;
  NomFichierIcone u1 v1 u2 v2&lt;br /&gt;
&lt;br /&gt;
Avec :&lt;br /&gt;
* u1,v1 la position du point supérieur gauche de l'icône&lt;br /&gt;
* u2,v2 la position du coin inférieur droit de l'icône&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la différence des coordonnées en pixels, ces coordonnées qui utilisent la technique du UV Mapping en 3d ont leurs valeurs dans l’intervalle [0 .. 1]. la coordonnée (0,0) correspond au point supérieur gauche de l'image et (1,1) au point inférieur droit de l'image.&lt;br /&gt;
&lt;br /&gt;
Le passage d'un système à l'autre est simple. Soit (x1,y1) la position en pixels du coin haut gauche de notre icône dans l'image globale et (x2,y2) la position du point inférieur droit de l'icône dans l'image, alors :&lt;br /&gt;
* u1 = x1 / largeur-image&lt;br /&gt;
* v1 = y1 / hauteur-image&lt;br /&gt;
* u2 = x2 / largeur-image&lt;br /&gt;
* v2 = y2 / hauteur-image&lt;br /&gt;
&lt;br /&gt;
Sachant que la texture &amp;quot;texture_interfaces_v3.tga&amp;quot; fait 1024x1024 pixel, et que dans l'exemple l'icône &amp;quot;icon_teddygubani.tga&amp;quot; se situe à la position (x1=118,y1=798), que le point inférieur gauche étant à la position (x2=157,y2=837), le fichier txt contient donc la ligne : &lt;br /&gt;
&lt;br /&gt;
  icon_teddygubani.tga 0.115234375 0.779296875 0.1533203125 0.8173828125&lt;br /&gt;
  &lt;br /&gt;
Même si cela peut être ajouté à la main, la bonne méthode et d'utiliser l'outil dédié de NEL ''build_interface'' comme indiqué dans le tutorial https:''khaganat.net/wikhan/fr:todo:dessiner:creer_icone_objet qui recrée la texture globale et le fichier txt à partir d'un dossier contenant tous les icones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: L'ajout de l'icône ne suffit pas, il faut également créer le datasheet de l'objet peluche et spécifier dedans le nom de notre icône à utiliser comme nous le verrons plus loin dans ce tutorial. Au final nous obtenons le résultat suivant IG :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Etape 11 : créer le fichiers des noms  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A compléter.&lt;br /&gt;
&lt;br /&gt;
[[File:30-tuto-peluche-txtfile.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 12 : créer le datasheet   ==&lt;br /&gt;
&lt;br /&gt;
A la base, une peluche reste est un objet porté comme une arme. De fait le datasheet de la peluche est trs semblable à celui d'une arme une main, comme l'exemple de la dague ci-dessous.&lt;br /&gt;
&lt;br /&gt;
__icrm1pd.sitem  ( datasheet de la dague du réfugié ) :__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.2 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;refugee dagger&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;refugee&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Drop or Sell&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;CraftPlan&amp;quot; Value=&amp;quot;bcrmea06.sbrick&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Saleable&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce qui change c'est :&lt;br /&gt;
&lt;br /&gt;
* la référénce au shape dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* la référence à l'icone utilisé dans la barre d'état et l'inventaire dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* les caractéristiques de base qui diffèrent d'une arme : pas de niveau requis, pas de brique de plan, etc..&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voila donc le datasheet de la peluche gubani  que nous nommerons &amp;quot;teddygubani.sitem&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.7 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&amp;lt;/LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Étape 13 : Déployer la peluche sur le serveur et le client de jeu   ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de déployer la peluche en jeu la méthode officielle consiste à utiliser la pipeline &amp;quot;build_gamedata&amp;quot; (cf. https:''ryzomcore.atlassian.net/wiki/display/RC/Gamedata+Build+Pipeline). Je vais vous proposer une méthode différente, où les opérations seront effectués à la mains, mais uniquement celles nécessaires à notre peluche :&lt;br /&gt;
&lt;br /&gt;
Nous avons besoin des fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* teddygubani.sitem ( le datasheet de la peluche gunabi )&lt;br /&gt;
* ge_acc_teddy-gubani_01.shape ( le modèle 3d NEL de la peluche )&lt;br /&gt;
* ge_acc_teddy-gubani_01.dds ( la texture du modèle 3d )&lt;br /&gt;
&lt;br /&gt;
De plus le déploiement de cette peluche va impacter les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* les fichiers &amp;quot;*.packed_sheets&amp;quot; utilisée par le serveur et le client qui sont une version compilé des datasheets&lt;br /&gt;
* le fichier &amp;quot;sheet_id.bin&amp;quot; qui est un index de tous les datasheets utilisés par le jeu&lt;br /&gt;
* le fichier &amp;quot;visual_slot.tab&amp;quot; qui liste les éléments affichables coté client&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, nous allons également créer un fichier &amp;quot;soft-toy.bnp&amp;quot; qui contiendra les shapes et les textures de toutes les futures peluches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour la suite des opérations nous partons du principe que notre serveur de jeu fonctionne sous linux, et que les variables d'envrionnement suivantes sont définies :&lt;br /&gt;
&lt;br /&gt;
* LEVELDESIGNPATH pointe sur le dossier des datas du level design&lt;br /&gt;
* RYZOM_HOME sur l'installation des sources du serveur&lt;br /&gt;
&lt;br /&gt;
===  Ajout du datasheet &amp;quot;teddygubani.sitem au serveur   ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Coté serveur nous allons créer un dossier dédié pour les datasheets des peluches et y placer celui du gubani :&lt;br /&gt;
&lt;br /&gt;
  $ mkdir $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
  $ cp teddygubani.sitem $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
&lt;br /&gt;
===  Nettoyages préalables  ===&lt;br /&gt;
&lt;br /&gt;
===  Re-générer le fichier &amp;quot;sheet_id.bin&amp;quot;   ===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à regénérer le fichier d'index des datasheet via la commande &amp;quot;make_sheet_id&amp;quot;. Il reprend le fichier d'index existant et va le compléter avec les datasheets du dossier $RYZOM_LEVELPATH/leveldesign/game_element/sitem/soft-toy c'est-à-dire les datasheets de nos peluches&lt;br /&gt;
&lt;br /&gt;
  $ make_sheet_id -o$LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
&lt;br /&gt;
===  Re-générer les &amp;quot;*.packed_sheets&amp;quot; et &amp;quot;visual_slot.tab&amp;quot;  ===&lt;br /&gt;
&lt;br /&gt;
Il faut regénérer les &amp;quot;*.packed_sheets&amp;quot;.Ce sont les versions pré-compilées des datasheets :&lt;br /&gt;
&lt;br /&gt;
  $ sheets_packer&lt;br /&gt;
&lt;br /&gt;
Cette commande va également re-générer le fichier visual_slot.tab&lt;br /&gt;
&lt;br /&gt;
===  Copier les fichiers nécessaires coté client  ===&lt;br /&gt;
&lt;br /&gt;
* Nous copions le fichier &amp;quot;visual_slot.tab&amp;quot; généré dans le dossier courant dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous copions le fichier $LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous remplaçons les fichiers packet_sheets du dossier &amp;quot;data&amp;quot; du client par ceux générés ici $RYZOM_HOME/code/ryzom/client/data/*.packed_sheets par la commande ''sheets_packer''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Créer un bnp pour le modèle de la peluche  ===&lt;br /&gt;
&lt;br /&gt;
Pour finir il faut copier le shape et la texture de la peluche dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
Cependant pour bien faire les choses, autant créer un fichier &amp;quot;.bnp&amp;quot; dédié.&lt;br /&gt;
Un fichier &amp;quot;.bnp&amp;quot; est une sorte de zip regroupant les différents fichiers shape, dds, txt, ou autres par thème.&lt;br /&gt;
&lt;br /&gt;
Créer on dossier &amp;quot;soft-toy&amp;quot;, copions y  tous les shapes et textures de nos peluche, à savoir pour le moment &amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot; et &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot; et créons un fichier BNP pour les contenur&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  bnp_make /p soft-toy&lt;br /&gt;
&lt;br /&gt;
La commande va créer un fichier &amp;quot;soft-toy,bnp&amp;quot; qui contiendra nos deux fichiers. A présent il faut le copier dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Tester IG  ===&lt;br /&gt;
&lt;br /&gt;
Relancer le serveur avec la commande ''shard start'' puis connectez vous avec votre client.&lt;br /&gt;
&lt;br /&gt;
Si tout c'est bien déroulé, en lançant votre client de jeu, vous pouvez créer une peluche dans votre inventaire avec la commande :&lt;br /&gt;
&lt;br /&gt;
  /a createItemInBag teddygubani 1 5 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{tag&amp;gt;Tag_a_ajouter}}&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_Peluche&amp;diff=973</id>
		<title>FR Peluche</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_Peluche&amp;diff=973"/>
				<updated>2014-07-25T20:53:42Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: /* Étape 12 : créer le datasheet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  Objets du mois : Déployer en Jeu des peluches « mobs d'atys »  =&lt;br /&gt;
&lt;br /&gt;
[[File:00-tuto-peluche.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Le but de ce tutorial est de montrer comment réaliser des peluches basées sur les modèles des animaux atysiens.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pré-requis pour modéliser uniquement la peluche :&lt;br /&gt;
&lt;br /&gt;
* Avoir installé les assets ryzom et configuré correctement les lecteurs (les outils NEL s'attendent à trouver les données des assets dans le dossier ( W:database ).&lt;br /&gt;
* Avoir installé 3DSMax et configuré le plugin  NEL ( Attention le plugin ne fonctionne qu'avec les version 32bits de 3DSmax et de la versions  9 à la version 2012).&lt;br /&gt;
* Conseillé mais non nécessaire : avoir installé l'outil NEL &amp;quot;''tga2dds.exe''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Pré-requis pour déployer la peluche sur un serveur de jeu :&lt;br /&gt;
&lt;br /&gt;
* Avoir compilé et installé un serveur de jeu et configuré un client pour l'utiliser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note : il est possible de tester cette peluche IG sans disposer d'un serveur de jeu via une astuce qui sera expliquée plus loin dans ce tutoriel.&lt;br /&gt;
&lt;br /&gt;
Quelques liens utiles pour ces pré-requis :&lt;br /&gt;
&lt;br /&gt;
* Liens de téléchargement des assets et outils : https:''ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows&lt;br /&gt;
* Configuration des lecteurs :https:''ryzomcore.atlassian.net/wiki/display/RC/How+to+set+up+the+Build+Pipeline&lt;br /&gt;
* Installation du plugin NEL de 3dsmax  :https:''ryzomcore.atlassian.net/wiki/display/RC/Installing+the+Max+Plugins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 1: choisir le modèle qui servira pour notre peluche  ==&lt;br /&gt;
&lt;br /&gt;
L'ensemble des modèles 3d de la faune de ryzom sont regroupés dans le dossier « W:\database\stuff\tryker\agents\monsters » par famille de créature. Dans ce tutorial nous allons utiliser le modèle du « Gubani » qui est situé dans le sous-dossier des créatures « chevalines » pour réaliser notre peluche :&lt;br /&gt;
&lt;br /&gt;
W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:01-tuto-peluche-dossiers-mobs.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 2 : Reprendre le modèle et se créer un dossier dédié pour travailler  ==&lt;br /&gt;
&lt;br /&gt;
Dans 3dsmax ouvrir le fichier  « W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max »&lt;br /&gt;
&lt;br /&gt;
Nous consultons la liste des fichiers  utilisés par le modèle, notamment les textures via le menu =&amp;gt; «Fichier» =&amp;gt;  « Manage » =&amp;gt; « Asset Tracking ». On note deux fichiers :&lt;br /&gt;
&lt;br /&gt;
* Le modèle 3d : « tr_mo_h12.max »&lt;br /&gt;
* La texture du gubani « ju_mo_h12.png »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:02-tuto-peluche-asset-tracking.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Le but ici étant de déployer des peluches monstres pour les objets du mois, nous allons donc se créer un dossier dédié pour nos futures peluches et respecter les conventions de nomination de ryzom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous allons donc créer un dossier « soft-toy » dans le dossier « W:\database\stuff\generique\agents\accessories ». Nous y sauvegarderons notre modèle en le renommant : ge_acc_teddy-gubani_01.max&lt;br /&gt;
&lt;br /&gt;
* le premier préfixe «ge_» du nom de fichier est pour spécifier l'écosystème, ici  __gé__nérique (tr : tryker, fy : fyros, etc...)&lt;br /&gt;
* le second préfixe du nom du fichier est pour spécifier le type de modèle ( hom : homin masculin, mo : monstre, wea weapon, etc... ), ici « acc » pour __acc__essoire. &lt;br /&gt;
* Enfin  le nom de notre modèle « teddy-gubani » que nous suffixons par un numéro afin de pouvoir créer plusieurs variantes de peluches gubani.&lt;br /&gt;
&lt;br /&gt;
Pour la texture, nous devrions aussi la copier dans « W:\database\stuff\generique\agents\_textures\accessories », mais nous allons faire plus simple. Nous allons la mettre dans le même dossier que le modèle 3d et la renommer en suivant la même convention : « ge_acc_teddy-gubani_01.png »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cependant, le moteur de ryzom ne sait afficher que les textures au format &amp;quot;.tga&amp;quot; ou &amp;quot;.dds&amp;quot;. TGA est un format brut sans compression ce qui le rend pratique pour l'édition mais moins performant en espace mémoire occupé. le format DDS est un format d'image compressée qui comme le jpep est destructeur. C'est le format utilisé en interne par ryzom pour minimiser l'espace des textures en mémoire. Avec votre éditeur préféré convertissez l'image &amp;quot;.png&amp;quot; en &amp;quot;.tga&amp;quot;. C'est elle-ci que nous garderons pour l'édition. Nous allons utiliser l'outil NEL &amp;quot;''tga2dds''&amp;quot; pour générer une image texture au format &amp;quot;.dds&amp;quot; pour le modèle 3d. C'est celle que nous utiliserons dans 3dsmax&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Si vous n'avez pas l'outil, vous pouvez garder la version &amp;quot;.tga&amp;quot;. Elle fonctionne pour les tests IG.&lt;br /&gt;
Dans le dossier soft-toy vous devriez avoir comme résultat :&lt;br /&gt;
&lt;br /&gt;
[[File:03-tuto-peluche-dossier-soft-toy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 3 : Nettoyer le modèle 3D sous 3dsmax  ==&lt;br /&gt;
&lt;br /&gt;
Le modèle 3D du monstre contient un squelette et toutes ce qu'il faut pour l'animer. Cela n'est pas nécessaire pour un accessoire peluche et surchargerait inutilement le modèle ryzom final. Nous allons dons les supprimer.&lt;br /&gt;
&lt;br /&gt;
[[File:04-tuto-peluche-animation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Sélectionner le modèle &amp;quot;Gubani&amp;quot; avec la souris. Dans le panneau latéral droit, sélectionner l'onglet &amp;quot;''modify''&amp;quot;. Vous devez voir apparaître le mesh dénommé &amp;quot;TR_MO_H12&amp;quot; et dans la pile des &amp;quot;''modifiers''&amp;quot; celui nommé &amp;quot;physique&amp;quot;. Nous allons le supprimer&lt;br /&gt;
&lt;br /&gt;
[[File:05-tuto-peluche-physique.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons ouvrir l'écran affichant les éléments de la scene via le menu &amp;quot;Tools&amp;quot;=&amp;gt; &amp;quot;New Scene Explorer&amp;quot; et supprimer tous les éléments constituant le squelette du modèle pour ne garder au final que le mesh de l'animal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:06-tuto-peluche-bones-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Au final nous n'avons plus qu'un seul élément dans notre &amp;quot;scène&amp;quot; : le mesh du gubani &amp;quot;TR_MO_H12&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Dans le panneau latéral droit, nous allons renommer ce mesh en &amp;quot;ge_acc_tedy-gubani_01&amp;quot;. C'est ce nom qui sera utilisé par l'export &amp;quot;NEL&amp;quot; pour nommer le fichier &amp;quot;shape&amp;quot; généré lors de l'export.&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele-fin.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 4 : Modifier le mapping des textures du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Dans cette partie, nous allons revoir la texturation du modèle 3d. A priori, il faudrait juste changer la texture de base «ju_mo_h12.png» pour pointer sur la notre «ge_acc_teddy-gubani_01.dds» (ou «.tga» à défaut) puis l'adapter comme nous le voulons visuellement. Cependant, cela va être un peu plus compliqué :&lt;br /&gt;
&lt;br /&gt;
Nous allons d'abord ouvrir l'écran &amp;quot;Material Editor&amp;quot; (1), puis sélectionner le seul matériel de la scène (2) en double cliquant dessus. Dans l'écran centrale sélectionnez le noeud dénommé &amp;quot;Map #1 Nel Multi Bitmap&amp;quot; en double cliquant dessus (3). Vous verrez alors s'afficher dans le panneau latéral de droite le détail de ses propriétés (4). Le &amp;quot;Nel Multi Bitmap&amp;quot; permet de définir 8 images différentes. Il ne s'agit pas de multi-texturing, mais de la possibilité de configurer plusieurs images de texture. Seule une est appliqué à un instant donné sur le modèle. Cela est utilisé pour les mobs pour spécifier une texture par écosystème et par certains objets environnementaux pour spécifier une texture différente par saison.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:08-tuto-peluche-texture.png|800px]]&lt;br /&gt;
Le slot ID 1 est utilisé pour les textures de l'écosystème tryker, le second (ID 2) pour l'écosystème fyros, le troisième (ID 3) pour l'écosystème zoraï et le quatrième (ID 4) pour l'écosystème des primes racines. Ne cherchez pas de slot matis, en bon esthètes, ils ont compris que la beauté résidait dans la nature zoraï et utilisent donc les textures zoraï pour tous leurs animaux. Notez qu'ici le gubani  n'étant présent qu'en jungle et en primes racines, seuls les slots 3 et 4 sont utilisés&lt;br /&gt;
&lt;br /&gt;
Le même système est aussi utilisé pour d'autres objets IG, comme les bâtiments.dans ce cas, les 4 slots correspondent aux quatre saisons. C'est ainsi que l'on peut noter la présence de neige sur certaines bâtisses zoraï en hiver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:09-tuto-peluche-multi-texture.png]]&lt;br /&gt;
&lt;br /&gt;
De notre coté nous n'allons pas utilisé ce mécanisme. Nous allons donc supprimé le &amp;quot;NEL Multi Bitmap&amp;quot; et le remplacer par un simple &amp;quot;Bitmap&amp;quot; en tirant avec la souris sur la sortie de la &amp;quot;''tTexture 1''&amp;quot; comme le montre l'image ci-dessus. En relâchant la souris, un menu contextuel apparait (2), sélectionner l'entrée &amp;quot;Bitmap&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:10-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Puis aller chercher notre image dans &amp;quot;W:databasestuffgeneriqueagents_texturesaccessoriessoft-toyge_acc_teddy-gubani_01.dds&amp;quot; (ou &amp;quot;.tga&amp;quot;).  &lt;br /&gt;
&lt;br /&gt;
[[File:11-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Répéter l'opération pour l'autre &amp;quot;Nel Multi Bitmap&amp;quot; qui référence la même image.&lt;br /&gt;
&lt;br /&gt;
==  Étape 5 : Mise à échelle du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Note modèle 3d est presque prêt à l'emploi. Cependant sa taille ne correspond pas à celle attendue d'une peluche. Si vous utilisez l'outil de mesure de 3dsmax vous verrez que le gubani  mesure plus 2m de haut. Le plus simple pour le mettre à la bonne taille est de charger un modèle d'homin afin d'avoir un comparatif visuel et s'assurer que la peluche peut être prise en main.&lt;br /&gt;
&lt;br /&gt;
On va donc insérer temporairement dans notre scène 3dsmax une référence vers un autre modèle 3d en passant par le menu Fichier (1) =&amp;gt; References (2) =&amp;gt; Xref Scène (3) et en cliquant sur le bouton Add (4) de la fenêtre qui apparait :&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Sélectionner alors le modèle d'homin &amp;quot;W:\database\stuff\generique\agents\actors\male\ge_hom_armor02.max&amp;quot; qui devrait apparaître dans votre scène 3d.&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref-02.png]]&lt;br /&gt;
&lt;br /&gt;
Mettre a échelle le modèle de gubani et le déplacer via les outils &amp;quot;Scale&amp;quot; et &amp;quot;Move&amp;quot; du menu contextuel apparaissant lorsqu'on clique sur le modèle avec le bouton droit de la souris. &lt;br /&gt;
&lt;br /&gt;
[[File:16-tuto-peluche-echelle.png]]&lt;br /&gt;
&lt;br /&gt;
Une fois la peluche à la bonne échelle, il ne reste plus qu'a supprimer la référence au modèle d'homin en repassant par le menu  Fichier =&amp;gt; References =&amp;gt; Xref Scene.&lt;br /&gt;
&lt;br /&gt;
Repositionner le modèle gubani à l'origine de la scène (x=0, y=0, z=0), car lorsqu'un objet est porté la position (0,0,0) se place au niveau de la main.&lt;br /&gt;
&lt;br /&gt;
==  Étape  6 : modifier la texture pour un rendu peluche  ==&lt;br /&gt;
&lt;br /&gt;
Au niveau de la texture, pour donner un effet peluche, laissez libre court à votre imagination&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-source.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ici j'ai édité l'image &amp;quot;ge_acc_teddy-gubani_01.tga&amp;quot; dans l'outil Gimp. J'ai utilisé le filtre &amp;quot;Artistiques &amp;gt; GIMPressioniste&amp;quot; en utilisant le modèle &amp;quot;canvas&amp;quot; pour obtenir un effet trame de tissu.&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-peluche.png]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'image sauvegardée, j'ai re-généré la texture au format &amp;quot;.dds&amp;quot; via la commande :&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Voila le résultat obtenu sur le modèle 3d dans 3dsmax :&lt;br /&gt;
&lt;br /&gt;
[[File:18-tuto-peluche-modele3d.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 7 : Export du shape  ==&lt;br /&gt;
&lt;br /&gt;
Il est temps de tester cette peluche en jeu. Pour cela il va falloir exporter le modèle en générant le fichier &amp;quot;shape&amp;quot; utilisé par le moteur Ryzom&lt;br /&gt;
&lt;br /&gt;
Si ce n'est pas déjà je cas, ajouter le bouton ''d'export NEL'' au panneau latéral droit en cliquant sur l'onglet &amp;quot;''utilities''&amp;quot;, puis &amp;quot;''More''&amp;quot; et en sélectionnant l'option &amp;quot;''NEL Export''&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-01.png]]&lt;br /&gt;
&lt;br /&gt;
Ensuite sélectionner le mesh du gubani puis cliquer sur le bouton &amp;quot;Export Model&amp;quot;. Il vous faut alors spécifier le dossier où sera crée le fichier &amp;quot;ge_acc_teddy-gubani-01.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-02.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 8 : Tester la peluche  IG  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, il faudrait ajouter le ''datasheet'' de la peluche au serveur de jeu et patcher le client. Cette méthode sera détaillée plus loin. Cependant il existe une solution de contournement si vous n'avez pas votre propre serveur de jeu pour réaliser ces opérations.&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu'une peluche n'est rien d'autre qu'une arme équipée. Ainsi nous pourrions remplacer le modèle de la dague par celui de notre gubani pour le tester sur le serveur officiel. Il existe une astuce simple pour cela. Le client de jeu recherche les modèles et textures dans le dossier &amp;quot;user&amp;quot; avant d'aller voir le dossier &amp;quot;data&amp;quot;. Il suffit de copier notre fichier shape et la texture associée dans le dossier &amp;quot;user&amp;quot;, puis de renommer le shape du gubani en celui de la dague : &amp;quot;GE_Wea_Dague.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A présent lorsque vous équiperez une dague IG, vous aurez en main notre peluche &amp;quot;gubani&amp;quot;.&lt;br /&gt;
Pour retrouver la dague d'origine, il suffit de supprimer le fichier shape du dossier &amp;quot;user&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:21-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En réalisant ce test vous pouvez noter une anomalie : la peluche est tenue par le pied, ce qui n'est pas forcément ce que nous voulons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : orientation et positionnement d'un objet porté  ==&lt;br /&gt;
&lt;br /&gt;
Le point de fixation d'un objet tenu en main correspond au point de coordonnée (0,0,0) de l'objet.Son orientation suit la règle suivante  :&lt;br /&gt;
&lt;br /&gt;
  l'axe X remonte le long de l'avant-bras ;&lt;br /&gt;
  l'axe Y part depuis le dos de la main vers l'extérieur ;&lt;br /&gt;
  l'axe Z pointe vers le haut de l'objet tenu fermement en main.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous réorientons la peluche gubani dans 3dsmax comme le montre l'image suivante : l'axe X sort du dos du gubani pour remonter le long du bras qui le portera. L'axe Z sort de la main et est donc dans le prolongement de la tête de la peluche :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe-3dsmax.png]]&lt;br /&gt;
  &lt;br /&gt;
Après réorientation du modèle gubani et réexportation du shape nous obtenons enfin une peluche qui est tenue par le tronc :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin sur les objets portés, je vous conseille de lire ce tutorial :  http:''khaganat.net/wikhan/fr:todo:dessiner:creation_d_un_objet_prehensible_en_jeu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : Créer l’icône pour l'inventaire et la barre d'actions  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut créer un icône pour l'affichage de l'item peluche gubani dans l'inventaire et dans la barre  d'actions.&lt;br /&gt;
Cet au icône au format tga doit faire 40x40 pixels avec un fond transparent. Nous le nommerons &amp;quot;icon_teddygubani.tga&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'icône de 40x40 pixels :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani.png|80px]]&lt;br /&gt;
&lt;br /&gt;
Pour des questions de performance, ces icônes ne sont pas stockés individuellement mais regroupés dans une seule image dénommée : &amp;quot;texture_interfaces_v3.tga&amp;quot;. Le fichier texte associé dénommé &amp;quot;texture_interfaces_v3.txt&amp;quot; liste les icones présents et leur position dans l'image :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte-txt.png]]&lt;br /&gt;
&lt;br /&gt;
le fichier texte utilise le format suivant pour chaque ligne :&lt;br /&gt;
&lt;br /&gt;
  NomFichierIcone u1 v1 u2 v2&lt;br /&gt;
&lt;br /&gt;
Avec :&lt;br /&gt;
* u1,v1 la position du point supérieur gauche de l'icône&lt;br /&gt;
* u2,v2 la position du coin inférieur droit de l'icône&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la différence des coordonnées en pixels, ces coordonnées qui utilisent la technique du UV Mapping en 3d ont leurs valeurs dans l’intervalle [0 .. 1]. la coordonnée (0,0) correspond au point supérieur gauche de l'image et (1,1) au point inférieur droit de l'image.&lt;br /&gt;
&lt;br /&gt;
Le passage d'un système à l'autre est simple. Soit (x1,y1) la position en pixels du coin haut gauche de notre icône dans l'image globale et (x2,y2) la position du point inférieur droit de l'icône dans l'image, alors :&lt;br /&gt;
* u1 = x1 / largeur-image&lt;br /&gt;
* v1 = y1 / hauteur-image&lt;br /&gt;
* u2 = x2 / largeur-image&lt;br /&gt;
* v2 = y2 / hauteur-image&lt;br /&gt;
&lt;br /&gt;
Sachant que la texture &amp;quot;texture_interfaces_v3.tga&amp;quot; fait 1024x1024 pixel, et que dans l'exemple l'icône &amp;quot;icon_teddygubani.tga&amp;quot; se situe à la position (x1=118,y1=798), que le point inférieur gauche étant à la position (x2=157,y2=837), le fichier txt contient donc la ligne : &lt;br /&gt;
&lt;br /&gt;
  icon_teddygubani.tga 0.115234375 0.779296875 0.1533203125 0.8173828125&lt;br /&gt;
  &lt;br /&gt;
Même si cela peut être ajouté à la main, la bonne méthode et d'utiliser l'outil dédié de NEL ''build_interface'' comme indiqué dans le tutorial https:''khaganat.net/wikhan/fr:todo:dessiner:creer_icone_objet qui recrée la texture globale et le fichier txt à partir d'un dossier contenant tous les icones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: L'ajout de l'icône ne suffit pas, il faut également créer le datasheet de l'objet peluche et spécifier dedans le nom de notre icône à utiliser comme nous le verrons plus loin dans ce tutorial. Au final nous obtenons le résultat suivant IG :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Etape 11 : créer le fichiers des noms  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A compléter.&lt;br /&gt;
&lt;br /&gt;
[[File:30-tuto-peluche-txtfile.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 12 : créer le datasheet   ==&lt;br /&gt;
&lt;br /&gt;
A la base, une peluche reste est un objet porté comme une arme. De fait le datasheet de la peluche est trs semblable à celui d'une arme une main, comme l'exemple de la dague ci-dessous.&lt;br /&gt;
&lt;br /&gt;
__icrm1pd.sitem  ( datasheet de la dague du réfugié ) :__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.2 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;refugee dagger&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;refugee&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Drop or Sell&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;CraftPlan&amp;quot; Value=&amp;quot;bcrmea06.sbrick&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Saleable&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce qui change c'est :&lt;br /&gt;
&lt;br /&gt;
* la référénce au shape dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* la référence à l'icone utilisé dans la barre d'état et l'inventaire dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* les caractéristiques de base qui diffèrent d'une arme : pas de niveau requis, pas de brique de plan, etc..&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voila donc le datasheet de la peluche gubani  que nous nommerons &amp;quot;teddygubani.sitem&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.7 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&amp;lt;/LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Étape 13 : Déployer la peluche sur le serveur et le client de jeu   ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de déployer la peluche en jeu la méthode officielle consiste à utiliser la pipeline &amp;quot;build_gamedata&amp;quot; (cf. https:''ryzomcore.atlassian.net/wiki/display/RC/Gamedata+Build+Pipeline). Je vais vous proposer une méthode différente, où les opérations seront effectués à la mains, mais uniquement celles nécessaires à notre peluche :&lt;br /&gt;
&lt;br /&gt;
Nous avons besoin des fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* teddygubani.sitem ( le datasheet de la peluche gunabi )&lt;br /&gt;
* ge_acc_teddy-gubani_01.shape ( le modèle 3d NEL de la peluche )&lt;br /&gt;
* ge_acc_teddy-gubani_01.dds ( la texture du modèle 3d )&lt;br /&gt;
&lt;br /&gt;
De plus le déploiement de cette peluche va impacter les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* les fichiers &amp;quot;*.packed_sheets&amp;quot; utilisée par le serveur et le client qui sont une version compilé des datasheets&lt;br /&gt;
* le fichier &amp;quot;sheet_id.bin&amp;quot; qui est un index de tous les datasheets utilisés par le jeu&lt;br /&gt;
* le fichier &amp;quot;visual_slot.tab&amp;quot; qui liste les éléments affichables coté client&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, nous allons également créer un fichier &amp;quot;soft-toy.bnp&amp;quot; qui contiendra les shapes et les textures de toutes les futures peluches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour la suite des opérations nous partons du principe que notre serveur de jeu fonctionne sous linux, et que les variables d'envrionnement suivantes sont définies :&lt;br /&gt;
&lt;br /&gt;
* LEVELDESIGNPATH pointe sur le dossier des datas du level design&lt;br /&gt;
* RYZOM_HOME sur l'installation des sources du serveur&lt;br /&gt;
&lt;br /&gt;
===  Ajout du datasheet &amp;quot;teddygubani.sitem au serveur   ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Coté serveur nous allons créer un dossier dédié pour les datasheets des peluches et y placer celui du gubani :&lt;br /&gt;
&lt;br /&gt;
  $ mkdir $LEVELDESIGNPATHleveldesigngame_elementsitemsoft-toy&lt;br /&gt;
  $ cp teddygubani.sitem $LEVELDESIGNPATHleveldesigngame_elementsitemsoft-toy&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
===  Nettoyages préalables  ===&lt;br /&gt;
&lt;br /&gt;
===  Re-générer le fichier &amp;quot;sheet_id.bin&amp;quot;   ===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à regénérer le fichier d'index des datasheet via la commande &amp;quot;make_sheet_id&amp;quot;. Il reprend le fichier d'index existant et va le compléter avec les datasheets du dossier $RYZOM_LEVELPATH/leveldesign/game_element/sitem/soft-toy c'est-à-dire les datasheets de nos peluches&lt;br /&gt;
&lt;br /&gt;
  $ make_sheet_id -o$LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
&lt;br /&gt;
===  Re-générer les &amp;quot;*.packed_sheets&amp;quot; et &amp;quot;visual_slot.tab&amp;quot;  ===&lt;br /&gt;
&lt;br /&gt;
Il faut regénérer les &amp;quot;*.packed_sheets&amp;quot;.Ce sont les versions pré-compilées des datasheets :&lt;br /&gt;
&lt;br /&gt;
  $ sheets_packer&lt;br /&gt;
&lt;br /&gt;
Cette commande va également re-générer le fichier visual_slot.tab&lt;br /&gt;
&lt;br /&gt;
===  Copier les fichiers nécessaires coté client  ===&lt;br /&gt;
&lt;br /&gt;
* Nous copions le fichier &amp;quot;visual_slot.tab&amp;quot; généré dans le dossier courant dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous copions le fichier $LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous remplaçons les fichiers packet_sheets du dossier &amp;quot;data&amp;quot; du client par ceux générés ici $RYZOM_HOME/code/ryzom/client/data/*.packed_sheets par la commande ''sheets_packer''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Créer un bnp pour le modèle de la peluche  ===&lt;br /&gt;
&lt;br /&gt;
Pour finir il faut copier le shape et la texture de la peluche dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
Cependant pour bien faire les choses, autant créer un fichier &amp;quot;.bnp&amp;quot; dédié.&lt;br /&gt;
Un fichier &amp;quot;.bnp&amp;quot; est une sorte de zip regroupant les différents fichiers shape, dds, txt, ou autres par thème.&lt;br /&gt;
&lt;br /&gt;
Créer on dossier &amp;quot;soft-toy&amp;quot;, copions y  tous les shapes et textures de nos peluche, à savoir pour le moment &amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot; et &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot; et créons un fichier BNP pour les contenur&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  bnp_make /p soft-toy&lt;br /&gt;
&lt;br /&gt;
La commande va créer un fichier &amp;quot;soft-toy,bnp&amp;quot; qui contiendra nos deux fichiers. A présent il faut le copier dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Tester IG  ===&lt;br /&gt;
&lt;br /&gt;
Relancer le serveur avec la commande ''shard start'' puis connectez vous avec votre client.&lt;br /&gt;
&lt;br /&gt;
Si tout c'est bien déroulé, en lançant votre client de jeu, vous pouvez créer une peluche dans votre inventaire avec la commande :&lt;br /&gt;
&lt;br /&gt;
  /a createItemInBag teddygubani 1 5 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{tag&amp;gt;Tag_a_ajouter}}&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_Peluche&amp;diff=972</id>
		<title>FR Peluche</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_Peluche&amp;diff=972"/>
				<updated>2014-07-25T20:37:00Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: /* Étape 5 : Mise à échelle du modèle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  Objets du mois : Déployer en Jeu des peluches « mobs d'atys »  =&lt;br /&gt;
&lt;br /&gt;
[[File:00-tuto-peluche.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Le but de ce tutorial est de montrer comment réaliser des peluches basées sur les modèles des animaux atysiens.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pré-requis pour modéliser uniquement la peluche :&lt;br /&gt;
&lt;br /&gt;
* Avoir installé les assets ryzom et configuré correctement les lecteurs (les outils NEL s'attendent à trouver les données des assets dans le dossier ( W:database ).&lt;br /&gt;
* Avoir installé 3DSMax et configuré le plugin  NEL ( Attention le plugin ne fonctionne qu'avec les version 32bits de 3DSmax et de la versions  9 à la version 2012).&lt;br /&gt;
* Conseillé mais non nécessaire : avoir installé l'outil NEL &amp;quot;''tga2dds.exe''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Pré-requis pour déployer la peluche sur un serveur de jeu :&lt;br /&gt;
&lt;br /&gt;
* Avoir compilé et installé un serveur de jeu et configuré un client pour l'utiliser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note : il est possible de tester cette peluche IG sans disposer d'un serveur de jeu via une astuce qui sera expliquée plus loin dans ce tutoriel.&lt;br /&gt;
&lt;br /&gt;
Quelques liens utiles pour ces pré-requis :&lt;br /&gt;
&lt;br /&gt;
* Liens de téléchargement des assets et outils : https:''ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows&lt;br /&gt;
* Configuration des lecteurs :https:''ryzomcore.atlassian.net/wiki/display/RC/How+to+set+up+the+Build+Pipeline&lt;br /&gt;
* Installation du plugin NEL de 3dsmax  :https:''ryzomcore.atlassian.net/wiki/display/RC/Installing+the+Max+Plugins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 1: choisir le modèle qui servira pour notre peluche  ==&lt;br /&gt;
&lt;br /&gt;
L'ensemble des modèles 3d de la faune de ryzom sont regroupés dans le dossier « W:\database\stuff\tryker\agents\monsters » par famille de créature. Dans ce tutorial nous allons utiliser le modèle du « Gubani » qui est situé dans le sous-dossier des créatures « chevalines » pour réaliser notre peluche :&lt;br /&gt;
&lt;br /&gt;
W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:01-tuto-peluche-dossiers-mobs.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 2 : Reprendre le modèle et se créer un dossier dédié pour travailler  ==&lt;br /&gt;
&lt;br /&gt;
Dans 3dsmax ouvrir le fichier  « W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max »&lt;br /&gt;
&lt;br /&gt;
Nous consultons la liste des fichiers  utilisés par le modèle, notamment les textures via le menu =&amp;gt; «Fichier» =&amp;gt;  « Manage » =&amp;gt; « Asset Tracking ». On note deux fichiers :&lt;br /&gt;
&lt;br /&gt;
* Le modèle 3d : « tr_mo_h12.max »&lt;br /&gt;
* La texture du gubani « ju_mo_h12.png »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:02-tuto-peluche-asset-tracking.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Le but ici étant de déployer des peluches monstres pour les objets du mois, nous allons donc se créer un dossier dédié pour nos futures peluches et respecter les conventions de nomination de ryzom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous allons donc créer un dossier « soft-toy » dans le dossier « W:\database\stuff\generique\agents\accessories ». Nous y sauvegarderons notre modèle en le renommant : ge_acc_teddy-gubani_01.max&lt;br /&gt;
&lt;br /&gt;
* le premier préfixe «ge_» du nom de fichier est pour spécifier l'écosystème, ici  __gé__nérique (tr : tryker, fy : fyros, etc...)&lt;br /&gt;
* le second préfixe du nom du fichier est pour spécifier le type de modèle ( hom : homin masculin, mo : monstre, wea weapon, etc... ), ici « acc » pour __acc__essoire. &lt;br /&gt;
* Enfin  le nom de notre modèle « teddy-gubani » que nous suffixons par un numéro afin de pouvoir créer plusieurs variantes de peluches gubani.&lt;br /&gt;
&lt;br /&gt;
Pour la texture, nous devrions aussi la copier dans « W:\database\stuff\generique\agents\_textures\accessories », mais nous allons faire plus simple. Nous allons la mettre dans le même dossier que le modèle 3d et la renommer en suivant la même convention : « ge_acc_teddy-gubani_01.png »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cependant, le moteur de ryzom ne sait afficher que les textures au format &amp;quot;.tga&amp;quot; ou &amp;quot;.dds&amp;quot;. TGA est un format brut sans compression ce qui le rend pratique pour l'édition mais moins performant en espace mémoire occupé. le format DDS est un format d'image compressée qui comme le jpep est destructeur. C'est le format utilisé en interne par ryzom pour minimiser l'espace des textures en mémoire. Avec votre éditeur préféré convertissez l'image &amp;quot;.png&amp;quot; en &amp;quot;.tga&amp;quot;. C'est elle-ci que nous garderons pour l'édition. Nous allons utiliser l'outil NEL &amp;quot;''tga2dds''&amp;quot; pour générer une image texture au format &amp;quot;.dds&amp;quot; pour le modèle 3d. C'est celle que nous utiliserons dans 3dsmax&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Si vous n'avez pas l'outil, vous pouvez garder la version &amp;quot;.tga&amp;quot;. Elle fonctionne pour les tests IG.&lt;br /&gt;
Dans le dossier soft-toy vous devriez avoir comme résultat :&lt;br /&gt;
&lt;br /&gt;
[[File:03-tuto-peluche-dossier-soft-toy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 3 : Nettoyer le modèle 3D sous 3dsmax  ==&lt;br /&gt;
&lt;br /&gt;
Le modèle 3D du monstre contient un squelette et toutes ce qu'il faut pour l'animer. Cela n'est pas nécessaire pour un accessoire peluche et surchargerait inutilement le modèle ryzom final. Nous allons dons les supprimer.&lt;br /&gt;
&lt;br /&gt;
[[File:04-tuto-peluche-animation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Sélectionner le modèle &amp;quot;Gubani&amp;quot; avec la souris. Dans le panneau latéral droit, sélectionner l'onglet &amp;quot;''modify''&amp;quot;. Vous devez voir apparaître le mesh dénommé &amp;quot;TR_MO_H12&amp;quot; et dans la pile des &amp;quot;''modifiers''&amp;quot; celui nommé &amp;quot;physique&amp;quot;. Nous allons le supprimer&lt;br /&gt;
&lt;br /&gt;
[[File:05-tuto-peluche-physique.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons ouvrir l'écran affichant les éléments de la scene via le menu &amp;quot;Tools&amp;quot;=&amp;gt; &amp;quot;New Scene Explorer&amp;quot; et supprimer tous les éléments constituant le squelette du modèle pour ne garder au final que le mesh de l'animal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:06-tuto-peluche-bones-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Au final nous n'avons plus qu'un seul élément dans notre &amp;quot;scène&amp;quot; : le mesh du gubani &amp;quot;TR_MO_H12&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Dans le panneau latéral droit, nous allons renommer ce mesh en &amp;quot;ge_acc_tedy-gubani_01&amp;quot;. C'est ce nom qui sera utilisé par l'export &amp;quot;NEL&amp;quot; pour nommer le fichier &amp;quot;shape&amp;quot; généré lors de l'export.&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele-fin.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 4 : Modifier le mapping des textures du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Dans cette partie, nous allons revoir la texturation du modèle 3d. A priori, il faudrait juste changer la texture de base «ju_mo_h12.png» pour pointer sur la notre «ge_acc_teddy-gubani_01.dds» (ou «.tga» à défaut) puis l'adapter comme nous le voulons visuellement. Cependant, cela va être un peu plus compliqué :&lt;br /&gt;
&lt;br /&gt;
Nous allons d'abord ouvrir l'écran &amp;quot;Material Editor&amp;quot; (1), puis sélectionner le seul matériel de la scène (2) en double cliquant dessus. Dans l'écran centrale sélectionnez le noeud dénommé &amp;quot;Map #1 Nel Multi Bitmap&amp;quot; en double cliquant dessus (3). Vous verrez alors s'afficher dans le panneau latéral de droite le détail de ses propriétés (4). Le &amp;quot;Nel Multi Bitmap&amp;quot; permet de définir 8 images différentes. Il ne s'agit pas de multi-texturing, mais de la possibilité de configurer plusieurs images de texture. Seule une est appliqué à un instant donné sur le modèle. Cela est utilisé pour les mobs pour spécifier une texture par écosystème et par certains objets environnementaux pour spécifier une texture différente par saison.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:08-tuto-peluche-texture.png|800px]]&lt;br /&gt;
Le slot ID 1 est utilisé pour les textures de l'écosystème tryker, le second (ID 2) pour l'écosystème fyros, le troisième (ID 3) pour l'écosystème zoraï et le quatrième (ID 4) pour l'écosystème des primes racines. Ne cherchez pas de slot matis, en bon esthètes, ils ont compris que la beauté résidait dans la nature zoraï et utilisent donc les textures zoraï pour tous leurs animaux. Notez qu'ici le gubani  n'étant présent qu'en jungle et en primes racines, seuls les slots 3 et 4 sont utilisés&lt;br /&gt;
&lt;br /&gt;
Le même système est aussi utilisé pour d'autres objets IG, comme les bâtiments.dans ce cas, les 4 slots correspondent aux quatre saisons. C'est ainsi que l'on peut noter la présence de neige sur certaines bâtisses zoraï en hiver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:09-tuto-peluche-multi-texture.png]]&lt;br /&gt;
&lt;br /&gt;
De notre coté nous n'allons pas utilisé ce mécanisme. Nous allons donc supprimé le &amp;quot;NEL Multi Bitmap&amp;quot; et le remplacer par un simple &amp;quot;Bitmap&amp;quot; en tirant avec la souris sur la sortie de la &amp;quot;''tTexture 1''&amp;quot; comme le montre l'image ci-dessus. En relâchant la souris, un menu contextuel apparait (2), sélectionner l'entrée &amp;quot;Bitmap&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:10-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Puis aller chercher notre image dans &amp;quot;W:databasestuffgeneriqueagents_texturesaccessoriessoft-toyge_acc_teddy-gubani_01.dds&amp;quot; (ou &amp;quot;.tga&amp;quot;).  &lt;br /&gt;
&lt;br /&gt;
[[File:11-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Répéter l'opération pour l'autre &amp;quot;Nel Multi Bitmap&amp;quot; qui référence la même image.&lt;br /&gt;
&lt;br /&gt;
==  Étape 5 : Mise à échelle du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Note modèle 3d est presque prêt à l'emploi. Cependant sa taille ne correspond pas à celle attendue d'une peluche. Si vous utilisez l'outil de mesure de 3dsmax vous verrez que le gubani  mesure plus 2m de haut. Le plus simple pour le mettre à la bonne taille est de charger un modèle d'homin afin d'avoir un comparatif visuel et s'assurer que la peluche peut être prise en main.&lt;br /&gt;
&lt;br /&gt;
On va donc insérer temporairement dans notre scène 3dsmax une référence vers un autre modèle 3d en passant par le menu Fichier (1) =&amp;gt; References (2) =&amp;gt; Xref Scène (3) et en cliquant sur le bouton Add (4) de la fenêtre qui apparait :&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Sélectionner alors le modèle d'homin &amp;quot;W:\database\stuff\generique\agents\actors\male\ge_hom_armor02.max&amp;quot; qui devrait apparaître dans votre scène 3d.&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref-02.png]]&lt;br /&gt;
&lt;br /&gt;
Mettre a échelle le modèle de gubani et le déplacer via les outils &amp;quot;Scale&amp;quot; et &amp;quot;Move&amp;quot; du menu contextuel apparaissant lorsqu'on clique sur le modèle avec le bouton droit de la souris. &lt;br /&gt;
&lt;br /&gt;
[[File:16-tuto-peluche-echelle.png]]&lt;br /&gt;
&lt;br /&gt;
Une fois la peluche à la bonne échelle, il ne reste plus qu'a supprimer la référence au modèle d'homin en repassant par le menu  Fichier =&amp;gt; References =&amp;gt; Xref Scene.&lt;br /&gt;
&lt;br /&gt;
Repositionner le modèle gubani à l'origine de la scène (x=0, y=0, z=0), car lorsqu'un objet est porté la position (0,0,0) se place au niveau de la main.&lt;br /&gt;
&lt;br /&gt;
==  Étape  6 : modifier la texture pour un rendu peluche  ==&lt;br /&gt;
&lt;br /&gt;
Au niveau de la texture, pour donner un effet peluche, laissez libre court à votre imagination&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-source.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ici j'ai édité l'image &amp;quot;ge_acc_teddy-gubani_01.tga&amp;quot; dans l'outil Gimp. J'ai utilisé le filtre &amp;quot;Artistiques &amp;gt; GIMPressioniste&amp;quot; en utilisant le modèle &amp;quot;canvas&amp;quot; pour obtenir un effet trame de tissu.&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-peluche.png]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'image sauvegardée, j'ai re-généré la texture au format &amp;quot;.dds&amp;quot; via la commande :&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Voila le résultat obtenu sur le modèle 3d dans 3dsmax :&lt;br /&gt;
&lt;br /&gt;
[[File:18-tuto-peluche-modele3d.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 7 : Export du shape  ==&lt;br /&gt;
&lt;br /&gt;
Il est temps de tester cette peluche en jeu. Pour cela il va falloir exporter le modèle en générant le fichier &amp;quot;shape&amp;quot; utilisé par le moteur Ryzom&lt;br /&gt;
&lt;br /&gt;
Si ce n'est pas déjà je cas, ajouter le bouton ''d'export NEL'' au panneau latéral droit en cliquant sur l'onglet &amp;quot;''utilities''&amp;quot;, puis &amp;quot;''More''&amp;quot; et en sélectionnant l'option &amp;quot;''NEL Export''&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-01.png]]&lt;br /&gt;
&lt;br /&gt;
Ensuite sélectionner le mesh du gubani puis cliquer sur le bouton &amp;quot;Export Model&amp;quot;. Il vous faut alors spécifier le dossier où sera crée le fichier &amp;quot;ge_acc_teddy-gubani-01.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-02.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 8 : Tester la peluche  IG  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, il faudrait ajouter le ''datasheet'' de la peluche au serveur de jeu et patcher le client. Cette méthode sera détaillée plus loin. Cependant il existe une solution de contournement si vous n'avez pas votre propre serveur de jeu pour réaliser ces opérations.&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu'une peluche n'est rien d'autre qu'une arme équipée. Ainsi nous pourrions remplacer le modèle de la dague par celui de notre gubani pour le tester sur le serveur officiel. Il existe une astuce simple pour cela. Le client de jeu recherche les modèles et textures dans le dossier &amp;quot;user&amp;quot; avant d'aller voir le dossier &amp;quot;data&amp;quot;. Il suffit de copier notre fichier shape et la texture associée dans le dossier &amp;quot;user&amp;quot;, puis de renommer le shape du gubani en celui de la dague : &amp;quot;GE_Wea_Dague.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A présent lorsque vous équiperez une dague IG, vous aurez en main notre peluche &amp;quot;gubani&amp;quot;.&lt;br /&gt;
Pour retrouver la dague d'origine, il suffit de supprimer le fichier shape du dossier &amp;quot;user&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:21-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En réalisant ce test vous pouvez noter une anomalie : la peluche est tenue par le pied, ce qui n'est pas forcément ce que nous voulons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : orientation et positionnement d'un objet porté  ==&lt;br /&gt;
&lt;br /&gt;
Le point de fixation d'un objet tenu en main correspond au point de coordonnée (0,0,0) de l'objet.Son orientation suit la règle suivante  :&lt;br /&gt;
&lt;br /&gt;
  l'axe X remonte le long de l'avant-bras ;&lt;br /&gt;
  l'axe Y part depuis le dos de la main vers l'extérieur ;&lt;br /&gt;
  l'axe Z pointe vers le haut de l'objet tenu fermement en main.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous réorientons la peluche gubani dans 3dsmax comme le montre l'image suivante : l'axe X sort du dos du gubani pour remonter le long du bras qui le portera. L'axe Z sort de la main et est donc dans le prolongement de la tête de la peluche :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe-3dsmax.png]]&lt;br /&gt;
  &lt;br /&gt;
Après réorientation du modèle gubani et réexportation du shape nous obtenons enfin une peluche qui est tenue par le tronc :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin sur les objets portés, je vous conseille de lire ce tutorial :  http:''khaganat.net/wikhan/fr:todo:dessiner:creation_d_un_objet_prehensible_en_jeu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : Créer l’icône pour l'inventaire et la barre d'actions  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut créer un icône pour l'affichage de l'item peluche gubani dans l'inventaire et dans la barre  d'actions.&lt;br /&gt;
Cet au icône au format tga doit faire 40x40 pixels avec un fond transparent. Nous le nommerons &amp;quot;icon_teddygubani.tga&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'icône de 40x40 pixels :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani.png|80px]]&lt;br /&gt;
&lt;br /&gt;
Pour des questions de performance, ces icônes ne sont pas stockés individuellement mais regroupés dans une seule image dénommée : &amp;quot;texture_interfaces_v3.tga&amp;quot;. Le fichier texte associé dénommé &amp;quot;texture_interfaces_v3.txt&amp;quot; liste les icones présents et leur position dans l'image :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte-txt.png]]&lt;br /&gt;
&lt;br /&gt;
le fichier texte utilise le format suivant pour chaque ligne :&lt;br /&gt;
&lt;br /&gt;
  NomFichierIcone u1 v1 u2 v2&lt;br /&gt;
&lt;br /&gt;
Avec :&lt;br /&gt;
* u1,v1 la position du point supérieur gauche de l'icône&lt;br /&gt;
* u2,v2 la position du coin inférieur droit de l'icône&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la différence des coordonnées en pixels, ces coordonnées qui utilisent la technique du UV Mapping en 3d ont leurs valeurs dans l’intervalle [0 .. 1]. la coordonnée (0,0) correspond au point supérieur gauche de l'image et (1,1) au point inférieur droit de l'image.&lt;br /&gt;
&lt;br /&gt;
Le passage d'un système à l'autre est simple. Soit (x1,y1) la position en pixels du coin haut gauche de notre icône dans l'image globale et (x2,y2) la position du point inférieur droit de l'icône dans l'image, alors :&lt;br /&gt;
* u1 = x1 / largeur-image&lt;br /&gt;
* v1 = y1 / hauteur-image&lt;br /&gt;
* u2 = x2 / largeur-image&lt;br /&gt;
* v2 = y2 / hauteur-image&lt;br /&gt;
&lt;br /&gt;
Sachant que la texture &amp;quot;texture_interfaces_v3.tga&amp;quot; fait 1024x1024 pixel, et que dans l'exemple l'icône &amp;quot;icon_teddygubani.tga&amp;quot; se situe à la position (x1=118,y1=798), que le point inférieur gauche étant à la position (x2=157,y2=837), le fichier txt contient donc la ligne : &lt;br /&gt;
&lt;br /&gt;
  icon_teddygubani.tga 0.115234375 0.779296875 0.1533203125 0.8173828125&lt;br /&gt;
  &lt;br /&gt;
Même si cela peut être ajouté à la main, la bonne méthode et d'utiliser l'outil dédié de NEL ''build_interface'' comme indiqué dans le tutorial https:''khaganat.net/wikhan/fr:todo:dessiner:creer_icone_objet qui recrée la texture globale et le fichier txt à partir d'un dossier contenant tous les icones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: L'ajout de l'icône ne suffit pas, il faut également créer le datasheet de l'objet peluche et spécifier dedans le nom de notre icône à utiliser comme nous le verrons plus loin dans ce tutorial. Au final nous obtenons le résultat suivant IG :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Etape 11 : créer le fichiers des noms  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A compléter.&lt;br /&gt;
&lt;br /&gt;
[[File:30-tuto-peluche-txtfile.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 12 : créer le datasheet   ==&lt;br /&gt;
&lt;br /&gt;
A la base, une peluche reste est un objet porté comme une arme. De fait le datasheet de la peluche est trs semblable à celui d'une arme une main, comme l'exemple de la dague ci-dessous.&lt;br /&gt;
&lt;br /&gt;
__icrm1pd.sitem  ( datasheet de la dague du réfugié ) :__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code xml&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.2 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;refugee dagger&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;refugee&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Drop or Sell&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;CraftPlan&amp;quot; Value=&amp;quot;bcrmea06.sbrick&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Saleable&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce qui change c'est :&lt;br /&gt;
&lt;br /&gt;
* la référénce au shape dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* la référence à l'icone utilisé dans la barre d'état et l'inventaire dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* les caractéristiques de base qui diffèrent d'une arme : pas de niveau requis, pas de brique de plan, etc..&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voila donc le datasheet de la peluche gubani  que nous nommerons &amp;quot;teddygubani.sitem&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code xml&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.7 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&amp;lt;/LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 13 : Déployer la peluche sur le serveur et le client de jeu   ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de déployer la peluche en jeu la méthode officielle consiste à utiliser la pipeline &amp;quot;build_gamedata&amp;quot; (cf. https:''ryzomcore.atlassian.net/wiki/display/RC/Gamedata+Build+Pipeline). Je vais vous proposer une méthode différente, où les opérations seront effectués à la mains, mais uniquement celles nécessaires à notre peluche :&lt;br /&gt;
&lt;br /&gt;
Nous avons besoin des fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* teddygubani.sitem ( le datasheet de la peluche gunabi )&lt;br /&gt;
* ge_acc_teddy-gubani_01.shape ( le modèle 3d NEL de la peluche )&lt;br /&gt;
* ge_acc_teddy-gubani_01.dds ( la texture du modèle 3d )&lt;br /&gt;
&lt;br /&gt;
De plus le déploiement de cette peluche va impacter les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* les fichiers &amp;quot;*.packed_sheets&amp;quot; utilisée par le serveur et le client qui sont une version compilé des datasheets&lt;br /&gt;
* le fichier &amp;quot;sheet_id.bin&amp;quot; qui est un index de tous les datasheets utilisés par le jeu&lt;br /&gt;
* le fichier &amp;quot;visual_slot.tab&amp;quot; qui liste les éléments affichables coté client&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, nous allons également créer un fichier &amp;quot;soft-toy.bnp&amp;quot; qui contiendra les shapes et les textures de toutes les futures peluches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour la suite des opérations nous partons du principe que notre serveur de jeu fonctionne sous linux, et que les variables d'envrionnement suivantes sont définies :&lt;br /&gt;
&lt;br /&gt;
* LEVELDESIGNPATH pointe sur le dossier des datas du level design&lt;br /&gt;
* RYZOM_HOME sur l'installation des sources du serveur&lt;br /&gt;
&lt;br /&gt;
===  Ajout du datasheet &amp;quot;teddygubani.sitem au serveur   ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Coté serveur nous allons créer un dossier dédié pour les datasheets des peluches et y placer celui du gubani :&lt;br /&gt;
&lt;br /&gt;
  $ mkdir $LEVELDESIGNPATHleveldesigngame_elementsitemsoft-toy&lt;br /&gt;
  $ cp teddygubani.sitem $LEVELDESIGNPATHleveldesigngame_elementsitemsoft-toy&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
===  Nettoyages préalables  ===&lt;br /&gt;
&lt;br /&gt;
===  Re-générer le fichier &amp;quot;sheet_id.bin&amp;quot;   ===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à regénérer le fichier d'index des datasheet via la commande &amp;quot;make_sheet_id&amp;quot;. Il reprend le fichier d'index existant et va le compléter avec les datasheets du dossier $RYZOM_LEVELPATH/leveldesign/game_element/sitem/soft-toy c'est-à-dire les datasheets de nos peluches&lt;br /&gt;
&lt;br /&gt;
  $ make_sheet_id -o$LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
&lt;br /&gt;
===  Re-générer les &amp;quot;*.packed_sheets&amp;quot; et &amp;quot;visual_slot.tab&amp;quot;  ===&lt;br /&gt;
&lt;br /&gt;
Il faut regénérer les &amp;quot;*.packed_sheets&amp;quot;.Ce sont les versions pré-compilées des datasheets :&lt;br /&gt;
&lt;br /&gt;
  $ sheets_packer&lt;br /&gt;
&lt;br /&gt;
Cette commande va également re-générer le fichier visual_slot.tab&lt;br /&gt;
&lt;br /&gt;
===  Copier les fichiers nécessaires coté client  ===&lt;br /&gt;
&lt;br /&gt;
* Nous copions le fichier &amp;quot;visual_slot.tab&amp;quot; généré dans le dossier courant dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous copions le fichier $LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous remplaçons les fichiers packet_sheets du dossier &amp;quot;data&amp;quot; du client par ceux générés ici $RYZOM_HOME/code/ryzom/client/data/*.packed_sheets par la commande ''sheets_packer''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Créer un bnp pour le modèle de la peluche  ===&lt;br /&gt;
&lt;br /&gt;
Pour finir il faut copier le shape et la texture de la peluche dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
Cependant pour bien faire les choses, autant créer un fichier &amp;quot;.bnp&amp;quot; dédié.&lt;br /&gt;
Un fichier &amp;quot;.bnp&amp;quot; est une sorte de zip regroupant les différents fichiers shape, dds, txt, ou autres par thème.&lt;br /&gt;
&lt;br /&gt;
Créer on dossier &amp;quot;soft-toy&amp;quot;, copions y  tous les shapes et textures de nos peluche, à savoir pour le moment &amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot; et &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot; et créons un fichier BNP pour les contenur&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  bnp_make /p soft-toy&lt;br /&gt;
&lt;br /&gt;
La commande va créer un fichier &amp;quot;soft-toy,bnp&amp;quot; qui contiendra nos deux fichiers. A présent il faut le copier dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Tester IG  ===&lt;br /&gt;
&lt;br /&gt;
Relancer le serveur avec la commande ''shard start'' puis connectez vous avec votre client.&lt;br /&gt;
&lt;br /&gt;
Si tout c'est bien déroulé, en lançant votre client de jeu, vous pouvez créer une peluche dans votre inventaire avec la commande :&lt;br /&gt;
&lt;br /&gt;
  /a createItemInBag teddygubani 1 5 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{tag&amp;gt;Tag_a_ajouter}}&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_Peluche&amp;diff=971</id>
		<title>FR Peluche</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_Peluche&amp;diff=971"/>
				<updated>2014-07-25T20:34:05Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: /* Étape 2 : Reprendre le modèle et se créer un dossier dédié pour travailler */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  Objets du mois : Déployer en Jeu des peluches « mobs d'atys »  =&lt;br /&gt;
&lt;br /&gt;
[[File:00-tuto-peluche.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Le but de ce tutorial est de montrer comment réaliser des peluches basées sur les modèles des animaux atysiens.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pré-requis pour modéliser uniquement la peluche :&lt;br /&gt;
&lt;br /&gt;
* Avoir installé les assets ryzom et configuré correctement les lecteurs (les outils NEL s'attendent à trouver les données des assets dans le dossier ( W:database ).&lt;br /&gt;
* Avoir installé 3DSMax et configuré le plugin  NEL ( Attention le plugin ne fonctionne qu'avec les version 32bits de 3DSmax et de la versions  9 à la version 2012).&lt;br /&gt;
* Conseillé mais non nécessaire : avoir installé l'outil NEL &amp;quot;''tga2dds.exe''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Pré-requis pour déployer la peluche sur un serveur de jeu :&lt;br /&gt;
&lt;br /&gt;
* Avoir compilé et installé un serveur de jeu et configuré un client pour l'utiliser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note : il est possible de tester cette peluche IG sans disposer d'un serveur de jeu via une astuce qui sera expliquée plus loin dans ce tutoriel.&lt;br /&gt;
&lt;br /&gt;
Quelques liens utiles pour ces pré-requis :&lt;br /&gt;
&lt;br /&gt;
* Liens de téléchargement des assets et outils : https:''ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows&lt;br /&gt;
* Configuration des lecteurs :https:''ryzomcore.atlassian.net/wiki/display/RC/How+to+set+up+the+Build+Pipeline&lt;br /&gt;
* Installation du plugin NEL de 3dsmax  :https:''ryzomcore.atlassian.net/wiki/display/RC/Installing+the+Max+Plugins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 1: choisir le modèle qui servira pour notre peluche  ==&lt;br /&gt;
&lt;br /&gt;
L'ensemble des modèles 3d de la faune de ryzom sont regroupés dans le dossier « W:\database\stuff\tryker\agents\monsters » par famille de créature. Dans ce tutorial nous allons utiliser le modèle du « Gubani » qui est situé dans le sous-dossier des créatures « chevalines » pour réaliser notre peluche :&lt;br /&gt;
&lt;br /&gt;
W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:01-tuto-peluche-dossiers-mobs.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 2 : Reprendre le modèle et se créer un dossier dédié pour travailler  ==&lt;br /&gt;
&lt;br /&gt;
Dans 3dsmax ouvrir le fichier  « W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max »&lt;br /&gt;
&lt;br /&gt;
Nous consultons la liste des fichiers  utilisés par le modèle, notamment les textures via le menu =&amp;gt; «Fichier» =&amp;gt;  « Manage » =&amp;gt; « Asset Tracking ». On note deux fichiers :&lt;br /&gt;
&lt;br /&gt;
* Le modèle 3d : « tr_mo_h12.max »&lt;br /&gt;
* La texture du gubani « ju_mo_h12.png »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:02-tuto-peluche-asset-tracking.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Le but ici étant de déployer des peluches monstres pour les objets du mois, nous allons donc se créer un dossier dédié pour nos futures peluches et respecter les conventions de nomination de ryzom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous allons donc créer un dossier « soft-toy » dans le dossier « W:\database\stuff\generique\agents\accessories ». Nous y sauvegarderons notre modèle en le renommant : ge_acc_teddy-gubani_01.max&lt;br /&gt;
&lt;br /&gt;
* le premier préfixe «ge_» du nom de fichier est pour spécifier l'écosystème, ici  __gé__nérique (tr : tryker, fy : fyros, etc...)&lt;br /&gt;
* le second préfixe du nom du fichier est pour spécifier le type de modèle ( hom : homin masculin, mo : monstre, wea weapon, etc... ), ici « acc » pour __acc__essoire. &lt;br /&gt;
* Enfin  le nom de notre modèle « teddy-gubani » que nous suffixons par un numéro afin de pouvoir créer plusieurs variantes de peluches gubani.&lt;br /&gt;
&lt;br /&gt;
Pour la texture, nous devrions aussi la copier dans « W:\database\stuff\generique\agents\_textures\accessories », mais nous allons faire plus simple. Nous allons la mettre dans le même dossier que le modèle 3d et la renommer en suivant la même convention : « ge_acc_teddy-gubani_01.png »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cependant, le moteur de ryzom ne sait afficher que les textures au format &amp;quot;.tga&amp;quot; ou &amp;quot;.dds&amp;quot;. TGA est un format brut sans compression ce qui le rend pratique pour l'édition mais moins performant en espace mémoire occupé. le format DDS est un format d'image compressée qui comme le jpep est destructeur. C'est le format utilisé en interne par ryzom pour minimiser l'espace des textures en mémoire. Avec votre éditeur préféré convertissez l'image &amp;quot;.png&amp;quot; en &amp;quot;.tga&amp;quot;. C'est elle-ci que nous garderons pour l'édition. Nous allons utiliser l'outil NEL &amp;quot;''tga2dds''&amp;quot; pour générer une image texture au format &amp;quot;.dds&amp;quot; pour le modèle 3d. C'est celle que nous utiliserons dans 3dsmax&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Si vous n'avez pas l'outil, vous pouvez garder la version &amp;quot;.tga&amp;quot;. Elle fonctionne pour les tests IG.&lt;br /&gt;
Dans le dossier soft-toy vous devriez avoir comme résultat :&lt;br /&gt;
&lt;br /&gt;
[[File:03-tuto-peluche-dossier-soft-toy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 3 : Nettoyer le modèle 3D sous 3dsmax  ==&lt;br /&gt;
&lt;br /&gt;
Le modèle 3D du monstre contient un squelette et toutes ce qu'il faut pour l'animer. Cela n'est pas nécessaire pour un accessoire peluche et surchargerait inutilement le modèle ryzom final. Nous allons dons les supprimer.&lt;br /&gt;
&lt;br /&gt;
[[File:04-tuto-peluche-animation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Sélectionner le modèle &amp;quot;Gubani&amp;quot; avec la souris. Dans le panneau latéral droit, sélectionner l'onglet &amp;quot;''modify''&amp;quot;. Vous devez voir apparaître le mesh dénommé &amp;quot;TR_MO_H12&amp;quot; et dans la pile des &amp;quot;''modifiers''&amp;quot; celui nommé &amp;quot;physique&amp;quot;. Nous allons le supprimer&lt;br /&gt;
&lt;br /&gt;
[[File:05-tuto-peluche-physique.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons ouvrir l'écran affichant les éléments de la scene via le menu &amp;quot;Tools&amp;quot;=&amp;gt; &amp;quot;New Scene Explorer&amp;quot; et supprimer tous les éléments constituant le squelette du modèle pour ne garder au final que le mesh de l'animal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:06-tuto-peluche-bones-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Au final nous n'avons plus qu'un seul élément dans notre &amp;quot;scène&amp;quot; : le mesh du gubani &amp;quot;TR_MO_H12&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Dans le panneau latéral droit, nous allons renommer ce mesh en &amp;quot;ge_acc_tedy-gubani_01&amp;quot;. C'est ce nom qui sera utilisé par l'export &amp;quot;NEL&amp;quot; pour nommer le fichier &amp;quot;shape&amp;quot; généré lors de l'export.&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele-fin.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 4 : Modifier le mapping des textures du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Dans cette partie, nous allons revoir la texturation du modèle 3d. A priori, il faudrait juste changer la texture de base «ju_mo_h12.png» pour pointer sur la notre «ge_acc_teddy-gubani_01.dds» (ou «.tga» à défaut) puis l'adapter comme nous le voulons visuellement. Cependant, cela va être un peu plus compliqué :&lt;br /&gt;
&lt;br /&gt;
Nous allons d'abord ouvrir l'écran &amp;quot;Material Editor&amp;quot; (1), puis sélectionner le seul matériel de la scène (2) en double cliquant dessus. Dans l'écran centrale sélectionnez le noeud dénommé &amp;quot;Map #1 Nel Multi Bitmap&amp;quot; en double cliquant dessus (3). Vous verrez alors s'afficher dans le panneau latéral de droite le détail de ses propriétés (4). Le &amp;quot;Nel Multi Bitmap&amp;quot; permet de définir 8 images différentes. Il ne s'agit pas de multi-texturing, mais de la possibilité de configurer plusieurs images de texture. Seule une est appliqué à un instant donné sur le modèle. Cela est utilisé pour les mobs pour spécifier une texture par écosystème et par certains objets environnementaux pour spécifier une texture différente par saison.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:08-tuto-peluche-texture.png|800px]]&lt;br /&gt;
Le slot ID 1 est utilisé pour les textures de l'écosystème tryker, le second (ID 2) pour l'écosystème fyros, le troisième (ID 3) pour l'écosystème zoraï et le quatrième (ID 4) pour l'écosystème des primes racines. Ne cherchez pas de slot matis, en bon esthètes, ils ont compris que la beauté résidait dans la nature zoraï et utilisent donc les textures zoraï pour tous leurs animaux. Notez qu'ici le gubani  n'étant présent qu'en jungle et en primes racines, seuls les slots 3 et 4 sont utilisés&lt;br /&gt;
&lt;br /&gt;
Le même système est aussi utilisé pour d'autres objets IG, comme les bâtiments.dans ce cas, les 4 slots correspondent aux quatre saisons. C'est ainsi que l'on peut noter la présence de neige sur certaines bâtisses zoraï en hiver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:09-tuto-peluche-multi-texture.png]]&lt;br /&gt;
&lt;br /&gt;
De notre coté nous n'allons pas utilisé ce mécanisme. Nous allons donc supprimé le &amp;quot;NEL Multi Bitmap&amp;quot; et le remplacer par un simple &amp;quot;Bitmap&amp;quot; en tirant avec la souris sur la sortie de la &amp;quot;''tTexture 1''&amp;quot; comme le montre l'image ci-dessus. En relâchant la souris, un menu contextuel apparait (2), sélectionner l'entrée &amp;quot;Bitmap&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:10-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Puis aller chercher notre image dans &amp;quot;W:databasestuffgeneriqueagents_texturesaccessoriessoft-toyge_acc_teddy-gubani_01.dds&amp;quot; (ou &amp;quot;.tga&amp;quot;).  &lt;br /&gt;
&lt;br /&gt;
[[File:11-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Répéter l'opération pour l'autre &amp;quot;Nel Multi Bitmap&amp;quot; qui référence la même image.&lt;br /&gt;
&lt;br /&gt;
==  Étape 5 : Mise à échelle du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Note modèle 3d est presque prêt à l'emploi. Cependant sa taille ne correspond pas à celle attendue d'une peluche. Si vous utilisez l'outil de mesure de 3dsmax vous verrez que le gubani  mesure plus 2m de haut. Le plus simple pour le mettre à la bonne taille est de charger un modèle d'homin afin d'avoir un comparatif visuel et s'assurer que la peluche peut être prise en main.&lt;br /&gt;
&lt;br /&gt;
On va donc insérer temporairement dans notre scène 3dsmax une référence vers un autre modèle 3d en passant par le menu Fichier (1) =&amp;gt; References (2) =&amp;gt; Xref Scène (3) et en cliquant sur le bouton Add (4) de la fenêtre qui apparait :&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Sélectionner alors le modèle d'homin &amp;quot;W:databasestuffgeneriqueagentsactorsmalege_hom_armor02.max&amp;quot; qui devrait apparaître dans votre scène 3d.&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref-02.png]]&lt;br /&gt;
&lt;br /&gt;
Mettre a échelle le modèle de gubani et le déplacer via les outils &amp;quot;Scale&amp;quot; et &amp;quot;Move&amp;quot; du menu contextuel apparaissant lorsqu'on clique sur le modèle avec le bouton droit de la souris. &lt;br /&gt;
&lt;br /&gt;
[[File:16-tuto-peluche-echelle.png]]&lt;br /&gt;
&lt;br /&gt;
Une fois la peluche à la bonne échelle, il ne reste plus qu'a supprimer la référence au modèle d'homin en repassant par le menu  Fichier =&amp;gt; References =&amp;gt; Xref Scene.&lt;br /&gt;
&lt;br /&gt;
Repositionner le modèle gubani à l'origine de la scène (x=0, y=0, z=0), car lorsqu'un objet est porté la position (0,0,0) se place au niveau de la main.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape  6 : modifier la texture pour un rendu peluche  ==&lt;br /&gt;
&lt;br /&gt;
Au niveau de la texture, pour donner un effet peluche, laissez libre court à votre imagination&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-source.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ici j'ai édité l'image &amp;quot;ge_acc_teddy-gubani_01.tga&amp;quot; dans l'outil Gimp. J'ai utilisé le filtre &amp;quot;Artistiques &amp;gt; GIMPressioniste&amp;quot; en utilisant le modèle &amp;quot;canvas&amp;quot; pour obtenir un effet trame de tissu.&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-peluche.png]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'image sauvegardée, j'ai re-généré la texture au format &amp;quot;.dds&amp;quot; via la commande :&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Voila le résultat obtenu sur le modèle 3d dans 3dsmax :&lt;br /&gt;
&lt;br /&gt;
[[File:18-tuto-peluche-modele3d.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 7 : Export du shape  ==&lt;br /&gt;
&lt;br /&gt;
Il est temps de tester cette peluche en jeu. Pour cela il va falloir exporter le modèle en générant le fichier &amp;quot;shape&amp;quot; utilisé par le moteur Ryzom&lt;br /&gt;
&lt;br /&gt;
Si ce n'est pas déjà je cas, ajouter le bouton ''d'export NEL'' au panneau latéral droit en cliquant sur l'onglet &amp;quot;''utilities''&amp;quot;, puis &amp;quot;''More''&amp;quot; et en sélectionnant l'option &amp;quot;''NEL Export''&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-01.png]]&lt;br /&gt;
&lt;br /&gt;
Ensuite sélectionner le mesh du gubani puis cliquer sur le bouton &amp;quot;Export Model&amp;quot;. Il vous faut alors spécifier le dossier où sera crée le fichier &amp;quot;ge_acc_teddy-gubani-01.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-02.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 8 : Tester la peluche  IG  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, il faudrait ajouter le ''datasheet'' de la peluche au serveur de jeu et patcher le client. Cette méthode sera détaillée plus loin. Cependant il existe une solution de contournement si vous n'avez pas votre propre serveur de jeu pour réaliser ces opérations.&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu'une peluche n'est rien d'autre qu'une arme équipée. Ainsi nous pourrions remplacer le modèle de la dague par celui de notre gubani pour le tester sur le serveur officiel. Il existe une astuce simple pour cela. Le client de jeu recherche les modèles et textures dans le dossier &amp;quot;user&amp;quot; avant d'aller voir le dossier &amp;quot;data&amp;quot;. Il suffit de copier notre fichier shape et la texture associée dans le dossier &amp;quot;user&amp;quot;, puis de renommer le shape du gubani en celui de la dague : &amp;quot;GE_Wea_Dague.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A présent lorsque vous équiperez une dague IG, vous aurez en main notre peluche &amp;quot;gubani&amp;quot;.&lt;br /&gt;
Pour retrouver la dague d'origine, il suffit de supprimer le fichier shape du dossier &amp;quot;user&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:21-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En réalisant ce test vous pouvez noter une anomalie : la peluche est tenue par le pied, ce qui n'est pas forcément ce que nous voulons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : orientation et positionnement d'un objet porté  ==&lt;br /&gt;
&lt;br /&gt;
Le point de fixation d'un objet tenu en main correspond au point de coordonnée (0,0,0) de l'objet.Son orientation suit la règle suivante  :&lt;br /&gt;
&lt;br /&gt;
  l'axe X remonte le long de l'avant-bras ;&lt;br /&gt;
  l'axe Y part depuis le dos de la main vers l'extérieur ;&lt;br /&gt;
  l'axe Z pointe vers le haut de l'objet tenu fermement en main.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous réorientons la peluche gubani dans 3dsmax comme le montre l'image suivante : l'axe X sort du dos du gubani pour remonter le long du bras qui le portera. L'axe Z sort de la main et est donc dans le prolongement de la tête de la peluche :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe-3dsmax.png]]&lt;br /&gt;
  &lt;br /&gt;
Après réorientation du modèle gubani et réexportation du shape nous obtenons enfin une peluche qui est tenue par le tronc :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin sur les objets portés, je vous conseille de lire ce tutorial :  http:''khaganat.net/wikhan/fr:todo:dessiner:creation_d_un_objet_prehensible_en_jeu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : Créer l’icône pour l'inventaire et la barre d'actions  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut créer un icône pour l'affichage de l'item peluche gubani dans l'inventaire et dans la barre  d'actions.&lt;br /&gt;
Cet au icône au format tga doit faire 40x40 pixels avec un fond transparent. Nous le nommerons &amp;quot;icon_teddygubani.tga&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'icône de 40x40 pixels :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani.png|80px]]&lt;br /&gt;
&lt;br /&gt;
Pour des questions de performance, ces icônes ne sont pas stockés individuellement mais regroupés dans une seule image dénommée : &amp;quot;texture_interfaces_v3.tga&amp;quot;. Le fichier texte associé dénommé &amp;quot;texture_interfaces_v3.txt&amp;quot; liste les icones présents et leur position dans l'image :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte-txt.png]]&lt;br /&gt;
&lt;br /&gt;
le fichier texte utilise le format suivant pour chaque ligne :&lt;br /&gt;
&lt;br /&gt;
  NomFichierIcone u1 v1 u2 v2&lt;br /&gt;
&lt;br /&gt;
Avec :&lt;br /&gt;
* u1,v1 la position du point supérieur gauche de l'icône&lt;br /&gt;
* u2,v2 la position du coin inférieur droit de l'icône&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la différence des coordonnées en pixels, ces coordonnées qui utilisent la technique du UV Mapping en 3d ont leurs valeurs dans l’intervalle [0 .. 1]. la coordonnée (0,0) correspond au point supérieur gauche de l'image et (1,1) au point inférieur droit de l'image.&lt;br /&gt;
&lt;br /&gt;
Le passage d'un système à l'autre est simple. Soit (x1,y1) la position en pixels du coin haut gauche de notre icône dans l'image globale et (x2,y2) la position du point inférieur droit de l'icône dans l'image, alors :&lt;br /&gt;
* u1 = x1 / largeur-image&lt;br /&gt;
* v1 = y1 / hauteur-image&lt;br /&gt;
* u2 = x2 / largeur-image&lt;br /&gt;
* v2 = y2 / hauteur-image&lt;br /&gt;
&lt;br /&gt;
Sachant que la texture &amp;quot;texture_interfaces_v3.tga&amp;quot; fait 1024x1024 pixel, et que dans l'exemple l'icône &amp;quot;icon_teddygubani.tga&amp;quot; se situe à la position (x1=118,y1=798), que le point inférieur gauche étant à la position (x2=157,y2=837), le fichier txt contient donc la ligne : &lt;br /&gt;
&lt;br /&gt;
  icon_teddygubani.tga 0.115234375 0.779296875 0.1533203125 0.8173828125&lt;br /&gt;
  &lt;br /&gt;
Même si cela peut être ajouté à la main, la bonne méthode et d'utiliser l'outil dédié de NEL ''build_interface'' comme indiqué dans le tutorial https:''khaganat.net/wikhan/fr:todo:dessiner:creer_icone_objet qui recrée la texture globale et le fichier txt à partir d'un dossier contenant tous les icones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: L'ajout de l'icône ne suffit pas, il faut également créer le datasheet de l'objet peluche et spécifier dedans le nom de notre icône à utiliser comme nous le verrons plus loin dans ce tutorial. Au final nous obtenons le résultat suivant IG :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Etape 11 : créer le fichiers des noms  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A compléter.&lt;br /&gt;
&lt;br /&gt;
[[File:30-tuto-peluche-txtfile.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 12 : créer le datasheet   ==&lt;br /&gt;
&lt;br /&gt;
A la base, une peluche reste est un objet porté comme une arme. De fait le datasheet de la peluche est trs semblable à celui d'une arme une main, comme l'exemple de la dague ci-dessous.&lt;br /&gt;
&lt;br /&gt;
__icrm1pd.sitem  ( datasheet de la dague du réfugié ) :__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code xml&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.2 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;refugee dagger&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;refugee&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Drop or Sell&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;CraftPlan&amp;quot; Value=&amp;quot;bcrmea06.sbrick&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Saleable&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce qui change c'est :&lt;br /&gt;
&lt;br /&gt;
* la référénce au shape dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* la référence à l'icone utilisé dans la barre d'état et l'inventaire dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* les caractéristiques de base qui diffèrent d'une arme : pas de niveau requis, pas de brique de plan, etc..&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voila donc le datasheet de la peluche gubani  que nous nommerons &amp;quot;teddygubani.sitem&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code xml&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.7 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&amp;lt;/LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 13 : Déployer la peluche sur le serveur et le client de jeu   ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de déployer la peluche en jeu la méthode officielle consiste à utiliser la pipeline &amp;quot;build_gamedata&amp;quot; (cf. https:''ryzomcore.atlassian.net/wiki/display/RC/Gamedata+Build+Pipeline). Je vais vous proposer une méthode différente, où les opérations seront effectués à la mains, mais uniquement celles nécessaires à notre peluche :&lt;br /&gt;
&lt;br /&gt;
Nous avons besoin des fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* teddygubani.sitem ( le datasheet de la peluche gunabi )&lt;br /&gt;
* ge_acc_teddy-gubani_01.shape ( le modèle 3d NEL de la peluche )&lt;br /&gt;
* ge_acc_teddy-gubani_01.dds ( la texture du modèle 3d )&lt;br /&gt;
&lt;br /&gt;
De plus le déploiement de cette peluche va impacter les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* les fichiers &amp;quot;*.packed_sheets&amp;quot; utilisée par le serveur et le client qui sont une version compilé des datasheets&lt;br /&gt;
* le fichier &amp;quot;sheet_id.bin&amp;quot; qui est un index de tous les datasheets utilisés par le jeu&lt;br /&gt;
* le fichier &amp;quot;visual_slot.tab&amp;quot; qui liste les éléments affichables coté client&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, nous allons également créer un fichier &amp;quot;soft-toy.bnp&amp;quot; qui contiendra les shapes et les textures de toutes les futures peluches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour la suite des opérations nous partons du principe que notre serveur de jeu fonctionne sous linux, et que les variables d'envrionnement suivantes sont définies :&lt;br /&gt;
&lt;br /&gt;
* LEVELDESIGNPATH pointe sur le dossier des datas du level design&lt;br /&gt;
* RYZOM_HOME sur l'installation des sources du serveur&lt;br /&gt;
&lt;br /&gt;
===  Ajout du datasheet &amp;quot;teddygubani.sitem au serveur   ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Coté serveur nous allons créer un dossier dédié pour les datasheets des peluches et y placer celui du gubani :&lt;br /&gt;
&lt;br /&gt;
  $ mkdir $LEVELDESIGNPATHleveldesigngame_elementsitemsoft-toy&lt;br /&gt;
  $ cp teddygubani.sitem $LEVELDESIGNPATHleveldesigngame_elementsitemsoft-toy&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
===  Nettoyages préalables  ===&lt;br /&gt;
&lt;br /&gt;
===  Re-générer le fichier &amp;quot;sheet_id.bin&amp;quot;   ===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à regénérer le fichier d'index des datasheet via la commande &amp;quot;make_sheet_id&amp;quot;. Il reprend le fichier d'index existant et va le compléter avec les datasheets du dossier $RYZOM_LEVELPATH/leveldesign/game_element/sitem/soft-toy c'est-à-dire les datasheets de nos peluches&lt;br /&gt;
&lt;br /&gt;
  $ make_sheet_id -o$LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
&lt;br /&gt;
===  Re-générer les &amp;quot;*.packed_sheets&amp;quot; et &amp;quot;visual_slot.tab&amp;quot;  ===&lt;br /&gt;
&lt;br /&gt;
Il faut regénérer les &amp;quot;*.packed_sheets&amp;quot;.Ce sont les versions pré-compilées des datasheets :&lt;br /&gt;
&lt;br /&gt;
  $ sheets_packer&lt;br /&gt;
&lt;br /&gt;
Cette commande va également re-générer le fichier visual_slot.tab&lt;br /&gt;
&lt;br /&gt;
===  Copier les fichiers nécessaires coté client  ===&lt;br /&gt;
&lt;br /&gt;
* Nous copions le fichier &amp;quot;visual_slot.tab&amp;quot; généré dans le dossier courant dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous copions le fichier $LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous remplaçons les fichiers packet_sheets du dossier &amp;quot;data&amp;quot; du client par ceux générés ici $RYZOM_HOME/code/ryzom/client/data/*.packed_sheets par la commande ''sheets_packer''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Créer un bnp pour le modèle de la peluche  ===&lt;br /&gt;
&lt;br /&gt;
Pour finir il faut copier le shape et la texture de la peluche dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
Cependant pour bien faire les choses, autant créer un fichier &amp;quot;.bnp&amp;quot; dédié.&lt;br /&gt;
Un fichier &amp;quot;.bnp&amp;quot; est une sorte de zip regroupant les différents fichiers shape, dds, txt, ou autres par thème.&lt;br /&gt;
&lt;br /&gt;
Créer on dossier &amp;quot;soft-toy&amp;quot;, copions y  tous les shapes et textures de nos peluche, à savoir pour le moment &amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot; et &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot; et créons un fichier BNP pour les contenur&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  bnp_make /p soft-toy&lt;br /&gt;
&lt;br /&gt;
La commande va créer un fichier &amp;quot;soft-toy,bnp&amp;quot; qui contiendra nos deux fichiers. A présent il faut le copier dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Tester IG  ===&lt;br /&gt;
&lt;br /&gt;
Relancer le serveur avec la commande ''shard start'' puis connectez vous avec votre client.&lt;br /&gt;
&lt;br /&gt;
Si tout c'est bien déroulé, en lançant votre client de jeu, vous pouvez créer une peluche dans votre inventaire avec la commande :&lt;br /&gt;
&lt;br /&gt;
  /a createItemInBag teddygubani 1 5 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{tag&amp;gt;Tag_a_ajouter}}&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_Peluche&amp;diff=970</id>
		<title>FR Peluche</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_Peluche&amp;diff=970"/>
				<updated>2014-07-25T20:31:56Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: /* Étape 1: choisir le modèle qui servira pour notre peluche */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  Objets du mois : Déployer en Jeu des peluches « mobs d'atys »  =&lt;br /&gt;
&lt;br /&gt;
[[File:00-tuto-peluche.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Le but de ce tutorial est de montrer comment réaliser des peluches basées sur les modèles des animaux atysiens.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pré-requis pour modéliser uniquement la peluche :&lt;br /&gt;
&lt;br /&gt;
* Avoir installé les assets ryzom et configuré correctement les lecteurs (les outils NEL s'attendent à trouver les données des assets dans le dossier ( W:database ).&lt;br /&gt;
* Avoir installé 3DSMax et configuré le plugin  NEL ( Attention le plugin ne fonctionne qu'avec les version 32bits de 3DSmax et de la versions  9 à la version 2012).&lt;br /&gt;
* Conseillé mais non nécessaire : avoir installé l'outil NEL &amp;quot;''tga2dds.exe''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Pré-requis pour déployer la peluche sur un serveur de jeu :&lt;br /&gt;
&lt;br /&gt;
* Avoir compilé et installé un serveur de jeu et configuré un client pour l'utiliser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note : il est possible de tester cette peluche IG sans disposer d'un serveur de jeu via une astuce qui sera expliquée plus loin dans ce tutoriel.&lt;br /&gt;
&lt;br /&gt;
Quelques liens utiles pour ces pré-requis :&lt;br /&gt;
&lt;br /&gt;
* Liens de téléchargement des assets et outils : https:''ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows&lt;br /&gt;
* Configuration des lecteurs :https:''ryzomcore.atlassian.net/wiki/display/RC/How+to+set+up+the+Build+Pipeline&lt;br /&gt;
* Installation du plugin NEL de 3dsmax  :https:''ryzomcore.atlassian.net/wiki/display/RC/Installing+the+Max+Plugins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 1: choisir le modèle qui servira pour notre peluche  ==&lt;br /&gt;
&lt;br /&gt;
L'ensemble des modèles 3d de la faune de ryzom sont regroupés dans le dossier « W:\database\stuff\tryker\agents\monsters » par famille de créature. Dans ce tutorial nous allons utiliser le modèle du « Gubani » qui est situé dans le sous-dossier des créatures « chevalines » pour réaliser notre peluche :&lt;br /&gt;
&lt;br /&gt;
W:\database\stuff\tryker\agents\monsters\cheval\h12tr_mo_h12.max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:01-tuto-peluche-dossiers-mobs.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 2 : Reprendre le modèle et se créer un dossier dédié pour travailler  ==&lt;br /&gt;
&lt;br /&gt;
Dans 3ds max ouvrir le fichier  « W:databasestufftrykeragentsmonsterschevalh12tr_mo_h12.max »&lt;br /&gt;
&lt;br /&gt;
Nous consultons la liste des fichiers  utilisés par le modèle, notamment les textures via le menu =&amp;gt; «Fichier» =&amp;gt;  « Manage » =&amp;gt; « Asset Tracking ». On note deux fichiers :&lt;br /&gt;
&lt;br /&gt;
* Le modèle 3d : « tr_mo_h12.max »&lt;br /&gt;
* La texture du gubani « ju_mo_h12.png »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:02-tuto-peluche-asset-tracking.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Le but ici étant de déployer des peluches monstres pour les objets du mois, nous allons donc se créer un dossier dédié pour nos futures peluches et respecter les conventions de nomination de ryzom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous allons donc créer un dossier « soft-toy » dans le dossier « W:databasestuffgeneriqueagentsaccessories ». Nous y sauvegarderons notre modèle en le renommant : ge_acc_teddy-gubani_01.max&lt;br /&gt;
&lt;br /&gt;
* le premier préfixe «ge_» du nom de fichier est pour spécifier l'écosystème, ici  __gé__nérique (tr : tryker, fy : fyros, etc...)&lt;br /&gt;
* le second préfixe du nom du fichier est pour spécifier le type de modèle ( hom : homin masculin, mo : monstre, wea weapon, etc... ), ici « acc » pour __acc__essoire. &lt;br /&gt;
* Enfin  le nom de notre modèle « teddy-gubani » que nous suffixons par un numéro afin de pouvoir créer plusieurs variantes de peluches gubani.&lt;br /&gt;
&lt;br /&gt;
Pour la texture, nous devrions aussi la copier dans « W:databasestuffgeneriqueagents_texturesaccessories », mais nous allons faire plus simple. Nous allons la mettre dans le même dossier que le modèle 3d et la renommer en suivant la même convention : « ge_acc_teddy-gubani_01.png »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cependant, le moteur de ryzom ne sait afficher que les textures au format &amp;quot;.tga&amp;quot; ou &amp;quot;.dds&amp;quot;. TGA est un format brut sans compression ce qui le rend pratique pour l'édition mais moins performant en espace mémoire occupé. le format DDS est un format d'image compressée qui comme le jpep est destructeur. C'est le format utilisé en interne par ryzom pour minimiser l'espace des textures en mémoire. Avec votre éditeur préféré convertissez l'image &amp;quot;.png&amp;quot; en &amp;quot;.tga&amp;quot;. C'est elle-ci que nous garderons pour l'édition. Nous allons utiliser l'outil NEL &amp;quot;''tga2dds''&amp;quot; pour générer une image texture au format &amp;quot;.dds&amp;quot; pour le modèle 3d. C'est celle que nous utiliserons dans 3dsmax&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Si vous n'avez pas l'outil, vous pouvez garder la version &amp;quot;.tga&amp;quot;. Elle fonctionne pour les tests IG.&lt;br /&gt;
Dans le dossier soft-toy vous devriez avoir comme résultat :&lt;br /&gt;
&lt;br /&gt;
[[File:03-tuto-peluche-dossier-soft-toy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 3 : Nettoyer le modèle 3D sous 3dsmax  ==&lt;br /&gt;
&lt;br /&gt;
Le modèle 3D du monstre contient un squelette et toutes ce qu'il faut pour l'animer. Cela n'est pas nécessaire pour un accessoire peluche et surchargerait inutilement le modèle ryzom final. Nous allons dons les supprimer.&lt;br /&gt;
&lt;br /&gt;
[[File:04-tuto-peluche-animation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Sélectionner le modèle &amp;quot;Gubani&amp;quot; avec la souris. Dans le panneau latéral droit, sélectionner l'onglet &amp;quot;''modify''&amp;quot;. Vous devez voir apparaître le mesh dénommé &amp;quot;TR_MO_H12&amp;quot; et dans la pile des &amp;quot;''modifiers''&amp;quot; celui nommé &amp;quot;physique&amp;quot;. Nous allons le supprimer&lt;br /&gt;
&lt;br /&gt;
[[File:05-tuto-peluche-physique.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons ouvrir l'écran affichant les éléments de la scene via le menu &amp;quot;Tools&amp;quot;=&amp;gt; &amp;quot;New Scene Explorer&amp;quot; et supprimer tous les éléments constituant le squelette du modèle pour ne garder au final que le mesh de l'animal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:06-tuto-peluche-bones-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Au final nous n'avons plus qu'un seul élément dans notre &amp;quot;scène&amp;quot; : le mesh du gubani &amp;quot;TR_MO_H12&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Dans le panneau latéral droit, nous allons renommer ce mesh en &amp;quot;ge_acc_tedy-gubani_01&amp;quot;. C'est ce nom qui sera utilisé par l'export &amp;quot;NEL&amp;quot; pour nommer le fichier &amp;quot;shape&amp;quot; généré lors de l'export.&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele-fin.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 4 : Modifier le mapping des textures du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Dans cette partie, nous allons revoir la texturation du modèle 3d. A priori, il faudrait juste changer la texture de base «ju_mo_h12.png» pour pointer sur la notre «ge_acc_teddy-gubani_01.dds» (ou «.tga» à défaut) puis l'adapter comme nous le voulons visuellement. Cependant, cela va être un peu plus compliqué :&lt;br /&gt;
&lt;br /&gt;
Nous allons d'abord ouvrir l'écran &amp;quot;Material Editor&amp;quot; (1), puis sélectionner le seul matériel de la scène (2) en double cliquant dessus. Dans l'écran centrale sélectionnez le noeud dénommé &amp;quot;Map #1 Nel Multi Bitmap&amp;quot; en double cliquant dessus (3). Vous verrez alors s'afficher dans le panneau latéral de droite le détail de ses propriétés (4). Le &amp;quot;Nel Multi Bitmap&amp;quot; permet de définir 8 images différentes. Il ne s'agit pas de multi-texturing, mais de la possibilité de configurer plusieurs images de texture. Seule une est appliqué à un instant donné sur le modèle. Cela est utilisé pour les mobs pour spécifier une texture par écosystème et par certains objets environnementaux pour spécifier une texture différente par saison.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:08-tuto-peluche-texture.png|800px]]&lt;br /&gt;
Le slot ID 1 est utilisé pour les textures de l'écosystème tryker, le second (ID 2) pour l'écosystème fyros, le troisième (ID 3) pour l'écosystème zoraï et le quatrième (ID 4) pour l'écosystème des primes racines. Ne cherchez pas de slot matis, en bon esthètes, ils ont compris que la beauté résidait dans la nature zoraï et utilisent donc les textures zoraï pour tous leurs animaux. Notez qu'ici le gubani  n'étant présent qu'en jungle et en primes racines, seuls les slots 3 et 4 sont utilisés&lt;br /&gt;
&lt;br /&gt;
Le même système est aussi utilisé pour d'autres objets IG, comme les bâtiments.dans ce cas, les 4 slots correspondent aux quatre saisons. C'est ainsi que l'on peut noter la présence de neige sur certaines bâtisses zoraï en hiver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:09-tuto-peluche-multi-texture.png]]&lt;br /&gt;
&lt;br /&gt;
De notre coté nous n'allons pas utilisé ce mécanisme. Nous allons donc supprimé le &amp;quot;NEL Multi Bitmap&amp;quot; et le remplacer par un simple &amp;quot;Bitmap&amp;quot; en tirant avec la souris sur la sortie de la &amp;quot;''tTexture 1''&amp;quot; comme le montre l'image ci-dessus. En relâchant la souris, un menu contextuel apparait (2), sélectionner l'entrée &amp;quot;Bitmap&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:10-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Puis aller chercher notre image dans &amp;quot;W:databasestuffgeneriqueagents_texturesaccessoriessoft-toyge_acc_teddy-gubani_01.dds&amp;quot; (ou &amp;quot;.tga&amp;quot;).  &lt;br /&gt;
&lt;br /&gt;
[[File:11-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Répéter l'opération pour l'autre &amp;quot;Nel Multi Bitmap&amp;quot; qui référence la même image.&lt;br /&gt;
&lt;br /&gt;
==  Étape 5 : Mise à échelle du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Note modèle 3d est presque prêt à l'emploi. Cependant sa taille ne correspond pas à celle attendue d'une peluche. Si vous utilisez l'outil de mesure de 3dsmax vous verrez que le gubani  mesure plus 2m de haut. Le plus simple pour le mettre à la bonne taille est de charger un modèle d'homin afin d'avoir un comparatif visuel et s'assurer que la peluche peut être prise en main.&lt;br /&gt;
&lt;br /&gt;
On va donc insérer temporairement dans notre scène 3dsmax une référence vers un autre modèle 3d en passant par le menu Fichier (1) =&amp;gt; References (2) =&amp;gt; Xref Scène (3) et en cliquant sur le bouton Add (4) de la fenêtre qui apparait :&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Sélectionner alors le modèle d'homin &amp;quot;W:databasestuffgeneriqueagentsactorsmalege_hom_armor02.max&amp;quot; qui devrait apparaître dans votre scène 3d.&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref-02.png]]&lt;br /&gt;
&lt;br /&gt;
Mettre a échelle le modèle de gubani et le déplacer via les outils &amp;quot;Scale&amp;quot; et &amp;quot;Move&amp;quot; du menu contextuel apparaissant lorsqu'on clique sur le modèle avec le bouton droit de la souris. &lt;br /&gt;
&lt;br /&gt;
[[File:16-tuto-peluche-echelle.png]]&lt;br /&gt;
&lt;br /&gt;
Une fois la peluche à la bonne échelle, il ne reste plus qu'a supprimer la référence au modèle d'homin en repassant par le menu  Fichier =&amp;gt; References =&amp;gt; Xref Scene.&lt;br /&gt;
&lt;br /&gt;
Repositionner le modèle gubani à l'origine de la scène (x=0, y=0, z=0), car lorsqu'un objet est porté la position (0,0,0) se place au niveau de la main.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape  6 : modifier la texture pour un rendu peluche  ==&lt;br /&gt;
&lt;br /&gt;
Au niveau de la texture, pour donner un effet peluche, laissez libre court à votre imagination&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-source.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ici j'ai édité l'image &amp;quot;ge_acc_teddy-gubani_01.tga&amp;quot; dans l'outil Gimp. J'ai utilisé le filtre &amp;quot;Artistiques &amp;gt; GIMPressioniste&amp;quot; en utilisant le modèle &amp;quot;canvas&amp;quot; pour obtenir un effet trame de tissu.&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-peluche.png]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'image sauvegardée, j'ai re-généré la texture au format &amp;quot;.dds&amp;quot; via la commande :&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Voila le résultat obtenu sur le modèle 3d dans 3dsmax :&lt;br /&gt;
&lt;br /&gt;
[[File:18-tuto-peluche-modele3d.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 7 : Export du shape  ==&lt;br /&gt;
&lt;br /&gt;
Il est temps de tester cette peluche en jeu. Pour cela il va falloir exporter le modèle en générant le fichier &amp;quot;shape&amp;quot; utilisé par le moteur Ryzom&lt;br /&gt;
&lt;br /&gt;
Si ce n'est pas déjà je cas, ajouter le bouton ''d'export NEL'' au panneau latéral droit en cliquant sur l'onglet &amp;quot;''utilities''&amp;quot;, puis &amp;quot;''More''&amp;quot; et en sélectionnant l'option &amp;quot;''NEL Export''&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-01.png]]&lt;br /&gt;
&lt;br /&gt;
Ensuite sélectionner le mesh du gubani puis cliquer sur le bouton &amp;quot;Export Model&amp;quot;. Il vous faut alors spécifier le dossier où sera crée le fichier &amp;quot;ge_acc_teddy-gubani-01.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-02.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 8 : Tester la peluche  IG  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, il faudrait ajouter le ''datasheet'' de la peluche au serveur de jeu et patcher le client. Cette méthode sera détaillée plus loin. Cependant il existe une solution de contournement si vous n'avez pas votre propre serveur de jeu pour réaliser ces opérations.&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu'une peluche n'est rien d'autre qu'une arme équipée. Ainsi nous pourrions remplacer le modèle de la dague par celui de notre gubani pour le tester sur le serveur officiel. Il existe une astuce simple pour cela. Le client de jeu recherche les modèles et textures dans le dossier &amp;quot;user&amp;quot; avant d'aller voir le dossier &amp;quot;data&amp;quot;. Il suffit de copier notre fichier shape et la texture associée dans le dossier &amp;quot;user&amp;quot;, puis de renommer le shape du gubani en celui de la dague : &amp;quot;GE_Wea_Dague.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A présent lorsque vous équiperez une dague IG, vous aurez en main notre peluche &amp;quot;gubani&amp;quot;.&lt;br /&gt;
Pour retrouver la dague d'origine, il suffit de supprimer le fichier shape du dossier &amp;quot;user&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:21-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En réalisant ce test vous pouvez noter une anomalie : la peluche est tenue par le pied, ce qui n'est pas forcément ce que nous voulons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : orientation et positionnement d'un objet porté  ==&lt;br /&gt;
&lt;br /&gt;
Le point de fixation d'un objet tenu en main correspond au point de coordonnée (0,0,0) de l'objet.Son orientation suit la règle suivante  :&lt;br /&gt;
&lt;br /&gt;
  l'axe X remonte le long de l'avant-bras ;&lt;br /&gt;
  l'axe Y part depuis le dos de la main vers l'extérieur ;&lt;br /&gt;
  l'axe Z pointe vers le haut de l'objet tenu fermement en main.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous réorientons la peluche gubani dans 3dsmax comme le montre l'image suivante : l'axe X sort du dos du gubani pour remonter le long du bras qui le portera. L'axe Z sort de la main et est donc dans le prolongement de la tête de la peluche :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe-3dsmax.png]]&lt;br /&gt;
  &lt;br /&gt;
Après réorientation du modèle gubani et réexportation du shape nous obtenons enfin une peluche qui est tenue par le tronc :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin sur les objets portés, je vous conseille de lire ce tutorial :  http:''khaganat.net/wikhan/fr:todo:dessiner:creation_d_un_objet_prehensible_en_jeu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : Créer l’icône pour l'inventaire et la barre d'actions  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut créer un icône pour l'affichage de l'item peluche gubani dans l'inventaire et dans la barre  d'actions.&lt;br /&gt;
Cet au icône au format tga doit faire 40x40 pixels avec un fond transparent. Nous le nommerons &amp;quot;icon_teddygubani.tga&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'icône de 40x40 pixels :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani.png|80px]]&lt;br /&gt;
&lt;br /&gt;
Pour des questions de performance, ces icônes ne sont pas stockés individuellement mais regroupés dans une seule image dénommée : &amp;quot;texture_interfaces_v3.tga&amp;quot;. Le fichier texte associé dénommé &amp;quot;texture_interfaces_v3.txt&amp;quot; liste les icones présents et leur position dans l'image :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte-txt.png]]&lt;br /&gt;
&lt;br /&gt;
le fichier texte utilise le format suivant pour chaque ligne :&lt;br /&gt;
&lt;br /&gt;
  NomFichierIcone u1 v1 u2 v2&lt;br /&gt;
&lt;br /&gt;
Avec :&lt;br /&gt;
* u1,v1 la position du point supérieur gauche de l'icône&lt;br /&gt;
* u2,v2 la position du coin inférieur droit de l'icône&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la différence des coordonnées en pixels, ces coordonnées qui utilisent la technique du UV Mapping en 3d ont leurs valeurs dans l’intervalle [0 .. 1]. la coordonnée (0,0) correspond au point supérieur gauche de l'image et (1,1) au point inférieur droit de l'image.&lt;br /&gt;
&lt;br /&gt;
Le passage d'un système à l'autre est simple. Soit (x1,y1) la position en pixels du coin haut gauche de notre icône dans l'image globale et (x2,y2) la position du point inférieur droit de l'icône dans l'image, alors :&lt;br /&gt;
* u1 = x1 / largeur-image&lt;br /&gt;
* v1 = y1 / hauteur-image&lt;br /&gt;
* u2 = x2 / largeur-image&lt;br /&gt;
* v2 = y2 / hauteur-image&lt;br /&gt;
&lt;br /&gt;
Sachant que la texture &amp;quot;texture_interfaces_v3.tga&amp;quot; fait 1024x1024 pixel, et que dans l'exemple l'icône &amp;quot;icon_teddygubani.tga&amp;quot; se situe à la position (x1=118,y1=798), que le point inférieur gauche étant à la position (x2=157,y2=837), le fichier txt contient donc la ligne : &lt;br /&gt;
&lt;br /&gt;
  icon_teddygubani.tga 0.115234375 0.779296875 0.1533203125 0.8173828125&lt;br /&gt;
  &lt;br /&gt;
Même si cela peut être ajouté à la main, la bonne méthode et d'utiliser l'outil dédié de NEL ''build_interface'' comme indiqué dans le tutorial https:''khaganat.net/wikhan/fr:todo:dessiner:creer_icone_objet qui recrée la texture globale et le fichier txt à partir d'un dossier contenant tous les icones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: L'ajout de l'icône ne suffit pas, il faut également créer le datasheet de l'objet peluche et spécifier dedans le nom de notre icône à utiliser comme nous le verrons plus loin dans ce tutorial. Au final nous obtenons le résultat suivant IG :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Etape 11 : créer le fichiers des noms  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A compléter.&lt;br /&gt;
&lt;br /&gt;
[[File:30-tuto-peluche-txtfile.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 12 : créer le datasheet   ==&lt;br /&gt;
&lt;br /&gt;
A la base, une peluche reste est un objet porté comme une arme. De fait le datasheet de la peluche est trs semblable à celui d'une arme une main, comme l'exemple de la dague ci-dessous.&lt;br /&gt;
&lt;br /&gt;
__icrm1pd.sitem  ( datasheet de la dague du réfugié ) :__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code xml&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.2 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;refugee dagger&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;refugee&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Drop or Sell&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;CraftPlan&amp;quot; Value=&amp;quot;bcrmea06.sbrick&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Saleable&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce qui change c'est :&lt;br /&gt;
&lt;br /&gt;
* la référénce au shape dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* la référence à l'icone utilisé dans la barre d'état et l'inventaire dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* les caractéristiques de base qui diffèrent d'une arme : pas de niveau requis, pas de brique de plan, etc..&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voila donc le datasheet de la peluche gubani  que nous nommerons &amp;quot;teddygubani.sitem&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code xml&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.7 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&amp;lt;/LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 13 : Déployer la peluche sur le serveur et le client de jeu   ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de déployer la peluche en jeu la méthode officielle consiste à utiliser la pipeline &amp;quot;build_gamedata&amp;quot; (cf. https:''ryzomcore.atlassian.net/wiki/display/RC/Gamedata+Build+Pipeline). Je vais vous proposer une méthode différente, où les opérations seront effectués à la mains, mais uniquement celles nécessaires à notre peluche :&lt;br /&gt;
&lt;br /&gt;
Nous avons besoin des fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* teddygubani.sitem ( le datasheet de la peluche gunabi )&lt;br /&gt;
* ge_acc_teddy-gubani_01.shape ( le modèle 3d NEL de la peluche )&lt;br /&gt;
* ge_acc_teddy-gubani_01.dds ( la texture du modèle 3d )&lt;br /&gt;
&lt;br /&gt;
De plus le déploiement de cette peluche va impacter les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* les fichiers &amp;quot;*.packed_sheets&amp;quot; utilisée par le serveur et le client qui sont une version compilé des datasheets&lt;br /&gt;
* le fichier &amp;quot;sheet_id.bin&amp;quot; qui est un index de tous les datasheets utilisés par le jeu&lt;br /&gt;
* le fichier &amp;quot;visual_slot.tab&amp;quot; qui liste les éléments affichables coté client&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, nous allons également créer un fichier &amp;quot;soft-toy.bnp&amp;quot; qui contiendra les shapes et les textures de toutes les futures peluches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour la suite des opérations nous partons du principe que notre serveur de jeu fonctionne sous linux, et que les variables d'envrionnement suivantes sont définies :&lt;br /&gt;
&lt;br /&gt;
* LEVELDESIGNPATH pointe sur le dossier des datas du level design&lt;br /&gt;
* RYZOM_HOME sur l'installation des sources du serveur&lt;br /&gt;
&lt;br /&gt;
===  Ajout du datasheet &amp;quot;teddygubani.sitem au serveur   ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Coté serveur nous allons créer un dossier dédié pour les datasheets des peluches et y placer celui du gubani :&lt;br /&gt;
&lt;br /&gt;
  $ mkdir $LEVELDESIGNPATHleveldesigngame_elementsitemsoft-toy&lt;br /&gt;
  $ cp teddygubani.sitem $LEVELDESIGNPATHleveldesigngame_elementsitemsoft-toy&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
===  Nettoyages préalables  ===&lt;br /&gt;
&lt;br /&gt;
===  Re-générer le fichier &amp;quot;sheet_id.bin&amp;quot;   ===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à regénérer le fichier d'index des datasheet via la commande &amp;quot;make_sheet_id&amp;quot;. Il reprend le fichier d'index existant et va le compléter avec les datasheets du dossier $RYZOM_LEVELPATH/leveldesign/game_element/sitem/soft-toy c'est-à-dire les datasheets de nos peluches&lt;br /&gt;
&lt;br /&gt;
  $ make_sheet_id -o$LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
&lt;br /&gt;
===  Re-générer les &amp;quot;*.packed_sheets&amp;quot; et &amp;quot;visual_slot.tab&amp;quot;  ===&lt;br /&gt;
&lt;br /&gt;
Il faut regénérer les &amp;quot;*.packed_sheets&amp;quot;.Ce sont les versions pré-compilées des datasheets :&lt;br /&gt;
&lt;br /&gt;
  $ sheets_packer&lt;br /&gt;
&lt;br /&gt;
Cette commande va également re-générer le fichier visual_slot.tab&lt;br /&gt;
&lt;br /&gt;
===  Copier les fichiers nécessaires coté client  ===&lt;br /&gt;
&lt;br /&gt;
* Nous copions le fichier &amp;quot;visual_slot.tab&amp;quot; généré dans le dossier courant dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous copions le fichier $LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous remplaçons les fichiers packet_sheets du dossier &amp;quot;data&amp;quot; du client par ceux générés ici $RYZOM_HOME/code/ryzom/client/data/*.packed_sheets par la commande ''sheets_packer''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Créer un bnp pour le modèle de la peluche  ===&lt;br /&gt;
&lt;br /&gt;
Pour finir il faut copier le shape et la texture de la peluche dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
Cependant pour bien faire les choses, autant créer un fichier &amp;quot;.bnp&amp;quot; dédié.&lt;br /&gt;
Un fichier &amp;quot;.bnp&amp;quot; est une sorte de zip regroupant les différents fichiers shape, dds, txt, ou autres par thème.&lt;br /&gt;
&lt;br /&gt;
Créer on dossier &amp;quot;soft-toy&amp;quot;, copions y  tous les shapes et textures de nos peluche, à savoir pour le moment &amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot; et &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot; et créons un fichier BNP pour les contenur&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  bnp_make /p soft-toy&lt;br /&gt;
&lt;br /&gt;
La commande va créer un fichier &amp;quot;soft-toy,bnp&amp;quot; qui contiendra nos deux fichiers. A présent il faut le copier dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Tester IG  ===&lt;br /&gt;
&lt;br /&gt;
Relancer le serveur avec la commande ''shard start'' puis connectez vous avec votre client.&lt;br /&gt;
&lt;br /&gt;
Si tout c'est bien déroulé, en lançant votre client de jeu, vous pouvez créer une peluche dans votre inventaire avec la commande :&lt;br /&gt;
&lt;br /&gt;
  /a createItemInBag teddygubani 1 5 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{tag&amp;gt;Tag_a_ajouter}}&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_Peluche&amp;diff=969</id>
		<title>FR Peluche</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=FR_Peluche&amp;diff=969"/>
				<updated>2014-07-25T19:38:52Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: Created page with &amp;quot;=  Objets du mois : Déployer en Jeu des peluches « mobs d'atys »  =  300px  Le but de ce tutorial est de montrer comment réaliser des peluches...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  Objets du mois : Déployer en Jeu des peluches « mobs d'atys »  =&lt;br /&gt;
&lt;br /&gt;
[[File:00-tuto-peluche.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Le but de ce tutorial est de montrer comment réaliser des peluches basées sur les modèles des animaux atysiens.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pré-requis pour modéliser uniquement la peluche :&lt;br /&gt;
&lt;br /&gt;
* Avoir installé les assets ryzom et configuré correctement les lecteurs (les outils NEL s'attendent à trouver les données des assets dans le dossier ( W:database ).&lt;br /&gt;
* Avoir installé 3DSMax et configuré le plugin  NEL ( Attention le plugin ne fonctionne qu'avec les version 32bits de 3DSmax et de la versions  9 à la version 2012).&lt;br /&gt;
* Conseillé mais non nécessaire : avoir installé l'outil NEL &amp;quot;''tga2dds.exe''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Pré-requis pour déployer la peluche sur un serveur de jeu :&lt;br /&gt;
&lt;br /&gt;
* Avoir compilé et installé un serveur de jeu et configuré un client pour l'utiliser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note : il est possible de tester cette peluche IG sans disposer d'un serveur de jeu via une astuce qui sera expliquée plus loin dans ce tutoriel.&lt;br /&gt;
&lt;br /&gt;
Quelques liens utiles pour ces pré-requis :&lt;br /&gt;
&lt;br /&gt;
* Liens de téléchargement des assets et outils : https:''ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows&lt;br /&gt;
* Configuration des lecteurs :https:''ryzomcore.atlassian.net/wiki/display/RC/How+to+set+up+the+Build+Pipeline&lt;br /&gt;
* Installation du plugin NEL de 3dsmax  :https:''ryzomcore.atlassian.net/wiki/display/RC/Installing+the+Max+Plugins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 1: choisir le modèle qui servira pour notre peluche  ==&lt;br /&gt;
&lt;br /&gt;
L'ensemble des modèles 3d de la faune de ryzom sont regroupés dans le dossier « W:databasestufftrykeragentsmonsters » par famille de créature. Dans ce tutorial nous allons utiliser le modèle du « Gubani » qui est situé dans le sous-dossier des créatures « chevalines » pour réaliser notre peluche :&lt;br /&gt;
&lt;br /&gt;
W:databasestufftrykeragentsmonsterschevalh12tr_mo_h12.max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:01-tuto-peluche-dossiers-mobs.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==  Étape 2 : Reprendre le modèle et se créer un dossier dédié pour travailler  ==&lt;br /&gt;
&lt;br /&gt;
Dans 3ds max ouvrir le fichier  « W:databasestufftrykeragentsmonsterschevalh12tr_mo_h12.max »&lt;br /&gt;
&lt;br /&gt;
Nous consultons la liste des fichiers  utilisés par le modèle, notamment les textures via le menu =&amp;gt; «Fichier» =&amp;gt;  « Manage » =&amp;gt; « Asset Tracking ». On note deux fichiers :&lt;br /&gt;
&lt;br /&gt;
* Le modèle 3d : « tr_mo_h12.max »&lt;br /&gt;
* La texture du gubani « ju_mo_h12.png »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:02-tuto-peluche-asset-tracking.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Le but ici étant de déployer des peluches monstres pour les objets du mois, nous allons donc se créer un dossier dédié pour nos futures peluches et respecter les conventions de nomination de ryzom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous allons donc créer un dossier « soft-toy » dans le dossier « W:databasestuffgeneriqueagentsaccessories ». Nous y sauvegarderons notre modèle en le renommant : ge_acc_teddy-gubani_01.max&lt;br /&gt;
&lt;br /&gt;
* le premier préfixe «ge_» du nom de fichier est pour spécifier l'écosystème, ici  __gé__nérique (tr : tryker, fy : fyros, etc...)&lt;br /&gt;
* le second préfixe du nom du fichier est pour spécifier le type de modèle ( hom : homin masculin, mo : monstre, wea weapon, etc... ), ici « acc » pour __acc__essoire. &lt;br /&gt;
* Enfin  le nom de notre modèle « teddy-gubani » que nous suffixons par un numéro afin de pouvoir créer plusieurs variantes de peluches gubani.&lt;br /&gt;
&lt;br /&gt;
Pour la texture, nous devrions aussi la copier dans « W:databasestuffgeneriqueagents_texturesaccessories », mais nous allons faire plus simple. Nous allons la mettre dans le même dossier que le modèle 3d et la renommer en suivant la même convention : « ge_acc_teddy-gubani_01.png »&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cependant, le moteur de ryzom ne sait afficher que les textures au format &amp;quot;.tga&amp;quot; ou &amp;quot;.dds&amp;quot;. TGA est un format brut sans compression ce qui le rend pratique pour l'édition mais moins performant en espace mémoire occupé. le format DDS est un format d'image compressée qui comme le jpep est destructeur. C'est le format utilisé en interne par ryzom pour minimiser l'espace des textures en mémoire. Avec votre éditeur préféré convertissez l'image &amp;quot;.png&amp;quot; en &amp;quot;.tga&amp;quot;. C'est elle-ci que nous garderons pour l'édition. Nous allons utiliser l'outil NEL &amp;quot;''tga2dds''&amp;quot; pour générer une image texture au format &amp;quot;.dds&amp;quot; pour le modèle 3d. C'est celle que nous utiliserons dans 3dsmax&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Si vous n'avez pas l'outil, vous pouvez garder la version &amp;quot;.tga&amp;quot;. Elle fonctionne pour les tests IG.&lt;br /&gt;
Dans le dossier soft-toy vous devriez avoir comme résultat :&lt;br /&gt;
&lt;br /&gt;
[[File:03-tuto-peluche-dossier-soft-toy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 3 : Nettoyer le modèle 3D sous 3dsmax  ==&lt;br /&gt;
&lt;br /&gt;
Le modèle 3D du monstre contient un squelette et toutes ce qu'il faut pour l'animer. Cela n'est pas nécessaire pour un accessoire peluche et surchargerait inutilement le modèle ryzom final. Nous allons dons les supprimer.&lt;br /&gt;
&lt;br /&gt;
[[File:04-tuto-peluche-animation.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Sélectionner le modèle &amp;quot;Gubani&amp;quot; avec la souris. Dans le panneau latéral droit, sélectionner l'onglet &amp;quot;''modify''&amp;quot;. Vous devez voir apparaître le mesh dénommé &amp;quot;TR_MO_H12&amp;quot; et dans la pile des &amp;quot;''modifiers''&amp;quot; celui nommé &amp;quot;physique&amp;quot;. Nous allons le supprimer&lt;br /&gt;
&lt;br /&gt;
[[File:05-tuto-peluche-physique.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons ouvrir l'écran affichant les éléments de la scene via le menu &amp;quot;Tools&amp;quot;=&amp;gt; &amp;quot;New Scene Explorer&amp;quot; et supprimer tous les éléments constituant le squelette du modèle pour ne garder au final que le mesh de l'animal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:06-tuto-peluche-bones-01.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Au final nous n'avons plus qu'un seul élément dans notre &amp;quot;scène&amp;quot; : le mesh du gubani &amp;quot;TR_MO_H12&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Dans le panneau latéral droit, nous allons renommer ce mesh en &amp;quot;ge_acc_tedy-gubani_01&amp;quot;. C'est ce nom qui sera utilisé par l'export &amp;quot;NEL&amp;quot; pour nommer le fichier &amp;quot;shape&amp;quot; généré lors de l'export.&lt;br /&gt;
&lt;br /&gt;
[[File:07-tuto-peluche-nettoyer-modele-fin.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 4 : Modifier le mapping des textures du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Dans cette partie, nous allons revoir la texturation du modèle 3d. A priori, il faudrait juste changer la texture de base «ju_mo_h12.png» pour pointer sur la notre «ge_acc_teddy-gubani_01.dds» (ou «.tga» à défaut) puis l'adapter comme nous le voulons visuellement. Cependant, cela va être un peu plus compliqué :&lt;br /&gt;
&lt;br /&gt;
Nous allons d'abord ouvrir l'écran &amp;quot;Material Editor&amp;quot; (1), puis sélectionner le seul matériel de la scène (2) en double cliquant dessus. Dans l'écran centrale sélectionnez le noeud dénommé &amp;quot;Map #1 Nel Multi Bitmap&amp;quot; en double cliquant dessus (3). Vous verrez alors s'afficher dans le panneau latéral de droite le détail de ses propriétés (4). Le &amp;quot;Nel Multi Bitmap&amp;quot; permet de définir 8 images différentes. Il ne s'agit pas de multi-texturing, mais de la possibilité de configurer plusieurs images de texture. Seule une est appliqué à un instant donné sur le modèle. Cela est utilisé pour les mobs pour spécifier une texture par écosystème et par certains objets environnementaux pour spécifier une texture différente par saison.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:08-tuto-peluche-texture.png|800px]]&lt;br /&gt;
Le slot ID 1 est utilisé pour les textures de l'écosystème tryker, le second (ID 2) pour l'écosystème fyros, le troisième (ID 3) pour l'écosystème zoraï et le quatrième (ID 4) pour l'écosystème des primes racines. Ne cherchez pas de slot matis, en bon esthètes, ils ont compris que la beauté résidait dans la nature zoraï et utilisent donc les textures zoraï pour tous leurs animaux. Notez qu'ici le gubani  n'étant présent qu'en jungle et en primes racines, seuls les slots 3 et 4 sont utilisés&lt;br /&gt;
&lt;br /&gt;
Le même système est aussi utilisé pour d'autres objets IG, comme les bâtiments.dans ce cas, les 4 slots correspondent aux quatre saisons. C'est ainsi que l'on peut noter la présence de neige sur certaines bâtisses zoraï en hiver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:09-tuto-peluche-multi-texture.png]]&lt;br /&gt;
&lt;br /&gt;
De notre coté nous n'allons pas utilisé ce mécanisme. Nous allons donc supprimé le &amp;quot;NEL Multi Bitmap&amp;quot; et le remplacer par un simple &amp;quot;Bitmap&amp;quot; en tirant avec la souris sur la sortie de la &amp;quot;''tTexture 1''&amp;quot; comme le montre l'image ci-dessus. En relâchant la souris, un menu contextuel apparait (2), sélectionner l'entrée &amp;quot;Bitmap&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:10-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Puis aller chercher notre image dans &amp;quot;W:databasestuffgeneriqueagents_texturesaccessoriessoft-toyge_acc_teddy-gubani_01.dds&amp;quot; (ou &amp;quot;.tga&amp;quot;).  &lt;br /&gt;
&lt;br /&gt;
[[File:11-tuto-peluche-bitmap.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Répéter l'opération pour l'autre &amp;quot;Nel Multi Bitmap&amp;quot; qui référence la même image.&lt;br /&gt;
&lt;br /&gt;
==  Étape 5 : Mise à échelle du modèle  ==&lt;br /&gt;
&lt;br /&gt;
Note modèle 3d est presque prêt à l'emploi. Cependant sa taille ne correspond pas à celle attendue d'une peluche. Si vous utilisez l'outil de mesure de 3dsmax vous verrez que le gubani  mesure plus 2m de haut. Le plus simple pour le mettre à la bonne taille est de charger un modèle d'homin afin d'avoir un comparatif visuel et s'assurer que la peluche peut être prise en main.&lt;br /&gt;
&lt;br /&gt;
On va donc insérer temporairement dans notre scène 3dsmax une référence vers un autre modèle 3d en passant par le menu Fichier (1) =&amp;gt; References (2) =&amp;gt; Xref Scène (3) et en cliquant sur le bouton Add (4) de la fenêtre qui apparait :&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Sélectionner alors le modèle d'homin &amp;quot;W:databasestuffgeneriqueagentsactorsmalege_hom_armor02.max&amp;quot; qui devrait apparaître dans votre scène 3d.&lt;br /&gt;
&lt;br /&gt;
[[File:15-tuto-peluche-xref-02.png]]&lt;br /&gt;
&lt;br /&gt;
Mettre a échelle le modèle de gubani et le déplacer via les outils &amp;quot;Scale&amp;quot; et &amp;quot;Move&amp;quot; du menu contextuel apparaissant lorsqu'on clique sur le modèle avec le bouton droit de la souris. &lt;br /&gt;
&lt;br /&gt;
[[File:16-tuto-peluche-echelle.png]]&lt;br /&gt;
&lt;br /&gt;
Une fois la peluche à la bonne échelle, il ne reste plus qu'a supprimer la référence au modèle d'homin en repassant par le menu  Fichier =&amp;gt; References =&amp;gt; Xref Scene.&lt;br /&gt;
&lt;br /&gt;
Repositionner le modèle gubani à l'origine de la scène (x=0, y=0, z=0), car lorsqu'un objet est porté la position (0,0,0) se place au niveau de la main.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape  6 : modifier la texture pour un rendu peluche  ==&lt;br /&gt;
&lt;br /&gt;
Au niveau de la texture, pour donner un effet peluche, laissez libre court à votre imagination&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-source.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ici j'ai édité l'image &amp;quot;ge_acc_teddy-gubani_01.tga&amp;quot; dans l'outil Gimp. J'ai utilisé le filtre &amp;quot;Artistiques &amp;gt; GIMPressioniste&amp;quot; en utilisant le modèle &amp;quot;canvas&amp;quot; pour obtenir un effet trame de tissu.&lt;br /&gt;
&lt;br /&gt;
[[File:17-tuto-peluche-texture-peluche.png]]&lt;br /&gt;
&lt;br /&gt;
Une fois l'image sauvegardée, j'ai re-généré la texture au format &amp;quot;.dds&amp;quot; via la commande :&lt;br /&gt;
&lt;br /&gt;
  tga2dds ge_acc_teddy-gubani_01.tga&lt;br /&gt;
&lt;br /&gt;
Voila le résultat obtenu sur le modèle 3d dans 3dsmax :&lt;br /&gt;
&lt;br /&gt;
[[File:18-tuto-peluche-modele3d.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 7 : Export du shape  ==&lt;br /&gt;
&lt;br /&gt;
Il est temps de tester cette peluche en jeu. Pour cela il va falloir exporter le modèle en générant le fichier &amp;quot;shape&amp;quot; utilisé par le moteur Ryzom&lt;br /&gt;
&lt;br /&gt;
Si ce n'est pas déjà je cas, ajouter le bouton ''d'export NEL'' au panneau latéral droit en cliquant sur l'onglet &amp;quot;''utilities''&amp;quot;, puis &amp;quot;''More''&amp;quot; et en sélectionnant l'option &amp;quot;''NEL Export''&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-01.png]]&lt;br /&gt;
&lt;br /&gt;
Ensuite sélectionner le mesh du gubani puis cliquer sur le bouton &amp;quot;Export Model&amp;quot;. Il vous faut alors spécifier le dossier où sera crée le fichier &amp;quot;ge_acc_teddy-gubani-01.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:20-tuto-peluche-export-nel-02.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 8 : Tester la peluche  IG  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, il faudrait ajouter le ''datasheet'' de la peluche au serveur de jeu et patcher le client. Cette méthode sera détaillée plus loin. Cependant il existe une solution de contournement si vous n'avez pas votre propre serveur de jeu pour réaliser ces opérations.&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu'une peluche n'est rien d'autre qu'une arme équipée. Ainsi nous pourrions remplacer le modèle de la dague par celui de notre gubani pour le tester sur le serveur officiel. Il existe une astuce simple pour cela. Le client de jeu recherche les modèles et textures dans le dossier &amp;quot;user&amp;quot; avant d'aller voir le dossier &amp;quot;data&amp;quot;. Il suffit de copier notre fichier shape et la texture associée dans le dossier &amp;quot;user&amp;quot;, puis de renommer le shape du gubani en celui de la dague : &amp;quot;GE_Wea_Dague.shape&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A présent lorsque vous équiperez une dague IG, vous aurez en main notre peluche &amp;quot;gubani&amp;quot;.&lt;br /&gt;
Pour retrouver la dague d'origine, il suffit de supprimer le fichier shape du dossier &amp;quot;user&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:21-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En réalisant ce test vous pouvez noter une anomalie : la peluche est tenue par le pied, ce qui n'est pas forcément ce que nous voulons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : orientation et positionnement d'un objet porté  ==&lt;br /&gt;
&lt;br /&gt;
Le point de fixation d'un objet tenu en main correspond au point de coordonnée (0,0,0) de l'objet.Son orientation suit la règle suivante  :&lt;br /&gt;
&lt;br /&gt;
  l'axe X remonte le long de l'avant-bras ;&lt;br /&gt;
  l'axe Y part depuis le dos de la main vers l'extérieur ;&lt;br /&gt;
  l'axe Z pointe vers le haut de l'objet tenu fermement en main.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous réorientons la peluche gubani dans 3dsmax comme le montre l'image suivante : l'axe X sort du dos du gubani pour remonter le long du bras qui le portera. L'axe Z sort de la main et est donc dans le prolongement de la tête de la peluche :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe-3dsmax.png]]&lt;br /&gt;
  &lt;br /&gt;
Après réorientation du modèle gubani et réexportation du shape nous obtenons enfin une peluche qui est tenue par le tronc :&lt;br /&gt;
&lt;br /&gt;
[[File:22-gubani-peluche-axe.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Pour aller plus loin sur les objets portés, je vous conseille de lire ce tutorial :  http:''khaganat.net/wikhan/fr:todo:dessiner:creation_d_un_objet_prehensible_en_jeu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 9 : Créer l’icône pour l'inventaire et la barre d'actions  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il faut créer un icône pour l'affichage de l'item peluche gubani dans l'inventaire et dans la barre  d'actions.&lt;br /&gt;
Cet au icône au format tga doit faire 40x40 pixels avec un fond transparent. Nous le nommerons &amp;quot;icon_teddygubani.tga&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'icône de 40x40 pixels :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani.png|80px]]&lt;br /&gt;
&lt;br /&gt;
Pour des questions de performance, ces icônes ne sont pas stockés individuellement mais regroupés dans une seule image dénommée : &amp;quot;texture_interfaces_v3.tga&amp;quot;. Le fichier texte associé dénommé &amp;quot;texture_interfaces_v3.txt&amp;quot; liste les icones présents et leur position dans l'image :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte-txt.png]]&lt;br /&gt;
&lt;br /&gt;
le fichier texte utilise le format suivant pour chaque ligne :&lt;br /&gt;
&lt;br /&gt;
  NomFichierIcone u1 v1 u2 v2&lt;br /&gt;
&lt;br /&gt;
Avec :&lt;br /&gt;
* u1,v1 la position du point supérieur gauche de l'icône&lt;br /&gt;
* u2,v2 la position du coin inférieur droit de l'icône&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A la différence des coordonnées en pixels, ces coordonnées qui utilisent la technique du UV Mapping en 3d ont leurs valeurs dans l’intervalle [0 .. 1]. la coordonnée (0,0) correspond au point supérieur gauche de l'image et (1,1) au point inférieur droit de l'image.&lt;br /&gt;
&lt;br /&gt;
Le passage d'un système à l'autre est simple. Soit (x1,y1) la position en pixels du coin haut gauche de notre icône dans l'image globale et (x2,y2) la position du point inférieur droit de l'icône dans l'image, alors :&lt;br /&gt;
* u1 = x1 / largeur-image&lt;br /&gt;
* v1 = y1 / hauteur-image&lt;br /&gt;
* u2 = x2 / largeur-image&lt;br /&gt;
* v2 = y2 / hauteur-image&lt;br /&gt;
&lt;br /&gt;
Sachant que la texture &amp;quot;texture_interfaces_v3.tga&amp;quot; fait 1024x1024 pixel, et que dans l'exemple l'icône &amp;quot;icon_teddygubani.tga&amp;quot; se situe à la position (x1=118,y1=798), que le point inférieur gauche étant à la position (x2=157,y2=837), le fichier txt contient donc la ligne : &lt;br /&gt;
&lt;br /&gt;
  icon_teddygubani.tga 0.115234375 0.779296875 0.1533203125 0.8173828125&lt;br /&gt;
  &lt;br /&gt;
Même si cela peut être ajouté à la main, la bonne méthode et d'utiliser l'outil dédié de NEL ''build_interface'' comme indiqué dans le tutorial https:''khaganat.net/wikhan/fr:todo:dessiner:creer_icone_objet qui recrée la texture globale et le fichier txt à partir d'un dossier contenant tous les icones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: L'ajout de l'icône ne suffit pas, il faut également créer le datasheet de l'objet peluche et spécifier dedans le nom de notre icône à utiliser comme nous le verrons plus loin dans ce tutorial. Au final nous obtenons le résultat suivant IG :&lt;br /&gt;
&lt;br /&gt;
[[File:23-icone-gubani-contexte.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Etape 11 : créer le fichiers des noms  ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A compléter.&lt;br /&gt;
&lt;br /&gt;
[[File:30-tuto-peluche-txtfile.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 12 : créer le datasheet   ==&lt;br /&gt;
&lt;br /&gt;
A la base, une peluche reste est un objet porté comme une arme. De fait le datasheet de la peluche est trs semblable à celui d'une arme une main, comme l'exemple de la dague ci-dessous.&lt;br /&gt;
&lt;br /&gt;
__icrm1pd.sitem  ( datasheet de la dague du réfugié ) :__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code xml&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.2 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;refugee dagger&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;refugee&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Drop or Sell&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;CraftPlan&amp;quot; Value=&amp;quot;bcrmea06.sbrick&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Saleable&amp;quot; Value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;GE_Wea_Dague.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce qui change c'est :&lt;br /&gt;
&lt;br /&gt;
* la référénce au shape dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* la référence à l'icone utilisé dans la barre d'état et l'inventaire dans la section &amp;quot;3d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* les caractéristiques de base qui diffèrent d'une arme : pas de niveau requis, pas de brique de plan, etc..&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voila donc le datasheet de la peluche gubani  que nous nommerons &amp;quot;teddygubani.sitem&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code xml&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;FORM Revision=&amp;quot;$Revision: 1.7 $&amp;quot; State=&amp;quot;modified&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;PARENT Filename=&amp;quot;_c_m1pd.sitem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;basics&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;name&amp;quot; Value=&amp;quot;staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;origin&amp;quot; Value=&amp;quot;common&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;family&amp;quot; Value=&amp;quot;handled item&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;ItemType&amp;quot; Value=&amp;quot;Staff&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;Bulk&amp;quot; Value=&amp;quot;5&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityFactor&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;RequiredCharacQualityOffset&amp;quot; Value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;STRUCT Name=&amp;quot;3d&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;shape_female&amp;quot; Value=&amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;map_variant&amp;quot; Value=&amp;quot;Low Quality&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon background&amp;quot; Value=&amp;quot;BK_generic.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ATOM Name=&amp;quot;icon overlay&amp;quot; Value=&amp;quot;icon_teddygubani.tga&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;STRUCT Name=&amp;quot;fx&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ATOM Name=&amp;quot;Trail&amp;quot; Value=&amp;quot;GE_Wea_Dague_trail_00.shape&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
    &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;/STRUCT&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;STRUCT/&amp;gt;&lt;br /&gt;
  &amp;lt;LOG&amp;gt;&amp;lt;/LOG&amp;gt;&lt;br /&gt;
&amp;lt;/FORM&amp;gt;&lt;br /&gt;
&amp;lt;\/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Étape 13 : Déployer la peluche sur le serveur et le client de jeu   ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Afin de déployer la peluche en jeu la méthode officielle consiste à utiliser la pipeline &amp;quot;build_gamedata&amp;quot; (cf. https:''ryzomcore.atlassian.net/wiki/display/RC/Gamedata+Build+Pipeline). Je vais vous proposer une méthode différente, où les opérations seront effectués à la mains, mais uniquement celles nécessaires à notre peluche :&lt;br /&gt;
&lt;br /&gt;
Nous avons besoin des fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* teddygubani.sitem ( le datasheet de la peluche gunabi )&lt;br /&gt;
* ge_acc_teddy-gubani_01.shape ( le modèle 3d NEL de la peluche )&lt;br /&gt;
* ge_acc_teddy-gubani_01.dds ( la texture du modèle 3d )&lt;br /&gt;
&lt;br /&gt;
De plus le déploiement de cette peluche va impacter les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
* les fichiers &amp;quot;*.packed_sheets&amp;quot; utilisée par le serveur et le client qui sont une version compilé des datasheets&lt;br /&gt;
* le fichier &amp;quot;sheet_id.bin&amp;quot; qui est un index de tous les datasheets utilisés par le jeu&lt;br /&gt;
* le fichier &amp;quot;visual_slot.tab&amp;quot; qui liste les éléments affichables coté client&lt;br /&gt;
&lt;br /&gt;
Pour bien faire les choses, nous allons également créer un fichier &amp;quot;soft-toy.bnp&amp;quot; qui contiendra les shapes et les textures de toutes les futures peluches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour la suite des opérations nous partons du principe que notre serveur de jeu fonctionne sous linux, et que les variables d'envrionnement suivantes sont définies :&lt;br /&gt;
&lt;br /&gt;
* LEVELDESIGNPATH pointe sur le dossier des datas du level design&lt;br /&gt;
* RYZOM_HOME sur l'installation des sources du serveur&lt;br /&gt;
&lt;br /&gt;
===  Ajout du datasheet &amp;quot;teddygubani.sitem au serveur   ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Coté serveur nous allons créer un dossier dédié pour les datasheets des peluches et y placer celui du gubani :&lt;br /&gt;
&lt;br /&gt;
  $ mkdir $LEVELDESIGNPATHleveldesigngame_elementsitemsoft-toy&lt;br /&gt;
  $ cp teddygubani.sitem $LEVELDESIGNPATHleveldesigngame_elementsitemsoft-toy&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
===  Nettoyages préalables  ===&lt;br /&gt;
&lt;br /&gt;
===  Re-générer le fichier &amp;quot;sheet_id.bin&amp;quot;   ===&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à regénérer le fichier d'index des datasheet via la commande &amp;quot;make_sheet_id&amp;quot;. Il reprend le fichier d'index existant et va le compléter avec les datasheets du dossier $RYZOM_LEVELPATH/leveldesign/game_element/sitem/soft-toy c'est-à-dire les datasheets de nos peluches&lt;br /&gt;
&lt;br /&gt;
  $ make_sheet_id -o$LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin $LEVELDESIGNPATH/leveldesign/game_element/sitem/soft-toy&lt;br /&gt;
&lt;br /&gt;
===  Re-générer les &amp;quot;*.packed_sheets&amp;quot; et &amp;quot;visual_slot.tab&amp;quot;  ===&lt;br /&gt;
&lt;br /&gt;
Il faut regénérer les &amp;quot;*.packed_sheets&amp;quot;.Ce sont les versions pré-compilées des datasheets :&lt;br /&gt;
&lt;br /&gt;
  $ sheets_packer&lt;br /&gt;
&lt;br /&gt;
Cette commande va également re-générer le fichier visual_slot.tab&lt;br /&gt;
&lt;br /&gt;
===  Copier les fichiers nécessaires coté client  ===&lt;br /&gt;
&lt;br /&gt;
* Nous copions le fichier &amp;quot;visual_slot.tab&amp;quot; généré dans le dossier courant dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous copions le fichier $LEVELDESIGNPATH/leveldesign/Game_elem/sheet_id.bin dans le dossier &amp;quot;user&amp;quot; du client de jeu&lt;br /&gt;
* Nous remplaçons les fichiers packet_sheets du dossier &amp;quot;data&amp;quot; du client par ceux générés ici $RYZOM_HOME/code/ryzom/client/data/*.packed_sheets par la commande ''sheets_packer''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Créer un bnp pour le modèle de la peluche  ===&lt;br /&gt;
&lt;br /&gt;
Pour finir il faut copier le shape et la texture de la peluche dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
Cependant pour bien faire les choses, autant créer un fichier &amp;quot;.bnp&amp;quot; dédié.&lt;br /&gt;
Un fichier &amp;quot;.bnp&amp;quot; est une sorte de zip regroupant les différents fichiers shape, dds, txt, ou autres par thème.&lt;br /&gt;
&lt;br /&gt;
Créer on dossier &amp;quot;soft-toy&amp;quot;, copions y  tous les shapes et textures de nos peluche, à savoir pour le moment &amp;quot;ge_acc_teddy-gubani_01.shape&amp;quot; et &amp;quot;ge_acc_teddy-gubani_01.dds&amp;quot; et créons un fichier BNP pour les contenur&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  bnp_make /p soft-toy&lt;br /&gt;
&lt;br /&gt;
La commande va créer un fichier &amp;quot;soft-toy,bnp&amp;quot; qui contiendra nos deux fichiers. A présent il faut le copier dans le dossier &amp;quot;data&amp;quot; du client.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Tester IG  ===&lt;br /&gt;
&lt;br /&gt;
Relancer le serveur avec la commande ''shard start'' puis connectez vous avec votre client.&lt;br /&gt;
&lt;br /&gt;
Si tout c'est bien déroulé, en lançant votre client de jeu, vous pouvez créer une peluche dans votre inventaire avec la commande :&lt;br /&gt;
&lt;br /&gt;
  /a createItemInBag teddygubani 1 5 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{tag&amp;gt;Tag_a_ajouter}}&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=Homepage&amp;diff=15</id>
		<title>Homepage</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=Homepage&amp;diff=15"/>
				<updated>2014-06-11T16:49:26Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Projet collaboratif : Ryzom Project ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;''La richesse de Ryzom, c'est ce que les joueurs et ceux qui l'aiment peuvent lui apporter. Pour cela, il faut leur en donner les moyens et  l'occasion''.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Cette phrase résume à elle seule l'essence du projet : élargir le Power to Players au-delà du seul Roleplay et donner enfin à la communauté de Ryzom les moyens d'agir sur le jeu lui-même. &lt;br /&gt;
&lt;br /&gt;
=== Comment ? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La communauté de Ryzom demande depuis longtemps à pouvoir s'impliquer dans la construction du jeu. Il y a eu quelques essais mais aucun ajout réellement visible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pourtant, Ryzom, en libérant son code, a fait depuis longtemps un pas vers le monde du Libre. Cela a donné naissance à Ryzom Core, qui a notamment créé la version Linux de Ryzom, et qui sert aussi de base à d'autres projets de jeux basés sur le code source de Ryzom, tels Kaghanat ou Tempest in the Aether. &lt;br /&gt;
Mais aucun projet équivalent n'a vu le jour pour enrichir Ryzom lui-même. Il a peut-être manqué un encouragement officiel, une porte qui s'ouvre et qui invite la communauté à entrer, mais aussi un vrai projet pour fédérer cette communauté.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aujourd'hui nous voulons ouvrir cette porte. Permettre enfin à la communauté du jeu, et plus largement au monde du Libre, de venir participer, ou tout simplement suivre de près ou de loin ce projet que nous lançons et qui deviendra alors, si vous le souhaitez, le vôtre.&lt;br /&gt;
&lt;br /&gt;
=== Qu'est-ce que Ryzom Project ? ===&lt;br /&gt;
&lt;br /&gt;
Ryzom Project est un projet collaboratif ambitieux, ouvert à la communauté du jeu et la communauté libre, en partenariat avec WinchGate et avec des bénévoles de l'Équipe Ryzom. Le partenariat, d'ores et déjà mis en place avec le projet Khaganat (http://khaganat.net) dès la conception du projet, nous prouve la pertinence de l'ambition d'ouverture à la communauté libre. &lt;br /&gt;
&lt;br /&gt;
Il est prévu de construire ce projet en plusieurs étapes progressives, chacune apportant son propre ajout au jeu :&lt;br /&gt;
&lt;br /&gt;
* La première étape, la plus simple, consistera à enrichir les appartements de nouveaux objets.&lt;br /&gt;
* La seconde étape consistera à profiter de la maitrise sur l'ajout d'objets pour proposer des objets équipables inédits.&lt;br /&gt;
* La troisième étape, plus élaborée, et qui demandera aussi un travail du côté &amp;quot;level design&amp;quot; des tribus, sera de proposer des plans d'armes via des rites de tribus.&lt;br /&gt;
* La dernière étape, nommée projet New Zone, consistera en la création d'une nouvelle zone de jeu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ATTENTION !''' Nous ne pouvons pas certifier que la dernière étape sera atteinte, ni que la première sera dépassée. Mais nous souhaitons vous donner les moyens de relever le défi et serons à vos côtés pour le faire avancer aussi loin que possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour en savoir plus :&lt;br /&gt;
&lt;br /&gt;
Wiki de Ryzom Project : [http://project.ryzom.kervala.net/ http://project.ryzom.kervala.net/]&lt;br /&gt;
&lt;br /&gt;
Chat général du projet : [http://webchat.freenode.net/?channels=ryzomproject  #ryzomproject] sur FreeNode&lt;br /&gt;
&lt;br /&gt;
Si vous avez des questions, souhaitez participer à Ryzom Project ou simplement le suivre de loin, nous vous attendons sur le canal [http://webchat.freenode.net/?channels=ryzomproject #ryzomproject] sur FreeNode !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'Équipe Ryzom et les participants à Ryzom Project&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=Homepage&amp;diff=14</id>
		<title>Homepage</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=Homepage&amp;diff=14"/>
				<updated>2014-06-11T16:46:23Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: /* Projet collaboratif : Ryzom Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Projet collaboratif : Ryzom Project ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;''La richesse de Ryzom, c'est ce que les joueurs et ceux qui l'aiment peuvent lui apporter. Pour cela, il faut leur en donner les moyens et  l'occasion''.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Cette phrase résume à elle seule l'essence du projet : élargir le Power to Players au-delà du seul Roleplay et donner enfin à la communauté de Ryzom les moyens d'agir sur le jeu lui-même. &lt;br /&gt;
&lt;br /&gt;
=== Comment ? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La communauté de Ryzom demande depuis longtemps à pouvoir s'impliquer dans la construction du jeu. Il y a eu quelques essais mais aucun ajout réellement visible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pourtant, Ryzom, en libérant son code, a fait depuis longtemps un pas vers le monde du Libre. Cela a donné naissance à Ryzom Core, qui a notamment créé la version Linux de Ryzom, et qui sert aussi de base à d'autres projets de jeux basés sur le code source de Ryzom, tels Kaghanat ou Tempest in the Aether. &lt;br /&gt;
Mais aucun projet équivalent n'a vu le jour pour enrichir Ryzom lui-même. Il a peut-être manqué un encouragement officiel, une porte qui s'ouvre et qui invite la communauté à entrer, mais aussi un vrai projet pour fédérer cette communauté.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aujourd'hui nous voulons ouvrir cette porte. Permettre enfin à la communauté du jeu, et plus largement au monde du Libre, de venir participer, ou tout simplement suivre de près ou de loin ce projet que nous lançons et qui deviendra alors, si vous le souhaitez, le vôtre.&lt;br /&gt;
&lt;br /&gt;
=== Qu'est-ce que Ryzom Project ? ===&lt;br /&gt;
&lt;br /&gt;
Ryzom Project est un projet collaboratif ambitieux, ouvert à la communauté du jeu et la communauté libre, en partenariat avec WinchGate et avec des bénévoles de l'Équipe Ryzom. Le partenariat, d'ores et déjà mis en place avec le projet Khaganat (http://khaganat.net) dès la conception du projet, nous prouve la pertinence de l'ambition d'ouverture à la communauté libre. &lt;br /&gt;
&lt;br /&gt;
Il est prévu de construire ce projet en plusieurs étapes progressives, chacune apportant son propre ajout au jeu :&lt;br /&gt;
&lt;br /&gt;
* La première étape, la plus simple, consistera à enrichir les appartements de nouveaux objets.&lt;br /&gt;
* La seconde étape consistera à profiter de la maitrise sur l'ajout d'objets pour proposer des objets équipables inédits.&lt;br /&gt;
* La troisième étape, plus élaborée, et qui demandera aussi un travail du côté &amp;quot;level design&amp;quot; des tribus, sera de proposer des plans d'armes via des rites de tribus.&lt;br /&gt;
* La dernière étape, nommée projet New Zone, consistera en la création d'une nouvelle zone de jeu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ATTENTION !''' Nous ne pouvons pas certifier que la dernière étape sera atteinte, ni que la première sera dépassée. Mais nous souhaitons vous donner les moyens de relever le défi et serons à vos côtés pour le faire avancer aussi loin que possible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour en savoir plus :&lt;br /&gt;
&lt;br /&gt;
Wiki de Ryzom Project : [http://project.ryzom.kervala.net/]&lt;br /&gt;
&lt;br /&gt;
Chat général du projet : [http://webchat.freenode.net/?channels=ryzomproject]&lt;br /&gt;
&lt;br /&gt;
Si vous avez des questions, souhaitez participer à Ryzom Project ou simplement le suivre de loin, nous vous attendons sur [http://webchat.freenode.net/?channels=ryzomproject] !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'Équipe Ryzom et les participants à Ryzom Project&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=Homepage&amp;diff=13</id>
		<title>Homepage</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=Homepage&amp;diff=13"/>
				<updated>2014-06-11T16:39:48Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: Page d'accueil du projet (première version)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Projet collaboratif : Ryzom Project ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;La richesse de Ryzom, c'est ce que les joueurs et ceux qui l'aiment peuvent lui apporter. Pour cela, il faut leur en donner les moyens et  l'occasion.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Cette phrase résume à elle seule l'essence du projet : élargir le Power to Players au-delà du seul Roleplay et donner enfin à la communauté de Ryzom les moyens d'agir sur le jeu lui-même. &lt;br /&gt;
&lt;br /&gt;
=== Comment ? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La communauté de Ryzom demande depuis longtemps à pouvoir s'impliquer dans la construction du jeu. Il y a eu quelques essais mais aucun ajout réellement visible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pourtant, Ryzom, en libérant son code, a fait depuis longtemps un pas vers le monde du Libre. Cela a donné naissance à Ryzom Core, qui a notamment créé la version Linux de Ryzom, et qui sert aussi de base à d'autres projets de jeux basés sur le code source de Ryzom, tels Kaghanat ou Tempest in the Aether. &lt;br /&gt;
Mais aucun projet équivalent n'a vu le jour pour enrichir Ryzom lui-même. Il a peut-être manqué un encouragement officiel, une porte qui s'ouvre et qui invite la communauté à entrer, mais aussi un vrai projet pour fédérer cette communauté.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aujourd'hui nous voulons ouvrir cette porte. Permettre enfin à la communauté du jeu, et plus largement au monde du Libre, de venir participer, ou tout simplement suivre de près ou de loin ce projet que nous lançons et qui deviendra alors, si vous le souhaitez, le vôtre.&lt;br /&gt;
&lt;br /&gt;
=== Qu'est-ce que Ryzom Project ? ===&lt;br /&gt;
&lt;br /&gt;
Ryzom Project est un projet collaboratif ambitieux, ouvert à la communauté du jeu et la communauté libre, en partenariat avec WinchGate et avec des bénévoles de l'Équipe Ryzom. Le partenariat, d'ores et déjà mis en place avec le projet Khaganat (http://khaganat.net) dès la conception du projet, nous prouve la pertinence de l'ambition d'ouverture à la communauté libre. &lt;br /&gt;
&lt;br /&gt;
Il est prévu de construire ce projet en plusieurs étapes progressives, chacune apportant son propre ajout au jeu :&lt;br /&gt;
&lt;br /&gt;
* La première étape, la plus simple, consistera à enrichir les appartements de nouveaux objets.&lt;br /&gt;
* La seconde étape consistera à profiter de la maitrise sur l'ajout d'objets pour proposer des objets équipables inédits.&lt;br /&gt;
* La troisième étape, plus élaborée, et qui demandera aussi un travail du côté &amp;quot;level design&amp;quot; des tribus, sera de proposer des plans d'armes via des rites de tribus.&lt;br /&gt;
* La dernière étape, nommée projet New Zone, consistera en la création d'une nouvelle zone de jeu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ATTENTION ! Nous ne pouvons pas certifier que la dernière étape sera atteinte, ni que la première sera dépassée. Mais nous souhaitons vous donner les moyens de relever le défi et serons à vos côtés pour le faire avancer aussi loin que possible.&lt;br /&gt;
Pour en savoir plus :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wiki de Ryzom Project : [http://project.ryzom.kervala.net/]&lt;br /&gt;
&lt;br /&gt;
Chat général du projet : [http://webchat.freenode.net/?channels=ryzomproject]&lt;br /&gt;
&lt;br /&gt;
Si vous avez des questions, souhaitez participer à Ryzom Project ou simplement le suivre de loin, nous vous attendons sur [http://webchat.freenode.net/?channels=ryzomproject] !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'Équipe Ryzom et les participants à Ryzom Project&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	<entry>
		<id>https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=User:Madi&amp;diff=12</id>
		<title>User:Madi</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.ryzom.com/wiki/Portal:Forge?from=/w/index.php?title=User:Madi&amp;diff=12"/>
				<updated>2014-06-11T12:57:24Z</updated>
		
		<summary type="html">&lt;p&gt;Madi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Madi est l'une des trois personnes ayant fondé le projet Khaganat : http://khaganat.net&lt;/div&gt;</summary>
		<author><name>Madi</name></author>	</entry>

	</feed>