Ceci est la traduction française, faite pour ce site, du guide livré dans le produit : le fichier INSTALL.md de votre archive, en anglais. L’anglais fait référence : en cas de doute, c’est lui qui compte. Lire l’original en anglais
1. Les outils (environ 5 minutes)
- Installez Rokit (<https://github.com/rojo-rbx/rokit>), puis, dans le dossier :
rokit install. Il récupère Rojo, Lune, uv synccrée l’environnement Python qu’utilisent les outils (.venv) à partir deuv.lock. 0,3 s avec les paquets déjà téléchargés ; la première fois, il les télécharge :- Vérifiez le paquet sur votre machine :
bash tools/check.sh. Il formate, analyse, vérifie les types, exécute toutes les suites de tests
StyLua, Selene, luau-lsp et uv aux versions de rokit.toml. Vous devez voir chaque outil s’installer. 0,1 s quand les outils sont déjà là ; la première fois, il télécharge six programmes : NON MESURÉ.
NON MESURÉ.
(dont le simulateur de parties) et construit le place ; il doit se terminer par GATE GREEN (full). 50 s (21 suites, dont le simulateur de parties, et la construction du place).
2. Le faire vôtre
Modifiez project.json : mettez votre identifiant d’utilisateur Roblox dans creatorUserId (le nombre dans l’adresse de votre profil), ou celui d’un groupe dans creatorGroupId si l’expérience appartient à un groupe. Laissez universe et place à 0 jusqu’à l’étape 8.
3. Y jouer tout de suite, avec des formes simples (environ 2 minutes)
Le paquet ne contient ni art ni identifiants du développeur : src/shared/Data/Ids.luau est vide, et tout ce qui serait dessiné à partir d’un asset à vous est dessiné comme rien, ou comme les formes simples avec lesquelles le jeu a d’abord été construit ; la boutique est masquée. Cela suffit pour jouer, tester et modifier le jeu avant d’avoir fabriqué quoi que ce soit.
bash tools/build_place.shécritLanternDeep.rbxl(1,1 Mo). 0,4 s.- Ouvrez-le dans Roblox Studio et appuyez sur Play (onglet Home, « Play »). Vous arrivez au phare ; la cloche lance une plongée.
4. Une clé d’API Open Cloud
Les outils d’envoi et de publication parlent à Roblox avec votre propre clé d’API. Créez-en une sur <https://create.roblox.com/dashboard/credentials> (« Create API Key ») : permissions Assets (lecture et écriture) avec votre compte ou votre groupe comme propriétaire ; ajoutez Universe Places (écriture) et Luau Execution Sessions (écriture) seulement si vous utilisez tools/publish.py et tools/cloud_run.py. Donnez la clé aux outils par la variable d’environnement ROBLOX_OPEN_CLOUD_KEY (dans PowerShell : $env:ROBLOX_OPEN_CLOUD_KEY = "<the key>"), ou gardez-la dans un fichier hors du dossier et passez --key-file <file>. Les outils ne l’affichent jamais, et elle n’est jamais écrite dans le projet : gardez-la hors de tout dépôt que vous feriez du paquet.
5. Fabriquer l’art et l’envoyer (la longue étape)
Chaque modèle, texture, icône et effet est fabriqué par un script de blender/scripts (Blender 5.2, lancé sans fenêtre) ou de tools/, envoyé sur votre compte par tools/upload_assets.py, et nommé dans blender/uploaded.json. Ensuite, python tools/setup_ids.py écrit les identifiants dans src/shared/Data/Ids.luau, où le jeu les lit par leur nom.
Avec BLENDER le chemin de votre exécutable Blender (les commandes sont celles qu’a utilisées le développeur ; un script qui prend des noms ne fabrique que ceux-là) :
| Élément | Commandes, dans l’ordre |
|---|---|
| Modèles (plongeurs, armes, créatures, hub, accessoires, décor, tuiles, panorama) | "$BLENDER" -b --factory-startup --python blender/scripts/<script>.py pour chaque script de modèle de blender/scripts qui commence par build_ (ou divers_, creatures_, wardens_, keepers_), puis uv run python tools/upload_assets.py (envoie blender/manifest.json), puis uv run python tools/upload_assets.py --manifest blender/manifest_creatures.json |
| Corps précuits (créatures, gardiens, plongeurs) | "$BLENDER" -b --factory-startup --python blender/scripts/crab_hd_m15.py (le modèle à suivre ; les autres sont creatures_m15.py), puis uv run python tools/upload_assets.py --manifest blender/manifest_crabhd.json |
| Matériaux | "$BLENDER" -b --factory-startup --python blender/scripts/materials_m15.py, puis uv run python tools/upload_assets.py --manifest blender/manifest_materials.json, puis uv run python tools/gen_materials.py |
| Icônes | "$BLENDER" -b --factory-startup --python blender/scripts/icons.py, uv run python tools/icon_atlas.py, envoyez blender/manifest_icons.json (chaque atlas est envoyé comme un decal ; mettez l’identifiant d’image qu’il donne dans blender/icon_images.json), puis uv run python tools/gen_icons.py |
| Effets (disque de balles, bulle, ciel, flipbooks) | uv run python tools/fx_sheet.py, "$BLENDER" -b --factory-startup --python blender/scripts/fx_sims_p4.py et fx_sims_f6.py, puis uv run python tools/upload_assets.py --manifest blender/manifest_fx.json |
| Les identifiants | uv run python tools/setup_ids.py, puis uv run python tools/gen_asset_meta.py |
NON MESURÉ et NON EXÉCUTÉ en une seule session sur une machine autre que celle du développeur : le développeur a fabriqué cet art pendant des semaines, script après script, et n’a pas chronométré une reconstruction de l’ensemble. Les envois sont limités par Roblox (la modération prend des minutes par lot) ; upload_assets.py saute ce qui est déjà envoyé, vous pouvez donc vous arrêter et reprendre.
6. Construire les modèles dans Studio
Les maillages envoyés deviennent les modèles du jeu dans Studio (ils sont remis à leurs tailles exactes et habillés des matériaux). Ouvrez LanternDeep.rbxl (reconstruisez-le après l’étape 5 : bash tools/build_place.sh), puis, dans la barre de commande de Studio :
require(game.ServerStorage.LDTools.AssetBuilder).build()
Il rapporte une ligne par modèle (ok ou la raison). Faites un clic droit sur ReplicatedStorage.LDAssets dans l’Explorer, « Save to File... », et enregistrez par-dessus assets/LDAssets.rbxm ; reconstruisez le place. Les matériaux viennent de assets/LDMaterials.model.json, que tools/gen_materials.py a écrit à l’étape 5. Regardez ensuite le phare dans Studio avant de publier : un jeu publié ne dessine les cartes d’un matériau qu’à partir de son pack de textures, et Studio fabrique le pack quand il dessine le matériau. NON MESURÉ, et NON EXÉCUTÉ sur un compte de créateur autre que celui du développeur.
7. Produits et passes (facultatif)
La boutique reste masquée tant que vous n’avez défini aucun produit. uv run python tools/setup_ids.py --list affiche les offres que vend le jeu (nom, type, prix). Créez chacune sur votre expérience (Creator Hub, Monetization), mettez son identifiant à côté de sa clé dans sale/products.json, et relancez uv run python tools/setup_ids.py. Une offre dont l’identifiant reste à 0 n’est pas affichée.
8. Publier
Créez une expérience dans le Creator Hub, mettez ses identifiants universe et place dans project.json, ouvrez le place dans Studio et utilisez File, « Publish to Roblox » (ou tools/publish.py si vous gardez le projet dans git et voulez le chemin de publication testé qu’il documente). Réglez les langues prises en charge de l’expérience sur l’anglais et le français, et désactivez Automatic Text Capture et le contenu traduit (le jeu se traduit lui-même, depuis src/shared/Lang ; les textes de votre page de boutique sont à vous d’écrire, dans les deux langues).
Si une étape échoue
Envoyez dans la conversation de la page de la ressource le numéro de l’étape et sa sortie (jamais une clé). Causes courantes : un outil à la mauvaise version (relancez rokit install), une clé à laquelle il manque une permission (l’outil dit quelle requête a échoué), un asset encore en modération (uv run python tools/upload_assets.py --status <Name> lit son état).
Assistance : Botera Studio, sur Discord (https://discord.gg/enaYMavQbW).