flossmanualsfr / peril-en-daiza

Jeu 3D créé avec Blender / 3D Game Created With Blender
http://perilendaiza.com/
GNU General Public License v2.0
5 stars 1 forks source link

Créer des Tiles de décor pour le bord du monde #4

Closed nylnook closed 10 years ago

qbolsee commented 10 years ago

Alors, j'ai vu le modèle de forêt de bambou, c'est plutôt chouette! Il faut voir comment on place ça dans Tiled: je pense qu'un seul "morceau" de forêt devrait prendre plusieurs cases à lui seul, ça évite la répétition case par case de la même partie.

nylnook commented 10 years ago

Hello,

Alors, je viens de rajouter 5 tiles différentes pour les décors de bord du monde :

J'ai beaucoup agrandi les bambous en hauteurs, sinon ça ne marchait pas. En mixant un peu les 5 on évite facilement l'effet de répétition.

J'ai fait plusieurs tests dans différents niveaux (directement dans le .blend), et ça a l'air de fonctionner, mais ça rajoute beaucoup de tris, bien que j'ai été vraiment économe sur la Mod... je ne sais pas si c'est une si bonne idée. Il faut peut-être mettre de l'herbe en priorité, et ces tiles vraiment en bord de caméra.

Enfin, j'ai été obligé de faire un merge manuel, parce que le .blend est un binaire pour Git... donc je suis reparti de ton fichier Quentin, et j'ai fait des Appends de mes tiles, ce qui m'a permis de corriger une ou deux erreur de noms.

Si vous pouvez tester et me donner votre avis, ce serait super.

