Jump to content
Command & Conquer SAGA

Tutoriel en français de modding pour CnC3


Tehnloss

Recommended Posts

i6sltpmr.png

Voici la première partie du Tutoriel en français de modding pour “ Command & Conquer 3 Tiberium Wars ” par Tehnloss

Il faut commencer, avant tout, par télécharger et installer le MOD SDK

Ce tutoriel est largement inspiré du tutoriel officiel intégré dans le MOD SDK (que vous trouvez à C:Program FilesElectronic ArtsCommand & Conquer 3MOD SDKDocumentation).

Partie 1 : présentation du Sage Engine

Command & Conquer 3 a été créé grâce au Sage Engine de Electronic Art (EA). Il a été utilisé pour Command & Conquer: Generals, Command & Conquer Generals: Zero Hour, et Le Seigneur des anneaux : La bataille pour la terre du milieux I & II & L'Avènement du Roi-Sorcier.

Le Sage Engine utilise 3DSMax comme application de base pour la création artistique. Il y a 4 utilitaire de base dans 3DSMax : W3X Exporter, w3d Skin modifier, w3d utilities et w3d materials. Celle-ci sont généralement appelée W3D tools ou outil W3D.

La visionneuse W3X permet la visualisation des fichiers W3X avant de les exporter dans le jeu.

Le Sage Engine utilise aussi World Builder, un utilitaire propriétaire qui permet de créer des maps (cartes) solo ou multijoueurs. Une version améliorée de World Builder est requise pour créer des maps utilisant le contenu d'un mod Command & Conquer 3. Il est possible de le télécharger sur Command&Conquer.com

Pour créer un mod Command & Conquer 3 il vous faudra encore quelques autres applications que nous allons voir tout de suite.

Partie 2 : Les applications requises

Le MOD SDK requière quelques applications installé avant de pouvoir commencer le modding. Les deux premières sont obligatoires les deux suivantes sont fortement recommandées.

- .NET Framework v2.0 – Requis pour faire tourner BinaryAssetBuilder.

- Visual C++ 2005 SP1 – Requis pour faire tourner BinaryAssetBuilder.

- ANTLR v2.77 – Requis si on utilise les <Define> tag.

- Mvp.xml v2.0 – Requis si on utilise les déclarations xi:include.

Télécharger et installer .NET Framework v2.0:

Veuillez visiter le site de Microsoft pour les information sur le téléchargement et l'installation de .NET Framework v2.0.

Télécharger et installer Visual C++ 2005 SP1:

L'installeur de Visual C++ 2005 SP1 peut être trouvé sur cette page Microsoft. Suivez les instructions sur la page pour l'installation.

Télécharger et installer ANTLR:

On peut trouver ANTLR sur http://www.antlr2.org. Téléchargez la version 2.7.7 (Note : les versions ultérieures peuvent aussi fonctionner, mais seul la version 2.7.7 a été testée). Dans le dossier où vous avez installé ANTLR cherchez et copiez ces deux fichiers DLL (antlr.runtime.dll et antlr.astframe.dll) dans le dossier où vous avez installé le MOD SDK (par défaut C:Program FilesElectronic ArtsCommand & Conquer 3MOD SDK).

Télécharger et installer Mvp.Xml:

On peut trouver Mvp.Xml sur http://www.codeplex.com/MVPXML. Télécharger la version 2.0 (Note : les versions ultérieures peuvent aussi fonctionner, mais seul la version 2.0 a été testée). Extrayiez les fichiers de l'archive ZIP sur le bureau et placez le fichier Mvp.Xml.dll dans le dossier où vous avez installé le MOD SDK (par défaut C:Program FilesElectronic ArtsCommand & Conquer 3MOD SDK).

--------------------------------------------

Ajout le 10. novembre 2007 ------------

--------------------------------------------

Notepad++

Je vous conseil personnellement le logiciel Notepad++. C'est un éditeur de texte léger et puissant.

Partie 3 : Sample MOD

Le SampleMOD est un tout petit Mod qui nous permettra l'exploration des fonctionnalités de base du MOD SDK. Il crée une IA personnalité, introduit une nouvelle unité, et modifie l'interface utilisateur (UI).

Partie 3.1 : Structure des données

Lorsque vous créez un Mod il est recommandé de suivre la structure que je vais décrire maintenant, elle peut être changée, mais pour le tuto le minimum serai que vous le suiviez.

Dans le répertoire d'installation vous trouvez un dossier “ Mods ”. Ici nous allons créer un dossier portant le nom du mod que l'on désir créer, puis dans ce dossier nous allons créer un dossier data. Vous pouvez voir un exemple avec le dossier “ SampleMOD ”. Cette étape est très importante, si la structure est correcte le Mod pourra être lu sinon et bien... erreur.

