Logo
Spacer News Wiki Features F.A.Q. Team members Screenshots Download Messageboard Bug tracker Submit files
Top divider

Création de maps

Contents

[edit] Introduction

Ce tutoriel couvre la création d'une map complète pour Spring. Il est basé sur les tutoriaux suivants :

La traduction directe d'un tutoriel vers la langue française ne semblait pas pertinent, aussi j'ai préféré "mixer" les tutoriaux cités ci-dessus.

[edit] L'idée

Vous avez d'abord besoin d'une idée. Vous devez vous demander :

  • Est-ce que cette map est vraiment intéressante, pas simplement une copie d'une map déjà existante ?
  • Est-ce que cette map avantage l'un des joueurs par rapport aux autres, en lui procurant plus de ressources, plus de hauteurs, ...
  • Ma map est-elle possible à réaliser ?

sachant que la carte est horizontale et que la hauteur est un artifice : un vehicule considerera qu'un mur de 1kilometre de haut n'est qu'un pixel de distance , donc comme dans les premier fps (comme doom) les tirs, deplacements et constructions ne calculeront pas les distances verticales mais uniquement la carte en 2d telle que dessinée (ajouté a cela les explosions aussi deformeront une case horizontale qui peut s'averer etre une montagne): il est donc ultra deconseillé de representer des pentes superieures a 45°(100%) et si possible 33°

  • Est-ce que je dispose de (et suis prêt à utiliser) suffisamment de temps pour finir la map ?(et en multipliant le temps estimé par trois a dix du fait que si vous lisez ceci c'est que vous debutez et ferez nombre d'erreurs)donc entre plusieur jours standard a plusieurs mois si vous etes perfectionistes
  • est ce que vous avez sufisement de RAM pour ouvrir des images enormes

Cette partie est très importante, vous devriez même commencer votre map sur le papier, commencer à placer les zones importantes, les canyons, les collines, etc.

[edit] Avant de commencer

Vous aurez besoin des programmes suivants pour créer votre map :

  • Un logiciel de dessin : par exemple Photoshop ou The Gimp.
  • Mother's MapConv afin de générer la map à partir des textures que vous allez créer.
  • 7zip : ce programme est nécessaire pour générer un .sd7 ou .sdz de votre map.

[edit] Choix de la taille

Les dimensions de la map que vous allez dessiner doivent être 512 fois plus importante que la taille qu'elle aura en jeu. Par exemple, pour une map 2x2, vous devrez dessiner une texture de 1024x1024 pixels. Pour vous donner une idée :

  • 10x10 ou moins : petite map
  • 12x12 - 16x16 : map moyenne :RAM1Go =7000*7000pixels (+/-) !
  • 18x18 - 24x24 : grande map
  • 26x26 - 30x30 : map géante
  • 32x32 et plus : OMG!!!

La limite du moteur est 64x64, mais normalement vous ne devriez pas avoir à atteindre cette valeur. (on suposera donc faut 5Go de ram

actuelement il existe des cartes a telecharger maximum 40*40 ou 64*16(ce qui est insufisant avec certains bateau(mod:e&e) et tout les avions;

a savoir que: les dimensions des humains varient d'un mod a l'autre du simple au double :souvent le pieton ne remplit pas la taille du selecteur afin d'augmenter les rpoportion de la carte: le carré(ou cercle)minimum de selection d'une unitée a l'ecran se nomme footprintx=1;(= 16 pixels)et il est rare de voir des batiment au dela de footprint=16; (ce qui s'afiche sur le sol lorsque l'on selectionne un constructeur et que l'on choisit dans son menu une construction) 1= 16 meters in Lightwave.mais les jeu represente entre 2 et 4 metre par carré aussi dessiner une carte detaillé n'est jamais universel... Unit Speed : 1 Unit Speed =12 m/second :1 unit speed = 30 pixel/second…. Unit acceleration : 1 Unit acceleration = 12 m/second/second peed…..Unit Turn Rate : 6.0975 = 1 degree/second (?)Maximal unit turnrate = 999 = 999/6.0975 =163 degree/second weapon(missile) 64k degree/second. 360 degree/second=64000.

[edit] Création de la map

Dans cette partie, la plus importante mais aussi la plus longue, vous allez devoir créer plusieurs textures en utilisant un logiciel de dessin :

  • Heightmap : la map de hauteur, qui détermine le relief du terrain. Ce doit être une BMP 24 bits dont les dimensions sont 1/8 des dimensions totales (voir Choix de la taille) plus 1 pixel.
  • Metalmap : la map de metal, qui détermine l'emplacement et la quantité du métal. BMP 24 bits, 1/8 des dimensions totales plus 1 pixel.
  • Typemap : optionnelle, indique le type de terrain. Permet de modifier le nom du type de terrain, la vitesse des unités et la dureté du sol. BMP 24 bits, 1/16 des dimensions totales.
  • Featuremap : détermine le placement des objets, comme les arbres, l'herbe, les gisements géothermaux et les objets personnalisés (comme les rochers, les cristaux, ...). BMP 24 bits, 1/8 des dimensions totales.
  • Texturemap : la texture de votre map, qui est visible au joueur. BMP 24 bits, dimensions totales de la map.

[edit] Heightmap

L'heightmap est une texture en niveau de gris. Les zones noires correspondent aux endroits les plus bas, et les zones blanches aux reliefs les plus élevés. Il y a 256 niveaux, de 0,0,0 à 255,255,255.

Image:Rune_Height.jpg

[edit] Metalmap

La metalmap n'utilise que le canal rouge. Les zones noires (0,0,0) n'ont pas de metal, et les zones complètement rouges (255,0,0) ont le maximum de metal.

Image:Rune_Metal.jpg

[edit] Typemap

Cette texture est optionnelle. Ici aussi, seul le canal rouge est utilisé, il indique le type de terrain, de 0 à 255. Les caractéristiques de chaque type sont spécifiées dans le SMD.

[edit] Featuremap

Pour placer un objet sur la featuremap, placez seulement 1 pixel de la couleur désirée.

  • Gisements géothermaux : vert 255 (rgb 0,255,0)
  • Arbres : vert 200 à 215.
  • Herbe : bleu 0 à 255.
  • Autres objets : rouge 0 à 255.

[edit] Texturemap

Ici, rien de sorcier, peignez simplement votre map.

Image:Rune_Texture.jpg

Avant de dessiner la texture finale et de faire le rendu, il est conseillé de faire un premier rendu rapide afin de tester sa map. Vous pourrez ainsi vérifier :

  • L'accessibilité : est-ce que les unités ne sont pas bloquées par les pentes trop abruptes ? Si oui, vous devrez les aplanir un peu. Pensez à utiliser la touche F2 qui montre les zones accessibles (en vert) et inaccessibles (en rouge).
  • Les zones constructibles : même principe. Vérifier que les points de métal sont utilisables.
  • Le niveau de l'eau (si présente).
  • Les startlocations.

[edit] Compiler sa map

MapConv permet de générer pour vous 4 fichiers : mini.bmp, mini.dds, votremap.smf et votremap.smt.

Utilisation :

mapconv [-l] [-i] [-c <compression>] -x <max height> -n <min height> [-o <Output file>] [-e <tile file>] [-y <Typemap file>] -m <Metalmap file> -a <Heightmap file> -t <Texture file> [--] [-v] [-h]

Où :

-l, --lowpass Lowpass filters the heightmap (TODO : trad)

-i, --invert Inverse l'heightmap verticalement (dans le sens nord/sud, pas haut/bas)

-c <compression>, --compress <compression> (valeur requise) Taux de compression de la texturemap. Par défaut : 0.8 . (moins=meilleure qualité, plus=plus gros fichier)

-x <max height>, --maxheight <max height> (requis) Quelle altitude dans Spring la valeur maximale (blanc) de l'heightmap représente

-n <min height>, --minheight <min height> (requis) Quelle altitude dans Spring la valeur minimale (noir) de l'heightmap représente

-o <Output file>, --outfile <Output file> (requis) Nom du fichier de sortie

-e <tile file>, --externaltilefile <tile file> (requis) Fichier de tiles externe qui sera utilisé pour trouver les tiles, les tiles non trouvées dans ce fichier seront ajoutées dans un nouveau fichier de tiles

-y <Typemap file>, --typemap <Typemap file> (requis) Typemap à utiliser

-m <Metalmap file>, --metalmap <Metalmap file> (requis) Metalmap à utiliser

-a <Heightmap file>, --heightmap <Heightmap file> (requis) Heightmap à utiliser.

-t <Texture file>, --intex <Texture file> (requis) Texturemap à utiliser.

-f <Featuremap file> (Mother's MapConv uniquement) Featuremap à utiliser.

--, --ignore_rest Ignore les arguments suivant celui-ci.

-v, --version Affiche la version du programme et quitte.

-h, --help Affiche l'aide et quitte.

Le MapConv original et le Mother's MapConv fonctionne de la même manière, à part que dans la version originale les gisements géothermaux sont des points verts 255 sur la map de métal et non sur une image séparée (la featuremap).

[edit] Ecrire le .smd

Le fichier .smd contient différents paramètres du jeu, notamment les lieu de depart, la vitesse du vent, la position du soleil, mais aussi la description de la map. Basiquement, vous pouvez reprendre un fichier .smd d'une map existante et l'éditer. Voici les points importants (un -- indique qu'une partie du fichier n'est pas montrée ici) :

[MAP]

 {
   Description=Description de la map, qui peut être lue dans le lobby;
   TidalStrength=99; // % Energie fournie par les generateurs maremotrice dans l'eau (0-99)
   Gravity=100; // Gravité en % !attention les armes balistic=1; dans le fichier weapons/??.tdf  tireront trop loin si <100 et trop court si >100 !
   MaxMetal=1.2; // multiplicateur d'extraction du métal, <1 est plus OTA, >1 est plus XTA
   ExtractorRadius=100; // Rayon d'action des extracteurs de métal, la taille des tache de metal normale est environ 35
   MapHardness=100; // Dureté du sol ; un terrain avec une dureté faible se déformera sous les tirs :sable environ 100 ;rocher 1000 minimum ;metal 10000 ;cendres lunaire <100 

NotDeformable=0;//si =1 le sol est indeformable(peut ameliorer les performances)

AutoShowMetal=1;//lorque un constructeur selectionne un extracteur de metal dans son menu la touche f4(voir les zones de metal en vert et le reste en noir) est automatiquement activée

 // Les types de terrain, placés par la typemap
 [TERRAINTYPE50]//ou le nombre corespond a la couleur rouge(o à 255) de l'image TYPEMAP
 {
   name=SoftTerrain; // Nom affiché en jeu quand on place la souris sur le terrain
   hardness=2; // Multiplieur de dureté (si votre carte a du sable et des rocher par exemple)
   //  multiplieur de vitesse des différents types d'unité
   tankmovespeed=0.9;
   kbotmovespeed=2;//les unitées ayant un tag tedclass=kbot; dans leur fichier .fbi iront deux fois que leur speed=??; dans leur fichier .fbi sur ce type de terain 
   hovermovespeed=1; 
   shipmovespeed=0; // 0 = impossible de passer

receivetracks=0;//si =0 ne dessine pas de trace lorsque le vehicule terestre a un tag track=1; dans son fichier .fbi, default 1

 }

[ATMOSPHERE]{ FogColor=0.15 0.05 0.01;//brume couleurs rouge vert bleu

FogStart=0.1;//distance du debut de la brume en proportion de votre carte :donc >1 pas de brume

CloudColor=0.5 0.5 0.5;//nuages dans le ciel couleurs rouge vert bleu

SkyColor=.2 0.1 0.8;//ciel couleurs rouge vert bleu

SunColor=1 1 1;//soleil couleurs rouge vert bleu

CloudDensity=0.1;//nuage quantitée 0à1

MinWind=1;//vent aleatoire minimum : production d'energie des éoliennes et mouvement des fumées

MaxWind=99;//vent aleatoire maximum : production d'energie des éoliennes et mouvement des fumées

Skybox=manu.png;//image qui recouvrira le ciel le soleil et les nuages }

[WATER]{ //WaterSurfaceColor=.1 0.7 0.3;//change la couleur de la surface de l'eau lorsque le parametre reflective water des details est activé(default is 0.75 0.8 0.85 ).couleurs rouge vert bleu

WaterPlaneColor=0 0 0;//vide spatial autour de la carte couleurs rouge vert bleu

WaterDamage=50;//l'eau est corosive comme de l'acide ou de la lave :degat par segonde (a verifier: >1000 les unitée terestres n'entre pas entierement dans l'eau ; >10000 les aeroglisseur ne vont pas sur l'eau)

WaterBaseColor=.1 0.2 1;//couleurs rouge vert bleu

WaterAbsorb=0.1 0.9 .9;//couleurs rouge vert bleu

WaterMinColor=.4 0.4 1;//couleurs rouge vert bleu

voidwater=0;//si =1 l'eau est invisible pour representer les cartes cosmic ,default 0

//WaterTexture=eau.jpg //utilise une texture diferente pour l'eau qui doit etre dans le repertoire /maps; default ocean.jpg

}

[LIGHT]{ SunDir=2.5 2.1 2.9;//c'est le vecteur de la direction du soleil qui produira des ombres et un eclairage (ici le soleil est proche ,vers le nord_ouest et au raz de l'horison et ainsi fourni l'eclairage et les ombres portées maximum)

GroundAmbiantColor=0.2 0.2 0.2;//filtre couleurs du sol coté l'ombre rouge vert bleu (à 1 la couleur est originale et à 0 elle est invisible (la distance du soleil assombrie toute les couleurs))

GroundSunColor=1 1 1;//filtre couleurs du sol coté soleil rouge vert bleu GroundShadowDensity=0.6;

UnitAmbiantColor=0.2 0.2 0.2;//filtre couleurs des unitées coté ombre rouge vert bleu

UnitSunColor=1 1 1;//filtre couleurs des unitées coté soleil rouge vert bleu

UnitShadowDensity=0.66;

SpecularSunColor=1 0.1 0.1; } //spring est prevu pour 16 joueurs mais il semble que 9 bots/AI seulement puisse etre hebergées


[TEAM0]{ StartPosX=14988;//maxi= 32768 si la carte fait 64 StartPosZ=1362;//}

[TEAM2]{ StartPosX=2500;//horizontal StartPosZ=7000;//vertical }

[TEAM11]{ StartPosX=17780; StartPosZ=6830; }

[TEAM10]{ StartPosX=21510; StartPosZ=2250; }

[TEAM9]{ StartPosX=28600; StartPosZ=4200; }

[TEAM1]{ StartPosX=4200; StartPosZ=4200; }

[TEAM8]{ StartPosX=15200; StartPosZ=4200; }

[TEAM6]{ StartPosX=6000; StartPosZ=3000; }

[TEAM7]{ StartPosX=25800; StartPosZ=6200; }

[TEAM3]{ StartPosX=30500; StartPosZ=7000; }

[TEAM4]{ StartPosX=2500; StartPosZ=2000; }

[TEAM5] { StartPosX=31000; StartPosZ=1500; }


 }

[edit] Créer le sd7

Vous devez maintenant créer une archive 7zip contenant les différents fichiers afin de pouvoir utiliser votre map. Pour cela :

  • Créez un dossier vide (par exemple, "ma_map").
  • Dans ce dossier, créez un sous-dossier "maps".
  • Dans ce sous-dossier "ma_map/maps", placez les trois fichiers .dds, .smf .smt (le .bmp ne sert plus à rien), ainsi que votre fichier .smd.
  • Si vous avez ajouté de nouveaux types d'objets (ou "feature"), vous devez les placer avec le fichier "fs.txt" dans le dossier "ma_map" également (pas dans le sous-dossier "maps")
  • Utilisez 7zip pour compresser tout le contenu de "ma_map" :
  • - Nommez l'archive "votremap.sd7", où "votremap" est le nom utilisé à la compilation ;
  • - "Dictionary size = 32 Mb" ;
  • - "Word size = 64 Mb" ;
  • - Ne faites pas une archive "SOLID"

Si vous avez tout fait correctement, vous avez maintenant un fichier map utilisable, que vous pouvez charger dans le jeu.

Retrieved from "http://spring.clan-sy.com/wiki/Cr%C3%A9ation_de_maps"

This page has been accessed 210 times. This page was last modified 04:02, 25 May 2008.