Création d'un nouveau continent
Liens pouvant être utiles :
Prérequis (indiqués avec des références Windows car le processus complet n'est possible pour l'heure que sous cet OS):
-
-
avoir monté le répertoire R:\code\ryzom\common\data_leveldesign dans le lecteur L:
avoir téléchargé les assets graphiques de Newbieland et les avoir ajoutés à ceux de Ryzom
avoir copié le contenu du paquetage des outils de leveldesign dans R:\code\ryzom\tools\leveldesign\install
avoir appliqué les scripts Python de R:\code\nel\tools\build_gamedata dans le dépôt des assets graphiques de Ryzom
Créer le paysage en utilisant le World Editor
Mise en place
Trouver un nom pour votre nouveau territoire, appelons-le ici “dispensaire01”
Créer un sous-répertoire dans R:\code\ryzom\tools\leveldesign\install\continents qui porte ce nom, donc “dispensaire01” pour notre exemple
Copier tout le contenu du répertoire “newbieland” dans ce nouveau répertoire, SAUF le répertoire “pacs” et le fichier “newbieland.land”
Ouvrir L:\leveldesign\world_editor_files\world_editor_classes.xml avec un éditeur de texte et y chercher la section qui commence avec
<!-- **************************** LOCATIONS **************************** -->
et ajouter après
<PARAMETER NAME="id" TYPE="const_string" VISIBLE="true">
les lignes suivantes :
<COMBO_VALUES CONTEXT_NAME="default">
<CONTEXT_VALUE VALUE="dispensaire01"/>
</COMBO_VALUES>
Sauvegarder le fichier et le fermer.
Beaucoup de liens dans ce fichier sont absolus, et codés selon une hiérarchisation Windows (lettre l:
comme lecteur de disque).
Il faudrait les reprendre pour qu'ils soient compatibles avec une hiérarchie relative, pouvant fonctionner quel que soit le système.
Lancer le World Editor (le binaire est dans R:\code\ryzom\tools\leveldesign\install )
Clic gauche Project > New landscape
Clic gauche File > Save
Aller dans le répertoire R:\code\ryzom\tools\leveldesign\install\world_editor_continents et indiquer le nom de votre continent comme nom de fichier (“dispensaire01”) et taper <Entrée> (pour le fichier .worldedit)
Aller dans R:\code\ryzom\tools\leveldesign\install\continents\, dans le répertoire du nom de votre projet et indiquer une nouvelle fois le nom de votre continent comme nom de fichier (“dispensaire01”) et taper <Entrée> (pour le fichier .land)
Clic gauche sur Project > Settings, et :
indiquer comme “data directory” le répertoire indiqué plus tôt, à savoir R:\code\ryzom\tools\leveldesign\install\continents\dispensaire01
Indiquer le “context” sur “default”
Cliquer sur <OK> pour valider le tout, attendre que World Editor charge les données trouvées là
Sauvegarder de nouveau le projet
"Peinture"
Clic gauche View > Zone
Sélectionner “passable” et “no” comme premier filtre de catégorie, ce qui affichera toutes les briques LIGO disponibles sous ce type (dans le set de Newbieland, aucune brique n'est “passable”)
Clic gauche Edit > Goto Position, indiquer “O,O” et cliquer sur <GoTo>, cela amènera le centre de l'écran à la valeur 0,0 1_AA, positionnez une brique “crevasse_1” pour la marquer
Positionner cette brique en haut à gauche avec le bouton central de la souris, cela permettra de n'afficher à l'écran que des aires valides
Peignez votre territoire avec les briques LIGO
Sauvegardez le projet.
Il n'est pas obligatoire de placer sa carte en haut à gauche, qui sera donc au nord-ouest. Les zones valides pour placer ses terrains vont de 1_AA à 255_JV. Les placer correctement dès le départ permettra d'avoir les bonnes distances entre eux par la suite, voire de les connecter à l'avenir.
Cela veut dire que l'intégralité des cartes doit tenir dans un carré de 256x160m de côté, soit environ 41km.
Finaliser
Copier le fichier .land de R:\code\ryzom\tools\leveldesign\install\continents\ vers W:\Database\Landscape\ligo\jungle\
Clic gauche File > Export snapshot puis <OK>. Cela sera la carte en jeu, nous travaillerons dessus plus tard.
Créer les datasheets avec Georges Editor
Mise en place
Aller dans L:\leveldesign\World
Créer un nouveau sous-répertoire, avec le même nom que votre nouveau territoire (“dispensaire01” dans notre cas)
Copier les fichiers de L:\leveldesign\World\newbieland dans ce nouveau sous-répertoire
Renommer “newbieland.continent” en “<votre_territoire>.continent” où “<votre_territoire>” est le nomp de votre carte (“dispensaire01” dans notre cas)
Ouvrir continent.cfg avec un éditeur de texte
Changer le paramètre “LandFile” pour le chemin vers le .land que vous aviez copié précédemment ( W:\Database\Landscape\ligo\jungle\ )
Là encore, liens en dur avec hiérarchie et lettres de lecteurs Windows
Éditer les DataSheets du monde
Ouvrir L:\leveldesign\World\Ryzom.world avec Georges
Clic droit sur la dernière entrée dans la “continents list” et choisir “insert”
Nommer cette nouvelle entrée avec le nom de votre territoire (“dispensaire01”)
Revenir dans la fenêtre du World Editor
Placer le pointeur de la souris d'abord tout en haut à gauche de la carte puis en bas à droite (image04.jpg), les points rouges sur l'image.
Noter à chaque fois les informations entourées sur l'image, l'une d'elles est un identifiant de zone (1_AA) et l'autre une paire de coordonnées x et y (0,0)
-
Retourner dans Georges Editor avec la DataSheet de votre territoire ouverte
Remplir le “selection_name” et “continent_name” avec le nom du territoire (“dispensaire01”)
Remplir les minx, maxx, miny et maxy en vous servant des données notées précédemment
Une nouvelle fois, clic droit sur la dernière entrée dans la “maps list” et choisir de nouveau “insert”
Nommer cette nouvelle DataSheet comme votre territoire, mais avec le préfixe “cont_” (“cont_dispensaire01”)
Remettre les minx, maxx, miny et maxy en vous servant des mêmes données notées précédemment
Indiquer le nom de la DataSheet dans le champ “name” (“cont_dispensaire01”), le nom de votre territoire dans “contname” (“dispensaire01”)
Remplir le champ “bitmap” sous le format “<nom_territoire>.tga” où <landname> est le nom de votre territoire (“dispensaire01”) (cf. le
snapshot fait plus haut)
Sauvegarder le tout avec Georges Editor
Éditer les DataSheets du territoire
Aller dans le répertoire L:\leveldesign\World\<votre_territoire> (“dispensaire01”)
Ouvrir le fichier .continent avec Georges de façon à le modifier selon nos besoins (ce sont les données de Newbieland pour l'instant)
Changer les champs “Name”, “PacsRBank”, “PacsGR”, “LandscapeIG”, “WorldMap”, changer le terme “Newbieland” pour celui de votre territoire (“dispensaire01”)
Changer les valeurs de ZoneMin, ZoneMax pour rendre compte des données notées précédemment (ZoneMin=1_AA et ZoneMax=17_BK dans notre cas)
Trouver la section “villages” dans la liste et tous les effacer sauf la partie “start_village_newbieland”
Dans “start_village_newbieland”, effacer la iglist. Nous y reviendrons plus tard
Chercher la section “ZCs” et effacer tous les “ZCs”
Chercher la section “Landmarks” et tous les effacer
Sauvegarder le tout
Créer les primitives de la région
Mise en place
Aller dans L:\primitives et créer un sous-répertoire avec le nom de votre territoire (“dispensaire01”)
Ouvrir le World Editor
Clic gauche Project > New primitive
Sauvegarder le projet, dans le répertoire L:\primitives\<nom_territoire> (“dispensaire01”) au nom de “region_<nom_territoire>” (“region_dispensaire01”)
Aller dans L:\primitives et ouvrir le fichier file_index.cfg avec un éditeur de texte
Ajouter le nom du fichier de primitive à la fin de cette liste, en respectant les conventions de mise en forme. Ne pas oublier que le nombre indiqué doit être unique. Dans notre cas, ajouter : “region_dispensaire01.primitive”, “768”,
Dans le fichier primitives.cfg
, au même endroit, ajouter une nouvelle fois le nouveau fichier de primitives avec les conventions de mise en forme. Dans notre cas, ajouter après le “MAPEND” final :
/////////////////////////
// DISPENSAIRE 01 //
/////////////////////////
"CONTINENT dispensaire01",
"MAP dispensaire01",
"MAP dispensaire01_all",
"FILE region_dispensaire01.primitive",
"MAPEND",
"MAPEND",
Création de la région, du point de départ...
Revenir au World Editor
Clic droit sur la primitive et choisir “Add continent”
Clic droit sur ce nouveau continent, choisir “properties”, indiquer le nom du territoire dans le champ de nom (“dispensaire01”), dans “id”, choisir le nom de votre territoire et dans “sheet” le nom également.
Puis valider
De nouveau Clic droit sur le nouveau continent qui a désormais le nom du territoire, choisir “Add place”
Clic droit sur la place, renommer en “starting_place”
Clic droit sur la place, choisir “Add teleport_spawn_zone”
Clic droit sur la zone d'arrivée de téléportation, sélectionner “properties” et changer son nom en “player_spawn_point”
Cliquer de nouveau sur la zone d'arrivée de téléportation, une rectangle gris va s'illuminer dans la zone 10_AQ, clic droit dessus et sélectionner “move”
Clic sur le rectangle et le placer à l'endroit approprié (14_BH dans notre exemple)
Cliquer sur la place “starting_place”, appuyer sur <space> pour entrer dans le mode d'édition, puis appuyer sur F11 pour entrer dans le mode d'ajout de points
Ajouter des points au rectangle de façon à créer une zone. Cela doit se faire dans le sens anti-horaire.
Quand c'est fini, cliquer sur F5 pour revenir dans le mode de sélection
Clic droit sur “start_villages”, choisir “Add start_village”, clic droit sur celui-ci et le renommer à votre goût (“dispensaire01_start_village”)
Clic droit sur le village, choisir “Add start_point”
Clic droit, choisir “properties” et le renommer à son choix “dispensaire01_start_point”
Remplir le champ “spawn zone” avec le nom de la zone d'arrivée de téléportation créé plus tôt (“player_spawn_point”)
Cliquer sur le continent et entrer de nouveau dans le mode d'édition de points (en cliquant sur <space>), puis ajouter quelques points autour du continent. Cela doit se faire dans le sens anti-horaire.
Sauvegarder
Retourner à la DataSheet sous Georges ( “L:\leveldesign\World\dispensaire01\dispensaire01.continent” )
Sélectionner le seul village qui avait été laissé ( “start_village_newbieland” dans notre exemple )
Le renommer selon le nom du village de départ ajouté dans le World Editor ( “dispensaire01_start_village” )
Éditer le champ “zone” pour correspondre à la zone où ce village a été placé ( là où starting_place et player_spawn_point ont été placés, dans notre cas, c'est 14_BH )
Sauvegarder
Fix du serveur AIS
Il faut éditer ai_service_default.cfg et commenter certaines lignes
StartCommandsWhenMirrorReadyNewbieland =
{
//"loadContinent newbieland",
//"createStaticAIInstance newbieland",
//"loadMapsFromCommon newbieland_all",
};