Fichier requis :

Il n'y a qu'un seul fichier requis pour la construction (l'étape durant laquelle l'utilitaire "BuildMod.bat" assemblera tout les fichiers du mod dans un fichier .big) du mod c'est le MOD.xml. Ce fichier devra contenir les adresses de tout les fichiers ajouté ou édité dans le mod.

Le seul autre fichier qui doit ce trouver précisément dans ce dossier est le fichier "MOD.str". Ce fichier est facultatif, il est seulement nécessaire si vous vouez ajouter ou modifier de texte dans le jeu.

MOD.XML:

Ce fichier est le fichier principal qui sera établi par le BinaryAssetBuilderApplication. Ce fichier doit inclure tous les fichiers que vous modifier ou que vous éditer. S'il n'est pas dans ce dossier, le mod ne sera pas construit. Il y a deux dossiers qui devraient toujours y être inclus comme référence lors de la création du Mod : static.xml et global.xml qui représente les deux principaux flux de données lors du chargement du jeu (concrètement ajoutez les toujours dans le MOD.xml), voici un exemple :

<Include type="reference" source="DATA:static.xml" />
<Include type="reference" source="DATA:global.xml" />

Voir la section sur le BinaryAssetBuilder.exe.config pour une explication de DATA:

Art Files :

Le SampleMod contient un artwork utilisé pour un guerrier Elfe du seigneur des anneaux. Les fichiers qui forme ce Artwork sont contenu dans les dossiers EU et HC se trouvant dans le dossier Art. Ces deux dossiers sont nommés selon les deux premières lettres des fichiers d'art (Art files, je vais utiliser ce terme) qu'ils contiennent. Voici un exemple :

<Include
        type="all"
        source="ART:EULorWar_SKN.w3x" 
/>

Ce code signifie que le fichier "EULorWar_SKN.w3x" sera recherché dans le dossier ArtEU. Toute les manip sur ces fichiers seront vu dans la partie suivante.

BinaryAssetBuilder.exe.config

Ce fichier (MOD SDKToolsBinaryAssetBuilder.exe.config) vous permet de modifier le comportement du programme BinaryAssetBuilder. Cette section ne portera toutefois que sur les chemins de recherche du programme. Dans le fichier, vous trouverez la section :

<assetbuilder
         serializedType="BinaryAssetBuilder.Settings,BinaryAssetBuilder.Core"
         schema="..schemasxsdCnC3Types.xsd"
         dataRoot=".."
         defaultArtPaths=".Art" 
         defaultAudioPaths=".Audio;" 
         defaultDataPaths=".;.Cnc3Xml;.Mods"
>

dataRoot – C'est le dossier racine (root) de toute les données. Pour le moment, Il s'agit du dossier d'installation du MOD SDK.

defaulArtPaths – Chemin de recherche par défaut des ART: (par ex."ART:EULorWar_SKN.w3x"). Cette valeur ce joint aux fameuses deux premières lettres vue plus haut.

defaultAudioPaths- Chemin de recherche par défaut des Audio:.

defaultDataPaths- Chemin de recherche pour toute les données utilisant la valeur DATA:. Tel qu'il est programmé actuellement, il va rechercher d'abord dans le répertoire actuel, puis dans le dossier Mods, et enfin dans le dossier CnC3Xml.

--------------------------------------------

Ajout le 14. novembre 2007 ------------

--------------------------------------------

Partie 3.2.1 : Ajouter une unité

Dans le Sample MOD, nous (EA) avons ajouté une nouvelle unité, le guerrier elfe. Cette unité sera disponible dans la caserne GDI. Lorsque l'on ajoute une nouvelle unité au jeu il y a quelques étapes à suivre pour facilité le travaille :

- Choisissez une unité ressemblant à celle que vous désirez créer et copier son fichier XML (dans le dossier CnC3XML) dans le dossier de votre mod (MOD SDKMods[VotreMod]data). Renommez ensuite le fichier avec un nom qui vous parle (c'est très important quand vous allez modder il va y avoir pas mal de fichiers donc il faut pouvoir le reconnaître du premier coup d'oeil).

- Modifier le XML : il faut bien sur modifier le XML pour donner les caractéristiques spécifiques à votre unité.

- Création d'un LogicCommand modifié qui construit votre unité, par exemple dans le Sample MOD, nous avons ajouté un fichier qui définit un nouveau LogicCommand qui construit le Guerrier Elfe ou ElfWarrior:

<LogicCommand
Type="UNIT_BUILD"
id="Command_ConstructGDIElfWarrior">
<Object>GDIElfWarrior</Object>
</LogicCommand>

Ce code peut être définie dans n'importe quel fichier tant qu'il est inclus dans le MOD.xml. Ce sera un thème récurrent lorsque l'on travaille avec le MOD SDK vous pouvez inclure ces éléments à peu près là vous voulez tant que le fichier est inclus. N'oubliez pas de garder de l'ordre tout de même !

Mise-à-jour du LogicCommandSet : la modification du LogicCommandSet est importante, par exemple dans le Sample MOD nous avons mis-à-jour GDIBarracks (Caserne du GDI) qui à présent est en mesure de construire le guerrier Elfe:

La commande marquée par une flèche est la nouvelle commande utilisée pour construire la nouvelle unité guerrier Elfe.

<LogicCommandSet
id="GDIBarracksCommandSet">
<Cmd>Command_ConstructGDIRifleSoldierSquad</Cmd>
<Cmd>Command_ConstructGDIMissileSoldierSquad</Cmd>
<Cmd>Command_ConstructGDIEngineer</Cmd>
<Cmd>Command_ConstructGDIGrenadeSoldierSquad</Cmd>
<Cmd>Command_ConstructGDISniperSquad</Cmd>
<Cmd>Command_ConstructGDICommando</Cmd>
<Cmd>Command_ConstructGDIZoneTrooperSquad</Cmd>
<Cmd>Command_ConstructGDIElfWarrior</Cmd> <==
<Cmd>Command_TogglePower</Cmd>
<Cmd>Command_SelfRepair</Cmd>
<Cmd>Command_Sell</Cmd>
<Cmd>Command_SetDefaultBuilding</Cmd>
<Cmd>Command_SetRallyPoint_Infantry</Cmd>
</LogicCommandSet>

Le Sample MOD créé aussi un nouveau modèle d'armure et d'arme pour le Guerrier Elfe. Celles-ci sont définies dans les fichiers, SampleUpdatedArmor.xml et SampleUpdatedWeapon.xml, de nouveau ces modèles peuvent être définis dans un n'importe quel fichier tant que son adresse inclus dans le MOD.xml.

Partie 3.2.2 : Modifier une unité existante

Il n'y a pas d'unité modifiée dans le Sample Mod. Le processus pour en faire une est assez simple. Copiez simplement l'unité que vous souhaitez modifié de (il se trouve dans le dossier CnC3XML) jusqu'au dossier de votre Mod. Ne pas oublier de l'inclure dans votre mod.xml, et de modifié ce que vous souhaitez ;). Une chose est à noter lors de la construction du MOD en utilisant le BuildMOD.bat, il y aura quelques erreurs concernant l'art qui ne peut pas être trouvé, c'est normal. Ces erreurs se produisent parce que il ne trouve pas tous les éléments artistiques et pour la construction. L'unité va tout de même fonctionner correctement, et vous pouvez utiliser ces éléments dans les nouvelles unités si vous le souhaitez. La nouvelle unité produira les mêmes erreurs, mais lorsque le jeu charge l'unité, il trouvera les éléments sans problème.

--------------------------------------------

Ajout le 15. novembre 2007 ------------

--------------------------------------------

Partie 3.3 : Créer un portrait pour une nouvelle unité

C'est un sujet où le code est relativement simple, mais qui va mettre à contribution votre sens artistique (ou googleique ^^).

Dans le Sample Mod il y a bien sur un portrait pour l'elfe. Si vous regardez le Mod.xml vous verrez ce qui suit :

<Include type="all" source="ART:Images/SampleUpdatedPackedImages.xml" />

Et là normalement vous devez comprendre le code comme si c'était une phrase en français. Mais comme la partie que nous sommes en train de traiter est simple je vais faire une petite récapitulation :

<Include type=''all'' ---> signifie que nous allons faire une inclusion dans le fichier Mod.xml (je rappel qui doit contenir la référence ou adresse de TOUT les nouveaux fichier intégré dans le mod)

source= ---> précède ce que l'on va inclure pas besoin de s'étendre.

