Moddage : Tutoriel de contenu pour un item simple
Cette page a été vérifiée pour la dernière fois pour Vintage Story avec la version 1.20.7.
Introduction
Objectifs
Dans ce tutoriel, vous allez créer un item - une simple baguette ! Bien que cet item n'aura pas de réelle fonctionnalité, il va montrer comment créer des asset en JSON, et aussi comment utiliser les formes, textures, et fichiers lang.
Assets
Avant de commencer, il vous est recommandé d'installer l'espace de travail et les assets pour ce tutoriel. les fichiers complétés peuvent aussi être trouvés ici.
Ce tutoriel commence avec les assets suivants :
- Paramétrage de mod et structure de dossiers
- Fichier d'item vide
- Patron de fichier lang
- Fichier de forme de l'item
- Fichier de texture de l'item
Prérequis
Ce tutoriel va partir du principe que vous comprenez les sujets suivants :
- Paramétrer un mod de contenu et utiliser une IDE.
- Les fonctions des fichiers de forme, texture, et lang.
Utiliser les espaces de travail téléchargés, avoir regardé les fichiers qui existent déjà.
- modinfo.json - Le fichier modinfo, qui recense vôtre mod avec l'ID 'simpleitem'.
- modicon.png - Le fichier modicon, qui sera affiché sur le menu du manager de mod.
- assets/simpleitem/itemtypes/simplewand.json - Un fichier vide, où vous devrez mettre le code de vôtre item.
- assets/simpleitem/lang/en.json - Un échantillon de fichier de language, qui est là où vous ajouterez vos traductions.
- assets/simpleitem/shapes/item/simplewand.json - Un fichier de forme pour vôtre baguette.
- assets/simpleitem/textures/item/simplewand.png - Un fichier texture pour vôtre baguette.
Créer l'item
Pour créer un item, un fichier doit être créé à l'intérieur du dossier itemtypes. Si vous utilisez l'espace de travail fourni à cet effet, il existe déjà un fichier d'item appelé simplewand. ouvrez ce fichier dans vôtre IDE.
La propriété la plus importante lors ce que vous créez le code d'un asset, appelée ID. Pour commencer, copier-coller la dans le code du fichier simplewand.
{
"code": "simplewand"
}Gardez à l'esprit que les fichiers JSON sont un ensembles de clés attachées à des valeurs. La clé, dans cet exemple, est "code", et la valeur est "simplewand". Notez que le fichier de l'item commence et finis avec des accolades ({ }), signifiant que c'est un seul objet.
Maintenant que vôtre fichier itemtype a un code, il va maintenant être créé et enregistré dans le jeu. cependant, vous avez besoin d'un moyen d'accéder à l'item. Pour faire cela, ajoutez une nouvelle propriété :
{
"code": "simplewand",
"creativeinventory": {
"general": [ "*" ]
}
}Remarquez que chaque propriété est séparée par une virgule. La nouvelle propriété, "creativeinventory" dis au jeu dans quelle rubrique de l'inventaire créatif cet item sera placé. La syntaxe de cette propriété est un petit peu plus complexe, mais ne vous en inquiétez pas pour l'instant. Tout ce qu'elle fait est ajouter l'item dans la rubrique "general" de l'inventaire créatif.
Si vous lanciez Vintage Story et activer vôtre mod, vous verriez cet item dans le menu créatif !
Idéalement, vous ne voudrez pas que vôtre item apparaisse comme un gros rectangle noir.
Ajouter une Forme & Texture
Les fichiers de forme et de texture existent dans les asset, mais pourquoi l'item n'est pas rendu correctement ?
Si un asset souhaite utiliser une certaine forme ou texture, alors il doit le spécifier à l'intérieur de son fichier JSON. Remplacez vôtre itemtype json actuel par le suivant :
{
"code": "simplewand",
"creativeinventory": {
"general": [ "*" ]
},
"texture": {
"base": "item/simplewand"
},
"shape": {
"base": "item/simplewand"
}
}Deux nouvelles propriétés ont étés ajoutés - texture etshape. Rappelez-vous que la forme est une représentation 3D de nôtre item, et la texture est une image 2D qui est mappé dans nôtre forme, et nous devons inclure les deux pour s'assurer que nôtre item est correctement rendu. Ill peut sembler étrange que les valeurs des fichiers texture et forme semblent être identiques, mais le jeu les cherches dans des endroits différents. Pour trouver les formes, jeu jeu regarde automatiquement dans le dossier shapes du mod, alors que pour les textures il regarde dans le dossier textures du mod.
Si vous lancez le jeu à nouveau, vous remarquerez certains changements.
Maintenant, ça ressemble plus à ce que nous voulons, mais la position de l'item est incorrecte.
Positionner l'item
Vôtre item est quasiment terminé, cependant l'objet 3D n'a pas de transformation correcte. Une transformation, en graphisme 3D, réfère à la position, rotation, et taille d'un objet.
Utiliser L'éditeur de Transformation
Pour permettre aux moddeurs de facilement et correctement positionner leur items et blocs, Vintage Story utilise un éditeur de transformation qui peut être accédé en jeu. Une fois en jeu, prenez l'item que vous souhaitez repositionner puis utilisez la commande '.tfedit' pour ouvrir l'éditeur de transformations.
L'éditeur de transformations vous permets de sélectionner où l'objet est rendu, et de directement ajuster sa transformation. La meilleure partie est que ça génère aussi le code JSON au bas de l'éditeur, que vous pouvez copier-coller directement dans le fichier de vôtre item.
Il est recommandé d'apprendre comment utiliser l'éditeur de transformation, étant donné que c'est un outil inestimable pour transformer les items et blocs.
Les changements opérés à l'intérieur de l'éditeur de transformation ne modifient pas les fichiers, et ne seront donc pas sauvegardés. Pour chaque item que vous créez, il est recommandé de définir leur position pour le sol, la main principale, et le GUI. Ces derniers utilisent respectivement les propriétés groundTransform, tpHandTransform, and guiTransform.
Pour correctement transformer vôtre baguette, ajoutez les propriétés suivantes. N'oubliez pas d'ajouter une virgule après la dernière accolade du dernier élément de forme.
"guiTransform": {
"translation": {
"x": 0,
"y": 0,
"z": 0
},
"rotation": {
"x": -89,
"y": 41,
"z": 33
},
"origin": {
"x": 0.48,
"y": 0,
"z": 0.38
},
"scale": 1.78
},
"groundTransform": {
"translation": {
"x": 0,
"y": 0,
"z": 0
},
"rotation": {
"x": 0,
"y": 0,
"z": 0
},
"origin": {
"x": 0.5,
"y": 0,
"z": 0.5
},
"scale": 3.4
},
"tpHandTransform": {
"translation": {
"x": -0.45,
"y": 0.03,
"z": -0.66
},
"rotation": {
"x": 90,
"y": 0,
"z": 0
},
"origin": {
"x": 0.5,
"y": 0,
"z": 0.5
},
"scale": 0.8
}Pour voir si vos changements sont corrects, vous pouvez simplement relancer le monde. Espérons-le, si tout à correctement marché, vous devrez remarquer que vôtre baguette se place mieux dans la main du joueur, et apparaitra aussi dans le GUI de façon plus appropriée.
Il y a un dernier changement avant que l'item soit complet.
Renommer L'item
Actuellement, chaque instance de l'item est appelée 'simpleitem:item-simplewand'. Pour corriger cela, vous devrez ajouter une entrée au fichier lang. Ouvrez le fichier de langue en.json fourni, trouvé dans assets/simpleitem/lang.
This sample lang file contains two example translations, to show you how the file works, as well as a translation for the creative mod tab. Note that the creative tab translation is prefixed with 'game', due to all creative tabs being specifically added to the game domain.
{
"game:tabname-examplemod": "Example Mod",
"template-lang-1": "Template Lang 1",
"template-lang-2": "Template Lang 2"
}On the left is the translation key, and on the right is the translated string. Add a new entry to this file by adding a comma after the second sample translation, and a new line. In this case, the translation key is 'item-simplewand'. Note that this is how the game is currently displaying the name, minus the mod domain prefix. The translated string for this should be 'Simple Wand'.
{
"game:tabname-examplemod": "Example Mod",
"template-lang-1": "Template Lang 1",
"template-lang-2": "Template Lang 2",
"item-simplewand": "Simple Wand"
}Both sample translations are not used, and can be deleted if you want to.
To speed up testing, if you still have Vintage Story open, you can use the command '.reload lang' to reload all lang files. Hovering over your item should show that our lang file has taken effect.
Conclusion
Congratulations, you have now created your first item! This tutorial should have given you some understanding of items, textures, shapes and language files, as well as the basics of modding for Vintage Story!
Next Steps...
If you want to test your knowledge, consider doing the tasks under the Going Further section below.
When you're ready, try out the next tutorial: Simple Block. This will show you how to create a new block with a texture.
Going Further
Want to make some additional changes to this mod? Try and achieve the following things!
Change the color of the wand
| To achieve this... |
| Modify the simplewand.png texture to a different color. |
Change your modid and domain to something else
| To achieve this... |
| Modify both the modid entry in modinfo.json, and change the name of the 'simpleitem' folder in 'assets'. |
Rename your 'Simple Wand'
| To achieve this... |
| Change the entry for simplewand in your en.json lang file. |
Create another wand with a different color
| To achieve this... |
| Create a copy of the texture with a different name and color, and a duplicate itemtype file. In the new itemtype file, change the item code and change the texture property to your new texture path. Don't forget to add new lang translation entries!
Note that you do not need to change the texture in the 'shapes' file, as the texture property in your itemtype will be used instead. |
