[C++/LUA]Mes nouveaux sprites de Link fonctionnent pas ... Comment faire ?

Démarré par MetalZelda, 22 Avril 2013 à 15:32

0 Membres et 1 Invité sur ce sujet

Bon, cette fois-ci je vais poster la réponse de Chris pour eviter de le fatiguer un peu  :P
----------------------------------------------------------------------------------------------------------------

Bon nombre d'entre vous qui ont essayé le moteur Solarus ont essayé de mettre leur sprites personnalisé en 16x16 pour remplacer le Link d'ALTTP ? Et vous avez eu cette erreur ...



Et, si vous checkez le erreur.txt présent dans le dossier Mystery of Solarus DX, vous avez :
"This surface should have an 8-bit pixel format"

Le message d'erreur que vous avez veut dire que votre image png utilisée pour le sprite est en RGB (16 millions de couleurs) alors que pour faire des collisions au pixel près, le moteur impose des images en 256 couleurs. Il faut donc que vous réduisiez le nombre à une palette de 256 avec votre logiciel de dessin.

-----------------------------------------------------------------------------------------------------------------------------
Tutoriel avec PhotoFiltre Studio X 10

- Cliquez sur l'image
- Cliquer sur l'onglet "image"
- Sélectionnez "Mode" et cliquez sur "Couleur RVB"

Le sprite ne doit plus avoir aucune notion de transparence et prends une couleur aléatoire (le fond, pas le sprite)

- Recliquez sur l'onglet image
- RE-sélectionnez "Mode"mais cette fois ci cliquez sur "Couleurs indexées"
- Sélectionnez 256 couleurs.

Ensuite, il faut virer le fond qui n'est plus transparent, dans ce cas, allez dans l'onglet "image" et sélectionnez "Couleur de transparence", sélectionnez le fond et réglez la tolérance pour que le sprite soit encore complet (Tolérance 0 sa devrait suffire)


Crédit pour ce tuto : Christopho

Non, les crédits pour la partie sur PhotoFiltre te reviennent, moi je t'ai juste dit de réduire à 256 couleurs "avec ton logiciel d'image préféré" :P

J'ajoute une petite précision en tout cas : seules les images utilisées pour des tests de collisions au pixel près ont besoin d'être en 256 couleurs. C'est le cas des sprites de Link et des ennemis.

Pour le reste, on peut utiliser des images en RGB complet  (16 millions de couleurs) et avec semi-transparence, ce qui est bien pratique pour faire des jolis effets comme des tiles d'eau avec transparence (c'est le cas dans les grottes et donjons de ZSDX) ou pour faire un système jour/nuit par exemple.

PS : si vlag passe par là, peut-être pourra-t-il le confirmer mais si j'ai bien suivi, la prochaine version du moteur n'a plus cette restriction. Même les images en RGB pourront faire des collisions au pixel près. Je conseille quand même de faire des images 256 couleurs quand c'est possible car c'est plus léger et plus rapide.
Chaîne Twitch : diffusion en direct de sessions de développement de Solarus, de création de jeux, de parties de jeux vidéo.
Chaîne YouTube : replays des diffusions en direct, tutos Solarus
Compte Twitter : pour être au courant des nouveautés
Chat Discord : pour discuter en direct avec la communauté Solarus

Citation de: Christopho le 22 Avril 2013 à 15:38
Non, les crédits pour la partie sur PhotoFiltre te reviennent, moi je t'ai juste dit de réduire à 256 couleurs "avec ton logiciel d'image préféré" :P

J'ajoute une petite précision en tout cas : seules les images utilisées pour des tests de collisions au pixel près ont besoin d'être en 256 couleurs. C'est le cas des sprites de Link et des ennemis.

Pour le reste, on peut utiliser des images en RGB complet  (16 millions de couleurs) et avec semi-transparence, ce qui est bien pratique pour faire des jolis effets comme des tiles d'eau avec transparence (c'est le cas dans les grottes et donjons de ZSDX) ou pour faire un système jour/nuit par exemple.

Ah j'ignorais, merci d'apporter ces précisions :p
Tien, tu m'as fait penser a ce que j'essai de reconvertir le système jour/nuit du PZE en LUA :P, j'ai vu que les syntaxes sont assez proches entre RUBY et LUA.

Pour le système jour-nuit, tu peux commencer par ce mini-tuto que je viens de faire : http://forums.zelda-solarus.com/index.php/topic,22701.new.html#new
Chaîne Twitch : diffusion en direct de sessions de développement de Solarus, de création de jeux, de parties de jeux vidéo.
Chaîne YouTube : replays des diffusions en direct, tutos Solarus
Compte Twitter : pour être au courant des nouveautés
Chat Discord : pour discuter en direct avec la communauté Solarus

Je viens apporter une petite modification ...

Les items (Sprites/entities/item.png) ont aussi cette restriction de 256 couleurs ^^

Mais sa n'empeche pas d'avoir de beaux sprites pour items/characters ^^



Y'a l'air d'y avoir que sa, sinon les menus, la modification est juste purement magnifique :3 La le joueur est libre pour crée son menu :mrgreen:




