- 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
[VXAce] Outrepasser la résolution par défaut
Jeu 30 Jan 2014 - 0:47
Salut à tous, je post ici un script que spywaretof a trouvé et qui permet de changer la résolution de votre projet.
Auteurs : Un Inconnu, Lantier, Esrever, Jet
Version du script : V 1.0
Principe du script : C'est un script qui permet de dépasser les limitations imposer par RPG Maker sur la résolution. Du coup vous pourrez faire des jeux en 720 ou 1080p par exemple.
Attention !!! Vous devrez redimensionner vos images (backgroud, transition, etc....) et les petites maps seront centré au milieu de l'écran.
Contenu :
Utilisation: A placer au dessus de tous vos autres scripts. Pour changer la résolution modifier le Graphics.resize_screen(1600, 900) qui se trouve tout en bas du script.
Lien d'origine : http://himeworks.wordpress.com/2013/10/25/unlimited-resolution/#more-1993
Auteurs : Un Inconnu, Lantier, Esrever, Jet
Version du script : V 1.0
Principe du script : C'est un script qui permet de dépasser les limitations imposer par RPG Maker sur la résolution. Du coup vous pourrez faire des jeux en 720 ou 1080p par exemple.
Attention !!! Vous devrez redimensionner vos images (backgroud, transition, etc....) et les petites maps seront centré au milieu de l'écran.
Contenu :
- Spoiler:
- Code:
=begin
#===============================================================================
Title: Unlimited Resolution
Date: Oct 24, 2013
--------------------------------------------------------------------------------
** Change log
Nov 6, 2013
- added some plane modifications to fix parallax images
Oct 24, 2013
- Initial release
--------------------------------------------------------------------------------
** Terms of Use
* Free
--------------------------------------------------------------------------------
** Description
This script modifies Graphics.resize_screen to overcome the 640x480 limitation.
It also includes some code to properly display maps that are smaller than the
screen size.
Now you can have arbitrarily large game resolutions.
--------------------------------------------------------------------------------
** Installation
You should place this script above all custom scripts
--------------------------------------------------------------------------------
** Usage
As usual, simply resize your screen using the script call
Graphics.resize_screen(width, height)
--------------------------------------------------------------------------------
** Credits
Unknown author for overcoming the 640x480 limitation
Lantier, from RMW forums for posting the snippet above
Esrever for handling the viewport
Jet, for the custom Graphics code
#===============================================================================
=end
$imported = {} if $imported.nil?
$imported["TH_UnlimitedResolution"] = true
#===============================================================================
# ** Configuration
#===============================================================================
class << SceneManager
alias resolution_run run
def run(*args, &block)
Graphics.ensure_sprite
resolution_run(*args, &block)
end
end
module Graphics
@@super_sprite = Sprite.new
@@super_sprite.z = (2 ** (0.size * 8 - 2) - 1)
class << self
alias :th_large_screen_resize_screen :resize_screen
def freeze(*args, &block)
@@super_sprite.bitmap = snap_to_bitmap
end
def transition(time = 10, filename = nil, vague = nil)
if filename
@@super_sprite.bitmap = Bitmap.new(filename)
end
@@super_sprite.opacity = 255
incs = 255.0 / time
time.times do |i|
@@super_sprite.opacity = 255.0 - incs * i
Graphics.wait(1)
end
@@super_sprite.bitmap.dispose if @@super_sprite.bitmap
reform_sprite_bitmap
Graphics.brightness = 255
end
def reform_sprite_bitmap
@@super_sprite.bitmap = Bitmap.new(Graphics.width, Graphics.height)
@@super_sprite.bitmap.fill_rect(@@super_sprite.bitmap.rect, Color.new(0, 0, 0, 255))
end
def fadeout(frames)
incs = 255.0 / frames
frames.times do |i|
i += 1
Graphics.brightness = 255 - incs * i
Graphics.wait(1)
end
end
def fadein(frames)
incs = 255.0 / frames
frames.times do |i|
Graphics.brightness = incs * i
Graphics.wait(1)
end
end
def brightness=(i)
@@super_sprite.opacity = 255.0 - i
end
def brightness
255 - @@super_sprite.opacity
end
def ensure_sprite
if @@super_sprite.disposed?
@@super_sprite = Sprite.new
@@super_sprite.z = (2 ** (0.size * 8 - 2) - 1)
reform_sprite_bitmap
end
end
end
#-----------------------------------------------------------------------------
# Unknown Scripter. Copied from http://pastebin.com/sM2MNJZj
#-----------------------------------------------------------------------------
def self.resize_screen(width, height)
wt, ht = width.divmod(32), height.divmod(32)
#wt.last + ht.last == 0 || fail('Incorrect width or height')
wh = -> w, h, off = 0 { [w + off, h + off].pack('l2').scan /.{4}/ }
w, h = wh.(width, height)
ww, hh = wh.(width, height, 32)
www, hhh = wh.(wt.first.succ, ht.first.succ)
base = 0x10000000 # fixed?
mod = -> adr, val { DL::CPtr.new(base + adr)[0, val.size] = val }
mod.(0x195F, "\x90" * 5) # ???
mod.(0x19A4, h)
mod.(0x19A9, w)
mod.(0x1A56, h)
mod.(0x1A5B, w)
mod.(0x20F6, w)
mod.(0x20FF, w)
mod.(0x2106, h)
mod.(0x210F, h)
# speed up y?
#mod.(0x1C5E3, h)
#mod.(0x1C5E8, w)
zero = [0].pack ?l
mod.(0x1C5E3, zero)
mod.(0x1C5E8, zero)
mod.(0x1F477, h)
mod.(0x1F47C, w)
mod.(0x211FF, hh)
mod.(0x21204, ww)
mod.(0x21D7D, hhh[0])
mod.(0x21E01, www[0])
mod.(0x10DEA8, h)
mod.(0x10DEAD, w)
mod.(0x10DEDF, h)
mod.(0x10DEF0, w)
mod.(0x10DF14, h)
mod.(0x10DF18, w)
mod.(0x10DF48, h)
mod.(0x10DF4C, w)
mod.(0x10E6A7, w)
mod.(0x10E6C3, h)
mod.(0x10EEA9, w)
mod.(0x10EEB9, h)
th_large_screen_resize_screen(width, height)
end
end
#===============================================================================
# Esrever's code from
# http://www.rpgmakervxace.net/topic/100-any-chance-of-higher-resolution-or-larger-sprite-support/page-2#entry7997
#===============================================================================
class Game_Map
#--------------------------------------------------------------------------
# overwrite method: scroll_down
#--------------------------------------------------------------------------
def scroll_down(distance)
if loop_vertical?
@display_y += distance
@display_y %= @map.height * 256
@parallax_y += distance
else
last_y = @display_y
dh = Graphics.height > height * 32 ? height : screen_tile_y
@display_y = [@display_y + distance, height - dh].min
@parallax_y += @display_y - last_y
end
end
#--------------------------------------------------------------------------
# overwrite method: scroll_right
#--------------------------------------------------------------------------
def scroll_right(distance)
if loop_horizontal?
@display_x += distance
@display_x %= @map.width * 256
@parallax_x += distance
else
last_x = @display_x
dw = Graphics.width > width * 32 ? width : screen_tile_x
@display_x = [@display_x + distance, width - dw].min
@parallax_x += @display_x - last_x
end
end
end # Game_Map
#==============================================================================
# ■ Spriteset_Map
#==============================================================================
class Spriteset_Map
#--------------------------------------------------------------------------
# overwrite method: create_viewports
#--------------------------------------------------------------------------
def create_viewports
if Graphics.width > $game_map.width * 32 && !$game_map.loop_horizontal?
dx = (Graphics.width - $game_map.width * 32) / 2
else
dx = 0
end
dw = [Graphics.width, $game_map.width * 32].min
dw = Graphics.width if $game_map.loop_horizontal?
if Graphics.height > $game_map.height * 32 && !$game_map.loop_vertical?
dy = (Graphics.height - $game_map.height * 32) / 2
else
dy = 0
end
dh = [Graphics.height, $game_map.height * 32].min
dh = Graphics.height if $game_map.loop_vertical?
@viewport1 = Viewport.new(dx, dy, dw, dh)
@viewport2 = Viewport.new(dx, dy, dw, dh)
@viewport3 = Viewport.new(dx, dy, dw, dh)
@viewport2.z = 50
@viewport3.z = 100
end
#--------------------------------------------------------------------------
# new method: update_viewport_sizes
#--------------------------------------------------------------------------
def update_viewport_sizes
if Graphics.width > $game_map.width * 32 && !$game_map.loop_horizontal?
dx = (Graphics.width - $game_map.width * 32) / 2
else
dx = 0
end
dw = [Graphics.width, $game_map.width * 32].min
dw = Graphics.width if $game_map.loop_horizontal?
if Graphics.height > $game_map.height * 32 && !$game_map.loop_vertical?
dy = (Graphics.height - $game_map.height * 32) / 2
else
dy = 0
end
dh = [Graphics.height, $game_map.height * 32].min
dh = Graphics.height if $game_map.loop_vertical?
rect = Rect.new(dx, dy, dw, dh)
for viewport in [@viewport1, @viewport2, @viewport3]
viewport.rect = rect
end
end
end # Spriteset_Map
#-------------------------------------------------------------------------------
# FenixFyre's custom Plane, simply drawing a sprite. Needs to do something about
# the y-axis
#-------------------------------------------------------------------------------
class Plane
attr_reader :ox, :oy
alias :th_unlimited_resolution_initialize :initialize
def initialize(viewport = nil)
th_unlimited_resolution_initialize(viewport)
@sprite = Sprite.new(viewport)
@bitmap = nil
@ox = 0
@oy = 0
end
def method_missing(symbol, *args)
@sprite.method(symbol).call(*args)
end
def bitmap=(bitmap)
@bitmap = bitmap
refresh
end
def bitmap
@sprite.bitmap
end
def ox=(ox)
w = @sprite.viewport != nil ? @sprite.viewport.rect.width : Graphics.width
@ox = ox % w
@sprite.ox = @ox
end
def oy=(oy)
h = @sprite.viewport != nil ? @sprite.viewport.rect.height : Graphics.height
@oy = oy % h
@sprite.oy = @oy
end
def refresh
return if @bitmap.nil?
w = @sprite.viewport != nil ? @sprite.viewport.rect.width : Graphics.width
h = @sprite.viewport != nil ? @sprite.viewport.rect.height : Graphics.height
if @sprite.bitmap != nil
@sprite.bitmap.dispose
end
@sprite.bitmap = Bitmap.new(w * 2, h * 2)
max_x = w / @bitmap.width
max_y = h / @bitmap.height
for x in 0..max_x
for y in 0..max_y
@sprite.bitmap.blt(x * @bitmap.width, y * @bitmap.height,
@bitmap, Rect.new(0, 0, @bitmap.width, @bitmap.height))
end
end
for i in 1...4
x = i % 2 * w
y = i / 2 * h
@sprite.bitmap.blt(x, y, @sprite.bitmap, Rect.new(0, 0, w, h))
end
end
end
#==============================================================================
# ■ Scene_Map
#==============================================================================
class Scene_Map < Scene_Base
#--------------------------------------------------------------------------
# alias method: post_transfer
#--------------------------------------------------------------------------
alias scene_map_post_transfer_ace post_transfer
def post_transfer
@spriteset.update_viewport_sizes
scene_map_post_transfer_ace
end
end # Scene_Map
#==============================================================================
# ** SceneManager
#------------------------------------------------------------------------------
# This module manages scene transitions. For example, it can handle
# hierarchical structures such as calling the item screen from the main menu
# or returning from the item screen to the main menu.
#==============================================================================
module SceneManager
class << self
#--------------------------------------------------------------------------
# * Execute
#--------------------------------------------------------------------------
alias :th_unlimited_resolution_sm_run :run
def run
Graphics.resize_screen(1600, 900)
th_unlimited_resolution_sm_run
end
end
end
Utilisation: A placer au dessus de tous vos autres scripts. Pour changer la résolution modifier le Graphics.resize_screen(1600, 900) qui se trouve tout en bas du script.
Lien d'origine : http://himeworks.wordpress.com/2013/10/25/unlimited-resolution/#more-1993
- KorndorStaffeux retraité
- Nombre de messages : 4959
Age : 111
Localisation : Erem Vehyx
Distinction : Champion de boxe et au lit ! :O [Wax]
Être Mythique [Mister]
Papi Korndor qui a l'ostéoporose [Skillo]
Soldat Ikéa [Coco']
Un bonhomme, un vrai ! [Neresis]
Vieillard acariâtre [Didier Gustin]
Date d'inscription : 16/12/2007
Re: [VXAce] Outrepasser la résolution par défaut
Jeu 30 Jan 2014 - 1:26
Skillo, je t'aime.
Ca a l'air énorme !
Je teste ca demain !
Ca a l'air énorme !
Je teste ca demain !
- 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: [VXAce] Outrepasser la résolution par défaut
Jeu 30 Jan 2014 - 18:30
C'est marrant après avoir trouvé ce scritp il y a un petit moment j'ai réussis à le faire fonctionner et maintenant même dans un projet vierge il ne fonctionne plus, dès que je lance la ligne de code pour modifier la résolution j'ai un crash de l'application...
_________________
- 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: [VXAce] Outrepasser la résolution par défaut
Jeu 30 Jan 2014 - 19:22
La ligne est déjà présente dans le script, je l'ai ajouté à la fin. Essayes juste en c/c le script.
- 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: [VXAce] Outrepasser la résolution par défaut
Jeu 30 Jan 2014 - 19:26
- 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: [VXAce] Outrepasser la résolution par défaut
Jeu 30 Jan 2014 - 19:48
Chelou, essaye de lancer RM en admin.
- 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: [VXAce] Outrepasser la résolution par défaut
Jeu 30 Jan 2014 - 20:31
Non marche pas non plus par contre quand je lance le projet directement sans passé par l'éditeur j'ai un message qui me dit "stack level too deep"
_________________
- vincent26Membre
- Nombre de messages : 766
Age : 29
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [VXAce] Outrepasser la résolution par défaut
Jeu 30 Jan 2014 - 22:55
cela veut dire qu'une fonction est appeler tellement de fois sans avoir le temp de ce terminer que sa surcharge ta mémoire
cela peut-être dû a une boucle infini (du style tu a une fonction qui ce rappel elle même)
chez moi le script marche parfaitement
cela peut-être dû a une boucle infini (du style tu a une fonction qui ce rappel elle même)
chez moi le script marche parfaitement
- 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: [VXAce] Outrepasser la résolution par défaut
Jeu 30 Jan 2014 - 23:15
Très bizarre je viens de re test sur un autre projet vierge et il fonctionne bien quand je le lance depuis le "exe" du jeu mais pas depuis l'éditeur oO
Depuis l'éditeur pas de message d'erreur mais un crash de l'éditeur.
Depuis l'éditeur pas de message d'erreur mais un crash de l'éditeur.
_________________
- 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: [VXAce] Outrepasser la résolution par défaut
Jeu 30 Jan 2014 - 23:43
ça peut venir de ta traduction de RM, de ce que j'ai compris le script interragis d'une manière ou d'une autre avec le RGSS301.dll
- 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: [VXAce] Outrepasser la résolution par défaut
Jeu 30 Jan 2014 - 23:49
J'ai la version officiel avec la dll "rgss301" fournie avec.
Enfin bref je vais continuer mes recherches
Enfin bref je vais continuer mes recherches
_________________
Re: [VXAce] Outrepasser la résolution par défaut
Dim 9 Fév 2014 - 12:13
Le script fonctionne mais il a tendance a faire déconner d'autre script au niveau de la position du personnage.
Re: [VXAce] Outrepasser la résolution par défaut
Jeu 17 Avr 2014 - 18:40
Up du topic car on a survolé le sujet avec Spywaretof !
Si vous n'êtes pas inspiré pour trouver une résolution, voici quelques exemples qui correspondent à une proportion classique ! (largeur = "format classique"*hauteur)
Formats proches du 4/3 :
24*18 => 768*576
25*19 => 800*608
27*20 => 864*640
28*21 => 896*672
29*22 => 928*704
31*23 => 992*736
32*24 => 1024*768
Formats proches du 5/3 :
27*16 => 864*512
28*17 => 896*544
30*18 => 960*576
32*19 => 1024*608
33*20 => 1056*640
Formats proches du 16/9 :
30*16 => 960*512
31*17 => 992*544
32*18 => 1024*576
34*19 => 1088*608
Formats proches du nombre d'or, pour se la péter en mode "proportions divines" :
26*16 => 832*512
29*18 => 928*576
31*19 => 992*608
34*21 => 1088*672
Illustration des proportions selon les formats :
Formats 4/3, 5/3, 16/9 que l'on retrouve pour les écrans :
Nombre d'or qui fait fabuler l'ordre esthétique naturel du monde :
Pour trouver vous-même des dimensions d'écran qui tombent juste avec les tiles 32*32 de RM, vous l'avez deviné, vous prenez des multiples de 32.
Si vous n'êtes pas inspiré pour trouver une résolution, voici quelques exemples qui correspondent à une proportion classique ! (largeur = "format classique"*hauteur)
Formats proches du 4/3 :
24*18 => 768*576
25*19 => 800*608
27*20 => 864*640
28*21 => 896*672
29*22 => 928*704
31*23 => 992*736
32*24 => 1024*768
Formats proches du 5/3 :
27*16 => 864*512
28*17 => 896*544
30*18 => 960*576
32*19 => 1024*608
33*20 => 1056*640
Formats proches du 16/9 :
30*16 => 960*512
31*17 => 992*544
32*18 => 1024*576
34*19 => 1088*608
Formats proches du nombre d'or, pour se la péter en mode "proportions divines" :
26*16 => 832*512
29*18 => 928*576
31*19 => 992*608
34*21 => 1088*672
Illustration des proportions selon les formats :
Formats 4/3, 5/3, 16/9 que l'on retrouve pour les écrans :
Nombre d'or qui fait fabuler l'ordre esthétique naturel du monde :
Pour trouver vous-même des dimensions d'écran qui tombent juste avec les tiles 32*32 de RM, vous l'avez deviné, vous prenez des multiples de 32.
- 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: [VXAce] Outrepasser la résolution par défaut
Jeu 17 Avr 2014 - 19:34
30*16 => 960*512
Cette résolution est pas mal aussi, elle prend bien la taille de l'écran et supprime les deux bandes noires sur les cotés.
Cette résolution est pas mal aussi, elle prend bien la taille de l'écran et supprime les deux bandes noires sur les cotés.
_________________
Re: [VXAce] Outrepasser la résolution par défaut
Jeu 17 Avr 2014 - 20:56
C'est la première résolution que j'ai donné dans les 16/9 eme. ^^ Mais je n'ai pas compris ce que tu veux dire par "prend bien la taille de l'écran et supprime les deux bandes noires", tu parle du plein écran ?
Comme la plupart des écrans sont en 16/9 eme en effet, si on veut un bon "plein écran" il vaut mieux piocher dans la liste des 16/9e ^^
Comme la plupart des écrans sont en 16/9 eme en effet, si on veut un bon "plein écran" il vaut mieux piocher dans la liste des 16/9e ^^
- 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: [VXAce] Outrepasser la résolution par défaut
Jeu 17 Avr 2014 - 21:44
Oui je parlais du fait que la grande majorité des écrans sont en 16/9 du coup le 800*600 fait deux bandes noires sur les cotés.
_________________
Re: [VXAce] Outrepasser la résolution par défaut
Ven 18 Avr 2014 - 10:15
Il y a des problèmes de compatibilité connus à ce jour ?
- 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: [VXAce] Outrepasser la résolution par défaut
Sam 19 Avr 2014 - 10:04
Y a énormément de modif à faire mais ça fonctionne bien de mon coté pour le moment.
_________________
Re: [VXAce] Outrepasser la résolution par défaut
Sam 19 Avr 2014 - 14:21
Quels genres de modif ? Il faut redimensionner les images et les fenêtres des scripts, mais il y a autre chose ?
- 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: [VXAce] Outrepasser la résolution par défaut
Sam 19 Avr 2014 - 14:29
Les images ainsi que tous les scripts qui affichent des fenêtre .
_________________
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum