- SkilloStaffeux retraité
- Nombre de messages : 526
Age : 35
Localisation : Rennes
Distinction : J'aime ce gars
(by Coco')
Scripteur apprenti, futur Berka !
(par Tretian)
Membre anonyme de la communauté, caché derrière son PC
(???)
super prof de script
[Dudu']
Résident permanent de la Chat Box
[Autoproclamé]
Adepte du XDDD [Yak' ]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008
[RGSS3] Système de zoom des characters
Mer 4 Jan 2012 - 2:37
Ce script est une adaptation de celui pour VX. Il permet de faire des zoom sur les events, le joueur et les véhicules ainsi que les followers (la chenille).
Le code à été amélioré et épuré et une nouvelle fonction a été ajouté.
Dorénavant pour actualiser les sprites faites un appel de script via event et rentrez ceci:
Les autres détails sont fournis dans les commentaires.
Le script:
Et quelques screen pour vous donnez une idée du rendu (il est meilleur ig):
Voilà laissez vos coms, vos remarques et vos idées.
+5 pts de participation
Le code à été amélioré et épuré et une nouvelle fonction a été ajouté.
Dorénavant pour actualiser les sprites faites un appel de script via event et rentrez ceci:
- Code:
SceneManager.scene.update_spriteset
Les autres détails sont fournis dans les commentaires.
Le script:
- Spoiler:
- Code:
#==============================================================================
# ** Zoom System fait par Skillo
#==============================================================================
# Pour definir un ZOOM sur un events il suffit de mettre ZOOM dans un commentaire
# ensuite vous pouvez definir le zoom appliqué sur x en mettant la valeur dans un
# commentaire en juste en dessous de celui du ZOOM. Si aucun zoom sur x n'est défini sa valeur
# sera celle definie ci-dessous.
# Pour définir le zoom appliqué sur y en mettre la valeur dans un
# commentaire juste en dessous de celui du zoom sur x. Si aucun zoom sur y n'est défini sa valeur
# sera celle definie ci-dessous.
module ZOOM
# Si il y a ici des interrupteur qui ne vous interressent pas mettez les à 0
# ici sera défini l'interrupteur désactivant le zoom
# IDSWITCHES = id de l'interrupteur
IDSWITCH = 1
# ici sera défini l'interrupteur désactivant le zoom sur l'equipe.
# HEROSWITCHES = id de l'interrupteur
HEROSSWITCH = 2
# ici sera défini l'interrupteur désactivant le zoom sur les autres events que l'equipe
# EVENTSWITCHES = id de l'interrupteur
EVENTSWITCH = 3
# ici sera défini l'interrupteur désactivant le zoom definie dans les commentaires d'un event
# EVENTCOMMENTSWITCHES = id de l'interrupteur
EVENTCOMMENTSWITCH = 4
# ci sera défini l'interrupteur désactivant le zoom sur les vehicules
# INCLUDEVEHICULES = id de l'interrupteur
VEHICULESWITCH = 5
# ici sera defini si les paremètres de zoom dans les commentaires des events sont prioritaires par rapport
# à ceux de la map
# COMMENTSPRIORITY = true/false
COMMENTSPRIORITY = true
# ici sera défini si le zoom sur x par default si ZOOM est definie dans les commentaires d'un event
# ZOOM_DEFAUT_EVENT_X = coeff (1 par default)
ZOOM_DEFAUT_EVENT_X = 1
# ici sera défini si le zoom sur y par default si ZOOM est definie dans les commentaires d'un event
# ZOOM_DEFAUT_EVENT_Y = coeff (1 par default)
ZOOM_DEFAUT_EVENT_Y = 1
# ici sera défini les maps affectées par le zoom ainsi que le coefficient associé ou le couple [coeff x, coeff y]
# ZOOMMAP =
# {
# id de la map => coeff,
# id de la map => [coeff x, coeff y]
# }
# Avec 1 le coefficient de zoom par defaut.
# Par exemple:
# si on a 6 => 0.5 :
# sur la map 6 le/les hero/events seront deux fois plus petit.
# si on a 7 => [0.5, 2] :
# sur la map 7 le/les hero/events seront deux fois moins gros mais deux fois plus grands.
ZOOMMAP =
{
1 => 0.75,
2 => 0.90
}
end
#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
# This sprite is used to display characters. It observes a instance of the
# Game_Character class and automatically changes sprite conditions.
#==============================================================================
class Spriteset_Map
include ZOOM
#--------------------------------------------------------------------------
# * Update Character Sprite
#--------------------------------------------------------------------------
def update_characters
for sprite in @character_sprites
sprite.zoom_x = sprite.zoom_y = 1
@zoom_x=@zoom_y=1
if $game_switches[IDSWITCH]
sprite.update
next
end
case sprite.character
when Game_Vehicle
if $game_switches[VEHICULESWITCH]
sprite.update
next
end
zoom_map
when Game_Event
if $game_switches[EVENTSWITCH]
sprite.update
next
end
if COMMENTSPRIORITY and !$game_switches[EVENTCOMMENTSWITCH]
zoom_map
zoom_event(sprite.character)
elsif !COMMENTSPRIORITY and !ZOOMMAP.keys.include?($game_map.map_id) and !$game_switches[EVENTCOMMENTSWITCH]
zoom_event(sprite.character)
else
zoom_map
end
when Game_Player, Game_Follower
if $game_switches[HEROSSWITCH]
sprite.update
next
end
zoom_map
end
sprite.zoom_x = @zoom_x
sprite.zoom_y = @zoom_y
sprite.update
end
end
#--------------------------------------------------------------------------
# * Zoom_Map
#--------------------------------------------------------------------------
def zoom_map
if !ZOOMMAP.keys.include?($game_map.map_id)
@zoom_x = @zoom_y = 1
elsif ZOOMMAP[$game_map.map_id].is_a?(Array)
@zoom_x = ZOOMMAP[$game_map.map_id][0]
@zoom_y = ZOOMMAP[$game_map.map_id][1]
else
@zoom_x = @zoom_y = ZOOMMAP[$game_map.map_id]
end
end
#--------------------------------------------------------------------------
# * Zoom_Event
#--------------------------------------------------------------------------
def zoom_event(event)
for i in 0...event.list.size
if event.list[i].code == 108 and event.list[i].parameters.include?("ZOOM")
if event.list[i+1] != nil and event.list[i+1].code == 108
@zoom_x = event.list[i+1].parameters[0].to_f
else
@zoom_x = ZOOM_DEFAUT_EVENT_X
end
if event.list[i+2] != nil and event.list[i+2].code == 108
@zoom_y = event.list[i+2].parameters[0].to_f
else
@zoom_y = ZOOM_DEFAUT_EVENT_Y
end
end
end
end
end
#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
# マップ画面の処理を行うクラスです。
#==============================================================================
class Scene_Map < Scene_Base
#--------------------------------------------------------------------------
# * Update_Spriteset
#--------------------------------------------------------------------------
def update_spriteset
@spriteset.update
end
end
Et quelques screen pour vous donnez une idée du rendu (il est meilleur ig):
Voilà laissez vos coms, vos remarques et vos idées.
+5 pts de participation
- UltimaSasukeMembre
- Nombre de messages : 88
Age : 29
Localisation : France, 05
Distinction : aucune
Date d'inscription : 27/07/2011
Re: [RGSS3] Système de zoom des characters
Mer 4 Jan 2012 - 13:46
Très bon script, il est possible d'ajouter un Add-on au script pour rajouter comme sort (FF oblige) un sort comme mini, qui permet si utiliser sur la MapMonde (exemple) de rendre nos personnages mini et d'activer un interrupteur quand le sort est lancé, quand il est désactivé l'interrupteur est sur off et le personnage et chenille revienne normal ( je sais que tu a dû y penser).
En tout cas tu fait dde très bon scripts continue =D
En tout cas tu fait dde très bon scripts continue =D
- Ezekiel KoeningMembre
- Nombre de messages : 413
Age : 26
Localisation : Nantes
Distinction : aucune
Date d'inscription : 17/12/2011
Re: [RGSS3] Système de zoom des characters
Mer 4 Jan 2012 - 15:00
Sympas même si je vois pas tellement l'utilitée à vrai dire :/ !
- driccMembre
- Nombre de messages : 2760
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009
Re: [RGSS3] Système de zoom des characters
Mer 4 Jan 2012 - 15:20
Comme ultimasauke l'a dit , ça peux etre utilisé à des fins scénaristiques . surtout pour la reduction de taille d'ailleurs . ça pixelise trop en augmentation de taille et on sait tous les problemes que posent les persos de plus d'une case de largeur .
- SkilloStaffeux retraité
- Nombre de messages : 526
Age : 35
Localisation : Rennes
Distinction : J'aime ce gars
(by Coco')
Scripteur apprenti, futur Berka !
(par Tretian)
Membre anonyme de la communauté, caché derrière son PC
(???)
super prof de script
[Dudu']
Résident permanent de la Chat Box
[Autoproclamé]
Adepte du XDDD [Yak' ]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008
Re: [RGSS3] Système de zoom des characters
Mer 4 Jan 2012 - 18:37
c'est surtout pour rajouter des effets genre comme la première image qui est une map monde ça donne un plus. ou si jamais vous voulez par exemple comme dans minish cap que votre héros devienne tout petit, maintenant vous pouvez, et même pour varier les corpulences par exemple le zoom à 0.90, 0.95, 1.10 change très peu mais ça donne un petit effet.
Et ultimate c'est simple il suffit que ton sort active l'interrupteur HEROSSWITCH défini dans le Module ZOOM du script. Il est entièrement personnalisable, on peut désactiver et réactiver tous les zooms.
Et ultimate c'est simple il suffit que ton sort active l'interrupteur HEROSSWITCH défini dans le Module ZOOM du script. Il est entièrement personnalisable, on peut désactiver et réactiver tous les zooms.
- UltimaSasukeMembre
- Nombre de messages : 88
Age : 29
Localisation : France, 05
Distinction : aucune
Date d'inscription : 27/07/2011
Re: [RGSS3] Système de zoom des characters
Mer 4 Jan 2012 - 19:16
Justement je crois que l'on ne peut pas activer un interrupteur en lançant une attaque sur le menu... =(
Re: [RGSS3] Système de zoom des characters
Mer 4 Jan 2012 - 19:54
Peut on faire des condition avec ?
Ex, si Hero = Zoom 0.1 alors il peut passez dans la porte ?
Ex, si Hero = Zoom 0.1 alors il peut passez dans la porte ?
- SkilloStaffeux retraité
- Nombre de messages : 526
Age : 35
Localisation : Rennes
Distinction : J'aime ce gars
(by Coco')
Scripteur apprenti, futur Berka !
(par Tretian)
Membre anonyme de la communauté, caché derrière son PC
(???)
super prof de script
[Dudu']
Résident permanent de la Chat Box
[Autoproclamé]
Adepte du XDDD [Yak' ]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008
Re: [RGSS3] Système de zoom des characters
Jeu 5 Jan 2012 - 0:02
Nop yoshi mais c pas bête je vais réfléchir à une manière de faire ça, sinon il faudrait que j'inverse les interrupteur pour l'instant c'est si l'interrupteur est sur off ça fait le zoom sur on ça le désactive en faisant l'inverse ça oblige à l'activer au début mais du coup tu pourra faire des test sur les inteerupteur pour savoir si t'as le zoom ou pas.
Et Ulti t'as les event communts ^^, dans ace ils ont bougé ils sont dans la dernière page des effets mais tu peux passer par un event commun pour activer l'interrupteur et du coup passer par un autre pour le désactiver.
Et Ulti t'as les event communts ^^, dans ace ils ont bougé ils sont dans la dernière page des effets mais tu peux passer par un event commun pour activer l'interrupteur et du coup passer par un autre pour le désactiver.
- UltimaSasukeMembre
- Nombre de messages : 88
Age : 29
Localisation : France, 05
Distinction : aucune
Date d'inscription : 27/07/2011
Re: [RGSS3] Système de zoom des characters
Jeu 5 Jan 2012 - 6:45
J'vais voir ça merci, pas pensais sur le coup pour les év' commun.
- XakuXMembre
- Nombre de messages : 1263
Age : 30
Localisation : là où tu n'auras jamais l'idée de chercher !
Distinction : * Bougre d'âne
Le bizu' à son Coco'
[Coco' ]
Membre aux désirs inassouvis de domination mondiale. [Maître du destin]
Date d'inscription : 13/12/2008
Re: [RGSS3] Système de zoom des characters
Jeu 5 Jan 2012 - 19:09
Bah, si au lieu d'un chiffre on met une variable, ça fonctionne très bien aussi (enfin, i suppose), il suffit juste de mettre la condition sur la variable qui gère le zoom et pi bwala
J'avoue que perso', je vois ça bien plus dans un jeu en "3D" (d'ailleurs maintenant que j'y pense, ça peut-être cool de faire un jeu en "3D" ) que dans une cinématique ^^
J'avoue que perso', je vois ça bien plus dans un jeu en "3D" (d'ailleurs maintenant que j'y pense, ça peut-être cool de faire un jeu en "3D" ) que dans une cinématique ^^
- driccMembre
- Nombre de messages : 2760
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009
Re: [RGSS3] Système de zoom des characters
Jeu 5 Jan 2012 - 19:15
Mais ouiii , Xakux , ça devrait marcher .
skillo nous a mis un tableau :
ZOOMMAP =
{
1 => 0.75,
2 => 0.90
}
du coup ça , ça devrait marcher :
ZOOMMAP =
{
1 => $game_variables[1]
}
A tester ...
skillo nous a mis un tableau :
ZOOMMAP =
{
1 => 0.75,
2 => 0.90
}
du coup ça , ça devrait marcher :
ZOOMMAP =
{
1 => $game_variables[1]
}
A tester ...
- SkilloStaffeux retraité
- Nombre de messages : 526
Age : 35
Localisation : Rennes
Distinction : J'aime ce gars
(by Coco')
Scripteur apprenti, futur Berka !
(par Tretian)
Membre anonyme de la communauté, caché derrière son PC
(???)
super prof de script
[Dudu']
Résident permanent de la Chat Box
[Autoproclamé]
Adepte du XDDD [Yak' ]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008
Re: [RGSS3] Système de zoom des characters
Jeu 5 Jan 2012 - 19:43
pas besoin de test c'est sur ça marche le seul hic c'est le rafraichissement ^^ faut pas oublier de faire SceneManager.scene.update_spriteset après avoir changer la variable c'est tout.
- XakuXMembre
- Nombre de messages : 1263
Age : 30
Localisation : là où tu n'auras jamais l'idée de chercher !
Distinction : * Bougre d'âne
Le bizu' à son Coco'
[Coco' ]
Membre aux désirs inassouvis de domination mondiale. [Maître du destin]
Date d'inscription : 13/12/2008
Re: [RGSS3] Système de zoom des characters
Jeu 5 Jan 2012 - 21:50
Je savais qu'il y aurait une histoire d'update là-dedans x)
Juste question pour savoir (je sais pas si ça me serait vraiment utile) mais on pourrait updater à chaque frame (dans un évent en processus parallèle), sans avoir de bug graphique, ni trop de ralentissement ? :/
Juste question pour savoir (je sais pas si ça me serait vraiment utile) mais on pourrait updater à chaque frame (dans un évent en processus parallèle), sans avoir de bug graphique, ni trop de ralentissement ? :/
Re: [RGSS3] Système de zoom des characters
Jeu 5 Jan 2012 - 23:25
Dricc: ta solution peut ne pas fonctionner. L'objet $game_variables que tu invoque dans ton hash n'est pas initialisé, car il se trouve dans un module. Celui-ci est chargé au lancement de ruby, donc avant le chargement des données de jeu ($game_*).
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum