Table des matières

Création de la faune herbivore

Tutoriel en cours de création

Nous ne traitons ici que l'aspect Datasheet. La création graphique et l'implémentation dans un fichier de Primitives pour l'instanciation dans le monde seront traités à part.

Nous allons cette fois partir du principe que nous développons une faune complète, et allons donc envisager notre système de datasheet de façon à avoir des héritages qui soient pratiques.

Organiser les héritages

Le but est de créer un type de petits crabes inoffensifs (ou presque), les tupa. Nous allons créer un modèle adulte, simple, que l'on croisera dans le Delta.

Étude de l'existant

Nous allons déjà étudier comment cela se combine pour l'exemple fourni par Ryzom Core et son Yubo, avec le fichier chdfa1.creature.

On trouve le fichier dans /leveldesign/game_elem/creature/fauna/bestiary/forest1) et il contient comme héritages imbriqués:

Définition de notre architecture de fichiers

Nous voyons tout de suite que les fichiers _formuli.creature et _ai_herbivore_craintif.creature peuvent nous être utiles. Nous verrons par la suite si nous voulons créer un fichier spécial d'IA pour nos tupas, auquel cas nous générerons un fichier distinct que nous appellerons en remplacement de celuic-i.

Nous ne prévoyons pas de niveaux très variés, mais envisageons tout de même plusieurs types de tupa à l'avenir, selon leur âge, par exemple, ou peut-être de subtiles variations de variété. On peut donc définir pour l'instant que nous créerons donc les fichiers suivants :

Nous allons créer nos fichiers dans l'ordre de descente des héritages, en partant du plus élevé dans la hiérarchie. Nous procéderons donc comme suit, si l'on indique où chacun des fichiers ira, afin de pouvoir le réutiliser pour d'autres créatures, le but de l'héritage étant la mutualisation pour économiser le système.

  1. _formuli.creature → /leveldesign/game_elem/creature - Existe déjà ;
  2. _ai_herbivore_craintif.creature → /leveldesign/game_elem/creature/fauna/ai_parent - Existe déjà ;
  3. _heavy_slashing_armor_set.creature → /leveldesign/game_elem/creature/fauna/set_armure ;_
  4. _tupa.creature → /leveldesign/game_elem/creature/fauna/parent_creature_prototype ;
  5. _tupa_delta.creature → /leveldesign/game_elem/creature/fauna/ecosystem/delta ;
  6. _tupa_attack.creature → /leveldesign/game_elem/creature/npc/bestiary/creature/_attack_type_parents ;
  7. _tupa1_mp.creature → /leveldesign/game_elem/creature/raw_material_assignment.
  8. tupa1.creature → /leveldesign/game_elem/creature/fauna/bestiary/delta ;

Tuto pour faire un pop un herbi rapidement

Nous allons prendre les datasheets du pendo comme base de travail pour faire un poper un autre herbivore : arma
Dans les data-serveurs :

Copier les creature

Copier :

$leveldesign$/Game_elem/Creature/fauna/bestiary/forest/chdfa1.creature

Changer en arma01.creature

Ouvrir le fichier : arma01.creature

remplace
<PARENT Filename="_dag_for.creature"/>
avec
<PARENT Filename="_arma_for.creature"/>

Copier :

$leveldesign$/Game_elem/Creature/fauna/Ecosystem/forest/_dag_for.creature

Changer en _arma_for.creature
Ouvrir le fichier : _arma_for.creature

Remplace
<PARENT Filename="_dag.creature"/>

Avec 
<PARENT Filename="_arma.creature"/>

Copier :

$leveldesign$/Game_elem/Creature/fauna/Parent_creature_prototype/_dag.creature

Changer en _arma.creature
Ouvrir le fichier : _arma.creature

remplacer dans la struture Basics
<ATOM Name="Race" Value="dag"/>

avec
<ATOM Name="Race" Value="arma"/>

Et remplace la structure de l'équipement avec :

<STRUCT Name="Equipment">
    <STRUCT Name="Body">
        <ATOM Name="Item" Value="arma_chest.item"/>
    </STRUCT>
    <STRUCT Name="Legs">
        <ATOM Name="Item" Value="medium_slashing_legs.item"/>
    </STRUCT>
    <STRUCT Name="Arms">
        <ATOM Name="Item" Value="medium_slashing_arms.item"/>
    </STRUCT>
    <STRUCT Name="Hands">
        <ATOM Name="Item" Value="medium_slashing_hands.item"/>
    </STRUCT>
    <STRUCT Name="Feet">
        <ATOM Name="Item" Value="medium_slashing_feet.item"/>
    </STRUCT>
    <STRUCT Name="Head">
        <ATOM Name="Item" Value="medium_slashing_head.item"/>
    </STRUCT>
</STRUCT>

Remplace le Skel, AnimSetBaseName et LodCharacterName dans 3d data :

<ATOM Name="Skel" Value="TR_MO_Arma.skel"/>
<ATOM Name="AnimSetBaseName" Value="arma"/>
<ATOM Name="LodCharacterName" Value="TR_MO_arma_LOD"/>

Copier :

$leveldesign$/Game_elem/items/armor/creature_armor/medium_slashing_chest.item

Changer le fichier : arma_chest.item
Ouvrir le fichier : arma_chest.item
Remplace dans : 3d

<STRUCT Name="3d">
    <ATOM Name="shape" Value="TR_MO_Arma.shape"/>
    <ATOM Name="shape_female" Value="TR_MO_Arma.shape"/>
</STRUCT>

Les anim

anim de l'arma

Copier le dossier :

$leveldesign/game_element/anim/anim_set/pet/dag

Dans

$leveldesign/game_element/anim/anim_set/pet/arma

Changer ces fichiers : le dag en arma

dag.animset_mode
dag_alert__.animation_set
dag_combat__.animation_set
dag_death__.animation_set
dag_default__.animation_set
dag_eat__.animation_set
dag_hungry__.animation_set
dag_rest__.animation_set
$leveldesign/game_element/anim/anim_set/pet/arma/arma_alert__.animation_set
$leveldesign/game_element/anim/anim_set/pet/arma/arma_combat__.animation_set
$leveldesign/game_element/anim/anim_set/pet/arma/arma_eat__.animation_set
$leveldesign/game_element/anim/anim_set/pet/arma/arma_hungry__.animation_set

anim general

Ouvrez le fichier :

$leveldesign/game_element/anim/anim_set/entities.animset_list

Rajouter la ligne : <code> <ATOM Name=“arma” Value=“arma.animset_mode”/> <code>