- EekounMembre
- Nombre de messages : 86
Distinction : aucune
Date d'inscription : 06/03/2014
Tressaillement à la Golden Sun
Lun 14 Avr 2014 - 2:25
[VXAce] Tressailleur d'évènements (Buzzer)
Refonte (et amélioration) d'un script réalisé par Fabien, de la Factory (R.I.P) pour RPG Maker XP. Premièrement réécrit par XHTMLBoy pour VX et réécrit par moi pour VXAce (avec beaucoup des options en plus). Il s'agit d'un outil pour faire vibrer les évènements comme dans Golden Sun.
Installation
Copiez le script dans votre éditeur de script Au dessus de Main, dans la rubrique Materials. Vous pouvez lui attribuer un emplacement réservé. Et le nommer comme vous l'entendez. Personnellement, j'ai choisi le nom Buzzer (original !).
Faire tressaillir des évènements
Il suffit d'appeller les commandes décrites ci dessous dans un appel de script et au moment où l'appel de script sera exécuté, le tressaillement aura lieu.
Paramétrer le tressaillement
Il est possible de paramétrer un tressaillement par sa durée, son amplitude et sa longueur.
buzz_config(durée, amplitude, longueur).buzz 0, 1, 2 Vous pouvez utilisé n'importer quelle méthode énoncée ci-dessus. Je vous invite à tester des valeur pour la configuration pour adapter vos tressaillement au milimètre près. Les valeurs par défaut sont buzz_config(16, 0.1, 16).
Chainage des tressaillement
Admettons que vous ayez créer votre tressaillement personnalisé, vous pouvez chainer les tressaillements. Par exemple :
Page officielle
Lieu ou sera mis le script à jours (si MAJ il y a)
https://github.com/nukiFW/RPGMaker/tree/master/Buzzer#vxace-tressailleur-d%C3%A9v%C3%A8nements-buzzer
Code complet
Refonte (et amélioration) d'un script réalisé par Fabien, de la Factory (R.I.P) pour RPG Maker XP. Premièrement réécrit par XHTMLBoy pour VX et réécrit par moi pour VXAce (avec beaucoup des options en plus). Il s'agit d'un outil pour faire vibrer les évènements comme dans Golden Sun.
Installation
Copiez le script dans votre éditeur de script Au dessus de Main, dans la rubrique Materials. Vous pouvez lui attribuer un emplacement réservé. Et le nommer comme vous l'entendez. Personnellement, j'ai choisi le nom Buzzer (original !).
Faire tressaillir des évènements
Il suffit d'appeller les commandes décrites ci dessous dans un appel de script et au moment où l'appel de script sera exécuté, le tressaillement aura lieu.
- buzz 1 : fera tressaillir l'évènement 1
- buzz 0 : fera tressaillir le héros
- buzz 1, 7, 2, 10, 0 fera tressaillir les évènements 1, 7, 2, 10 et le héros. (comme vous pouvez le voir, vous pouvez combiner les tressaillements).
- buzz_followers fera tressaillir tous les followers (dans la chenille)
- buzz_followers 0 ne fera tressaillir que le premier des followers
- buzz_followers 1, 2, 3 ne fera tressaillir que les followers de 1 à 3 (le premier étant le 0)
Paramétrer le tressaillement
Il est possible de paramétrer un tressaillement par sa durée, son amplitude et sa longueur.
buzz_config(durée, amplitude, longueur).buzz 0, 1, 2 Vous pouvez utilisé n'importer quelle méthode énoncée ci-dessus. Je vous invite à tester des valeur pour la configuration pour adapter vos tressaillement au milimètre près. Les valeurs par défaut sont buzz_config(16, 0.1, 16).
Chainage des tressaillement
Admettons que vous ayez créer votre tressaillement personnalisé, vous pouvez chainer les tressaillements. Par exemple :
- buzz_config(18, 0.1, 16).buzz_followers.buzz 0 pour faire tressaillir tous les followers et le héros de la même manère.
- ou encore buzz_config(18, 0.2, 160).buzz_followers.buzz 0, 1, 2, 3
Page officielle
Lieu ou sera mis le script à jours (si MAJ il y a)
https://github.com/nukiFW/RPGMaker/tree/master/Buzzer#vxace-tressailleur-d%C3%A9v%C3%A8nements-buzzer
Code complet
- Code:
# Buzzer à la Golden Sun
# Par Fabien, Nuki
#==============================================================================
# ** Buzzer_Prop
#------------------------------------------------------------------------------
# Renvoi les propriétés d'un buzzer
#==============================================================================
class Buzzer_Prop < Struct.new(:duration, :amplitude, :length)
#--------------------------------------------------------------------------
# * Applique un buzzer sur un event
#--------------------------------------------------------------------------
def apply_buzz(event)
event.buzz = self.duration
event.buzz_length = self.length
event.buzz_amplitude = self.amplitude
end
#--------------------------------------------------------------------------
# * Buzz event
#--------------------------------------------------------------------------
def buzz(*ids)
ids.each do |id|
event = (id == 0 ? $game_player : $game_map.events[id])
apply_buzz(event) if event
end
return self
end
#--------------------------------------------------------------------------
# * Buzz follower
#--------------------------------------------------------------------------
def buzz_followers(*ids)
return if !$game_player.followers.visible
if ids.length == 0
$game_player.followers.each{|flw|apply_buzz(flw)}
return self
end
ids.each do |id|
event = $game_player.followers[id]
apply_buzz(event) if event
end
return self
end
end
#==============================================================================
# ** Game_Interpreter
#------------------------------------------------------------------------------
# Ajout de l'API de tressaillement
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# * Constantes
#--------------------------------------------------------------------------
BUZZER_STD_PROPP = Buzzer_Prop.new(16, 0.1, 16)
#--------------------------------------------------------------------------
# * buzz
#--------------------------------------------------------------------------
def buzz(*ids)
BUZZER_STD_PROPP.buzz(*ids)
end
#--------------------------------------------------------------------------
# * buzz des followers
#--------------------------------------------------------------------------
def buzz_followers(*ids)
BUZZER_STD_PROPP.buzz_followers(*ids)
end
#--------------------------------------------------------------------------
# * buzz avec configuration
#--------------------------------------------------------------------------
def buzz_config(duration, amplitude, length)
Buzzer_Prop.new(duration, amplitude, length)
end
end
#==============================================================================
# ** Game_Character
#------------------------------------------------------------------------------
# Ajout des informations de tressaillement
#==============================================================================
class Game_Character
#--------------------------------------------------------------------------
# * Variables d'instances
#--------------------------------------------------------------------------
attr_accessor :buzz
attr_accessor :buzz_amplitude
attr_accessor :buzz_length
#--------------------------------------------------------------------------
# * Initialisation du Buzzer
#--------------------------------------------------------------------------
def setup_buzzer
@buzz = 0
@buzz_amplitude = 0.1
@buzz_length = 16
end
end
#==============================================================================
# ** Sprite_Character
#------------------------------------------------------------------------------
# Ajout de l'effet de tressaillement
#==============================================================================
class Sprite_Character
#--------------------------------------------------------------------------
# * Alias
#--------------------------------------------------------------------------
alias buzzer_initialize initialize
alias buzzer_update update
#--------------------------------------------------------------------------
# * Instanciation d'un caractère
#--------------------------------------------------------------------------
def initialize(*args)
buzzer_initialize(*args)
self.character.setup_buzzer if self.character
@old_buzz = 0
end
#--------------------------------------------------------------------------
# * Frame update
#--------------------------------------------------------------------------
def update
buzzer_update
update_buzz
end
#--------------------------------------------------------------------------
# * Update buzzer
#--------------------------------------------------------------------------
def update_buzz
return if !self.character.buzz || self.character.buzz == 0
if @old_buzz == 0
@origin_len_x = self.zoom_x
@origin_len_y = self.zoom_y
end
@old_buzz = self.character.buzz
len = self.character.buzz_length
transformation = Math.sin(@old_buzz*6.283/len)
transformation *= self.character.buzz_amplitude
self.zoom_x = @origin_len_x + transformation
self.zoom_y = @origin_len_y - transformation
self.character.buzz -= 1
if self.character.buzz == 0
self.zoom_x = @origin_len_x
self.zoom_y = @origin_len_y
@old_buzz = 0
end
end
end
Re: Tressaillement à la Golden Sun
Lun 14 Avr 2014 - 13:16
Un script qui m'a fait tressaillir.
Juste un conseil : utilisez le.
Juste un conseil : utilisez le.
- SpytjeAdministrateur
- Nombre de messages : 5935
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008
Re: Tressaillement à la Golden Sun
Lun 14 Avr 2014 - 13:20
Merci pour ce script et ton partage, je te donne 3 points de participations pour le travail fournis sur celui-ci et tes autres scripts.
...
_________________
- EekounMembre
- Nombre de messages : 86
Distinction : aucune
Date d'inscription : 06/03/2014
Re: Tressaillement à la Golden Sun
Lun 14 Avr 2014 - 14:25
J'en suis tout émoustillé :/
Une petite capture d'écran
Mini exemple (le FPS pue un peu mais bon)
Une petite capture d'écran
Mini exemple (le FPS pue un peu mais bon)
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum