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/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Tutos: Godot : Premier Contact -Partie (...) / Tutos: Godot : Premier Contact -Partie (...) / Making-of: Ma première game jam classée / Jeux: Oracle of Tao / Jeux: Mystic Slayer [Value+!] / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

89 connectés actuellement

11003102 visiteurs
depuis l'ouverture

989 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Hellsoft

Planète Glutko

Lumen

Offgame

Le Comptoir Du clickeur

Lunae - le bazar d'Emz0

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RESOLU] [RMXP] Chara composite: un moyen ?


William Samy - posté le 17/11/2014 à 19:31:18 (488 messages postés)

❤ 0

revenant des vivant.

Domaine concerné: Script
Logiciel utilisé: RMXP
J'ai fait de rapides recherches ici et là, je n'ai rien trouvé qui puisse m'aider à élaborer un systeme de character composite, cad faire q'un chara (en l'occurence mon héros) soit fait de plusieurs couches ou alors divisé en plusieurs sprites.

Il existe apparemment un moyen avec Ace mais pour RMXP je n'ai encore rien trouvé... J'ai fais quelques tentatives en bidouillant les scripts mais sans succès, il faudrait que j'accède à ce "RPG::Sprite" etc

C'est pour un système de personnalisation du héros, en fonction de son équipement par exemple.

Quelqu'un a-t-il déjà trouvé une solution ou c'est vraiment dans la catégorie des truc impossible à faire sous RMXP? :doute2
Merci d'avance

Galfart.fr || « L'humanité souffre exactement autant aujourd'hui qu'elle a toujours souffert, elle l'a raffiné et s'illusionne sur son état... c'est la seule différence... » R.Steiner


Mack - posté le 17/11/2014 à 19:41:48 (2017 messages postés)

❤ 0

Nan, mais sous RM y a rien de vraiment impossible.
Et ce que tu veux, c'est assez simple, et des scripts de ce genre existe.
( Et ça existe depuis trèèèèès longtemps ^^ )

En gros, c'est simplement créer un bitmap vide, y dessiner toute les parties que tu veux, et le faire charger au GamePlayer/GameActor au lieu du character normal.

Si tu trouves rien je te ferais un mini exemple.

( Je prend note de tout les commentaires, même si je n'y répond pas )


William Samy - posté le 17/11/2014 à 20:07:25 (488 messages postés)

❤ 0

revenant des vivant.

Merci Mack pour ta réponse.
Effectivement un exemple serait le bienvenu, je commence à maitriser le ruby mais je ne suis pas un expert.

Citation:

En gros, c'est simplement créer un bitmap vide, y dessiner toute les parties que tu veux, et le faire charger au GamePlayer/GameActor au lieu du character normal.

Je comprend le principe mais en pratique comment je divise le bitmap? J'en créé plusieurs?

Galfart.fr || « L'humanité souffre exactement autant aujourd'hui qu'elle a toujours souffert, elle l'a raffiné et s'illusionne sur son état... c'est la seule différence... » R.Steiner


Mack - posté le 17/11/2014 à 20:17:53 (2017 messages postés)

❤ 0

Nope pas besoin de créer plusieurs bitmap, un seul suffit ^^.
( Tu le divises pas, le jeu le fera tout seul ;D )

En gros tu loads toute les parties que tu vas vouloir coller :

Portion de code : Tout sélectionner

1
2
body = RPG::Cache.load_bitmap("Ressources/Vetements/", nomdufichier, hue)
cheveux = RPG::Cache.load_bitmap("Ressources/Cheveux/", nomdufichier,hue)


( Le Hue c'est le nombre entre 0 et 359 qui permet de faire varier la teinte de l'image )

Ensuite, tu créais un bitmap de taille w,h :

Portion de code : Tout sélectionner

1
bitmap = Bitmap.new(w,h)


Bien sur, w et h sont la largeur/hauteur de ton bitmap.
Ce que je te conseil, c'est de mettre TOUTE tes images à la même taille, et de mettre cette taille au lieu w/h.

Et enfin :

Portion de code : Tout sélectionner

1
2
3
bitmap.blt(0,0, body, Rect.new(0, 0, w, h))
bitmap.blt(0,0, cheveux, Rect.new(0, 0, w, h))
 


En gros, le bitmap.blt ça veut dire dessine moi aux position 0,0, le bitmap body/cheveux, et le Rect.new permet de dire que tu veux en prendre qu'une partie.
Nous on met 0,0,w,h comme ça ça prend la totalité de l'image.

Et voila, ta ton bitmap avec les différentes images dessus ^^.

Après, il te faut la loader, mais comme je l'avais fait sur le StarterPack pokemon, j'ai directement changer le Sprite du GamePlayer.
Donc pour le charger, ça va dépendre de quel type de jeu tu fais.

( Je prend note de tout les commentaires, même si je n'y répond pas )


Siegfried - posté le 17/11/2014 à 20:29:30 (228 messages postés)

❤ 0

Le script à refaire sous xp est Sprite_Character, au cas où une âme généreuse aurait le temps.
Il faudrait que tu précises combien de parties tu veux, et si ça touche des events, ou juste le héros. Ensuite, pour le scripteur qui va s'y coller, prévoir un moyen de faire la différence entre les events qui suivent ce système ou qui gardent un chara simple.


William Samy - posté le 17/11/2014 à 20:34:39 (488 messages postés)

❤ 0

revenant des vivant.

Waw superbe explication!
Parfait je vais suivre à lettre je devrais y arriver.
Je fais un RPG avec 1 seul héros personalisable,
pour charger le bitmap, j'ai trouvé cette ligne dans le refresh de Game_Player:

Portion de code : Tout sélectionner

1
@character_name = actor.character_name

Et-ce bien là que je dois remplacer?
Merci beaucoup en tout cas, ça me sauve!:youpi

EDIT: Parcontre je pige pas comment ça fonctionne quand le chara s'anime

Galfart.fr || « L'humanité souffre exactement autant aujourd'hui qu'elle a toujours souffert, elle l'a raffiné et s'illusionne sur son état... c'est la seule différence... » R.Steiner


Mack - posté le 17/11/2014 à 20:52:29 (2017 messages postés)

❤ 0

Pas exactement.
En gros, là c'est juste pour stocker le nom du character.
Nous, ce qu'on veut c'est carrément changer le bitmap.

Okay, alors créer un fichier .png vide que tu assigneras à ton héros. Attention, il doit être le seul à avoir ce fichier ( Enfin, tout les Events avec ce fichier auront l'apparence du héros ).
Le mieux c'est que ton fichier est la même taille que les autres fichiers de personnalisation.

Et au dessus, au lieu de faire :

Portion de code : Tout sélectionner

1
bitmap = Bitmap.new(w,h)


tu fais :

Portion de code : Tout sélectionner

1
2
bitmap = RPG::Cache.character(@character.character_name,
          @character.character_hue)



En gros, je load mon bitmap, et après je le modifie.
Si je dis pas trop de betise, ça devrait le faire pour les events avec le même character.
( Alors c'est totalement expérimental, je sais pas du tout si ça va marcher xD )

EDIT Pour ton edit :
Bah, tes images doivent être des characters, mais juste avec certaine partie. Genre, juste la tête, ou juste les gants.
Et le jeu après s'occupera de faire les différentes frame lors du mouvement.

( Je prend note de tout les commentaires, même si je n'y répond pas )


William Samy - posté le 17/11/2014 à 21:06:23 (488 messages postés)

❤ 0

revenant des vivant.

D'accord mais ducoup je fais tout ça dans quel script?
Game_Player? Sprite_Character?
Dans Sprite_Character j'ai ça:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
def update
    super
    # タイル ID、ファイル名、色相のどれかが現在のものと異なる場合
    if @tile_id != @character.tile_id or
       @character_name != @character.character_name or
       @character_hue != @character.character_hue
      # タイル ID とファイル名、色相を記憶
      @tile_id = @character.tile_id
      @character_name = @character.character_name
      @character_hue = @character.character_hue
      # タイル ID が有効な値の場合
      if @tile_id >= 384
        self.bitmap = RPG::Cache.tile($game_map.tileset_name,
          @tile_id, @character.character_hue)
        self.src_rect.set(0, 0, 32, 32)
        self.ox = 16
        self.oy = 32
      # タイル ID が無効な値の場合
      else
        self.bitmap = RPG::Cache.character(@character.character_name,
          @character.character_hue)
        @cw = bitmap.width / 4
        @ch = bitmap.height / 4
        self.ox = @cw / 2
        self.oy = @ch
      end
    end



Galfart.fr || « L'humanité souffre exactement autant aujourd'hui qu'elle a toujours souffert, elle l'a raffiné et s'illusionne sur son état... c'est la seule différence... » R.Steiner


Mack - posté le 17/11/2014 à 21:14:37 (2017 messages postés)

❤ 0

Bah, tu créais une def bidule_machin_chose, et dedans tu colles tout ce qu'il y a au dessus.
Puis tu l'appelles depuis un event ou autre ^^.
( Ça devrait marcher )

( Je prend note de tout les commentaires, même si je n'y répond pas )


William Samy - posté le 17/11/2014 à 21:17:11 (488 messages postés)

❤ 0

revenant des vivant.

Ok merci pour tout!:sourire2

EDIT: Super ça fonctionne comme je le voulais, j'ai tout inclu dans Sprite_Character, reste plus qu'à développer:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
def update
    super
    # タイル ID、ファイル名、色相のどれかが現在のものと異なる場合
    if @tile_id != @character.tile_id or
       @character_name != @character.character_name or
       @character_hue != @character.character_hue
      # タイル ID とファイル名、色相を記憶
      @tile_id = @character.tile_id
      @character_name = @character.character_name
      @character_hue = @character.character_hue
      # タイル ID が有効な値の場合
      if @tile_id >= 384
        self.bitmap = RPG::Cache.tile($game_map.tileset_name,
          @tile_id, @character.character_hue)
        self.src_rect.set(0, 0, 32, 32)
        self.ox = 16
        self.oy = 32
      # タイル ID が無効な値の場合
      else
        #CHARA HEROS COMPOSITE:---------------------------------------------------------
        if @character.character_name == "HEROS" #nom du fichier (image vide)
          body = RPG::Cache.load_bitmap("Graphics/Characters/", "HEROSbody", @character.character_hue)
          cheveux = RPG::Cache.load_bitmap("Graphics/Characters/", "HEROScheveux",@character.character_hue)
          self.bitmap = RPG::Cache.character(@character.character_name,
            @character.character_hue)
            @cw = bitmap.width / 4
            @ch = bitmap.height / 4
            self.ox = @cw / 2
            self.oy = @ch
            self.bitmap.blt(0,0, body, Rect.new(0, 0, bitmap.width, bitmap.height))
            self.bitmap.blt(0,0, cheveux, Rect.new(0, 0, bitmap.width, bitmap.height))
        #---------------------------------------------------------------------------------------------------
        else
          
          self.bitmap = RPG::Cache.character(@character.character_name,
            @character.character_hue)
          @cw = bitmap.width / 4
          @ch = bitmap.height / 4
          self.ox = @cw / 2
          self.oy = @ch
        end
      end
    end



Galfart.fr || « L'humanité souffre exactement autant aujourd'hui qu'elle a toujours souffert, elle l'a raffiné et s'illusionne sur son état... c'est la seule différence... » R.Steiner

Index du forum > Entraide > [RESOLU] [RMXP] Chara composite: un moyen ?

repondre up

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 | 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 | Tous les jeux | Jeux complets | 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