{"id":1028,"date":"2023-11-21T21:22:21","date_gmt":"2023-11-21T20:22:21","guid":{"rendered":"https:\/\/oneiricworlds.com\/fr\/?p=1028"},"modified":"2023-11-21T21:22:21","modified_gmt":"2023-11-21T20:22:21","slug":"editeur-de-niveaux","status":"publish","type":"post","link":"https:\/\/oneiricworlds.com\/fr\/2023\/11\/editeur-de-niveaux\/","title":{"rendered":"Editeur de niveaux"},"content":{"rendered":"\n<p>Salut !<\/p>\n\n\n\n<p>Encore un mois de pass\u00e9, et pour une fois, j&rsquo;ai principalement concentr\u00e9 mon travail sur une seule chose. Dans <a href=\"https:\/\/oneiricworlds.com\/fr\/2023\/10\/jeu-surprise-level-design\/\">mon dernier post<\/a>, je parlais de ma tentative de cr\u00e9er des topologies \u00e0 partir d&rsquo;une flow map. Et bien, j&rsquo;ai pouss\u00e9 cela un peu plus loin. C&rsquo;est devenu un \u00e9diteur de niveaux pour Zefyr, et esp\u00e9rons-le, pour d&rsquo;autres jeux \u00e9galement. Bien s\u00fbr, j&rsquo;ai d\u00e9j\u00e0 con\u00e7u beaucoup de niveaux pour Zefyr directement dans Blender, mais j&rsquo;ai remarqu\u00e9 que mon workflow n&rsquo;\u00e9tait pas toujours tr\u00e8s optimal. J&rsquo;esp\u00e8re que cet outil \u00ab\u00a0maison\u00a0\u00bb pourra m&rsquo;aider \u00e0 it\u00e9rer plus rapidement. Je pense l&rsquo;utiliser pour cr\u00e9er des niveaux bonus.<\/p>\n\n\n\n<p>Quoi qu&rsquo;il en soit, voici \u00e0 quoi \u00e7a ressemble maintenant :<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Custom Level Design Tool\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/O7Qsb_1pvX8?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Lien direct : <a href=\"https:\/\/www.youtube.com\/watch?v=O7Qsb_1pvX8\">https:\/\/www.youtube.com\/watch?v=O7Qsb_1pvX8<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">I &#8211; Comment \u00e7a marche ? <\/h2>\n\n\n\n<p>Voici les principales fonctionnalit\u00e9s :<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">OUTILS<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Topologie de base g\u00e9n\u00e9r\u00e9e \u00e0 partir d&rsquo;une carte de flux et de lignes principales cr\u00e9\u00e9es par l&rsquo;utilisateur<\/li>\n\n\n\n<li>Brosses de tuiles cr\u00e9\u00e9es \u00e0 partir de tuiles de base quad et tri<\/li>\n\n\n\n<li>Cr\u00e9ation automatique des tuiles manquantes lorsque c&rsquo;est possible<\/li>\n\n\n\n<li>Lissage automatique des normales<\/li>\n\n\n\n<li>\u00ab\u00a0Smart\u00a0\u00bb gizmo qui d\u00e9tecte le meilleur voisin pour peindre\/sculpter<\/li>\n\n\n\n<li>Rayons horizontaux et verticaux pour la taille de la brosse<\/li>\n\n\n\n<li>Variations al\u00e9atoires des tuiles lorsque disponibles<\/li>\n\n\n\n<li>Gomme\/Suppression<\/li>\n\n\n\n<li>S\u00e9lections<\/li>\n\n\n\n<li>Brosses d&rsquo;entit\u00e9s pour cr\u00e9er des objets sp\u00e9cifiques sur le terrain avec divers param\u00e8tres (alignement, rotation al\u00e9atoire, variations d&rsquo;\u00e9chelle, propagation des normales, &#8230;)<\/li>\n\n\n\n<li>Mode dispersion\/diffusion des entit\u00e9s pour cr\u00e9er rapidement de la v\u00e9g\u00e9tation par exemple<\/li>\n\n\n\n<li>D\u00e9formation du niveau via la grille sous-jacente (FFD). Repositionnement dynamique des entit\u00e9s<\/li>\n\n\n\n<li>Annuler <\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">INTERFACE UTILISATEUR<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Interface utilisateur de base et raccourcis clavier<\/li>\n\n\n\n<li>Aper\u00e7us des brosses de tuiles et d&rsquo;entit\u00e9s <\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">SAUVEGARDES<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Export vers des fichiers fbx binaire et\/ou ascii<\/li>\n\n\n\n<li>Sauvegarde et chargement au format json<\/li>\n<\/ul>\n\n\n\n<p>Et je l&rsquo;ai utilis\u00e9 \u00ab\u00a0pour de vrai\u00a0\u00bb pour cr\u00e9er un premier niveau que j&rsquo;ai import\u00e9 dans Zefyr ! Youpi ! Enfin, j&rsquo;ai un pipeline enti\u00e8rement fonctionnel :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/oneiricworlds.com\/fr\/wp-content\/uploads\/2023\/11\/20231121_154820.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/oneiricworlds.com\/fr\/wp-content\/uploads\/2023\/11\/20231121_154820-1024x576.jpg\" alt=\"\" class=\"wp-image-1029\" srcset=\"https:\/\/oneiricworlds.com\/fr\/wp-content\/uploads\/2023\/11\/20231121_154820-1024x576.jpg 1024w, https:\/\/oneiricworlds.com\/fr\/wp-content\/uploads\/2023\/11\/20231121_154820-300x169.jpg 300w, https:\/\/oneiricworlds.com\/fr\/wp-content\/uploads\/2023\/11\/20231121_154820-768x432.jpg 768w, https:\/\/oneiricworlds.com\/fr\/wp-content\/uploads\/2023\/11\/20231121_154820-1536x864.jpg 1536w, https:\/\/oneiricworlds.com\/fr\/wp-content\/uploads\/2023\/11\/20231121_154820-1320x743.jpg 1320w, https:\/\/oneiricworlds.com\/fr\/wp-content\/uploads\/2023\/11\/20231121_154820.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>OK, c&rsquo;est un peu vide pour l&rsquo;instant, mais il \u00ab\u00a0suffira\u00a0\u00bb d&rsquo;ajouter d&rsquo;autres brosses pour \u00e9toffer tout \u00e7a (rochers, v\u00e9g\u00e9tation, ennemis, r\u00e9compenses, etc.).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">II &#8211; Et ensuite ?<\/h2>\n\n\n\n<p>Bien s\u00fbr, il y a des bugs, c&rsquo;est pas super stable, et il manque encore de nombreuses fonctionnalit\u00e9s, mais voil\u00e0 ce que j&rsquo;envisage \u00e0 moyen terme :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Export GLTF<\/li>\n\n\n\n<li>Dessiner manuellement la topologie avec une connexion intelligente automatique \u00e0 la topologie d\u00e9j\u00e0 existante <\/li>\n\n\n\n<li>Copier-coller (pas gagn\u00e9, \u00e9tant donn\u00e9 que la topologie sous-jacente n&rsquo;est jamais la m\u00eame) <\/li>\n\n\n\n<li>Combinaison des deux outils pr\u00e9c\u00e9dents : remodeler un niveau existant en dessinant manuellement des contours\/topologies sous-jacentes. Je ne suis m\u00eame pas s\u00fbr que \u00e7a soit possible, mais j&rsquo;aime l&rsquo;id\u00e9e <\/li>\n\n\n\n<li>Calques <\/li>\n\n\n\n<li>Propri\u00e9t\u00e9s \u00ab\u00a0custom\u00a0\u00bb sur les entit\u00e9s <\/li>\n\n\n\n<li>Correction de placement pour chaque entit\u00e9 (position\/rotation\/\u00e9chelle) <\/li>\n\n\n\n<li>\u00ab\u00a0Pipette\u00a0\u00bb pour les brosses\/entit\u00e9s\/couleurs <\/li>\n\n\n\n<li>Peinture des sommets (principalement pour les variations de texture de terrain) <\/li>\n\n\n\n<li>Brosses de tuiles 1D et 2D (pour les fils \u00e9lectriques, les cl\u00f4tures, les murs) <\/li>\n\n\n\n<li>Ajout de Wave Function Collapse pour cr\u00e9er des r\u00e8gles g\u00e9n\u00e9rales pour le placement &amp; la validation automatique des tuiles: imaginez peindre une route \u00e0 l&rsquo;int\u00e9rieur d&rsquo;une ville existante, et les environs s&rsquo;adapteraient automatiquement, cr\u00e9ant des tunnels, des ponts et des connexions l\u00e0 o\u00f9 il le devrait. <\/li>\n\n\n\n<li>Cela peut \u00e9galement conduire \u00e0 des brosses intelligentes g\u00e9n\u00e9rant du contenu de mani\u00e8re semi proc\u00e9durale pour peindre directement des quartiers\/biomes <\/li>\n\n\n\n<li>Donner aux brosses intelligentes la capacit\u00e9 de faire appara\u00eetre des entit\u00e9s dynamiquement sur les tuiles. Cela devrait permettre de peindre d&rsquo;un seul trait des b\u00e2timents avec des fen\u00eatres, des climatiseurs, des antennes, des plantes ou tout ce qui pourrait \u00eatre dessus. <\/li>\n\n\n\n<li>Outil de remplissage pour repeindre\/changer l&rsquo;aspect\/le style de zones enti\u00e8res en une fois <\/li>\n<\/ul>\n\n\n\n<p>Ce fut donc un grand mois en ce qui concerne les outils. Oh, et maintenant, je suis aussi sur bluesky : <a href=\"https:\/\/bsky.app\/profile\/oneiricworlds.bsky.social\">https:\/\/bsky.app\/profile\/oneiricworlds.bsky.social<\/a>. En fait, j&rsquo;ai beaucoup trop de r\u00e9seaux sociaux.<\/p>\n\n\n\n<p>Comme toujours, merci infiniment pour votre soutien continu ! Si vous voulez me soutenir financi\u00e8rement (si ce n&rsquo;est pas d\u00e9j\u00e0 le cas), vous pouvez consulter mon <a href=\"https:\/\/www.patreon.com\/oneiricworlds\">Patreon<\/a>. Merci beaucouuup !<\/p>\n\n\n\n<p>Et voil\u00e0 !<\/p>\n\n\n\n<p>Prenez soin de vous.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Salut ! Encore un mois de pass\u00e9, et pour une fois, j&rsquo;ai principalement concentr\u00e9 mon travail sur une seule chose. Dans mon dernier post, je parlais de ma tentative de cr\u00e9er des topologies \u00e0 partir d&rsquo;une flow map. Et bien, j&rsquo;ai pouss\u00e9 cela un peu plus loin. C&rsquo;est devenu un \u00e9diteur de niveaux pour Zefyr, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1030,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,12],"tags":[62,43,59,61,63,64,17],"class_list":["post-1028","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","category-video","tag-creation","tag-devlog","tag-level-design","tag-niveau","tag-outil","tag-tool","tag-video"],"_links":{"self":[{"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/posts\/1028","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/comments?post=1028"}],"version-history":[{"count":8,"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/posts\/1028\/revisions"}],"predecessor-version":[{"id":1038,"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/posts\/1028\/revisions\/1038"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/media\/1030"}],"wp:attachment":[{"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/media?parent=1028"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/categories?post=1028"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/tags?post=1028"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}