Il manque donc encore l'équivalent avec l'éditeur Tiled (que je n'ai pas encore testé...).

Si on considère que cette solution fonctionne, je pourrais faire d'autre types d'assets.

qbolsee commented 10 years ago

C'est fait, tu peux aller voir dans les tileset (dossier /levels). Tu peux aussi aller voir le tutoriel que j'ai fait, si il est bien écrit tu devrais savoir faire un petit niveau de test (il manque des illustrations, je m'en chargerai). J'ai testé les bambous et j'aime bien! Mais je constate qu'il faudra d'office rajouter un ciel derrière, impossible de boucher tous ces interstices.

XAMEUS commented 10 years ago

Mais je constate qu'il faudra d'office rajouter un ciel derrière, impossible de boucher tous ces interstices.

L'idée c'est de ne pas voir le "ciel" gris-noir ? Perso, je trouve ça moins choquant d'avoir un monde sombre que d'avoir un ciel bleu (sous la map). Sinon une sorte d'alternative, plus compliquée : meubler autour de la map (avec au nord et au sud des forêts de bambous, à l'est un lac, à l'ouest une montagne; et on peut changer suivant les niveaux).

Au passage, ou peut-on trouver le dernier .blend du jeu complet ? (ok il vient d'être uploadé)

Ma version est peut-être un peu anciene mais beaucoup d'actions sont parties.

nylnook commented 10 years ago

Merci pour le tuto Quentin, j'y suis arrivé ;)

Je suis en train de tester, et effectivement il faut une texture de monde pour gérer le dessous de la map, plutôt sombre comme XAM le suggère. Et éventuellement des assets en plus genre lac, montagne...

On ne peut pas mettre de texture au World dans le Game Engine n'est-ce pas, il faut créer un mesh qui se place dessous, du genre un très grand plan ou une demi-sphère ?

qbolsee commented 10 years ago

On ne peut pas mettre de texture au World dans le Game Engine n'est-ce pas, il faut créer un mesh qui se place dessous, du genre un très grand plan ou une demi-sphère ?

Oui. Perso, j'aime bien la technique de la skybox, ça évite de faire un plan énorme sous le niveau. Si on le fait bouger en même temps que la caméra, l'illusion sera parfaite

Deevad commented 10 years ago

Oui, pourquoi pas pour la solution de texture de fond/skybox. Certains jeux utilisaient cette méthode pour montrer une forêt en contre bas lointaine. Ca marchait très bien. Example: Old school background in 2D game

Une autre solution , plus claustrophobique, serait de considérer la fin du décors comme un mur, pour obstruer totalement le vide du fond. Genre un mur irrégulier peins immitant une grande densité de bambous ( maillages rouges dans example ci-dessous ) ; avec par dessus de vrai mesh de bambous ( maillages verts ) pour aérer un peu l'effet. Mais ça demanderai la création d'un autre 'tile-set' de 3 éléments mur de bambous ( mur plat, mur angle obtus 270° , mur angle aigu 90° ) et je ne suis pas très sur de l'effet en jeu. Example: 2014-08-14_screenshot_114556

nylnook commented 10 years ago

Je pensais plus à la solution 1 en effet, j'ai peur de l'effet claustrophobie, et c'est pour ça que je n'avais pas mis de mur dans les tiles... Après même avec la solution 1, il faudra surement des tiles très spéciales "bord du monde", avec un dégradé qui va de opaque coté jeu à transparent coté exterieur... pour que la transition avec la Skybox soit douce. Vous connaissez un bon tuto sur la création de skybox, ou c'est juste un cube géant avec les faces vers l'intérieur ?

XAMEUS commented 10 years ago

j'ai peur de l'effet claustrophobie

Pour la solution 2, on pourrait avoir des murs "ouverts", montagne d'un côté, lac de l'autre, petite forêt, plaine, etc.

Deevad commented 10 years ago

@nylnook : Oui, un cube shadeless UVmappé+normals à l'intérieur.

Dans mes anciennes contributions mapping de jeux vidéos open-source, j'avais fait cette skybox sous Terragen 1 ; ma skybox lien vers hi-res: http://www.davidrevoy.com/XYZ/skybox-cube-texture_by-David-Revoy.png (1,3MB, 6 tiles de 512x512px ) Ca date un peu niveau rendu et ce n'est pas très pertinent pour le "Péril en Daïza", mais ça peut faire un point de départ car c'est du CC-By maison donc pas de risque niveau license pour tester au moins si ça marche. Avis aux testeurs et bidouilleurs :-)

qbolsee commented 10 years ago

Sinon, il y avait la possibilité de simplement bloquer la caméra lorsqu'elle atteint les bords. Je peux faire ça facilement

nylnook commented 10 years ago

Ok pour la skybox, et l'exemple est parlant David, merci ;) De plus cette solution permettra d'en créer d'autres relativement facilement si on veut différentes ambiances... le jour où on aura 99 niveaux ;p

Je ne vais pas acheté Terragen par contre, mais je dois pouvoir faire quelque chose de sympa dans Blender avec Cycles...

Par contre là je me suis mis en retard côté boulot, donc ça sera probablement pas avant le début de semaine prochaine, vu que je suis pas dispo ce week end...

Mais si vous voulez les tiles de fondu au bord pour récréer les niveaux, je peux les faire rapidement, genre en fin d'aprem ou demain matin...

@mrjmad ?

nylnook commented 10 years ago

Euh, pendant que j'y suis, pour la résolution, 6 tuiles de 1024x1024px c'est bien, ou on se limite à 512 ?

zeauro commented 10 years ago

Je ne suis pas persuadé que la skybox ait un sens. La camera est orienté vers le sol. Si je ne dis pas de bêtise, le joueur ne peut pas lever les yeux au ciel. Je pense donc qu'un sol suffit. Rien n'empêche de créer des étendues d'eau dans lesquelles se reflètent le ciel, ou de changer un peu plus l'éclairage de niveau en niveau (en jouant sur la couleur et l'orientation des ombres ) ; pour casser la monotonie qui peut donner l'impression de claustrophobie.

2014-08-14 14:39 GMT+02:00 Camille Bissuel notifications@github.com:

Euh, pendant que j'y suis, pour la résolution, 6 tuiles de 1024x1024px c'est bien, ou on se limite à 512 ?

— Reply to this email directly or view it on GitHub https://github.com/flossmanualsfr/peril-en-daiza/issues/4#issuecomment-52177697 .

nylnook commented 10 years ago

Je n'ai pas fini la skybox, il y a beaucoup de corrections à faire, et il faut que je revoie mon rig de caméra, mais pour garder les troupes motivées, voici un premier rendu pour la face inférieur du cube... test-rendu-skybox-bamboo

J'avoue, j'ai utilisé les mesh de bambous de Sintel et ses textures de feuilles pour aller plus vite !

nylnook commented 10 years ago

Hello, juste pour vous tenir au courant, je n'avance pas très vite cette semaine là dessus, mais surtout je rencontre un souci pour faire un rendu de mon décor (fait avec Cycles) sur un cube...

Pour l'instant j'ai tenté 3 solutions :

Du coup je ne parviens pas encore à faire un rendu sur une skybox.... une idée ?

Sinon on peut aussi avoir seulement un plan en dessous, et pas une skybox, mais ça donne moins de liberté de mouvement à la caméra.

votre avis ?

Deevad commented 10 years ago

@nylnook Là, ça dépasse mes conaissances ; surtout sur le baking+cycle. Sur Terragen ; il y a avait une sorte de fonction quasi automatique pour le faire, c'est pour ça que je n'ai aucune info sur la focale que la camera doit prendre. Je me suis ballader sur le net, et j'ai trouvé ça ; http://hub.jmonkeyengine.org/wiki/doku.php/jme3:external:blender#skybox_baking ( mais c'est en rendu 'internal' ). Ce lien semble confirmer ta méthode de cube comme étant la bonne. Tu peux peut-être refaire ça en rendu 'internal' pas besoin d'avoir un rendu realiste ; surtout que l'ambiance du jeu est assez 'cartoon'. Bonne chance!

qbolsee commented 10 years ago

@nylnook Alors là je suis content de pouvoir aider, j'ai déjà fait pas mal de skyboxes pour mes jeux, donc j'ai développé une petite technique assez personnelle: 1) Une caméra qui tourne durant 6 frames pour prendre les 6 images, ça évite de devoir la tourner à la main. 2) Mettre la lentille de la caméra en mode Field of Fiew au lieu de Millimeter: ça laisse mettre l'angle de vue à 90°. 3) Faire un Render Animation sur les 6 premières frames, ça produira les 6 fichiers d'un coup (dans le dossier choisi dans l'onglet Ouput un peu plus bas).

Je t'ai mis un fichier d'exemple dans /src, je te conseille d'importer la caméra dans ton blend.

zeauro commented 10 years ago

Pour faciliter le mip mapping ou le floutage d'une texture, le baking crée une marge colorée (par défaut de 16 pixels) qui s'étend autour et d'après l'image du baking. Sinon, l'image serait redimensionnée ou floutée avec des pixels parasites noirs ou d'une couleur trop différente. Les seams de l'UVmapping de modèles complexes serait alors très apparents. Il faut donc prendre en compte la marge quand on fait son dépliage UV ou paramétrer le baking pour qu'il ne crée pas de marge.

Le 20 août 2014 23:38, qbolsee notifications@github.com a écrit :

@nylnook https://github.com/nylnook Alors là je suis content de pouvoir aider, j'ai déjà fait pas mal de skyboxes pour mes jeux, donc j'ai développé une petite technique assez personnelle: 1) Une caméra qui tourne durant 6 frames pour prendre les 6 images, ça évite de devoir la tourner à la main. 2) Mettre la lentille de la caméra en mode Field of Fiew au lieu de Millimeter: ça laisse mettre l'angle de vue à 90°. 3 Faire un Render Animation sur les 6 premières frames, ça produira les 6 fichiers d'un coup (dans le dossier choisi dans l'onglet Ouput un peu plus bas).

Je t'ai mis un fichier d'exemple dans /src, je te conseille d'importer la caméra dans ton blend.

— Reply to this email directly or view it on GitHub https://github.com/flossmanualsfr/peril-en-daiza/issues/4#issuecomment-52848325 .

Olm-e commented 10 years ago

à priori il devrait y avoir moyen de faire ça automatiquement, avec les environment map ... comme dans la version 2.49 (http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/Build_a_skybox ) seulement je ne maitrise pas encore assez bien cycle et les nodes que pour sortir un exemple comme ça... à la limite, c'est tellement utile pour créer des jeux (et autres... ) qu'on pourrait rajouter une page là dessus dans le manuel si on trouve la bonne méthode... sinon effectivement, la camera avec un FOV de 90° ça marche... faut combiner ensuite les images.

Ol.

On 20/08/14 23:38, qbolsee wrote:

@nylnook https://github.com/nylnook Alors là je suis content de pouvoir aider, j'ai déjà fait pas mal de skyboxes pour mes jeux, donc j'ai développé une petite technique assez personnelle: 1) Une caméra qui tourne durant 6 frames pour prendre les 6 images, ça évite de devoir la tourner à la main. 2) Mettre la lentille de la caméra en mode Field of Fiew au lieu de Millimeter: ça laisse mettre l'angle de vue à 90°. 3 Faire un Render Animation sur les 6 premières frames, ça produira les 6 fichiers d'un coup (dans le dossier choisi dans l'onglet Ouput un peu plus bas).

Je t'ai mis un fichier d'exemple dans /src, je te conseille d'importer la caméra dans ton blend.

— Reply to this email directly or view it on GitHub https://github.com/flossmanualsfr/peril-en-daiza/issues/4#issuecomment-52848325.

nylnook commented 10 years ago

Whoo, plein de réponses ! Merci la super équipe ;)

Je viens de découvrir à la fois la super astuce de Quentin (le coup de d'animer la caméra sur 6 frames, c'est brillant), et le paramètre Margin du Baking de Cycles, que j'avais juste pas trouvé...

La solution de Quentin va marcher à coup sûr (et puis c'est pas comme si c'était dur de rassembler 6 images), et celle de zeauro très probablement aussi... Merci beaucoup !

Faire un petit tuto sur ces deux techniques me semble une très bonne idée, mais je ne sais pas si ça rentre dans le bouquin. Je pourrais peut-être faire une petite vidéo à part...

Bon, j'ai plus qu'à trouvé quelques heures pour finir ma scène (la base est bonne, mais il reste encore plein de détail à ajouter pour en faire quelque chose de crédible) ;p

qbolsee commented 10 years ago

@nylnook Sinon essaie le niveau 3 du jeu, j'ai mis des bambous partout autour pour tester, et il reste finalement très peu d'interstices visibles: avec un World d'une couleur discrète, à la limite ça gêne pas tellement qu'il y ait du "vide" dans le fond, à toi de voir.

zeauro commented 10 years ago

Olm-e, il n'y a pas d'équivalence entre les environnement maps de Cycles et celles du Blender Internal.

Celles de Cycles sont juste là pour favoriser le mapping de hdr mirror ball ou equirectangular. Celles du Blender Internal sont une façon de faire des réflections fake à partir d'un baking automatique de l'environnement pour le mapping cube comme pour une skybox.

Mais Cycles est un moteur où les réflexions prennent 2s à rendre avec l'accélération GPU et, ou avec le bidouillage des light paths. Donc sous Cycles, les vielles environnement maps façon Blender Internal n'existent pas.

Chercher le même résultat sous Cycles : ça reviendrait à faire le baking de l'environnement sur un cube comme l'a tenté Camille.

Le 21 août 2014 14:12, qbolsee notifications@github.com a écrit :

@nylnook https://github.com/nylnook Sinon essaie le niveau 3 du jeu, j'ai mis des bambous partout autour pour tester, et il reste finalement très peu d'interstices visibles: avec un World d'une couleur discrète, à la limite ça gêne pas tellement qu'il y ait du "vide" dans le fond, à toi de voir.

— Reply to this email directly or view it on GitHub https://github.com/flossmanualsfr/peril-en-daiza/issues/4#issuecomment-52911376 .

Olm-e commented 10 years ago

ok tu as tout a fait raison, c'est bien là ou je buttait sur mon raisonnement et ma recherche technique,

c'est évident ... O.o° ... x-x' ... ^.^....

Ol.

On 22/08/14 08:45, zeauro wrote:

Olm-e, il n'y a pas d'équivalence entre les environnement maps de Cycles et celles du Blender Internal.

Celles de Cycles sont juste là pour favoriser le mapping de hdr mirror ball ou equirectangular. Celles du Blender Internal sont une façon de faire des réflections fake à partir d'un baking automatique de l'environnement pour le mapping cube comme pour une skybox.

Mais Cycles est un moteur où les réflexions prennent 2s à rendre avec l'accélération GPU et, ou avec le bidouillage des light paths. Donc sous Cycles, les vielles environnement maps façon Blender Internal n'existent pas.

Chercher le même résultat sous Cycles : ça reviendrait à faire le baking de l'environnement sur un cube comme l'a tenté Camille.

Le 21 août 2014 14:12, qbolsee notifications@github.com a écrit :

@nylnook https://github.com/nylnook Sinon essaie le niveau 3 du jeu, j'ai mis des bambous partout autour pour tester, et il reste finalement très peu d'interstices visibles: avec un World d'une couleur discrète, à la limite ça gêne pas tellement qu'il y ait du "vide" dans le fond, à toi de voir.

— Reply to this email directly or view it on GitHub

https://github.com/flossmanualsfr/peril-en-daiza/issues/4#issuecomment-52911376 .

— Reply to this email directly or view it on GitHub https://github.com/flossmanualsfr/peril-en-daiza/issues/4#issuecomment-53028436.

nylnook commented 10 years ago

Après test, seule la solution de Quentin fonctionne réellement :

Je suis en train de faire les rendus, commit demain probablement...

nylnook commented 10 years ago

Hello,

ça y est, la skybox y est ! Skybox

Quelques explications :

donc finalement c'est celle là qui est utilisée : Skybox cartoon

Du coup, je vous laisse tester, et cette aprem je me concentre sur des tiles semi-transparentes au bord.

XAMEUS commented 10 years ago

Déjà, merci beaucoup, c'est super de continuer ce projet ! Tu as bien travaillé sur l'image, je fais juste une remarque sur les couleur/styles et sur un skydome en général.

J'ai testé, normalement c'est chouette une skybox (pour un jeu ou l'angle de la caméra change, une vue à la première personne), mais là ce n'est peut-être pas ce qui conviendrait le mieux.

Le slow parent donne un effet un peu étrange qui donne un peu le mal de mer. Ce que ça donne : capture

C'est assez sombre, et pas vraiment en accord avec le niveau (un peu gris, sombre, trop détaillé, feuille "piquantes" avec leurs arêtes blanches, on ne retrouve pas vraiment le côté dessin/peinture à la main) ; Cela déconcentre un peu... En plus, ça renforce l'impression d'avoir une plate-forme volante dans les airs. Une image (arêtes rouge pour ce qui "pique"), j'ai essayé un peu de la modifier (mais les couleur ne sont pas encore bonnes) : skybox-bamboo-forest-test

Test IG : (et c'est pas encore ça du tout !) capture2

Avec des effets (mais les couleurs ne sont toujours pas bonnes !) : capture3 capture4 capture6

Faut-il vraiment utliser une skybox ?

Si oui, il faut encore retoucher cette image :

N.B. : faudra voir ce que ça donne avec des tiles semi-transparentes, mais le fond n'est pas fixe...

Si non :

P.-S. : en boustant un peu le emit, on a capture5

nylnook commented 10 years ago

Hello,

alors, déjà merci beaucoup d'avoir testé ! Avant de continuer, je tiens à préciser que pour moi ce n'est pas tout à fait fini...

j'ai préparé des tiles semi-transparents pour le bord : https://github.com/flossmanualsfr/peril-en-daiza/blob/master/game/textures/world-grass-border.png https://github.com/flossmanualsfr/peril-en-daiza/blob/master/game/textures/world-grass-border-corner.png Qui éviteront cet horrible bord droit qui ne fonctionnera jamais ;p

Il y a déjà les textures et les tiles en 3D avec les bons groupes dans le .blend, mais je n'ai pas encore fait l'équivalent dans Tiled (je ne sais pas exactement comment on fait, même si j'ai une idée, mais je ne vais pas avoir le temps ce soir...).

Du coup une fois qu'on a ces tiles, on fait un niveau de test, avec Skybox + tiles de bord + des tiles d'assets de bambous, et on règle correctement les couleurs.

Donc oui la Skybox est encore trop sombre et pas assez cartoon... mais je voudrais accorder les trois solutions ensemble, notamment pour mieux accorder les couleurs, et jouer sur l'emit de la skybox va être indispensable ;p

donc pour moi la solution est triple :

Est-ce que c'est plus clair et est-ce que ça te/vous (collectivement) convient ?

nylnook commented 10 years ago

Pour le coté "mal de mer", je suis d'accord... mais le "slow parenting" est la meilleure option que j'ai trouvé pour l'instant. Si on parente la skybox à la caméra, on a vraiment trop l'impression de glisser sur le décor de fond... Si on la parente au personnage là on a carrément le mal de mer... Donc ce compromis me paraissait correct. Peut-être qu'il faut qu'il soit encore plus lent (augmenter le délai à 48 images par exemple).

@qbolsee tu as une expérience sur ce point là ?

XAMEUS commented 10 years ago

Si on met un plan fixe ?

zeauro commented 10 years ago

+1 je suis plus en faveur de simples tiles (des plans texturés) qui prolongent le décor. Tu as raison, Camille. Graphiquement, ce serait plus beau qu'ils soient semi-transparents et donnent un effet de profondeur avec un fond représentant le sol. Mais dans ce cas, je pense qu'un cadre, au même niveau que le sol où se déplace le personnage, sera tout aussi efficace qu'une skybox à la face inférieure plus lointaine.

Pour l'instant, on a l'impression que le terrain de jeu flotte dans le vide. Mais une fois fini, j'ai un peu peur que cela persiste un peu avec un terrain où évolue le personnage, toujours assimilé à au point culminant, au zénith du décor.

Je ne comprends pas l'intérêt de parenter la skybox à quoi ce soit. Le personnage n'évolue pas dans un décor de plusieurs kilomètres avec un défilement des textures du sol. a priori, la skybox est là pour boucher la vue sous tous les angles. Elle peut être statique.

2014-08-26 17:50 GMT+02:00 XAMEUS notifications@github.com:

Si on met un plan fixe ?

  • 1 image de background fixe.
  • 4 images (Nord, Sud, Est, Ouest) ou des Tiles.

— Reply to this email directly or view it on GitHub https://github.com/flossmanualsfr/peril-en-daiza/issues/4#issuecomment-53443204 .

nylnook commented 10 years ago

hello,

vu là où j'en étais, j'ai préféré finir le boulot pour le tester réellement. Le commit est fait, mais rien ne nous oblige à l'utiliser si on considère que ce n'est pas bon. Si vous voulez essayer, j'ai ajouté un niveau de test avec des bords "test_level_bamboo.json".

Voilà ce que ça donne chez moi : capture d ecran de 2014-08-27 11 25 24 capture d ecran de 2014-08-27 11 25 36 capture d ecran de 2014-08-27 11 25 46 capture d ecran de 2014-08-27 11 25 54

J'ai corrigé les couleurs aussi (augmenter la saturation de la skybox), et ralenti le "slow parent" à un délai de 3 secondes (72 images).

@zeauro à mon humble avis il faut parenter la skybox car si on a un niveau plus grand qu'elle (ce qui va être rapidement le cas passer les 3 premiers niveaux), on risque simplement d'en sortir si elle est statique... Ou alors il faut adapter sa taille automatiquement à chaque niveau, mais la texture n'aura pas les bonnes proportions... bref, c'est beaucoup plus simple de la parenter à la caméra.

il me semble que la seule alternative est celle qu'a proposé David précédemment : 2014-08-14_screenshot_114556 Mettre des plans fixes reviendrait un peu au même si j'ai bien compris ta proposition Xameus. Ou alors on met des tiles d'herbes à l'infini, mais bon, ce ne sera pas mieux.

En théorie, je préfère la solution de la skybox par rapport à celle qu'à proposé David car on est dans un milieu ouvert, une forêt, et que on veut éviter l'effet "claustrophobie". Si on fait des niveaux à l’intérieur de bâtiment un jour, alors la proposition de David sera la bonne solution. De plus la skybox sera toujours moins répétitive, donc plus riche graphiquement...

Après, le vrai critère est : Est-ce qu'on y croit ? Est-ce que le joueur a l'impression d'être dans une forêt de bambous ? En toute subjectivité je crois que oui avec cette solution, mais vous avez le droit de ne pas être d'accord.

Votre avis ? on garde ou pas ? Si on garde, encore des corrections ?

zeauro commented 10 years ago

Au temps pour moi, je pensais que les niveaux avaient à peu près tous la même taille.

Après test in game, les critiques émises me semblent quand même toujours valides. Quand on longe une bordure (et mine de rien, c'est assez fréquent pour échapper aux pièges), on a cette impressoin bizarre de voir le niveau flotté un peu ou d'être surélevé.

Je suis d'accord avec Quentin. Je n'aime pas la solution du grand plan texturé dont la majeure partie de la texture est cachée. Mais pour moi, cette skybox : c'est un peu la même chose. De la skybox, on ne voit ni le ciel, ni la partie centrale toujours sous le terrain de jeu. Je pense qu'un mesh représentant un grand cadre plan statique composé de tiles ou non avec une texture ne représentant que le sol et donc entièrement utilisée serait plus optimisé. Une texture d'aussi grande taille que celle de la skybox peut probablement apportée plus de variabilité graphique (si elle représente des flaques, lac ou cours d'eau au lieu du ciel). Ca me paraît réalisable; si on joue bien sur le mapping de ce cadre à chaque niveau.

Je ne sais plus qui l'a évoqué. Mais il faudrait peut-être faire une texture de sol par asset de bambous. Leurs pieds sombres dénotent quand même pas mal avec la texture plutôt claire du sol. Mais à part ça, les bambous remplissent bien leur rôle.

Le 27 août 2014 12:09, Camille Bissuel notifications@github.com a écrit :

hello,

vu là où j'en étais, j'ai préféré finir le boulot pour le tester réellement. Le commit est fait, mais rien ne nous oblige à l'utiliser si on considère que ce n'est pas bon. Si vous voulez essayer, j'ai ajouté un niveau de test avec des bords "test_level_bamboo.json".

Voilà ce que ça donne chez moi : [image: capture d ecran de 2014-08-27 11 25 24] https://cloud.githubusercontent.com/assets/456282/4057983/79e333d2-2dcf-11e4-9866-2755d500c6ea.png [image: capture d ecran de 2014-08-27 11 25 36] https://cloud.githubusercontent.com/assets/456282/4057984/854f447c-2dcf-11e4-8792-e5db45dace0a.png [image: capture d ecran de 2014-08-27 11 25 46] https://cloud.githubusercontent.com/assets/456282/4057985/881946c6-2dcf-11e4-9a06-80939b1c5534.png [image: capture d ecran de 2014-08-27 11 25 54] https://cloud.githubusercontent.com/assets/456282/4057986/89ecc338-2dcf-11e4-9dba-5ba8390470e8.png

J'ai corrigé les couleurs aussi (augmenter la saturation de la skybox), et ralenti le "slow parent" à un délai de 3 secondes (72 images).

@zeauro https://github.com/zeauro à mon humble avis il faut parenter la skybox car si on a un niveau plus grand qu'elle (ce qui va être rapidement le cas passer les 3 premiers niveaux), on risque simplement d'en sortir si elle est statique... Ou alors il faut adapter sa taille automatiquement à chaque niveau, mais la texture n'aura pas les bonnes proportions... bref, c'est beaucoup plus simple de la parenter à la caméra.

il me semble que la seule alternative est celle qu'a proposé David précédemment : [image: 2014-08-14_screenshot_114556] https://cloud.githubusercontent.com/assets/4021867/3918294/e6ebe2c2-2397-11e4-8e45-5e5147b92147.png Mettre des plans fixes reviendrait un peu au même si j'ai bien compris ta proposition Xameus. Ou alors on met des tiles d'herbes à l'infini, mais bon, ce ne sera pas mieux.

En théorie, je préfère la solution de la skybox par rapport à celle qu'à proposé David car on est dans un milieu ouvert, une forêt, et que on veut éviter l'effet "claustrophobie". Si on fait des niveaux à l’intérieur de bâtiment un jour, alors la proposition de David sera la bonne solution. De plus la skybox sera toujours moins répétitive, donc plus riche graphiquement...

Après, le vrai critère est : Est-ce qu'on y croit ? Est-ce que le joueur a l'impression d'être dans une forêt de bambous ? En toute subjectivité je crois que oui avec cette solution, mais vous avez le droit de ne pas être d'accord.

Votre avis ? on garde ou pas ? Si on garde, encore des corrections ?

— Reply to this email directly or view it on GitHub https://github.com/flossmanualsfr/peril-en-daiza/issues/4#issuecomment-53550165 .

qbolsee commented 10 years ago

Si on prend soin d'intercaler une rangée d'herbe avant de mettre une bordure de bambou, la caméra montre vraiment très peu de choses en dehors du niveau. A mon sens, si après les bambous on clot complètement le niveau à l'aide de plans verticaux (réprésentant une palissade de bambous factices, ou des couleurs de fond assez vagues), ça ne serait pas vraiment choquant. Je pense que la scène de rendu de @nylnook peut facilement servir à générer des palissades de qualité.

Sinon, pour faire encore plus simple qu'une palissade, on peut juste faire des bords de niveau assez larges. La zone que montre la caméra est prévisible : empirquement, il suffit d'une bordure large de 6 carrés pour être vraiment à l'aise. Pourquoi pas mettre une rangée supplémentaire de vrais bambous?

Parenter la skybox me semble problématique. On ne peut pas tricher à ce point : le décalage entre le niveau et la skybox se voit tout de suite. Quand on a commencé à parler de skybox, je n'ai pas pensé à ce problème de parallaxe (désolé d'ailleurs, j'aurais dû le prévoir) parce que j'ai l'habitude des skybox montrant des objets vraiment lointains comme le ciel et les nuages. Dans notre cas, on n'en voit que le bas, qui est justement le coté problématique. Il faudrait rendre la caméra beaucoup plus rasante pour ne fût-ce que commencer à voir l'horizon.

Un plan sous le niveau est un compromis, mais j'ai peur de la notion de "taille maximale de niveau" qu'il induit, ou en tout cas de la taille à partir de laquelle il faudra le répéter/prolonger.

Bref, tout ça me semble un peu trop compliqué pour un jeu en vue de haut. Les bords du niveau sont bien réels, tout simplement par le fait que le panda est physiquement bloqué. Ce qui se passe en dehors est très dur (voire impossible) à voir si la bordure est raisonnable.

nylnook commented 10 years ago

ok... donc 3 tiles de 6x6 selon la proposition de David, mais en plus grand, qui reprenne la texture de la skybox ou un autre rendu sur le mur/palissade. on est d'accord ?

ça me va, et du coup je n'aurai pas tout à fait bosser pour rien avec la skybox, mais un dernier souci va apparaitre... Si les tiles en bas (au sud) du niveau sont trop haute elle vont cacher la vue à la caméra : il faudra utiliser la technique des mesh qui deviennent transparent que tu nous a expliqué Quentin.

Il y a aussi le fait qu'il va falloir agrandir en largeur le tile-set de décor... et mon seul test de ce genre dans Tiled avait tout cassé les anciens niveaux ... ou alors je m'y suis mal pris ?

@zeauro Pour les mesh de bambous actuels, je suis d'accord que leur ombre au pied est trop dense... mais c'est dû aux textures de feuilles : il faudrait passer le tronc du bambou et le sol en "receive transparent" au lieu de "receive shadow", pour qu'il calcule la texture au lieu du mesh, mais j'avais peur que ça soit trop gourmand et je ne l'ai pas fait... à tester.

Je vais essayer de faire ces tiles, mais ça ne sera pas cette fin de semaine... Si quelqu'un a du temps et a envie de tenter, n'hésitez pas, il s'agit essentiellement de remixer la skybox et les tiles actuelles.

En tout cas, c'est assez formateur cette discussion sur comment gérer le bord d'un jeu ;)

nylnook commented 10 years ago

Hello,

je viens d'ajouter les meshs pour ces 3 tiles, je m'occupe des textures demain...

@mrjmad si tu veux commencez à travailler avec tu peux, mais il faut encore faire l'intégration dans Tiled. @qbolsee et @mrjmad Comment élargir le Tileset de décor sans détruire les coordonnées de tous les niveaux ? Sinon, ce n'est pas grave, on continue à l'agrandir en hauteur, mais à un moment donné on va manquer de place...

nylnook commented 10 years ago

Hello again !

Bon, il y a les 3 tiles avec une première texture pour tester... et j'ai fait l'intégration dans Tiled. Sauf que du coup j'ai du créer un autre Tilseset plus large pour "ground", et donc modifier toutes les coordonnées. J'ai laissé l'ancien fichier .dat et l'ancien fichier image au cas où. Ça veut dire aussi que les 3 premiers niveaux utilisent l'ancien tileset, je ne les ai pas refait.

Il y a aussi un level de test : https://github.com/flossmanualsfr/peril-en-daiza/blob/master/game/levels/test_level_bamboo_closed_borders.json

sauf que... Il semble que le script de construction de niveau dans Blender ne comprends pas les tiles qui font 3x3 tiles... il a l'air de les traiter comme des tiles 2x2, du coup ça introduit des décalages, et des tiles vides à l'importation dans Blender.

Là je suis au bout de mes compétences... je ne sais pas comment modifier le script pour qu'il accepte ces grandes tiles. Je passe la main aux spécialistes python...

Quand le script d'import fonctionnera je pourrais finir les textures.

qbolsee commented 10 years ago

@nylnook mon script d'import est entièrement basé sur une grille de la taille des tiles. Si tu veux ajouter un objet plus grand (par exemple la porte), il faut ruser: ton objet prend plusieurs tiles dans l'éditeur, mais seule une de ces tiles ajoute réellement un objet. Les autres tiles sont là pour faire joli lors de la création du niveau, mais ne correspondent à aucun objet.

Le fichier tiles_info_ground.dat décrit chaque tile du tileset, ligne par ligne, avec le nom du groupe à ajouter dans blender, et l'angle en degré lors de l'ajout. Si tu regardes l'exemple de la porte, tu verras qu'elle prend 2 tiles, mais celle de droite est à none 0. Donc seule la tile de gauche ajoutera un groupe. Ce groupe doit bien sûr avoir un centre en accord avec cet "offset".

Pour cette histoire d'agrandir le nombre de colonnes du tileset, malheureusement, il me semble que Tiled ne corrige pas ça de lui même. En fait, Tiled prend le tileset et associe un numéro à chaque tile, ligne par ligne (l'ordre correspond à celui de mon fichier tiles_info_ground.dat), en commençant par 1 (0 signifie une case vide). Si on rajoute au bout, aucun problème, ça fait de nouveaux numéros. Mais si c'est une colonne, ça décale tout. Je suis d'accord pour doubler le nombre de colonnes, je peux écrire un script pour "réparer" les niveaux codés avec l'ancienne numérotation. Mais il faudra que tout le monde se mette d'accord pour ne plus utiliser plus l'ancien tileset une fois que c'est fait. (et surtout, si il reste des niveaux sur lesquels vous travaillez, postez les tels quels dans le dossier levels!).

nylnook commented 10 years ago

Merci pour ta réponse Quentin. J'avais compris pour l'histoire des noms de groupes, des none 0 et des angles dans le fichier .dat, et je l'ai préparé avec cette technique (la première tile en haut à gauche du groupe de tile porte le nom du groupe) mais je n'avais pas compris que c'était le centre du groupe dans Blender qui plaçait la tile exactement... Donc ton script n'est pas en cause.

Tout ce que j'ai fait doit donc marcher, il doit juste falloir placer correctement le centre des groupes de ces trois tiles (donc en "X 1 / Y 1", en haut à gauche en vue de dessus de chaque tile qui fait 6 unités blender ?)...

Pour l'histoire de faire un script de conversion, ça me parait beaucoup de travail alors qu'a priori il y a juste les trois premiers niveaux à refaire (et juste le calque "ground" de ces trois niveaux), et que de toute façon il faut leur ajouter des bords...

Par contre je suis en déplacement toute la journée demain, donc je ne pourrais pas faire ça avant vendredi... Si vous voulez avoir les 9 premiers niveaux pour samedi, il va falloir me remplacer sur ce petit placement de centre de groupe !

Pour Jean-Michel, ça ne t’empêche pas de préparer les niveaux dans Tiled avec le nouveau tileset (voir mon dernier niveau de test) si tu n'a plus de bibliothèque sur les bras ><

à vous ;)

nylnook commented 10 years ago

ça y est, ça marche ! j'ai lutté toute l'après-midi avec ces tiles...

Donc, finalement les tiles font 5x5 : 3x3 c'était trop petit (en bas surtout), et 4x4 ce n'est pas possible parce qu'il n'y a pas de centre pour le fichier .dat (je l'ai appris à mes dépends ;p)...

Du coup ça fonctionne en jeu, j'ai refait les 3 premiers niveaux et celui de test et j'ai viré l'ancien tileset. On voit à peine les murs, mais c'est tant mieux.

Le seul truc c'est que je n'ai pas vraiment fini les textures... car il y a un truc qui me gène : des lignes noires apparaissent entre les tiles, et j'ai beau vérifier les meshs sous toutes les coutures ils sont bien alignés... Est ce que c'est parce que la texture n'est pas parfaitement jointive ? @qbolsee et @Deevad Avez-vous eu le problème pour les premières tiles, et comment l'avez-vous résolu ?

qbolsee commented 10 years ago

@nylnook On avait en effet eu ce problème au début, et en inspectant soigneusement, j'avais trouvé la cause : les vertices du bord n'étaient pas tous alignés (une erreur d'un millième d'unité suffit). Dans le cas présent, c'était exactement pareil, donc je viens de le corriger, ça devrait être bon.

nylnook commented 10 years ago

je viens de tester, ça marche merci beaucoup !

pourtant j'avais l'impression d'avoir tout vérifier 2 fois, mais quand ça fait des heures qu'on a les yeux sur un mesh on voit plus rien :laughing:

Reste plus que les textures à finir.