Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV

Apprendre
RPG Maker

Guides
Tutoriels
Making-of

Dans le
Forum

Section Entraide

Jeux: Cure Seekers / Jeux: Princesse Emmentale / Interviews: Ccd-Tof / Sorties: dans mon quartier, remasterisé (...) / News: Alex d'Or 2020 : Les résultats ! / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

142 connectés actuellement

10838166 visiteurs
depuis l'ouverture

7 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Hellsoft

Planète Glutko

RPG Maker - La Communauté

Lunae - le bazar d'Emz0

ConsoleFun

Zarok

Tous nos partenaires

Devenir
partenaire



Ren'Py - Assombrir les personnages qui ne parlent pas

Griser/assombrir les personnages quand ils ne parlent pas dans votre Visual Novel réalisé avec Ren'Py

Ecrit par Roi of the Suisse le 10/08/2020

Lorsque plusieurs personnages sont affichés à l'écran, il est préférable pour la lisibilité de la scène de griser/assombrir les personnages qui ne parlent pas.

Nous aurons besoin du nom du personnage tel qu'il a été défini dans "script.rpy". Pour ne pas avoir à taper le nom complet du personnage à chaque fois qu'on écrit une ligne de dialogue, il s'agit souvent d'une simple initiale.

Portion de code : Tout sélectionner

1
2
# Définir les personnages (nom, couleur, image)
define c = Character('Carlo', color="#1bcd7f")

Dans cet exemple, le personnage est Carlo, mais on lui assigne des lignes de dialogue avec l'initiale "c".

Portion de code : Tout sélectionner

1
2
3
4
5
    show c
    with dissolve
 
    c "Je m'appelle Carlo. Je suis un calamar."
    c "Bienvenue à Bikini Bottom."



Dans la section "init python", déclarez une fonction "image_personnage_muet" qui prend en paramètre le nom de l'image et l'initiale du personnage.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
init python:
    # --------------------------------------------------
    # Fonction : griser les personnages muets
    # --------------------------------------------------
    def image_personnage_muet(nom, initiale):
        matrice_muet = im.matrix.brightness(-0.25) * im.matrix.saturation(0.5)
        return ConditionSwitch(
            "_last_say_who == '"+initiale+"'", nom,
            "not _last_say_who == '"+initiale+"'", im.MatrixColor(nom, matrice_muet) )

On commence ici par définir une matrice "matrice_muet" qui servira à griser les images des personnages qui ne parlent pas. Elle est le produit de deux matrices :
- baisse de la luminosité avec "im.matrix.brightness(-0.25)", qui prend un argument entre -1 (image toute noire) et 1 (image toute blanche. 0 signifie que l'image n'est ni obscurcie, ni éclaircie.
- baisse de la saturation avec "im.matrix.saturation(0.5)", qui prend un argument entre 0 (image en niveaux de gris, noir et blanc) et 1 (image aux couleurs inaltérées)
Ici l'image sera donc légèrement assombrie, et légèrement ternie. Vous pouvez jouer avec ces deux paramètres pour obtenir le grisement que vous voulez.

Le "ConditionSwitch" va retourner une image dynamique, qui s'adaptera automatiquement si le personnage parle ou ne parle pas ! Dans le cas où le "_last_say_who" (dernier interlocuteur) correspond à l'initiale, l'image inchangée sera utilisée. Au contraire, si le "_last_say_who" ne correspond pas à l'initiale, l'image grisée sera employée.

Vous pouvez maintenant utiliser cette fonction pour déclarer une image dynamique en même temps que vous déclarez le personnage :

Portion de code : Tout sélectionner

1
2
3
# Définir les personnages (nom, couleur, image)
define c = Character('Carlo', color="#1bcd7f")
image c = image_personnage("images/characters/Carlo.png", "c")



image
les personnages qui ne parlent pas sont grisés



Pour aller plus loin avec les matrices de modification d'images, consultez la documentation de Ren'Py : https://www.renpy.org/doc/html/displayables.html

Aucun commentaire n'a été posté pour le moment.

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Articles perso | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Jeux complets | Tous les jeux | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers