AccueilAccueil  PortailPortail  FAQFAQ  RechercherRechercher  MembresMembres  GroupesGroupes  S'enregistrerS'enregistrer  ConnexionConnexion  




Partagez | 
 

 [VX] Effet de Camera Dynamique

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Va-nu-pieds Lv.4
Va-nu-pieds Lv.4
avatar


Masculin Age : 23
Inscrit le : 23/07/2008
Messages : 56

MessageSujet: [VX] Effet de Camera Dynamique   Lun 6 Déc 2010 - 18:05

Alors voilà, un ami japonais m'a donné il y'a un bout de temps quelques scripts de chez eux, s'avérant très utile. À la base je souhaitais pas les partager sur le net mais quand j'y pense, ce forum m'as beaucoup aidé donc j'aurais été ignoble de garder celà pour moi.

Commencons avec le premier Script, il s'agit de donner un effet dynamique à la camera suivant le héros lorsque il marche la camera n'est pas strictement fixe comme elle l'est à la base dans RPG Maker. Vous comprendrez mieux après l'avoir essayé x).

Auteur : Hueto Kyiaraku de Chrafter Production (japon)

Incompatibilité : Aucune de découverte jusqu'à présent, le GTBS fonctionne avec ce script (super effet), même le gameplay à la souris de berka.

Code:
#==============================================================================
#
# ・スクロールを遅延させて滑らかにします。
# [仕様]マップループが有効の場合、遅延スクロールは無効になります。
#
#------------------------------------------------------------------------------
#
# 更新履歴
# ◇0.9p→1.0
# スクロールが微妙にずれる不具合を修正
#
#==============================================================================
# ■ Game_Map
#==============================================================================
class Game_Map
  # スクロールスピード 大きいほど遅くなります
  SPEED_X = 10
  SPEED_Y = 8
  # 解像度 W = 横マス H = 縦マス
  DISPLAY_W = 17
  DISPLAY_H = 13
  #--------------------------------------------------------------------------
  # ★ スクロール計算
  #--------------------------------------------------------------------------
  def display_move(n, m, speed)
    a = (n * (speed - 1) + m) / speed
    a -= 1 if n > m ; a += 1 if n < m
    return a
  end
  #--------------------------------------------------------------------------
  # ★ エイリアス
  #--------------------------------------------------------------------------
  alias initialize_str00 initialize
  def initialize
    initialize_str00
    @display_sx = 0
    @display_sy = 0
    @parallax_ssx = 0
    @parallax_ssy = 0
  end
  alias setup_str00 setup
  def setup(map_id)
    setup_str00(map_id)
    @display_sx = 0
    @display_sy = 0
    @parallax_ssx = 0
    @parallax_ssy = 0
  end
  alias update_scroll_str00 update_scroll
  def update_scroll
    @display_x = display_move(@display_x, @display_sx, SPEED_X)
    @display_y = display_move(@display_y, @display_sy, SPEED_Y)
    r = (@parallax_loop_x)
    @parallax_x = display_move(@parallax_x, @parallax_ssx, SPEED_X) unless r
    r = (@parallax_loop_y)
    @parallax_y = display_move(@parallax_y, @parallax_ssy, SPEED_Y) unless r
    update_scroll_str00
  end
  #--------------------------------------------------------------------------
  # ★ 再定義
  #--------------------------------------------------------------------------
  def set_display_pos(x, y)
    @display_sx = (x + @map.width * 256) % (@map.width * 256)
    @display_sy = (y + @map.height * 256) % (@map.height * 256)
    @display_x = @display_sx
    @display_y = @display_sy
    @parallax_ssx = x
    @parallax_ssy = y
    @parallax_x = x
    @parallax_y = y
  end
  def scroll_down(distance)
    if loop_vertical?
      @display_sy += distance
      @display_sy %= @map.height * 256
      @parallax_ssy += distance
      @display_y = @display_sy
    else
      last_y = @display_sy
      @display_sy = [@display_sy + distance, (height - DISPLAY_H) * 256].min
      @display_y = display_move(@display_y, @display_sy, SPEED_Y)
      unless @parallax_loop_y
        @parallax_ssy += @display_sy - last_y
        @parallax_y = display_move(@parallax_y, @parallax_ssy, SPEED_Y)
      end
    end
  end
  def scroll_left(distance)
    if loop_horizontal?
      @display_sx += @map.width * 256 - distance
      @display_sx %= @map.width * 256
      @parallax_ssx -= distance
      @display_x = @display_sx
    else
      last_x = @display_sx
      @display_sx = [@display_sx - distance, 0].max
      @display_x = display_move(@display_x, @display_sx, SPEED_X)
      unless @parallax_loop_x
        @parallax_ssx += @display_sx - last_x
        @parallax_x = display_move(@parallax_x, @parallax_ssx, SPEED_X)
      end
    end
  end
  def scroll_right(distance)
    if loop_horizontal?
      @display_sx += distance
      @display_sx %= @map.width * 256
      @parallax_ssx += distance
      @display_x = @display_sx
    else
      last_x = @display_sx
      @display_sx = [@display_sx + distance, (width - DISPLAY_W) * 256].min
      @display_x = display_move(@display_x, @display_sx, SPEED_X)
      unless @parallax_loop_x
        @parallax_ssx += @display_sx - last_x
        @parallax_x = display_move(@parallax_x, @parallax_ssx, SPEED_X)
      end
    end
  end
  def scroll_up(distance)
    if loop_vertical?
      @display_sy += @map.height * 256 - distance
      @display_sy %= @map.height * 256
      @parallax_ssy -= distance
      @display_y = @display_sy
    else
      last_y = @display_sy
      @display_sy = [@display_sy - distance, 0].max
      @display_y = display_move(@display_y, @display_sy, SPEED_Y)
      unless @parallax_loop_y
        @parallax_ssy += @display_sy - last_y
        @parallax_y = display_move(@parallax_y, @parallax_ssy, SPEED_Y)
      end
    end
  end
