❤ 0 Alterner le jour et la nuit
Voici un tutoriel qui propose une rotation du soleil en plus des fonctions jour-nuit. Il gère aussi les intérieurs.
Ce tutoriel fonctionne de cette façon : la journée est divisée en 4 parties (Matin, jour, soir et nuit) divisées par des moments de transition (transition matin-jour, jour-soir, soir-nuit et nuit-matin). C'est à ces moments que se font les transitions.
Choix des images et utilisation
Bon tout d'abord il faut prendre ces deux images :
et
Ou créer deux effets de lumière semblables (l'essentiel c'est que l'image doit être assez grande pour que même prise au milieu elle puisse couvrir l'écran et ses angles (le milieu oui oui, c'est une rotation par le centre).
Ne définissez pas de transparence pour les images quand vous les importez, ou bien copiez les direct dans le répertoire.
En cas de ralentissements
Il y a à présent une petite contrainte : Soit vous avez une bonne machine et cela marche nickel, soit vous avez un musée chez vous et cela rame sa reum (si je puis me permettre).
Si vous êtes dans le second cas, il y a deux solutions: Soit vous réduisez la taille des images de moitié avec un logiciel de dessin quelconque et vous afficherez celle ci dans Rm avec 200% de zoom au lieu de 100, soit vous zappez les événements de rotation et vous les remplacez par des "afficher image" successifs aux lieux idoines, même si c'est moins fluide.
Passons aux choses sérieuses.
Préparation des événements
Créez 9 interrupteurs que nous nommerons par exemple jour, Trans jour-soir, soir, trans soir-nuit, nuit, trans nuit-matin, matin et trans matin-jour. Plus un dernier que nous appellerons maison (vous saurez pourquoi bien assez vite)
Allez ensuite dans la fenêtre des événements communs et créez 8 événements en processus parallèle nommés comme vos 8 premiers interrupteurs avec comme condition de déclenchement ces derniers.
Pourquoi ces 8 interrupteurs et événements ? Parce qu'en réalité le code fonctionne comme cela : il y a le matin qui dure un certain nombre de temps, une fois ce temps écoulé l'événement bascule en phase de transition (rotation du soleil et changement de couleur de l'écran), une fois cette transition effectuée on passe au jour et ainsi de suite... 4 phases et 4 transitions, plus un interrupteur pour les maisons, et le compte est bon.
NB: Les images seront affichées en transparence éclaircie.
Configuration de l'événement commun d'un moment de la journée
Allez donc dans l'événement nommé jour et entrez y ce code: (*n'oubliez pas qu'il doit être en processus parallèle et avoir comme interrupteur de déclenchement l'interrupteur du même nom).
Citation: <>Condition: si l'interrupteur[maison] est désactivé (*cocher la case "exécuter d'autres commandes si...)
Cette condition vérifie si on est dehors avant de lancer un quelconque effet solaire.
<>Afficher une image: n°1, soleil, pixel central (320,300), (100%100), opacité 120 (*veillez à respecter les valeurs donnés)
<>Modifier le ton de l'écran: (R:0,V:0,B:0,S:0)
<>Attendre 999 Frames (là j'ai mis 999, mais vous pouvez mettre ce que vous voulez pour la durée du jour, et si les 999 ne vous suffisent pas vous pouvez en mettre plusieurs^^)
<>Interrupteur[jour] désactivé
<>Interrupteur[transition jour-soir] activé
<>
<>Sinon
<>Modifier le ton de l'écran: (R:0,V:0, B:0,S:0), 0 frames
<>Attendre 999 Frames (à chaque fois que je mets 999 Frames, vous pouvez remplacer par ce que voulez
<>Interrupteur[jour] désactivé
<>Interrupteur[transition jour-soir] activé
<>Fin |
A quoi sert l'interrupteur maison et sa condition ? Hé bien imaginez que vous êtes dans une ville, il fait jour mais le soleil ne doit sûrement pas être à l'intérieur de la maison (sinon ce serait compliqué ^^, vous imaginez un astre dans une maison !!! ^^). De plus, s'il fait nuit dehors, l'intérieur de la maison reste tout de même éclairé. Il ne doit donc pas avoir le même ton que l'extérieur.
Récapitulons ce que j'ai fait dans cet événement : Je vérifie si je suis dehors, si oui j'affiche le soleil, je mets la couleur du jour, j'attends le temps qu'il faut puis je désactive l'événement et j'active la transition. Sinon, j'attends le temps qu'il faut et je passe à la transition.
Configuration d'une transition entre deux moments de la journée
Bon, à présent allez dans l'événement nommé transition jour-soir et entrez y ce code:
Citation: <>Condition: si l'interrupteur[maison] est désactivé (*cocher la case "exécuter d'autres commandes si...)
<>Afficher une image: n°1, soleil, pixel central (320,300), (100%100), opacité 120 (*veillez à respecter les valeurs donnés)
<>Rotation image n°1, vitesse+2
<>Modifier le ton de l'image: n°1, (-255,-255,-255,0), 50 frames
<>Modifier le ton de l'écran: (R:-68,V:-68,B:-68,S:0), 50 Frames
<>Attendre 50 Frames
<>Interrupteur[transition jour-soir] désactivé
<>Interrupteur[soir] activé
<>
<>Sinon
<>Modifier le ton de l'écran: (R:-50,V:-50, B:-50,S:0), 50 frames
<>Attendre 50 Frames
<>Interrupteur[transition jour-soir] désactivé
<>Interrupteur[soir] activé
<>Fin |
En gros, je vérifie si je suis dans une maison, j'affiche et fais tourner l'image (le soleil),je change la couleur de l'écran (je l'assombris un peu) et je passe à l'étape suivante. Si je suis dans une maison, je change légérement le ton de l'écran (il commence à faire sombre mais pas assez pour qu'on allume), j'attends un peu puis je passe a suivant.
Et la programmation se répète entre moments de la journée et transitions. Voici la suite pour ceux qui se sentiraient perdus :
Spoiler (cliquez pour afficher) Rendez vous à l'événement nommé soir. Here is da code :
Citation: <>Condition: si l'interrupteur[maison] est désactivé (*cocher la case "executer d'autres commandes si...)
<>Modifier le ton de l'écran: (R:-68,V:-68,B:-68,S:0)
<>Attendre 999 Frames
<>Interrupteur[soir] désactivé
<>Interrupteur[transition soir-nuit] activé
<>
<>Sinon
<>Modifier le ton de l'écran: (R:-50,V:-50, B:-50,S:0), 0 frames
<>Attendre 999 Frames
<>Interrupteur[soir] désactivé
<>Interrupteur[transition soir-nuit] activé
<>Fin |
La prog se répète. Vous devez avoir compris le système.
Attaquons maintenant l'event nommé Transition soir-nuit. Le code :
Citation: <>Condition: si l'interrupteur[maison] est désactivé (*cocher la case "exécuter d'autres commandes si...)
<>Modifier le ton de l'écran: (R:-170,V:-170,B:-136,S:0), 50 Frames
<>Attendre 50 Frames
<>Interrupteur[transition soir-nuit] désactivé
<>Interrupteur[nuit] activé
<>
<>Sinon
<>Modifier le ton de l'écran: (R:-50,V:-50, B:-50,S:0), 50 frames
<>Attendre 50 Frames
<>Interrupteur[transition soir-nuit] désactivé
<>Interrupteur[nuit] activé
<>Fin |
C'est au tour de l'event nuit :
Citation: <>Condition: si l'interrupteur[maison] est désactivé (*cocher la case "executer d'autres commandes si...)
<>Modifier le ton de l'écran: (R:-170,V:-170,B:-136,S:0)
<>Attendre 999 Frames
<>Interrupteur[nuit] désactivé
<>Interrupteur[transition nuit-matin] activé
<>
<>Sinon
<>Modifier le ton de l'écran: (R:-50,V:-50, B:-50,S:0), 0 frames
<>Attendre 999 Frames
<>Interrupteur[nuit] désactivé
<>Interrupteur[transition nuit-matin] activé
<>Fin |
C'est qui le suivant ? Transition nuit-matin pardi !!!
Citation: <>Condition: si l'interrupteur[maison] est désactivé (*cocher la case "executer d'autres commandes si...)
<>Modifier le ton de l'écran: (R:-68,V:-68,B:-68,S:0), 50 Frames
<>Attendre 50 Frames
<>Interrupteur[transition nuit-matin] désactivé
<>Interrupteur[matin] activé
<>
<>Sinon
<>Modifier le ton de l'écran: (R:-50,V:-50, B:-50,S:0), 50 frames
<>Attendre 50 Frames
<>Interrupteur[transition nuit-matin] désactivé
<>Interrupteur[matin] activé
<>Fin |
... Matin... (On va y arriver...)
Citation: <>Condition: si l'interrupteur[maison] est désactivé (*cocher la case "executer d'autres commandes si...)
<>Modifier le ton de l'écran: (R:-68,V:-68,B:-68,S:0)
<>Attendre 999 Frames
<>Interrupteur[matin] désactivé
<>Interrupteur[transition matin-jour] activé
<>
<>Sinon
<>Modifier le ton de l'écran: (R:-50,V:-50, B:-50,S:0), 0 frames
<>Attendre 999 Frames
<>Interrupteur[matin] désactivé
<>Interrupteur[transition matin-jour] activé
<>Fin |
Le dernier... Sus à l'événement transition matin-jour, banzai !!!
Citation: <>Condition: si l'interrupteur[maison] est désactivé (*cocher la case "exécuter d'autres commandes si...)
<>Afficher une image: n°1, soleil2 (soleil2 hein!), pixel central (320,300), (100%100), opacité 120 (*veillez à respecter les valeurs donnés)
<>Modifier le ton de l'image: n°1, (-255,-255,-255,0), 0 Frames
<>Rotation de l'image: n°1, vitesse +2
<>Attendre 30 Frames
<>Modifier le ton d'une image: n°1, (0,0,0,0), 60 Frames
<>Modifier le ton de l'écran (*pas n°1 hein!^^): (R:-68,V:-68,B:-68,S:0), 50 Frames
<>Attendre 60 Frames
<>Rotation de l'image: n°1 (*si si!), vitesse +0
<>Interrupteur[transition matin-jour] désactivé
<>Interrupteur[jour] activé
<>
<>Sinon
<>Modifier le ton de l'écran: (R:-50,V:-50, B:-50,S:0), 50 frames
<>Attendre 60 Frames
<>Interrupteur[transition matin-jour] désactivé
<>Interrupteur[jour] activé
<>Fin |
C'est fini pour les événements communs. Attendez partez pas, c'est pas encore fini.
Eviter des petits glitchs graphiques liés à la téléportation
Imaginez maintenant que vous changez de map pendant une transition, celle-ci va recommencer depuis le début (parce que c'est une rotation de l'image et que le programme n'enregistre pas le degré d'inclinaison. (Si vous pigez rien c'est pas grave). L'important c'est de savoir que si on se téléporte pendant une phase de transition, le code ci dessous va switcher la transition et passer à l'étape suivante. Par exemple si étiez en pleine transition jour-soir quand vous téléportez, à la fin de la téléportation vous serez en mode soir. Ceci n'est pas un handicap en soi car de toute façon la transition se fait assez vite.
Donc pour éviter les mauvaises surprises (un soleil qui se couche deux fois) mettez ce code dans tous les événements de téléportation (ou via un autre événement commun à insérer avant la téléportation) :
Citation: <>Effacer l'image n°1
<>Condition: si l'interrupteur[transition jour-soir] est activé
<>Interrupteur[transition jour-soir] désactivé
<>Interrupteur[soir] activé
<>Fin
<>Condition: si l'interrupteur[transition soir-nuit] est activé
<>Interrupteur[transition soir-nuit] désactivé
<>Interrupteur[nuit] activé
<>Fin
<>Condition: si l'interrupteur[nuit-matin] est activé
<>Interrupteur[transition nuit-matin] désactivé
<>Interrupteur[matin] activé
<>Fin
<>Condition: si l'interrupteur[transition matin-jour] est activé
<>Interrupteur[transition matin-jour] désactivé
<>Interrupteur[matin] activé
<>Fin
<>Interrupteur[maison] activé (*si l'event vous téléporte de l'extérieur vers une maison) ou désactivé (*si l'event vous téléporte d'une maison vers l'extérieur) |
Conclusion
Ca y est c'est enfin terminé. Ce code n'est sûrement pas parfait, alors si vous avez des rectifications, des suggestions ou un rapport de bugs n'hésitez pas.
Tutoriel réalisé sur RPG Maker XP. L'utilisation sur d'autres logiciels peut demander une légère adaptation, mais le principe de fonctionnement reste le même.
Ecrit vers le 28 janvier 2006.
|