Va-nu-pieds Lv.4
Age : 30 Inscrit le : 23/07/2008 Messages : 56
| Sujet: [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 . PS : Je pense qu'il est possible d'augmenter ou de diminuer le dynamisme en modifiant les lignes 19, 20, 22 et 23. Voilà |
|
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
| Sujet: 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 ! |
|
Aventurier Lv.16
Age : 40 Inscrit le : 03/09/2009 Messages : 1503
| Sujet: 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. |
|
Va-nu-pieds Lv.4
Age : 30 Inscrit le : 23/07/2008 Messages : 56
| Sujet: 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 . |
|
| Sujet: Re: [VX] Effet de Camera Dynamique | |
| |
|