end

Si vous avez des questions n'hésitez pas Wink.

PS : Je pense qu'il est possible d'augmenter ou de diminuer le dynamisme en modifiant les lignes 19, 20, 22 et 23.

Voilà Smile

_________________

Projet en Cours : HOT STEEL CHRONICLES ~ Vermillion Blood
HOT STEEL CHRONICLES
Vermillion Blood
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Maître des Duels
Maître des Duels
avatar


Masculin Age : 25
Inscrit le : 29/07/2009
Messages : 7838

MessageSujet: Re: [VX] Effet de Camera Dynamique   Lun 6 Déc 2010 - 18:14

Ca m'a l'air sympa, je testerais quand j'aurais le temps.

Merci du partage !

_________________
Gimme a hell yeah.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Aventurier Lv.16
Aventurier Lv.16
avatar


Age : 33
Inscrit le : 03/09/2009
Messages : 1503

MessageSujet: Re: [VX] Effet de Camera Dynamique   Jeu 9 Déc 2010 - 16:15

J'ai testé et je trouve qu'il n'y a pas énormément de différence, j'ai même lancé deux démo un avec le script et l'autre sans et j'ai pas trouvé que ça changé. ^^
Après j'utilise énormément de script, peut être qu'il faut le placer à un endroit précis.
Enfin, merci du partage.

_________________
Clique sur ma signature


Je soutiens. =)
Spoiler:
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Va-nu-pieds Lv.4
Va-nu-pieds Lv.4
avatar


Masculin Age : 23
Inscrit le : 23/07/2008
Messages : 56

MessageSujet: Re: [VX] Effet de Camera Dynamique   Sam 11 Déc 2010 - 0:42

Comme je l'ai dit dans la description,
Si la différence de base ne te suffit pas, tu peux changer cela avec
SPEED_X = 10
SPEED_Y = 8

DISPLAY_W = 17
DISPLAY_H = 13

En changeant ces nombres (essai en augmentant les valeurs) tu peux accentuer le
dynamisme Smile.

_________________

Projet en Cours : HOT STEEL CHRONICLES ~ Vermillion Blood
HOT STEEL CHRONICLES
Vermillion Blood
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: [VX] Effet de Camera Dynamique   

Revenir en haut Aller en bas
 

[VX] Effet de Camera Dynamique

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» aide pour un effet sur image !
» Caméra qui enregistre avec 20 diaphs de latitude
» [RESOLU] Bouton dynamique
» Touché dynamique et expression
» Dim dynamique (suite)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Scripts :: Scripts VX - RGSS2 :: Divers-
Créer un forum | © phpBB | Forum gratuit d'entraide | Signaler un abus | Forum gratuit