En effet, les items d'équipement ont des collisions au pixel près pour qu'on puisse les ramasser par terre de façon précise. Donc ils sont en 256 couleurs (en tout cas ceux de sprites/entities/items.png).
Ce qui ne t'empêche pas d'utiliser un fichier png différent pour ceux que tu affiches dans ton menu.
Chaîne Twitch : diffusion en direct de sessions de développement de Solarus, de création de jeux, de parties de jeux vidéo.
Chaîne YouTube : replays des diffusions en direct, tutos Solarus
Compte Twitter : pour être au courant des nouveautés
Chat Discord : pour discuter en direct avec la communauté Solarus

Citationsi vlag passe par là, peut-être pourra-t-il le confirmer mais si j'ai bien suivi, la prochaine version du moteur n'a plus cette restriction. Même les images en RGB pourront faire des collisions au pixel près. Je conseille quand même de faire des images 256 couleurs quand c'est possible car c'est plus léger et plus rapide.

Yep je confirme, les images en 16 et 32 bits sont gérées, faudra juste qu'on vérifie le cast pour les autres cas exotiques (pour gérer toutes les images entre 8 et 32 bits, histoire de :) ).
Cela dit ça ne sera pas beaucoup plus lent puisque tu génère les masques de collision lors des chargements de quête et map. Donc cette étape sera un poil plus lente (pas sur que ce soit visible), mais il n'y aura aucun ralentissement en cours de jeu.

EDIT: Au passage, il me semble que la résolution 640x480 reste du 320x240 étiré, donc pour l'autre topic sur les collisions, il faudra quand même redimensionner tes sprites.

Ok cool ^^. Rien à voir, mais pourquoi tu as recréé un compte Vlag ? Les muti-comptes sont interdits hein.
Chaîne Twitch : diffusion en direct de sessions de développement de Solarus, de création de jeux, de parties de jeux vidéo.
Chaîne YouTube : replays des diffusions en direct, tutos Solarus
Compte Twitter : pour être au courant des nouveautés
Chat Discord : pour discuter en direct avec la communauté Solarus

Ah bah je t'avais envoyé un mail pour ça en fin de semaine dernière ^^

J'ai malencontreusement oublié mon pass de solarus ET hotmail (que j'utilisais à l'époque de mon inscription). Etant donné que le compte hotmail est au nom d'un certain Gil Poitou, je ne peux pas non plus récupérer mes comptes par ce moyen-là ^^
Du coup depuis 6 mois je me connecte via mon PC fixe qui a tout gardé dans les cooky, et comme je suis actuellement en vacances en famille (une fois n'est pas coutume) et que j'ai voulu répondre, je me suis recréé un compte temporaire.

D'ailleurs, si tu pouvais juste changer l'adresse e-mail de mon compte solarus vers celle de gmail, ça me rendrait service (et tu pourrais du coup supprimer ce compte et ce message tout de suite :) )

Je n'ai pas reçu de mails de ta part depuis un bon moment. Il y a eu des problèmes avec les mails sur le serveur. En tout cas, je viens de changer l'adresse mail de ton ancien compte, donc tu peux réinitialiser ton pass.
Chaîne Twitch : diffusion en direct de sessions de développement de Solarus, de création de jeux, de parties de jeux vidéo.
Chaîne YouTube : replays des diffusions en direct, tutos Solarus
Compte Twitter : pour être au courant des nouveautés
Chat Discord : pour discuter en direct avec la communauté Solarus

J'ai déjà commencé a retranscrire certains éléments du PZE en LUA, maintenant j'au une question concernant le title screen ... Tout d'abord ... C'était un de mes rêves depuis que j'ai commencé à faire Zelda Eternal Struggle, c'est d'avoir un title screen sur une map avec Link qui bouge automatiquement, est-ce techniquement possible avec Solarus ? :P sachant que sa doit faire des modifications de malade dans le fichier lui-même (Parce que je suis assez pointu sur ce sujet, un title screen animée, quand on appuie sur entrée sa affiche l'image du jeu avec Press Start et quand on rappuie une 2ème fois ben sa téléporte vers le file select :p

Est-ce possible ?

J'ai essayé de chercher le LUa du Head Up Display mais je suis tombé sur sa ...

http://www.solarus-games.org/doc/1.0.0/quest.html#hud

"The HUD includes the elements shown on the screen such as the icons, the life bar, the money counter as well as the pause subscreens. Most of the HUD is hardcoded in the C++ code of the engine, but eventually, it will be defined by each quest as Lua scripts. In the meantime, the hud subdirectory of the data directory of a quest contains a single file inventory.dat. inventory.dat defines the names of the 28 items that will be shown in the inventory."

Heuuuu je pige plus xD

Si je comprend bien ce que tu veux faire, ce n'est pas du coté du HUD que tu dois chercher.

Pour changer l'écran titre tu dois commencer par voir ce que fait la fonction sol.main:on_started() qui se trouve dans le script main.lua. Dans ZSDX il crée le menu de sélection des langues qui ensuite crée le menu d'écran titre, etc ...

Tu peux tout a fait créer ton propre menu qui a accès à toute l'API, il te suffit alors de jouer avec des sprites et des mouvements.

Si tu travail avec ZSDX comme base, tu peux directement éditer le script menus/title.lua.

Voici le lien vers la documentation des menus : http://www.solarus-games.org/doc/1.0.0/lua_api_menu.html
SQE developer