Créer sa carte personnalisée
Comment créer et exporter des maps de Unreal Engine vers Nanos World
Les maps et les levels sont les ressources les plus simples que vous pouvez créer et importer. In Unreal, maps are called Levels, usually these levels are filled with a Landscape component to make the terrain, some Lights and some Static Meshes (Trees, Houses, etc).
Please refer to Unreal’s Official tutorial - Working with Levels.
Attention! Cette page est ancienne et ce tutoriel peut être obsolète ! Les images font référence ici à Unreal Engine 4 et peuvent avoir changé. Un nouveau tutoriel mis à jour sera bientôt disponible !
Règles pour créer une Map/Level
- Do not spawn/place Dynamic Meshes (with Physics), as they will not be synced in-game. You need to spawn them as a Prop through the scripting.
- Add a “Sun” actor-tag to all Lighting/Sky/Sun related actors (DirectionalLight, SkyLight, DomeMesh, SkyAtmosphere or SunSky), this will allow, if wanted, to your light to be overridden by scripters to use, instead, the Official nanos world Sun through
World.SpawnDefaultSun(), which allows in-game light/sun customization. - If you are creating a Map, please remember to nullify (set to None) all references it has for Unreal GameModes Override in the World Settings:

Commencer
Before proceeding, please make sure you read Creating & Importing Assets Guide.
The first step is to create a folder inside the Content/ folder, this step is very important. Nommez ce dossier comme vous le souhaitez.
- Développez le menu.
- Clic droit sur le Content.
- Crée un nouveau dossier.

Now let’s create the Map itself, in Unreal maps are called Levels, to do so:
- Cliquez droit sur l'espace de contenu.
- Créer un nouveau level.

Renommez-la avec le nom de la map que vous souhaitez, enregistrez-la et ouvrez-la. Vous remarquerez que le Viewport est devenu noir, c'est parce que la map que vous venez d'ouvrir ne contient rien, ajoutons-y des éléments :

Ajouter des objets
First let’s add a floor, for that just drag-and-drop a Plane from Place Actors -> Basic window into the Viewport:


With the plane selected, you will notice it is a simple Static Mesh, this Static Mesh is a model already included in the Engine, so it is important that you copy this Mesh to your Content/YourAssetPack/ folder to avoid any further export problem:

Pour trouver l'emplacement de votre mesh, appuyez sur la loupe à droite de l'élément Static Mesh, à droite de l'écran :
Cela ouvrira le dossier du moteur qui contient quelques meshes de base fournis avec le moteur :

Copions quelques meshes de base dans notre dossier AssetsPack pour les utiliser plus tard, y compris le plane :

Utilisez CTRL+C + CTRL+V pour copier les assets dans votre dossier :

Maintenant, remplaçons le mesh du plane que nous utilisions par notre mesh copié, pour cela, il faut juste
- Sélectionnez le mesh plane copié.
- Appuyez sur la flèche de votre Plane Actor pour remplacer son Static Mesh (vous pouvez également supprimer le plane créé et faire glisser le nouveau plane depuis le dossier de votre pack d'assets):

After that, with your Plane (floor) selected, let’s just scale it to X = 10, Y = 10, Z = 10 and centralize it on X = 0, X = 0, X = 0:

We can also add some lights, for that, just drag and drop a Directional Light (Sun Light/Shadows) and a Sky Light (Shadow’s Color) into your level (you can fly around with Right Click + WASD in the viewport, or press F to centralize the Plane - if selected):

Ajout de matériaux
Bon travail, maintenant on peut voir la chose ! Now let’s add some color to it, applying color and textures in Unreal are made through Materials, for that, let’s just create a Material
- Clic droit.
- Créer un nouveau matériau.

Rename it to M_Plane and open it up:

We won’t cover all aspects of Materials in this tutorial, for now let’s just pin a Vector3 node with a color into Base Color input, for that Right Click on the screen and search for Constant3Vector:

Après cela, mettez-le dans l'entrée Base Color :

Sélectionnez le nœud Vector3 et choisissez une couleur pour lui :

Maintenant, enregistrez et fermez cette fenêtre de matériau, et vous êtes en mesure de glisser et déposer votre matériau dans le Mesh que vous voulez, faisons-le pour le Plane :

Et voilà, il devient verdâtre (ou la couleur que vous avez sélectionnée) !

Maintenant, nous allons glisser et déposer d'autres Meshes dans notre level, comme ceci :

Also, the ADK project provides a built-in Sun & SkyBox Actor (to fill up the sky with color and clouds), to add it, just look into NanosWorld/Blueprints/World/ for BP_SunSky and drag it to the viewport.
Vous pouvez créer un nouveau matériau et l'utiliser pour peindre ces meshes également :

Si vous sélectionnez la directional light, vous pouvez en modifier la rotation. N'oubliez pas non plus de la régler sur le mode movable pour que ses ombres soient rendus en temps réel :

When you are fine with it, move your camera to see the whole map and take a screenshot of it, we will use that for a Thumbnail afterwards (save it anywhere with the same name as your Map as .webp, in our case: MyAwesomeMap.webp):

Et nous avons terminé ! Sauvegardons tout et exportons la map !
Exporter la map
Après avoir terminé toutes les étapes, vous pouvez les exporter vers nanos world ! Please refer to Exporting & Cooking your Assets docs page before proceeding.
Configuration du Asset Pack
After you cooked your assets and copied the generated folder into your server's Assets/ directory. Il est temps de configurer le Asset Pack ! For that please refer to Configuring your Assets.toml docs page before proceeding.
Now that you created your Assets.toml and configured the unreal settings, make sure you set up your Static Meshes properly in the [assets.maps] category, like that:
# maps
[assets.maps]
MaMapIncroyable = "MaMapIncroyable"
This way we can load it through Config.toml!
Ajouter une Miniature
To add a thumbnail to your map, copy the .webp image into the same folder as your map .umap file.
In our case, our .umap is at the root, so we just drag it there:

You can now just start the New Game with the Sandbox package selected and VOILA! Votre nouvelle carte jouable créée de toutes pièces !

Configuration de votre carte
Il est également possible d'ajouter un fichier de configuration, des données personnalisées et même un package exclusif (scripting) pour votre carte ! Please refer to Map Script and Configuration for more information!