ART: ---> Très important ce texte dit où chercher au programme qui va construire le mod. ART: donne comme indication de chercher du coté de .Art (le point c'est pour le dossier root (racine), le dossier d'installation du MOD SDK et Art donne l'ordre de chercher dans le dossier ''Art''). Je vous renvoie à la partie sur la structure des données.

Images/SampleUpdatedPackedImages.xml ---> C'est simple, déduisez !

Si vous n'êtes pas très à l'aise avec ça entraînez vous en prenant d'autres lignes de code (dans le Mod.xml) et en faisant le même raisonnement.

	<Texture id="PackedImages_220" File="PackedImages_220.tga" OutputFormat="A8R8G8B8" GenerateMipMaps="false" AllowAutomaticResize="false"/>
<PackedTextureImage id="Portrait_GDIElfWarrior" Texture="PackedImages_220" Rotated="false">
<Dimensions x="128" y="128"/>
<Coords x="0" y="0"/>
<TextureDimensions x="128" y="128"/>
</PackedTextureImage>

La première balise (c-à-d ce qui ce trouve entre < />) cherche l'image réel (qui se trouve dans le même dossier que SampleUpdatedPackedImages.xml), ce qui permet au jeu de la trouver. L'image est ensuite référencée par son ID (en l'occurrence Portrait_GDIElfWarrior) dans la balise PackecTextureImage. L'identification de la PackedTextureImage est ensuite utilisée dans le GDIElfWarrior.xml dans la balise GameObject :

	SelectPortrait="Portrait_GDIElfWarrior" 
ButtonImage="Portrait_GDIElfWarrior" 

(Allez voir)

L'astuce consiste à vérifier que le fichier xml que vous utilisez pour créer l'icône est situé dans le même dossier que l'art utilisée (ce qui est le cas ici).

--------------------------------------------

Ajout le 17. novembre 2007 ------------

--------------------------------------------

Partie 3.4 : Modding du shell est de l'UI in-game

Cette partie va traiter du modding de UI, interface utilisateur (l'abréviation est en anglais), et du shell environnement utilisateur. Cette opération est assez délicate. Il faut connaître précisément le nom de l'écran que l'on veut modifier. Le Sample MOD vas, pour l'exemple, modifier le menu principale.

Modder le menu principale (Main menu)

Dans le MOD SDK EA a fourni un écran par défaut du menu principal. Il est situé à l'emplacement par défaut de l'UI : ScreensMainMenu. Il contient tous les fichiers que vous devrez modifier. Le Sample MOD reskin simplement les fichiers Arts du Main menu.

Structure des données

Dans le dossier de votre mod vous aurez besoin d'un dossier nommé AptUI. Vous pouvez copier les fichiers du menu principale et de l'UI par défaut dans ce répertoire. Il devrait y avoir un sous dossier nommé MainMenu avec tous les fichiers du menu. Dans le dossier AptUI vous aurez besoin d'un fichier XML, le MainMenu.xml. C'est un peu redondant, mais c'est nécessaire pour obtenir la bonne structure du mod lorsqu'il sera construit.

<Include type="all" source="DATA:SampleMod/Data/AptUI/MainMenu/MainMenu.xml" /> 

Vous devrez également inclure votre MainMenu.xml dans votre Mod.xml. Ça devrait ressembler à ceci :

<Include type="reference" source="DATA:SampleMod/Data/AptUI/MainMenu.xml" />

Ce fichier xml inclut alors le MainMenu.xml qui est situé dans le dossier MainMenu. La structure du répertoire de cette situation est très importante, d'éventuelles erreurs dans la structure entraînera des dysfonctionnement dans votre mod. Il suffit maintenant de remplacer ce que vous voulez, pour autant qu'ils aient le même nom que le fichier que vous remplacez.

=================

La suite peut-être mercredi, peut-être plus tard. Comme le disent les dev' de Duke Nukem : When it's done...

En attendant je vous conseil d'explorer un peu tout les outils et de vous familiariser avec eux.

N'hésitez pas à poser vos questions. ;)

Link to comment
Share on other sites

Une fois qu'on aura lu et compris le tutoriel, faudrait décidément se mettre en groupe en faire un mod CnCSaga.

Ce qui demandera du temps et de la volonté.

Sinon le projet peut être intéressant. On peut déjà réfléchir au contenu du mod.

NB Postez vos idées ici et, si c'est nécessaire, je séparerai le topic

Link to comment
Share on other sites

Faudrait pour commencer des héros par camps :

Scrins : Géantvert (il est le seul ,mais ce serait un énorme géant de tibérium qui détruirait tout ce qui bouge (un peu comme les epic units lol)

Nod :

Tchutch le super saboteur

Commandant Zéphyr

MartinMb le Nuke Master

Commando Mic

GDI :

Dark Revan (avec un joli sabre laser)

Commandant Mahoudeaux

Eomer Akatosh (vu que son avatar c'est un orca, il pourrait en appeler en renfort tiens ! lol)

Commando Xen

Pour les véhicules ché pas encore, mais je veux mon Apokirov :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...