Generateur de personnages de mangas

Soyez le premier à donner votre avis sur cette source.

Vue 66 711 fois - Téléchargée 2 701 fois

Description

Ce petit système pour "customiser" son personnage de manga permet de modifier : la bouche, la coupe de cheveux(forme/couleur), la couleur de peau, les yeux(couleur,forme).
Avec une interface PHP et une base de données, il serait possible de sauvegarder les paramètres. Il pourrait alors etre intégré à un forum(pour des avatars) ou à un jeu(personnages), le fichier swf ne pesant que 8k.
Ceci sera disponible dans une prochaine mise à jour.

Source / Exemple :


//Initialisation du tableau d'yeux.
tab_yeux = new Array();
//On insere dedans autant de couleurs qu'on veut proposer
tab_yeux.push("0x339933","0x999933","0x63A4EB","0x639A00","0x550000","0x006600", "0x0066CC", "0x804000");

/* test de parcours du tableau
for (i=0; i<tab_yeux.length; i++) {
	trace(tab_yeux[i]);
}

  • /
oeil_id = 0;//indice de parcours du tableau, qu'on garde toujours en memoire init_yeux(); function init_yeux() { //initialisation des couleurs des couleurs des movies clip Couleur_oeil2 = new Color(_root.oeil2.couleur); //oeil droit Couleur_oeil = new Color(_root.oeil.couleur); //oeil gauche Couleur_oeil_button = new Color(_root.couleur_oeil_button); //bouton update_yeux(tab_yeux[0]); //Mis a jour des movies clip } function update_yeux(couleur) { //fonction effectuant le changement de couleur //prend en parametre la couleur Couleur_oeil.setRGB(couleur); Couleur_oeil2.setRGB(couleur); Couleur_oeil_button.setRGB(couleur); } function next_yeux() { oeil_id++; //on incremente l'indice de l'oeil //si on est au bout du tableau, on revient au debut if (oeil_id == tab_yeux.length) { oeil_id = 0; } //on met à jour les yeux avec la couleur suivante du tableau update_yeux(tab_yeux[oeil_id]); } function previous_yeux() { oeil_id--; //on decremente l'indice des yeux //si on est arrivé avant le debut du tableau //on passe à la fin du tableau if (oeil_id == -1) { oeil_id = tab_yeux.length-1; } //on met à jour les yeux avec la couleur precedente du tableau update_yeux(tab_yeux[oeil_id]); } //Initialisation du tableau des bouches. tab_bouche = new Array(); // On va inserer les liens vers les images clés contenus // dans le clip bouche. Il vaut mieux nommer les images // clés du clip via l'inspecteur de propriétés, cela augmente // la lisibilité du code et permet de déplacer les images clés // sans se poser de question tab_bouche.push("crier", "sourire", "sourire_legerement"); /* test de parcours du tableau for (i=0; i<tab_bouche.length; i++) { trace(tab_bouche[i]); }
  • /
bouche_id = 0;//indice de parcours du tableau, qu'on garde toujours en memoire init_bouche(); function init_bouche() { //initialisation de la bouche avec le position par défaut update_bouche(tab_yeux[0]); //Mis a jour du movie clip } function update_bouche(pos) { //fonction effectuant le changement de bouche bouche.gotoAndStop(pos); bouche_button.gotoAndStop(pos); } function next_bouche() { bouche_id++; //on incremente l'indice de la bouche //si on est au bout du tableau, on revient au debut if (bouche_id == tab_bouche.length) { bouche_id = 0; } //on met à jour la bouche avec la position suivante du tableau update_bouche(tab_bouche[bouche_id]); } function previous_bouche() { bouche_id--; //on decremente l'indice de la bouche //si on est arrivé avant le debut du tableau //on passe à la fin du tableau if (bouche_id == -1) { bouche_id = tab_bouche.length-1; } //on met à jour la bouche avec la position precedente du tableau update_bouche(tab_bouche[bouche_id]); } //Initialisation du tableau d'yeux. tab_peau = new Array(); //On insere dedans autant de couleurs qu'on veut proposer tab_peau.push("0xDFB4A2", "0xCDCB74", "0x121212", "0xF7D7B3"); /* test de parcours du tableau for (i=0; i<tab_peau.length; i++) { trace(tab_peau[i]); }
  • /
peau_id = 0;//indice de parcours du tableau, qu'on garde toujours en memoire init_peau(); function init_peau() { //initialisation des couleurs des movies clip Couleur_peau = new Color(_root.visage.couleur_peau);//peau Couleur_peau_button = new Color(_root.couleur_peau_button); //bouton update_peau(tab_peau[0]); //Mis a jour des movies clip } function update_peau(couleur) { //fonction effectuant le changement de couleur //prend en parametre la couleur Couleur_peau.setRGB(couleur); Couleur_peau_button.setRGB(couleur); } function next_peau() { peau_id++; //on incremente l'indice de la peau //si on est au bout du tableau, on revient au debut if (peau_id == tab_peau.length) { peau_id = 0; } //on met à jour la peau avec la couleur suivante du tableau update_peau(tab_peau[peau_id]); } function previous_peau() { peau_id--; //on decremente l'indice de la peau //si on est arrivé avant le debut du tableau //on passe à la fin du tableau if (peau_id == -1) { peau_id = tab_peau.length-1; } //on met à jour la peau avec la couleur precedente du tableau update_peau(tab_peau[peau_id]); } //Initialisation du tableau de cheveux. tab_cheveux = new Array(); //On insere dedans autant de coiffures qu'on veut proposer et qu'on a prépare //contenus dans le clip cheveux tab_cheveux.push("aerienne", "long"); /* test de parcours du tableau for (i=0; i<tab_cheveux.length; i++) { trace(tab_cheveux[i]); }
  • /
cheveux_id = 0;//indice de parcours du tableau, qu'on garde toujours en memoire init_cheveux(); function init_cheveux() { update_cheveux(tab_cheveux[0]); //Mis a jour du movie clip avec la premiere du tableau } function update_cheveux(pos) { //fonction effectuant le changement de cheveux //prend en parametre l'image clé cheveux.gotoAndStop(pos); cheveux_button.gotoAndStop(pos); } function next_cheveux() { cheveux_id++; //on incremente l'indice de cheveux //si on est au bout du tableau, on revient au debut if (cheveux_id == tab_cheveux.length) { cheveux_id = 0; } //on met à jour les cheveux avec la position suivante du tableau update_cheveux(tab_cheveux[cheveux_id]); } function previous_cheveux() { cheveux_id--; //on decremente l'indice des cheveux //si on est arrivé avant le debut du tableau //on passe à la fin du tableau if (cheveux_id == -1) { cheveux_id = tab_cheveux.length-1; } //on met à jour les cheveux avec la position precedente du tableau update_cheveux(tab_cheveux[cheveux_id]); } //Initialisation du tableau de couleur de cheveux. tab_cheveux_couleur = new Array(); //On insere dedans autant de couleurs de cheveux qu'on veut proposer tab_cheveux_couleur.push("0xF5C125", "0x191919","0x804000","0x8DA59B"); /* test de parcours du tableau for (i=0; i<tab_cheveux_couleur.length; i++) { trace(tab_cheveux_couleur[i]); }
  • /
cheveux_couleur_id = 0;//indice de parcours du tableau, qu'on garde toujours en memoire init_cheveux_couleur(); function init_cheveux_couleur() { //initialisation des couleurs des movies clip //bouton Couleur_cheveux = new Color(_root.cheveux); Couleur_cheveux_button = new Color(_root.couleur_cheveux_button); //Initialisation des sourcils, que l'on va accorder avec //la couleur des cheveux Couleur_sourcil=new Color(_root.sourcil1); Couleur_sourcil2=new Color(_root.sourcil2); update_cheveux_couleur(tab_cheveux_couleur[0]); //Mis a jour des movies clip } function update_cheveux_couleur(couleur) { //fonction effectuant le changement de couleur de cheveux //prend en parametre une couleur //On met à jour aussi les sourcils Couleur_sourcil.setRGB(couleur); Couleur_sourcil2.setRGB(couleur); Couleur_cheveux.setRGB(couleur); Couleur_cheveux_button.setRGB(couleur); } function next_cheveux_couleur() { cheveux_couleur_id++; //on incremente l'indice //si on est au bout du tableau, on revient au debut if (cheveux_couleur_id == tab_cheveux_couleur.length) { cheveux_couleur_id = 0; } //on met à jour les cheveux et les sourcils avec la couleur suivante du tableau update_cheveux_couleur(tab_cheveux_couleur[cheveux_couleur_id]); } function previous_cheveux_couleur() { cheveux_couleur_id--; //on decremente l'indice du tableau //si on est arrivé avant le debut du tableau //on passe à la fin du tableau if (cheveux_couleur_id == -1) { cheveux_couleur_id = tab_cheveux_couleur.length-1; } //on met à jour les cheveux et les sourcils //avec la couleur precedente du tableau update_cheveux_couleur(tab_cheveux_couleur[cheveux_couleur_id]); } //Initialisation du tableau d'yeux. tab_forme_yeux = new Array(); //On insere dedans autant de positions qu'on veut proposer //liens vers les images clés contenus dans le clip oeil tab_forme_yeux.push("gentil", "normal","mechant"); /* test de parcours du tableau for (i=0; i<tab_cheveux.length; i++) { trace(tab_cheveux[i]); }
  • /
forme_yeux_id = 0;//indice de parcours du tableau, qu'on garde toujours en memoire init_forme_yeux(); function init_forme_yeux() { //initialisation du type d'oeil avec la position 0 du tableau //bouton update_forme_yeux(tab_forme_yeux[0]); //Mis a jour des movies clip } function update_forme_yeux(pos) { //fonction effectuant le changement de forme d'oeil //prend en parametre un lien vers une image clé oeil.gotoAndStop(pos); oeil2.gotoAndStop(pos); //On va accorder la position des sourcils //avec la position des yeux sourcil1.gotoAndStop(pos); sourcil2.gotoAndStop(pos); update_yeux(tab_yeux[oeil_id]);//on actualise la couleur forme_yeux_button.gotoAndStop(pos);//on actualise le bouton } function next_forme_yeux() { forme_yeux_id++; //on incremente l'indice de l'oeil //si on est au bout du tableau, on revient au debut if (forme_yeux_id == tab_forme_yeux.length) { forme_yeux_id = 0; } //on met à jour les yeux avec la forme suivante du tableau update_forme_yeux(tab_forme_yeux[forme_yeux_id]); } function previous_forme_yeux() { forme_yeux_id--; //on decremente l'indice des yeux //si on est arrivé avant le debut du tableau //on passe à la fin du tableau if (forme_yeux_id == -1) { forme_yeux_id = tab_forme_yeux.length-1; } //on met à jour les yeux avec la forme precedente du tableau update_forme_yeux(tab_forme_yeux[forme_yeux_id]); } function random_visage(){ //cree un visage aléatoirement update_forme_yeux(tab_forme_yeux[random(tab_forme_yeux.length)]); update_yeux(tab_yeux[random(tab_yeux.length)]); update_peau(tab_peau[random(tab_peau.length)]); update_bouche(tab_bouche[random(tab_bouche.length)]); update_cheveux(tab_cheveux[random(tab_cheveux.length)]); update_cheveux_couleur(tab_cheveux_couleur[random(tab_cheveux_couleur.length)]); } stop();

Conclusion :


Comme dit plus haut, une prochaine mise à jour sera disponible,avec une petite interface de gestion de membres avec les fichiers PHP correspondants.

Le code a été écrit sous forme de fonctions mais il aurait pu être écrit sous forme objet, mais n'ayant pas encore tout assimilé, je n'ai pas créé de classe.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
3
Date d'inscription
vendredi 30 juillet 2004
Statut
Membre
Dernière intervention
14 janvier 2006

Slt dupuisj :D
Merci beaucoup pour ta source, grâce à elle j'ai fait un générateur de Tux (pinguin Linux) :D
Mais voila j'aimerai faire un "jeu", et je voudrai que quand un membre creer son compte il crée son Tux en même temps et que sa sauvegarde dans une base de donnée Mysql, j'ai de bonne connaissance en Php, mais dès que Flash s'en melle ça devient plus dur, pourrait-tu m'aider à enregistrez les données dans une bdd ? Merci d'avance !
Messages postés
22
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
17 août 2009

salut, et desolé de ne repondre que maintenant..
est ce que tu pourrais m'envoyer un bout de ta source ou la source complete, que je puisse etudier le probleme et trouver une solution.
Messages postés
4
Date d'inscription
dimanche 22 mai 2005
Statut
Membre
Dernière intervention
29 juin 2005

Salut à tous, je suis nouveau et je suis un très débutant.
Une source de customisation comme celle-là, ça m'intéresse beaucoup pour un projet de jeu, et j'ai utilisé celle-ci pour voir, mais ça foire : j'ai un personnage dans le clip "Perso" qui possède des animations et qui peut se déplacer à la souris, jusque là pas de problème, ça marche du tonnerre. La tête de ce mec est dans un autre clip nommé "tete" qui est imbriqué dans "Perso". A l'intérieur de "tete", se trouvent les clips "cheveux" et "visage". L'idée est donc de pouvoir modifier la coiffure, la couleur des cheveux et la couleur de la peau. Oui mais voilà ce qui se passe : le changement de coiffure se produit bien, mais dès que le personnage se déplace et change de direction, la coiffure revient à sa première position, même lorsque juste après je remarche dans la position dans laquelle le changement de coiffure s'était opéré, c'est le retour de la coiffure par défaut (c'est-à-dire la première image dans le clip "cheveux).
Et donc, la nouvelle coiffure n'est que très éphémère!
Pour ce qui est des changements de couleurs, ils ne fonctionnent pas du tout.
J'ai pourtant repris bêtement le code de dupuisj, en ne modifiant, pour ainsi dire, que les cibles. D'ailleurs ça fonctionnait très bien quand je faisais des essais sur un personnage statique.

Est-ce quelqu'un pourrait éclairé ma lanterne? Je suis en galère là, j'ai essayé (sans doute fort maladroitement) des _parent. machin mais à vrai dire je n'y comprend pas des masses pour l'instant, et c'est pour ça que j'ai besoin de vous!
Messages postés
22
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
17 août 2009

Oui, je pense que cela est possible.
Je n'ai pas eu le temps de créer les fichiers PHP correspondants pour faire un exemple.

L'idée est simplement de sauvegarder les paramétres(yeux,cheveux..) dans la table User de ton forum et de les loader à l'initialisation.

Si tu veux que je t'aide à le mettre en place, tiens moi au courant. Je t'envois un message privé.
Messages postés
1
Date d'inscription
dimanche 12 novembre 2000
Statut
Membre
Dernière intervention
31 mars 2005

salut je voudrai savoir si cette animation peut se mettre sur un forum de forum actif
et si oui comment?
Merci d'avance
Afficher les 20 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.