Goplaygo
-
Posts
95 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by Goplaygo
-
-
ecco fatto ci sono riuscito! il problema era sulla risoluzione del video (prendete un file avi per una risoluzione 640x480) funziona perfettamente tutto! tranne il fatto di poter mettere il gioco a schermo intero, ma poco importa!
-
no no, non ho detto che sia inutile per quel motivo, ma sarò io a lavorar al video e ho i programmi professionali (di cui ho le conoscenze) per lavorarci, se mi dici di mettere un immagine sopra un altra, verrebbe sballata, io ti parlo di un video Anime, senza difetti, c'è la lavorazione di molte cose dietro non è solo metti immagine 1, metti immagine 2 e così via... quindi è vero che non sono un programmatore ma così tu insulti la mia persona senza conoscere le mie capacità..
-
non mi piace molto, xk nn potrei lavorarci come si deve e sopratt non potrei saltarlo :( e ritorneremo al problema iniziale
-
si e si, ora non c'è l'ho quindi sto usando dei video di prova, ma quando lo script sarà perfettamente ok, metterò tutti video creati da me (o meglio del mio staff) in stile anime.. per questo è importante che funzioni tutto fino ai minimi dettagli... e un altra cosa.. quando metto a schermo intero.. mi dà un errore dello script.. invece qnd lo metto a finestra mi funziona tutto..(per funziona tutto intendo che si avvia non che si sia risolto quel problema di prima..) perché?
-
su rpgmaker ovviamente, funziona perfettamente fuori il programma, quindi quale potrebbe essere il problema?
-
l'ho sistemato, era il programma, vlc nn lo supportava, ora funge ma non si sente l'audio o.O di qualsiasi video che metto o.O o meglio.. ho due video per provare, nel primo video ogv (dura 3/4 sec) si vede la prima immagine dopo i 3/4 sec si toglie ma nn si sente l'audio, nel secondo .avi rimane a schermo nero e non si sente l'audio..nn ho provato a vedere se è come nel primo caso che dopo i tot di secondi si toglie ma penso di si.. cmq.. come si può risolvere?
-
-
#============================================================================== # # [ACE]EST_SOV_Video_Player ++ Conversion # # v1.4 #============================================================================== # Author : Estriole # (Conversion to ace and improving) # VX version author: SuperOverlord # # also credit Crystal Noel for solution for title that have encoding problem character # also credit ruin for fixes he made to this script. # # History : # version 1.4 2013.05.16 - apply fixes from ruin. typo error and ability to use # play video using battle event page. # version 1.3 2013.03.05 - create configuration for people that have encoding character # problem with their title. ex: Pokémon Ace. # set the IGNORE_TITLE to true inside module Sov::Video # version 1.2 2012.09.27 - made if game at fullscreen automaticly become windowed # version 1.1 2012.09.25 - some bug fix. now avi video can played at full screen mode(alt enter) with some position error. # - can play other format such as mkv but it will play full screen and when played at full screen # mode (alt enter) the size will be smaller and the game switched. # - basicly this script not support full screen game yet. will try to fix this in next version # version 1.0 2012.09.23 - finish converting + some change # # #============================================================================== # Features: #------------------------------------------------------------------------------ # o Play video's on the map or in battle using a simple script event command. # # o Optionally pause or exit video's while they play. # # o View the video in the game window or in fullscreen. # # o Setup video skills, which show the video before damage effects. # # o ACE version also made not only video skill but can use video item too # # o ACE version also can play video before title scene # #============================================================================== # Instructions: #------------------------------------------------------------------------------ # o Place all videos in a folder with the same name as in configuration. # This folder is created automatically the first time the game is played if # it doesn't already exist. # # o Playing Videos when on the map. # # - See script calls below. # # o Playing videos in battle. # # - As when on the map the script event command can be used in battle also. # # - As well as this you can setup skills as video skills which display # a video before damaging the enemy. # # <now below setup can be also used for item video too> # To do this the following tags can be used in the skills notebox: # 1) <video_name = "filename"> # ~ name is the name of the video file. If the filename extension is # missing the first file matching that name is used. # (Quotes are necessary around the filename) # # As well as the first tag 2 others are available. These tags will only # take effect if placed on a line below the first tag. # If these don't exist they are assumed true. # # 2) <video_exitable = n> ~ Can the video be exited by the exit input? # 3) <video_pausable = n> ~ Can the video be paused? # ~ n is replaced with either t or f (t : true, f : false) # # For other Video properties (x,y,width,height,fullscreen) the default # settings are used. (See script calls below) # # o Playing videos before title screen # ctrl + f this : CONFIGURATION FOR VIDEO BEFORE TITLE # and change the # @video_title = nil # to # @video_title = "yourvideonamewithoutextensionhere" # #============================================================================== # Script Calls: #------------------------------------------------------------------------------ # Commands (From the script call command on page three of event commands) #------------------------------------------------------------------------------ # o To change default values for video properties. # # 1) Video.default_x = n # 2) Video.default_y = n # 3) Video.default_width = n # 4) Video.default_height = n # 5) Video.fullscreen = bool #disabled now since could make error # # In all 5 commands above: # ~ n is an integer value # ~ bool is either true or false # # o To play videos # # play_video(filename,exitable,pausable) # ~ filename : name of video file (Must be in quotes) # ~ exitable : Can the video be exited? (When left out = true) # ~ pausable : Can the video be paused? (When left out = true) # # For all other values the default's are used. #============================================================================== # Compatibility: #------------------------------------------------------------------------------ # o Skill videos will depend on the battle system but sould work. #============================================================================== # Credit: #------------------------------------------------------------------------------ # o Credit goes to Trebor and Berka whose scripts helped be figure out the # mci_send_stringA function. #============================================================================== module SOV module Video #-------------------------------------------------------------------------- # Configuration #-------------------------------------------------------------------------- # Name of folder for videos to be held in. DIR_NAME = "Graphics/Videos" # Exit video input EXIT_INPUT = Input::B # Pause video input PAUSE_INPUT = Input::C IGNORE_TITLE = true #set to true if your title contain strange character such as é or other. #-------------------------------------------------------------------------- # End Configuration #-------------------------------------------------------------------------- end end module SceneManager ################ CONFIGURATION FOR VIDEO BEFORE TITLE ####################### @video_title = "Movie" # "example" # FILENAME OF THE VIDEO IN VIDEO FOLDER IN QUOTES #IF YOU DON'T WANT TO USE THIS FEATURE JUST CHANGE TO NIL ################ END CONFIGURATION ########################################## def self.run DataManager.init Audio.setup_midi if use_midi? if @video_title != nil video = Cache.video(@video_title) video.exitable = true # True/False video.pausable = true # True/False Video.play(video) end @scene = first_scene_class.new @scene.main while @scene end end class << Graphics def Graphics.fullscreen? # Property screen_size = Win32API.new('user32', 'GetSystemMetrics', 'I', 'I') screen_width = screen_size.call(0); screen_height = screen_size.call(1) detect_fullscreen = false detect_fullscreen = true if screen_width == 640 and screen_height == 480 return detect_fullscreen end def Graphics.toggle_fullscreen # Main function keybd = Win32API.new 'user32.dll', 'keybd_event', ['i', 'i', 'l', 'l'], 'v' keybd.call(0xA4, 0, 0, 0) keybd.call(13, 0, 0, 0) keybd.call(13, 0, 2, 0) keybd.call(0xA4, 0, 2, 0) end end #============================================================================== # Import #------------------------------------------------------------------------------ $imported = {} if $imported == nil $imported['Videos'] = true #============================================================================== #============================================================================== # ** SOV::Video::Commands #============================================================================== module SOV::Video::Commands #-------------------------------------------------------------------------- # * Play a video # filename : video's filename (with or without extension) # exitable : Can the video be exited # pausable : Can the video be paused #-------------------------------------------------------------------------- def play_video(filename,exitable=true,pausable=true) video = Cache.video(filename) video.exitable = exitable video.pausable = pausable $game_map.video = video end #--------------------------------------------------------------------------- # Define as module function #--------------------------------------------------------------------------- module_function :play_video end #============================================================================== # ** SOV::Video::Regexp #============================================================================== module SOV::Video::Regexp #-------------------------------------------------------------------------- # * Skill #-------------------------------------------------------------------------- module Skill FILENAME = /<video[_ ]?(?:file)?name = "(.+)">/i PAUSABLE = /<video[_ ]?paus(?:e|able) = (t|f)>/i EXITABLE = /<video[_ ]?exit(?:able)? = (t|f)>/i end end #============================================================================== # ** SOV::Game #============================================================================== module SOV::Game #-------------------------------------------------------------------------- # Constants #-------------------------------------------------------------------------- INI = 'Game' #-------------------------------------------------------------------------- # * Get the game windows handle #-------------------------------------------------------------------------- def self.hwnd unless defined?(@@hwnd) find_window = Win32API.new('user32','FindWindow','pp','i') # @@hwnd = find_window.call('RGSS Player',title) gamefullscreen = Graphics.fullscreen? @@hwnd = find_window.call('RGSS Player',title) end return @@hwnd end #-------------------------------------------------------------------------- # * Get game title #-------------------------------------------------------------------------- def self.title unless defined?(@@title) @@title = read_ini('title') end return @@title end #-------------------------------------------------------------------------- # * Read ini (Returns nil or match) #-------------------------------------------------------------------------- def self.read_ini(variable,filename=INI) return nil if variable == 'title' && SOV::Video::IGNORE_TITLE reg = /^#{variable}=(.*)$/ File.foreach(filename+'.ini') { |line| break($1) if line =~ reg } end end #============================================================================== # ** Cache #============================================================================== module Cache #-------------------------------------------------------------------------- # Class Variables #-------------------------------------------------------------------------- @@vcache = {} #-------------------------------------------------------------------------- # Define as class methods #-------------------------------------------------------------------------- class << self #------------------------------------------------------------------------ # Alias List #------------------------------------------------------------------------ alias sov_video_clear clear unless $@ #------------------------------------------------------------------------ # * Get a video object # filename : basename of file #------------------------------------------------------------------------ def video(filename) # Get full filename if extension is missing if File.extname(filename) == '' files = Dir["#{SOV::Video::DIR_NAME}/#{filename}.*"] filename = File.basename(files[0]) # Set as first matching file end # Create or get the video object. if @@vcache.has_key?(filename) @@vcache[filename] else @@vcache[filename] = Video.new(filename) end end #------------------------------------------------------------------------ # * Clear #------------------------------------------------------------------------ def clear @@vcache.clear sov_video_clear end end end #============================================================================== # ** RPG::Skill #============================================================================== class RPG::UsableItem #-------------------------------------------------------------------------- # * Determine if skill has a video skill #-------------------------------------------------------------------------- def video if @video == nil @note.each_line { |line| if @video == nil @video = Cache.video($1) if line =~ SOV::Video::Regexp::Skill::FILENAME else @video.pausable = ($1 == 't') if line =~ SOV::Video::Regexp::Skill::PAUSABLE @video.exitable = ($1 == 't') if line =~ SOV::Video::Regexp::Skill::EXITABLE end } @video = :invalid if @video == nil end return @video end end #============================================================================== # ** Video #------------------------------------------------------------------------------ # Class handling playing videos. #============================================================================== class Video #-------------------------------------------------------------------------- # Constants #-------------------------------------------------------------------------- TYPE_AVI = 'avivideo' TYPE_MPEG = 'mpegvideo' #-------------------------------------------------------------------------- # Class Variables #-------------------------------------------------------------------------- @@default_x = 0 @@default_y = 0 @@default_width = Graphics.width @@default_height = Graphics.height @@fullscreen = false #-------------------------------------------------------------------------- # * Get and Set default_x/y/width/height #-------------------------------------------------------------------------- for d in %w(x y width height) # Define setter method module_eval(%Q(def self.default_#{d}=(i); @@default_#{d} = i; end)) # Define getter method module_eval(%Q(def self.default_#{d}; @@default_#{d}; end)) end #-------------------------------------------------------------------------- # * Get fullscreen #-------------------------------------------------------------------------- def self.fullscreen @@fullscreen end #-------------------------------------------------------------------------- # * Set fullscreen #-------------------------------------------------------------------------- def self.fullscreen=(val) @@fullscreen = val end #-------------------------------------------------------------------------- # * Win32API #-------------------------------------------------------------------------- @@mciSendStringA = Win32API.new('winmm','mciSendStringA','pplp','i') #-------------------------------------------------------------------------- # * Video Command # command_string : string following mci_command_string format # buffer : string to retrieve return data # buffer_size : number of characters in buffer # callback_handle : handle of window to callback to. Used if notify is used # in the command string. (Not supported by game window) #-------------------------------------------------------------------------- def self.send_command(cmnd_string,buffer='',buffer_size=0,callback_handle=0) # Returns error code. No error if NULL err = @@mciSendStringA.call(cmnd_string,buffer,buffer_size,callback_handle) if err != 0 buffer = ' ' * 255 Win32API.new('winmm','mciGetErrorString','LPL','V').call(err,buffer,255) raise(buffer.squeeze(' ').chomp('\000')) end end #-------------------------------------------------------------------------- # * Play a video #-------------------------------------------------------------------------- def self.play(video) # Make path and buffer path = "#{SOV::Video::DIR_NAME}/#{video.filename}" buffer = ' ' * 255 # Initialize device and dock window with game window as parent. type = " type #{video.type}" if video.type != '' send_command("open #{path}#{type} alias VIDEO style child parent #{SOV::Game.hwnd}") # Display video in client rect at x,y with width and height. x = video.x y = video.y width = video.width height = video.height send_command("put VIDEO window at #{x} #{y} #{width} #{height}") # Begin playing video screen = @@fullscreen ? 'fullscreen' : 'window' gamefullscreen = Graphics.fullscreen? case video.type when "avivideo" if gamefullscreen == true #send_command("put VIDEO window at #{x} #{y} 640 480") Graphics.toggle_fullscreen send_command("play VIDEO window") else send_command("play VIDEO window") end when "mpegvideo" if gamefullscreen == true Graphics.toggle_fullscreen send_command("play VIDEO window") else send_command("play VIDEO fullscreen") end else end flag = 0 # Start Input and status processing loop while buffer !~ /^stopped/ # Idle processing for a frame sleep(1.0/Graphics.frame_rate) # Get mode string send_command('status VIDEO mode',buffer,255) Input.update if Input.trigger?(SOV::Video::PAUSE_INPUT) and video.pausable? Sound.play_cursor if buffer =~ /^paused/ # If already paused send_command("resume VIDEO") # Resume video else # Otherwise send_command("pause VIDEO") # Pause video end elsif Input.trigger?(SOV::Video::EXIT_INPUT) and video.exitable? Sound.play_cancel # Terminate loop on exit input break end end # Terminate the device send_command('close VIDEO') end #-------------------------------------------------------------------------- # Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :x attr_accessor :y attr_accessor :width attr_accessor :height attr_writer :exitable attr_writer :pausable attr_reader :filename #-------------------------------------------------------------------------- # * Initialize #-------------------------------------------------------------------------- def initialize(filename) unless FileTest.file?("#{SOV::Video::DIR_NAME}/#{filename}") raise(Errno::ENOENT,filename) end @filename = filename @x = @@default_x @y = @@default_y @width = @@default_width @height = @@default_height @exitable = true @pausable = true end #-------------------------------------------------------------------------- # * Get Type #-------------------------------------------------------------------------- def type if @type == nil case File.extname(@filename) when '.avi'; @type = TYPE_AVI when '.mpeg'||'.mpg'; @type = TYPE_MPEG else @type = TYPE_MPEG#'' end end @type end #-------------------------------------------------------------------------- # * Is the video exitable? #-------------------------------------------------------------------------- def exitable? @exitable end #-------------------------------------------------------------------------- # * Is the video pausable? #-------------------------------------------------------------------------- def pausable? @pausable end #-------------------------------------------------------------------------- # Access #-------------------------------------------------------------------------- private_class_method :send_command end #============================================================================== # ** Game_Interpreter #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # Import #-------------------------------------------------------------------------- include(SOV::Video::Commands) end #============================================================================== # ** Game_Map #============================================================================== class Game_Map #-------------------------------------------------------------------------- # Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :video end #============================================================================== # ** Scene_Map #============================================================================== class Scene_Map #-------------------------------------------------------------------------- # Alias List #-------------------------------------------------------------------------- alias sov_video_update update unless $@ #-------------------------------------------------------------------------- # * Play Video #-------------------------------------------------------------------------- def play_video(video) # Memorize and stop current bgm and bgs bgm = RPG::BGM.last bgs = RPG::BGS.last RPG::BGM.stop RPG::BGS.stop # Play video Video.play(video) # Restart bgm and bgs bgm.play bgs.play end #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- def update if $game_map.video != nil play_video($game_map.video) $game_map.video = nil Input.update else sov_video_update end end end #============================================================================== # ** Scene_Battle #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # * Alias list #-------------------------------------------------------------------------- alias sov_video_update_battle update unless $@ alias sov_video_use_item use_item unless $@ #-------------------------------------------------------------------------- # * Play Video #-------------------------------------------------------------------------- def play_video(video) # Memorize and stop current bgm bgm = RPG::BGM.last RPG::BGM.stop # Play video Video.play(video) # Restart bgm bgm.play end #-------------------------------------------------------------------------- # * Execute Action Skill #-------------------------------------------------------------------------- def use_item skill = @subject.current_action.item if skill.video.is_a?(Video) execute_action_video(skill) sov_video_use_item else sov_video_use_item end end #-------------------------------------------------------------------------- # * Execute Action Video #-------------------------------------------------------------------------- def execute_action_video(skill) br = Graphics.brightness 120.times { |i| Graphics.brightness = 255 - 255/60 * i; Graphics.update } # Play video play_video(skill.video) # Reset brightness Graphics.brightness = br end #ADDED UPDATE FUNCTION FROM SCENE_MAP TO SCENE_BATTLE def update if $game_map.video != nil play_video($game_map.video) $game_map.video = nil Input.update else sov_video_update_battle end end end #============================================================================== # Pre-Main Processing #============================================================================== unless FileTest.directory?(SOV::Video::DIR_NAME) # If directory doesn't exist. Dir.mkdir(SOV::Video::DIR_NAME) # Make the directory end =begin =endDove sto sbagliando? mi dà questo errore...
Script "comandi video" line 390 RuntimeError occurred.Nessun dispositivo WAVE in grado di eseguire file nel formato corrente. Per installare un dispositivo WAVE, fare clic su Stampanti e altro hardware in Pannello di controllo, quindi scegliere Installazione hardware. -
@Go: sì, ma dovrebbe essere solo il primo nil, cioè quello tra ####, l'altro dice appunto se il video non è nil allora fai questo, ma se tu gli metti se il video non è nome video allora ovviamente ti salta tutto! XD
^ ^
alla fine non riesco a capire cosa fare.. ho cambiato tutti i nil tranne qll ke hai detto tu e nn mi partiva ... ho ricopiato e ri incollato lo script.. messo un video di nome nil.. ma nn funzionano i comandi.. ho fatto ancor prima di tutto questo qll ke mi hai detto tu.. ma niente... dove sbaglio? nn riesco a mettere pausa il video.. nn vorrei che l'errore sia sul fatto che deve essere un video AVI.. xke nn ho lo script che legga l' AVI.. può essere questo problema? se è si.. potreste aiutarmi a trovare uno script che permetta tale funzione? aspetto risposte
-
Lì devi lasciare il nil, solo quello tra commenti devi cambiare.
^ ^
Adesso provo ma nello script nn c era scritto di cambiare nil cn il nome del video o cartella del video?
-
Ah credevo che non funzionasse e basta dal messaggio prima. Per metterlo in pausa devi usare invio/X (o meglio il tasto associato a C) per uscire il tasto Z (o meglio quello associato a B). Comunque l'hai configurato in modo che sia possibile metterlo in pausa ed uscire? Devi usare questo metodo:
play_video(filename,exitable,pausable)
mettere t od f al posto delle ultime due opzioni se vuoi o no che siano attivate, per esempio un video di nome cagnolino che può essere skippato, ma non messo in pausa è
play_video("cagnolino", t, f)
^ ^
questo è il mio script modificato.. dove sbaglio?? :(
#============================================================================== # # [ACE]EST_SOV_Video_Player ++ Conversion # # v1.4 #============================================================================== # Author : Estriole # (Conversion to ace and improving) # VX version author: SuperOverlord # # also credit Crystal Noel for solution for title that have encoding problem character # also credit ruin for fixes he made to this script. # # History : # version 1.4 2013.05.16 - apply fixes from ruin. typo error and ability to use # play video using battle event page. # version 1.3 2013.03.05 - create configuration for people that have encoding character # problem with their title. ex: Pokémon Ace. # set the IGNORE_TITLE to true inside module Sov::Video # version 1.2 2012.09.27 - made if game at fullscreen automaticly become windowed # version 1.1 2012.09.25 - some bug fix. now avi video can played at full screen mode(alt enter) with some position error. # - can play other format such as mkv but it will play full screen and when played at full screen # mode (alt enter) the size will be smaller and the game switched. # - basicly this script not support full screen game yet. will try to fix this in next version # version 1.0 2012.09.23 - finish converting + some change # # #============================================================================== # Features: #------------------------------------------------------------------------------ # o Play video's on the map or in battle using a simple script event command. # # o Optionally pause or exit video's while they play. # # o View the video in the game window or in fullscreen. # # o Setup video skills, which show the video before damage effects. # # o ACE version also made not only video skill but can use video item too # # o ACE version also can play video before title scene # #============================================================================== # Instructions: #------------------------------------------------------------------------------ # o Place all videos in a folder with the same name as in configuration. # This folder is created automatically the first time the game is played if # it doesn't already exist. # # o Playing Videos when on the map. # # - See script calls below. # # o Playing videos in battle. # # - As when on the map the script event command can be used in battle also. # # - As well as this you can setup skills as video skills which display # a video before damaging the enemy. # # <now below setup can be also used for item video too> # To do this the following tags can be used in the skills notebox: # 1) <video_name = "filename"> # ~ name is the name of the video file. If the filename extension is # missing the first file matching that name is used. # (Quotes are necessary around the filename) # # As well as the first tag 2 others are available. These tags will only # take effect if placed on a line below the first tag. # If these don't exist they are assumed true. # # 2) <video_exitable = n> ~ Can the video be exited by the exit input? # 3) <video_pausable = n> ~ Can the video be paused? # ~ n is replaced with either t or f (t : true, f : false) # # For other Video properties (x,y,width,height,fullscreen) the default # settings are used. (See script calls below) # # o Playing videos before title screen # ctrl + f this : CONFIGURATION FOR VIDEO BEFORE TITLE # and change the # @video_title = nil # to # @video_title = "yourvideonamewithoutextensionhere" # #============================================================================== # Script Calls: #------------------------------------------------------------------------------ # Commands (From the script call command on page three of event commands) #------------------------------------------------------------------------------ # o To change default values for video properties. # # 1) Video.default_x = n # 2) Video.default_y = n # 3) Video.default_width = n # 4) Video.default_height = n # 5) Video.fullscreen = bool #disabled now since could make error # # In all 5 commands above: # ~ n is an integer value # ~ bool is either true or false # # o To play videos # # play_video(filename,exitable,pausable) # ~ filename : name of video file (Must be in quotes) # ~ exitable : Can the video be exited? (When left out = true) # ~ pausable : Can the video be paused? (When left out = true) # # For all other values the default's are used. #============================================================================== # Compatibility: #------------------------------------------------------------------------------ # o Skill videos will depend on the battle system but sould work. #============================================================================== # Credit: #------------------------------------------------------------------------------ # o Credit goes to Trebor and Berka whose scripts helped be figure out the # mci_send_stringA function. #============================================================================== module SOV module Video #-------------------------------------------------------------------------- # Configuration #-------------------------------------------------------------------------- # Name of folder for videos to be held in. DIR_NAME = "Videos" # Exit video input EXIT_INPUT = Input::B # Pause video input PAUSE_INPUT = Input::C IGNORE_TITLE = true #set to true if your title contain strange character such as é or other. #-------------------------------------------------------------------------- # End Configuration #-------------------------------------------------------------------------- end end module SceneManager ################ CONFIGURATION FOR VIDEO BEFORE TITLE ####################### @video_title = "Introavi" # "example" # FILENAME OF THE VIDEO IN VIDEO FOLDER IN QUOTES #IF YOU DON'T WANT TO USE THIS FEATURE JUST CHANGE TO NIL ################ END CONFIGURATION ########################################## def self.run DataManager.init Audio.setup_midi if use_midi? if @video_title != "Introavi" video = Cache.video(@video_title) video.exitable = true # True/False video.pausable = true # True/False Video.play(video) end @scene = first_scene_class.new @scene.main while @scene end end class << Graphics def Graphics.fullscreen? # Property screen_size = Win32API.new('user32', 'GetSystemMetrics', 'I', 'I') screen_width = screen_size.call(0); screen_height = screen_size.call(1) detect_fullscreen = false detect_fullscreen = true if screen_width == 640 and screen_height == 480 return detect_fullscreen end def Graphics.toggle_fullscreen # Main function keybd = Win32API.new 'user32.dll', 'keybd_event', ['i', 'i', 'l', 'l'], 'v' keybd.call(0xA4, 0, 0, 0) keybd.call(13, 0, 0, 0) keybd.call(13, 0, 2, 0) keybd.call(0xA4, 0, 2, 0) end end #============================================================================== # Import #------------------------------------------------------------------------------ $imported = {} if $imported == "Introavi" $imported['Videos'] = true #============================================================================== #============================================================================== # ** SOV::Video::Commands #============================================================================== module SOV::Video::Commands #-------------------------------------------------------------------------- # * Play a video # filename : video's filename (with or without extension) # exitable : Can the video be exited # pausable : Can the video be paused #-------------------------------------------------------------------------- def play_video(filename,exitable=true,pausable=true) video = Cache.video(filename) video.exitable = exitable video.pausable = pausable $game_map.video = video end #--------------------------------------------------------------------------- # Define as module function #--------------------------------------------------------------------------- module_function :play_video end #============================================================================== # ** SOV::Video::Regexp #============================================================================== module SOV::Video::Regexp #-------------------------------------------------------------------------- # * Skill #-------------------------------------------------------------------------- module Skill FILENAME = /<video[_ ]?(?:file)?name = "(.+)">/i PAUSABLE = /<video[_ ]?paus(?:e|able) = (t|f)>/i EXITABLE = /<video[_ ]?exit(?:able)? = (t|f)>/i end end #============================================================================== # ** SOV::Game #============================================================================== module SOV::Game #-------------------------------------------------------------------------- # Constants #-------------------------------------------------------------------------- INI = 'Game' #-------------------------------------------------------------------------- # * Get the game windows handle #-------------------------------------------------------------------------- def self.hwnd unless defined?(@@hwnd) find_window = Win32API.new('user32','FindWindow','pp','i') # @@hwnd = find_window.call('RGSS Player',title) gamefullscreen = Graphics.fullscreen? @@hwnd = find_window.call('RGSS Player',title) end return @@hwnd end #-------------------------------------------------------------------------- # * Get game title #-------------------------------------------------------------------------- def self.title unless defined?(@@title) @@title = read_ini('title') end return @@title end #-------------------------------------------------------------------------- # * Read ini (Returns nil or match) #-------------------------------------------------------------------------- def self.read_ini(variable,filename=INI) return "Introavi" if variable == 'title' && SOV::Video::IGNORE_TITLE reg = /^#{variable}=(.*)$/ File.foreach(filename+'.ini') { |line| break($1) if line =~ reg } end end #============================================================================== # ** Cache #============================================================================== module Cache #-------------------------------------------------------------------------- # Class Variables #-------------------------------------------------------------------------- @@vcache = {} #-------------------------------------------------------------------------- # Define as class methods #-------------------------------------------------------------------------- class << self #------------------------------------------------------------------------ # Alias List #------------------------------------------------------------------------ alias sov_video_clear clear unless $@ #------------------------------------------------------------------------ # * Get a video object # filename : basename of file #------------------------------------------------------------------------ def video(filename) # Get full filename if extension is missing if File.extname(filename) == '' files = Dir["#{SOV::Video::DIR_NAME}/#{filename}.*"] filename = File.basename(files[0]) # Set as first matching file end # Create or get the video object. if @@vcache.has_key?(filename) @@vcache[filename] else @@vcache[filename] = Video.new(filename) end end #------------------------------------------------------------------------ # * Clear #------------------------------------------------------------------------ def clear @@vcache.clear sov_video_clear end end end #============================================================================== # ** RPG::Skill #============================================================================== class RPG::UsableItem #-------------------------------------------------------------------------- # * Determine if skill has a video skill #-------------------------------------------------------------------------- def video if @video == "Introavi" @note.each_line { |line| if @video == "Introavi" @video = Cache.video($1) if line =~ SOV::Video::Regexp::Skill::FILENAME else @video.pausable = ($1 == 't') if line =~ SOV::Video::Regexp::Skill::PAUSABLE @video.exitable = ($1 == 't') if line =~ SOV::Video::Regexp::Skill::EXITABLE end } @video = :invalid if @video == "Introavi" end return @video end end #============================================================================== # ** Video #------------------------------------------------------------------------------ # Class handling playing videos. #============================================================================== class Video #-------------------------------------------------------------------------- # Constants #-------------------------------------------------------------------------- TYPE_AVI = 'avivideo' TYPE_MPEG = 'mpegvideo' #-------------------------------------------------------------------------- # Class Variables #-------------------------------------------------------------------------- @@default_x = 0 @@default_y = 0 @@default_width = Graphics.width @@default_height = Graphics.height @@fullscreen = false #-------------------------------------------------------------------------- # * Get and Set default_x/y/width/height #-------------------------------------------------------------------------- for d in %w(x y width height) # Define setter method module_eval(%Q(def self.default_#{d}=(i); @@default_#{d} = i; end)) # Define getter method module_eval(%Q(def self.default_#{d}; @@default_#{d}; end)) end #-------------------------------------------------------------------------- # * Get fullscreen #-------------------------------------------------------------------------- def self.fullscreen @@fullscreen end #-------------------------------------------------------------------------- # * Set fullscreen #-------------------------------------------------------------------------- def self.fullscreen=(val) @@fullscreen = val end #-------------------------------------------------------------------------- # * Win32API #-------------------------------------------------------------------------- @@mciSendStringA = Win32API.new('winmm','mciSendStringA','pplp','i') #-------------------------------------------------------------------------- # * Video Command # command_string : string following mci_command_string format # buffer : string to retrieve return data # buffer_size : number of characters in buffer # callback_handle : handle of window to callback to. Used if notify is used # in the command string. (Not supported by game window) #-------------------------------------------------------------------------- def self.send_command(cmnd_string,buffer='',buffer_size=0,callback_handle=0) # Returns error code. No error if NULL err = @@mciSendStringA.call(cmnd_string,buffer,buffer_size,callback_handle) if err != 0 buffer = ' ' * 255 Win32API.new('winmm','mciGetErrorString','LPL','V').call(err,buffer,255) raise(buffer.squeeze(' ').chomp('\000')) end end #-------------------------------------------------------------------------- # * Play a video #-------------------------------------------------------------------------- def self.play(video) # Make path and buffer path = "#{SOV::Video::DIR_NAME}/#{video.filename}" buffer = ' ' * 255 # Initialize device and dock window with game window as parent. type = " type #{video.type}" if video.type != '' send_command("open #{path}#{type} alias VIDEO style child parent #{SOV::Game.hwnd}") # Display video in client rect at x,y with width and height. x = video.x y = video.y width = video.width height = video.height send_command("put VIDEO window at #{x} #{y} #{width} #{height}") # Begin playing video screen = @@fullscreen ? 'fullscreen' : 'window' gamefullscreen = Graphics.fullscreen? case video.type when "avivideo" if gamefullscreen == true #send_command("put VIDEO window at #{x} #{y} 640 480") Graphics.toggle_fullscreen send_command("play VIDEO window") else send_command("play VIDEO window") end when "mpegvideo" if gamefullscreen == true Graphics.toggle_fullscreen send_command("play VIDEO window") else send_command("play VIDEO fullscreen") end else end flag = 0 # Start Input and status processing loop while buffer !~ /^stopped/ # Idle processing for a frame sleep(1.0/Graphics.frame_rate) # Get mode string send_command('status VIDEO mode',buffer,255) Input.update if Input.trigger?(SOV::Video::PAUSE_INPUT) and video.pausable? Sound.play_cursor if buffer =~ /^paused/ # If already paused send_command("resume VIDEO") # Resume video else # Otherwise send_command("pause VIDEO") # Pause video end elsif Input.trigger?(SOV::Video::EXIT_INPUT) and video.exitable? Sound.play_cancel # Terminate loop on exit input break end end # Terminate the device send_command('close VIDEO') end #-------------------------------------------------------------------------- # Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :x attr_accessor :y attr_accessor :width attr_accessor :height attr_writer :exitable attr_writer :pausable attr_reader :filename #-------------------------------------------------------------------------- # * Initialize #-------------------------------------------------------------------------- def initialize(filename) unless FileTest.file?("#{SOV::Video::DIR_NAME}/#{filename}") raise(Errno::ENOENT,filename) end @filename = filename @x = @@default_x @y = @@default_y @width = @@default_width @height = @@default_height @exitable = true @pausable = true end #-------------------------------------------------------------------------- # * Get Type #-------------------------------------------------------------------------- def type if @type == "Introavi" case File.extname(@filename) when '.avi'; @type = TYPE_AVI when '.mpeg'||'.mpg'; @type = TYPE_MPEG else @type = TYPE_MPEG#'' end end @type end #-------------------------------------------------------------------------- # * Is the video exitable? #-------------------------------------------------------------------------- def exitable? @exitable end #-------------------------------------------------------------------------- # * Is the video pausable? #-------------------------------------------------------------------------- def pausable? @pausable end #-------------------------------------------------------------------------- # Access #-------------------------------------------------------------------------- private_class_method :send_command end #============================================================================== # ** Game_Interpreter #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # Import #-------------------------------------------------------------------------- include(SOV::Video::Commands) end #============================================================================== # ** Game_Map #============================================================================== class Game_Map #-------------------------------------------------------------------------- # Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :video end #============================================================================== # ** Scene_Map #============================================================================== class Scene_Map #-------------------------------------------------------------------------- # Alias List #-------------------------------------------------------------------------- alias sov_video_update update unless $@ #-------------------------------------------------------------------------- # * Play Video #-------------------------------------------------------------------------- def play_video(video) # Memorize and stop current bgm and bgs bgm = RPG::BGM.last bgs = RPG::BGS.last RPG::BGM.stop RPG::BGS.stop # Play video Video.play(video) # Restart bgm and bgs bgm.play bgs.play end #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- def update if $game_map.video != "Introavi" play_video($game_map.video) $game_map.video = "Introavi" Input.update else sov_video_update end end end #============================================================================== # ** Scene_Battle #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # * Alias list #-------------------------------------------------------------------------- alias sov_video_update_battle update unless $@ alias sov_video_use_item use_item unless $@ #-------------------------------------------------------------------------- # * Play Video #-------------------------------------------------------------------------- def play_video(video) # Memorize and stop current bgm bgm = RPG::BGM.last RPG::BGM.stop # Play video Video.play(video) # Restart bgm bgm.play end #-------------------------------------------------------------------------- # * Execute Action Skill #-------------------------------------------------------------------------- def use_item skill = @subject.current_action.item if skill.video.is_a?(Video) execute_action_video(skill) sov_video_use_item else sov_video_use_item end end #-------------------------------------------------------------------------- # * Execute Action Video #-------------------------------------------------------------------------- def execute_action_video(skill) br = Graphics.brightness 120.times { |i| Graphics.brightness = 255 - 255/60 * i; Graphics.update } # Play video play_video(skill.video) # Reset brightness Graphics.brightness = br end #ADDED UPDATE FUNCTION FROM SCENE_MAP TO SCENE_BATTLE def update if $game_map.video != "Introavi" play_video($game_map.video) $game_map.video = "Introavi" Input.update else sov_video_update_battle end end end #============================================================================== # Pre-Main Processing #============================================================================== unless FileTest.directory?(SOV::Video::DIR_NAME) # If directory doesn't exist. Dir.mkdir(SOV::Video::DIR_NAME) # Make the directory end =begin =end -
Sicuro che il formato del video sia leggibile? ^ ^ Hai provato su un nuovo progetto o sullo stesso che salta il title screen? Messo il nome senza estensione? ^ ^
Per leggibile cosa intendi? Di funzionare il video funziona ma nn si mette ne in pausa ne si toglie.. nello script nn riesco ad individuare i pulsanti x farlo
-
-
l'ultimo dove ho scritto, mi potete controllare come funziona?
-
-
vorrei sfruttare la intro animata in stile jrpg come si rispetti :( e poi lo skip video potrebbe servirmi anche per togliere le animazioni di una battaglia o per altro, quindi mi potrebbe cmq servire in futuro solo ke da qll ke ho capito nell'intro è qll + difficile.. vediamo se si può fare.. se no al max utilizzo l'idea di zoro, ah! zoro hai visto quel script?
-
Oppure cosa più facile, un convertitore online!
http://www.zamzar.com/convert/avi-to-ogg/
Ora scrivo dal cell quindi non sono riuscito a provarlo, fammi sapere :)
puoi usare anche http://video.online-convert.com/ oppure semplicemente VLC ^^ questo lo so, ma il nuovo script da quello ke ho letto ha bisogno di video avi... però aspetto conferme dallo staff
-
Non ti conviene cercare un programma che trasforma gli avi in ogg invece che cercare uno script complesso che spesso non funziona? ^ ^
ho trovato uno script che permette di interrompere o mettere in pausa qualsiasi video, ma c'è scritto che ha bisogno dei video .avi. Quindi volevo sapere se esistesse tale script, io al momento nn l'ho trovato.. invece lo script di cui ti parlo, si trova nel topic che ho aperto giorni fà
-
ho trovato questo script, come funziona esattamente?
-
ragazzi esiste una script che permette la lettura (o meglio dire riproduzione) dei video in formato .avi ?
-
ho votato con piacere a tutti e tre i ragazzi tricolore forza ragazzi!!! :)
-
come ne avevamo già parlato negli aiuti veloci ho deciso di aprire questo post non solo per me ma anche per chi interessava un bel video sull intro.. allora.. ricapitolando tutto.. avevamo trovato un script che aggiunge il video ma il video non si stoppava quindi se io mettevo 1 minuto di video.. ahimé.. i player dovevano aspettare 1 minuto ogni tal volta per vedere quel video.. quindi.. cerchiamo una soluzione migliore...
Nel mio già famoso script ho visto ke nel logo iniziale basta cliccare qualsiasi tasto della tastiera e si toglie automaticamente! adesso vorrei sapere se fosse possibile mettere invece dell immagine jpg o png che sia un bel video!
Questo qui è il mio Script:
#==============================================================================
# +++ MOG - Animated Title A (v2.3) +++
#==============================================================================
# By Moghunter
# http://www.atelier-rgss.com/
#==============================================================================
# Tela de titulo animado, com logo, imagens aleatórias e outros efeitos visuais.
#==============================================================================
#==============================================================================
# IMAGENS NECESSÁRIAS
#==============================================================================
# Serão necessários as seguintes imagens na pasta Graphics/Titles2/
#
# Cursor.png
# Commmand_Name.png (image filename = name of command)
# Particle.png (Opcional)
# Logo.jpg (Opcional)
# Animated.png (Opcional)
#==============================================================================
#==============================================================================
# NOTA 1 - Para definir a imagem de texto basta selecionar no banco de dados
# a imagem do titulo numero 2 (Segunda camada)
#==============================================================================
#==============================================================================
# NOTA 2 - O nome da imagem de comando é iguál ao nome do comando definido
# no banco de dados do Rpg Maker.
#==============================================================================
#==============================================================================
# ● Histórico (Version History)
#==============================================================================
# v 2.3 - O nome do comando não é mais baseado no database.
#==============================================================================
module MOG_SCENE_TITLE_A
#--------------------------------------------------------------------------
# ▼ LOGO ▼
#--------------------------------------------------------------------------
# Apresenta um Logo ao começar a tela de titulo.
# Será necessário ter a imagem LOGO.jpg (png) na pasta Graphics/Title2
#--------------------------------------------------------------------------
# Ativar Logo
LOGO = true
# Duração do logo.
LOGO_DURATION = 2 #(Sec)
#--------------------------------------------------------------------------
# ▼ RANDOM BACKGROUND ▼
#--------------------------------------------------------------------------
#Definição das pictures.
#--------------------------------------------------------------------------
RANDOM_PICTURES = [
"Title0", "Title1", "Title2", "Title3"
#"Title4","Title5","Title6","Title7"
]
#Tempo de duração para ativar a troca de imagens.
RANDOM_PICTURES_DURATION = 10#(sec)
#Seleção aleatória.
RAMDOM_SELECTION = true
#Velocidade de Scrolling. (Speed X , Speed Y)
RANDOM_PICTURES_SCROLL_SPEED = [0,0]
#--------------------------------------------------------------------------
# ▼ MULTIPLE LAYERS ▼
#--------------------------------------------------------------------------
# Definição de multiplas camadas. * (não há limíte na quantidade de camadas
# usadas)
#--------------------------------------------------------------------------
# MULTIPLE_LAYERS = [ ["A",B,C,D], ["A",B,C,D], ["A",B,C D], ["A",B,C,D ], ....]
#
# A - Nome da imagem.
# B - Velocidade de scroll na horizontal.
# C - Velocidade de scroll na vertical.
# D - Tipo de Blend. (0 - Normal / 2 - Add / 3 - Substract)
#
MULTIPLE_LAYERS = [
["Layer1",1,0,1],
["Layer2",3,0,1],
["Layer3",0,0,0]
# ["Layer4",0,0,0],
# ["Layer5",0,0,0],
# ["Layer6",0,0,0]
]
#--------------------------------------------------------------------------
# ▼ PARTICLES ▼
#--------------------------------------------------------------------------
# Adiciona partículas animadas na tela do titulo.
# Será necessário ter a imagem PARTICLE.png na pasta Graphics/Title2
#--------------------------------------------------------------------------
# Ativar Partículas.
PARTICLE = true
# Ativar Cores Aleatórias.
PARTICLE_RANDOM_COLOR = true
# Definição do tipo de blend. (0,1,2)
PARTICLE_BLEND_TYPE = 1
#Definição do limite de velocidade das partículas.
PARTICLE_MOVEMENT_RANGE_X = 3
PARTICLE_MOVEMENT_RANGE_Y = 3
PARTICLE_ANGLE_RANGE = 3
#--------------------------------------------------------------------------
# ▼ WAVE TITLE ▼
#--------------------------------------------------------------------------
# Ativa o efeito WAVE no texto do titulo, o Texto do titulo é definido
# na camada do titulo 2, que pode ser definido através do banco de dados
#--------------------------------------------------------------------------
#Ativar o efeito do titulo com efeito WAVE.
TITLE_WAVE = true
#Configuração do efeito WAVE
#
# TITLE_WAVE_CONFIG = [ AMP, LENGTH , SPEED]
#
TITLE_WAVE_CONFIG = [6 , 232 , 360]
#--------------------------------------------------------------------------
# ▼ ANIMATED_SPRITE ▼ (Opcional)
#--------------------------------------------------------------------------
# Adiciona um sprite animado no titulo.
# A quantidade de frames é proporcional a largura dividido pela altura
# da imagem, ou seja, não há limite de quantidade de frames e nem de
# tamanho da imagem.
# Será necessário ter a imagem ANIMATED.png (Jpg) na pasta Graphics/Title2
#--------------------------------------------------------------------------
# Ativar Sprite animado.
ANIMATED_SPRITE = true
# Posição do Sprite animado.
ANIMATED_SPRITE_POSITION = [130,150]
# Velocidade da animação
ANIMATED_SPRITE_SPEED = 10
# Tipo de Blend. (0 - Normal / 2 - Add / 3 - Substract)
ANIMATED_SPRITE_BLEND_TYPE = 1
# Definição do zoom,
ANIMATED_SPRITE_ZOOM = 1.5
#--------------------------------------------------------------------------
# ▼ COMMANDS / SELECTION ▼
#--------------------------------------------------------------------------
# Configuração extras da tela de titulo.
#--------------------------------------------------------------------------
# Posição do comando.
COMMANDS_POS = [220 , 280]
# Ativar o efeito de tremor ao selecionar o comando.
COMMAND_SHAKE = true
# Definição da posição do cursor.(Para ajustes)
CURSOR_POS = [-42,-7]
# Ativar flash ao mover o comando.
CURSOR_FLASH_SELECTION = true
# Definição da posição do flash.
CURSOR_FLASH_SLECTION_POS = [-180,0]
# Tipo de Blend. (0 - Normal / 2 - Add / 3 - Substract)
CURSOR_FLASH_SLECTION_BLEND_TYPE = 1
end
#==============================================================================
# ■ Window TitleCommand
#==============================================================================
class Window_TitleCommand < Window_Command
attr_reader :list
end
#==============================================================================
# ■ Particle Title
#==============================================================================
class Particle_Title < Sprite
include MOG_SCENE_TITLE_A
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
def initialize(viewport = nil)
super(viewport)
self.bitmap = Cache.title2("Particle")
self.tone.set(rand(255),rand(255), rand(255), 255) if PARTICLE_RANDOM_COLOR
self.blend_type = PARTICLE_BLEND_TYPE
@cw = self.bitmap.width
@ch = self.bitmap.height
@nx = PARTICLE_MOVEMENT_RANGE_X
@ny = PARTICLE_MOVEMENT_RANGE_Y
reset_setting
end
#--------------------------------------------------------------------------
# ● Reset Setting
#--------------------------------------------------------------------------
def reset_setting
zoom = (50 + rand(100)) / 100.1
self.zoom_x = zoom
self.zoom_y = zoom
self.x = (rand(576) -32)
self.y = rand(448 + @ch)
self.opacity = 0
self.angle = rand(360)
nx2 = rand(@nx).abs
nx2 = 1 if (@nx != 0 and nx2 < 1)
@speed_x = @nx > 0 ? nx2 : @nx < 0 ? -nx2 : 0
ny2 = rand(@ny).abs
ny2 = 1 if (@ny != 0 and ny2 < 1)
@speed_y = @ny > 0 ? ny2 : @ny < 0 ? -ny2 : 0
@speed_a = [[rand(PARTICLE_ANGLE_RANGE), PARTICLE_ANGLE_RANGE].min, 0].max
end
#--------------------------------------------------------------------------
# ● Dispose
#--------------------------------------------------------------------------
def dispose
super
self.bitmap.dispose
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
def update
super
self.x += @speed_x
self.y -= @speed_y
self.angle += @speed_a
self.opacity += 5
reset_setting if can_reset_setting?
end
#--------------------------------------------------------------------------
# ● Can Reset Setting
#--------------------------------------------------------------------------
def can_reset_setting?
return true if (self.x < -48 or self.x > 592)
return true if (self.y < -48 or self.y > 464)
return false
end
end
#==============================================================================
# ■ Multiple Layers Title
#==============================================================================
class Multiple_Layers_Title
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
def initialize(name = "", scroll_x = 0, scroll_y = 0, blend = 0, index = 0)
@layer = Plane.new
@layer.bitmap = Cache.title1(name.to_s) rescue nil
@layer.bitmap = Bitmap.new(32,32) if @layer.bitmap == nil
@layer.z = 10 + index
@layer.opacity = 0
@layer.blend_type = blend
@scroll_speed = [scroll_x, scroll_y]
end
#--------------------------------------------------------------------------
# ● Dispose
#--------------------------------------------------------------------------
def dispose
@layer.bitmap.dispose
@layer.bitmap = nil
@layer.dispose
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
def update
@layer.opacity += 2
@layer.ox += @scroll_speed[0]
@layer.oy += @scroll_speed[1]
end
end
#==============================================================================
# ■ Scene Title
#==============================================================================
class Scene_Title < Scene_Base
include MOG_SCENE_TITLE_A
#--------------------------------------------------------------------------
# ● Start
#--------------------------------------------------------------------------
def start
super
RPG::BGM.fade(2000)
@logo_active = LOGO
SceneManager.clear
@phase = 1
@phase_time = -1
dispose_title_sprites
create_logo if @logo_active
create_command_window
create_commands
create_background
create_light
create_cursor
create_animated_object
create_flash_select
create_multiple_layers
play_title_music unless @logo_active
end
#--------------------------------------------------------------------------
# ● Create Multiple Layers
#--------------------------------------------------------------------------
def create_flash_select
return if !CURSOR_FLASH_SELECTION
@flash_select = Sprite.new
@flash_select.bitmap = Cache.title2("Cursor2")
@flash_select.z = 99
@flash_select.opacity = 0
@flash_select.blend_type = CURSOR_FLASH_SLECTION_BLEND_TYPE
end
#--------------------------------------------------------------------------
# ● Create Multiple Layers
#--------------------------------------------------------------------------
def create_multiple_layers
@m_layers = []
index = 0
for i in MULTIPLE_LAYERS
@m_layers.push(Multiple_Layers_Title.new(i[0],i[1],i[2],i[3],index))
index += 1
end
end
#--------------------------------------------------------------------------
# ● Create_Logo
#--------------------------------------------------------------------------
def create_animated_object
return if !ANIMATED_SPRITE
@object_index = 0
@object_animation_speed = 0
@object = Sprite.new
@object.z = 98
@object.opacity = 0
@object.blend_type = ANIMATED_SPRITE_BLEND_TYPE
@object.zoom_x = ANIMATED_SPRITE_ZOOM
@object.zoom_y = ANIMATED_SPRITE_ZOOM
@object_image = Cache.title2("Animated")
@object_frame_max = @object_image.width / @object_image.height
@object_width = @object_image.width / @object_frame_max
@object.bitmap = Bitmap.new(@object_width,@object_image.height)
@object.x = ANIMATED_SPRITE_POSITION[0]
@object.y = ANIMATED_SPRITE_POSITION[1]
make_object_bitmap
end
#--------------------------------------------------------------------------
# ● Create_Logo
#--------------------------------------------------------------------------
def create_cursor
@cursor = Sprite.new
@cursor.bitmap = Cache.title2("Cursor")
@cursor.opacity = 0
@cursor.z = 130
@cursor_position = [0,0]
@mx = [0,0,0]
end
#--------------------------------------------------------------------------
# ● Create_Logo
#--------------------------------------------------------------------------
def create_logo
@phase = 0
@logo = Sprite.new
@logo.bitmap = Cache.title2("Logo")
@logo.opacity = 0
@logo_duration = 180 + (LOGO_DURATION * 60)
@logo.z = 200
end
#--------------------------------------------------------------------------
# ● Create Commands
#--------------------------------------------------------------------------
def create_commands
@command_window.visible = false
@commands_index_old = -1
@commands = []
@commands_shake_duration = 0
index = 0
for com in 0...3
sprite = Sprite.new
case index
when 0; com_name = "New_Game"
when 1; com_name = "Continue"
when 2; com_name = "Shutdown"
end
sprite.bitmap = Cache.title2(com_name.to_s) rescue nil
if sprite.bitmap == nil
sprite.bitmap = Bitmap.new(200,32)
sprite.bitmap.font.size = 24
sprite.bitmap.font.bold = true
sprite.bitmap.font.italic = true
sprite.bitmap.draw_text(0, 0, 200, 32, com_name.to_s,1)
end
sprite.x = COMMANDS_POS[0] - 100 - (index * 20)
sprite.y = index * sprite.bitmap.height + COMMANDS_POS[1]
sprite.z = 100 + index
sprite.opacity = 0
index += 1
@commands.push(sprite)
end
@command_max = index
end
#--------------------------------------------------------------------------
# ● create_background
#--------------------------------------------------------------------------
def create_background
@rand_title_duration = 120
@old_back_index = 0
@sprite1 = Plane.new
@sprite1.opacity = 0
@sprite1.z = 1
if RAMDOM_SELECTION
execute_random_picture(false)
else
execute_random_picture(true)
end
@sprite2 = Sprite.new
@sprite2.bitmap = Cache.title2($data_system.title2_name)
@sprite2.z = 140
@sprite2.opacity = 0
if TITLE_WAVE
@sprite2.wave_amp = TITLE_WAVE_CONFIG[0]
@sprite2.wave_length = TITLE_WAVE_CONFIG[1]
@sprite2.wave_speed = TITLE_WAVE_CONFIG[2]
end
end
#--------------------------------------------------------------------------
# ● Create Light
#--------------------------------------------------------------------------
def create_light
return unless PARTICLE
@viewport_light = Viewport.new(-32, -32, 600, 480)
@viewport_light.z = 50
@light_bitmap =[]
for i in 0...20
@light_bitmap.push(Particle_Title.new(@viewport_light))
end
end
#--------------------------------------------------------------------------
# ● dispose Background1
#--------------------------------------------------------------------------
def dispose_background1
@sprite1.bitmap.dispose
@sprite1.bitmap = nil
@sprite1.dispose
@sprite1 = nil
end
#--------------------------------------------------------------------------
# ● Dispose Background2
#--------------------------------------------------------------------------
def dispose_background2
if @sprite2.bitmap != nil
@sprite2.bitmap.dispose
@sprite2.bitmap = nil
@sprite2.dispose
@sprite2 = nil
end
end
#--------------------------------------------------------------------------
# ● Dispose Light
#--------------------------------------------------------------------------
def dispose_light
return unless PARTICLE
if @light_bitmap != nil
for i in @light_bitmap
i.dispose
end
@light_bitmap = nil
end
@viewport_light.dispose
end
#--------------------------------------------------------------------------
# ● Dispose Logo
#--------------------------------------------------------------------------
def dispose_logo
return unless @logo_active
@logo.bitmap.dispose
@logo.dispose
end
#--------------------------------------------------------------------------
# ● Dispose Multiple Layers
#--------------------------------------------------------------------------
def dispose_multiple_layers
return if @m_layers == nil
@m_layers.each {|layer| layer.dispose }
end
#--------------------------------------------------------------------------
# ● Terminate
#--------------------------------------------------------------------------
def terminate
super
dispose_title_sprites
end
#--------------------------------------------------------------------------
# ● Dispose Title Sprites
#--------------------------------------------------------------------------
def dispose_title_sprites
return if @cursor == nil
dispose_background1
dispose_background2
dispose_light
dispose_logo
dispose_multiple_layers
@cursor.bitmap.dispose
@cursor.dispose
@cursor = nil
if @flash_select != nil
@flash_select.bitmap.dispose
@flash_select.dispose
end
for com in @commands
com.bitmap.dispose
com.dispose
end
if ANIMATED_SPRITE
@object.bitmap.dispose
@object.dispose
@object_image.dispose
end
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
def update
super
update_logo
update_initial_animation
update_command
update_background
update_light
update_object_animation
update_multiple_layers
end
#--------------------------------------------------------------------------
# ● Update Multiple Layers
#--------------------------------------------------------------------------
def update_multiple_layers
return if @m_layers == nil
@m_layers.each {|layer| layer.update }
end
#--------------------------------------------------------------------------
# ● Make Object bitmap
#--------------------------------------------------------------------------
def make_object_bitmap
@object.bitmap.clear
src_rect_back = Rect.new(@object_width * @object_index, 0,@object_width,@object_image.height)
@object.bitmap.blt(0,0, @object_image, src_rect_back)
end
#--------------------------------------------------------------------------
# ● Update Object Animation
#--------------------------------------------------------------------------
def update_object_animation
return if !ANIMATED_SPRITE
@object.opacity += 2
@object_animation_speed += 1
if @object_animation_speed > ANIMATED_SPRITE_SPEED
@object_animation_speed = 0
@object_index += 1
@object_index = 0 if @object_index >= @object_frame_max
make_object_bitmap
end
end
#--------------------------------------------------------------------------
# ● Update Cursor Position
#--------------------------------------------------------------------------
def update_cursor_position
@cursor.opacity += 5
execute_animation_s
execute_cursor_move(0,@cursor.x,@cursor_position[0] + @mx[1])
execute_cursor_move(1,@cursor.y,@cursor_position[1])
end
#--------------------------------------------------------------------------
# ● Execute Animation S
#--------------------------------------------------------------------------
def execute_animation_s
@mx[2] += 1
return if @mx[2] < 4
@mx[2] = 0
@mx[0] += 1
case @mx[0]
when 1..7; @mx[1] += 1
when 8..14; @mx[1] -= 1
else
@mx[0] = 0
@mx[1] = 0
end
end
#--------------------------------------------------------------------------
# ● Execute Cursor Move
#--------------------------------------------------------------------------
def execute_cursor_move(type,cp,np)
sp = 5 + ((cp - np).abs / 5)
if cp > np
cp -= sp
cp = np if cp < np
elsif cp < np
cp += sp
cp = np if cp > np
end
@cursor.x = cp if type == 0
@cursor.y = cp if type == 1
end
#--------------------------------------------------------------------------
# ● Update Logo
#--------------------------------------------------------------------------
def update_logo
return if @phase != 0
loop do
break if @logo_duration == 0
execute_logo
Graphics.update
Input.update
end
play_title_music
end
#--------------------------------------------------------------------------
# ● Execute Logo
#--------------------------------------------------------------------------
def execute_logo
if @logo_duration > 120 and (Input.trigger?(:C) or Input.trigger?(:B))
@logo_duration = 120
end
@logo_duration -= 1
if @logo_duration > 120
@logo.opacity += 5
else
@logo.opacity -= 5
end
if @logo.opacity <= 0
@logo_duration = 0
@phase = 1
end
end
#--------------------------------------------------------------------------
# ● Update Background
#--------------------------------------------------------------------------
def update_background
@sprite1.ox += RANDOM_PICTURES_SCROLL_SPEED[0]
@sprite1.oy += RANDOM_PICTURES_SCROLL_SPEED[1]
@sprite2.opacity += 2
@sprite2.update
return if RANDOM_PICTURES.size < 1
@rand_title_duration -= 1
if @rand_title_duration <= 0
@sprite1.opacity -= 5 unless RANDOM_PICTURES.size < 2
else
@sprite1.opacity += 5
end
return if @sprite1.opacity != 0
execute_random_picture
end
#--------------------------------------------------------------------------
# ● Execute Random Picture
#--------------------------------------------------------------------------
def execute_random_picture(initial = false)
@rand_title_duration = [[60 * RANDOM_PICTURES_DURATION, 9999].min, 60].max
if @sprite1.bitmap != nil
@sprite1.bitmap.dispose
@sprite1.bitmap = nil
end
if RAMDOM_SELECTION
rand_pic = rand(RANDOM_PICTURES.size)
if rand_pic == @old_back_index
rand_pic += 1
rand_pic = 0 if rand_pic >= RANDOM_PICTURES.size
end
@old_back_index = rand_pic
else
@old_back_index += 1 unless initial
@old_back_index = 0 if @old_back_index >= RANDOM_PICTURES.size
end
pic = RANDOM_PICTURES[@old_back_index]
@sprite1.bitmap = Cache.title1(pic) rescue nil
@sprite1.bitmap = Cache.title1("") if @sprite1.bitmap == nil
end
#--------------------------------------------------------------------------
# ● Update Light
#--------------------------------------------------------------------------
def update_light
return unless PARTICLE
if @light_bitmap != nil
for i in @light_bitmap
i.update
end
end
end
#--------------------------------------------------------------------------
# ● Update Initial Animation
#--------------------------------------------------------------------------
def update_initial_animation
return if @phase != 1
@phase_time -= 1 if @phase_time > 0
if @phase_time == 0
@phase = 2
@phase_time = 30
end
for i in @commands
index = 0
if i.x < COMMANDS_POS[0]
i.x += 5 + (2 * index)
i.opacity += 10
if i.x >= COMMANDS_POS[0]
i.x = COMMANDS_POS[0]
i.opacity = 255
if @phase_time < 15 / 2
@phase_time = 15
end
end
end
index += 1
end
end
#--------------------------------------------------------------------------
# ● Update Command
#--------------------------------------------------------------------------
def update_command
return if @phase != 2
update_command_slide
update_cursor_position
update_flash_select
end
#--------------------------------------------------------------------------
# ● Update Command Slide
#--------------------------------------------------------------------------
def update_command_slide
if @commands_index_old != @command_window.index
@commands_index_old = @command_window.index
@commands_shake_duration = 30
if @flash_select != nil
@flash_select.opacity = 255
end
end
return if @commands_shake_duration == 0
@commands_shake_duration -= 1 if @commands_shake_duration > 0
@commands_shake_duration = 0 if !COMMAND_SHAKE
for i in @commands
if (i.z - 100) == @command_window.index
i.opacity += 10
@cursor_position = [COMMANDS_POS[0] + CURSOR_POS[0],i.y + CURSOR_POS[1]]
i.x = COMMANDS_POS[0] + rand(@commands_shake_duration)
else
i.opacity -= 7 if i.opacity > 100
i.x = COMMANDS_POS[0]
end
end
end
#--------------------------------------------------------------------------
# ● Update Flash Select
#--------------------------------------------------------------------------
def update_flash_select
return if !CURSOR_FLASH_SELECTION
@flash_select.opacity -= 8
@flash_select.x = @cursor_position[0] + CURSOR_FLASH_SLECTION_POS[0]
@flash_select.y = @cursor_position[1] + CURSOR_FLASH_SLECTION_POS[1]
end
end
$mog_rgss3_animated_title_a = truese modificassimo lo script oppure aggiungiamo un nuovo script modificato che permette di mettere il video ma mettiamo un codice che permette di stoppare o togliere e andare avanti sarebbe figo..
vi allego anche un ulteriore script dove permette di mettere l'intro video:
#===============================================================================
# Scene Intro 1.0 - 06/04/2012
#-------------------------------------------------------------------------------
# First of all, as anybody can see this script is heavily based on moghunter
# Animated Title Screen.
#-------------------------------------------------------------------------------
# This scripts allows to add a slideshow or a movie as intro before the title
# screen is shown.
#-------------------------------------------------------------------------------
# INSTRUCTIONS
#
# LOGO
# Toggles Logo screen ON/OFF (true = on)
#
# LOGOTIME
# Represents Logo duration in seconds.
#
# MODE
# Sets 1 for slideshow, 2 for video (ogg/theora movie)
#
# PICTURES
# Array of pictures showed in the slideshow. (put in Graphics/Intro/ folder)
#
# PICTIME
# Each picture display duration.
#
# VIDEO
# Video's filename. (put in Graphics/Intro/ folder)
#
# INTROMUSIC (played only in Slideshow Mode!)
# Intro music filename (put in Graphics/Intro/ folder)
#===============================================================================
#-------------------------------------------------------------------------------
# CONFIGURE
#-------------------------------------------------------------------------------
module INTRO
LOGO = false
LOGOTIME = 2 #seconds
MODE = 2 #1=slideshow 2=video
PICTURES = ["Intro0","Intro1","Intro2","Intro3"] #Graphics/Intro
PICTIME = 3 #seconds
VIDEO = "video" #Graphics/Intro
INTROMUSIC = "Intro" #Audio/BGM/Intro
end #module INTRO
#-------------------------------------------------------------------------------
# SCENE MANAGER
#-------------------------------------------------------------------------------
module SceneManager
def self.first_scene_class
$BTEST ? Scene_Battle : Scene_Intro
end
end #module SceneManager
#-------------------------------------------------------------------------------
# CACHE
#-------------------------------------------------------------------------------
module Cache
def self.intro(filename)
load_bitmap("Graphics/Intro/", filename)
end
end #module Cache
#-------------------------------------------------------------------------------
# SCENE INTRO
#-------------------------------------------------------------------------------
class Scene_Intro < Scene_Base
include INTRO
def start
super
SceneManager.clear
@phase = 1
@phase_time = -1
if LOGO
create_logo
else
start_intro
end
#play_intro_music unless LOGO
end
def start_intro
if MODE == 1 #Play Slideshow
create_sshow
play_intro_music
else #Play Movie
Graphics.play_movie('Graphics/Intro/Intro.ogg')
SceneManager.goto(Scene_Title)
end
end
def create_logo
@phase = 0
@logo = Sprite.new
@logo.bitmap = Cache.intro("Logo")
@logo.opacity = 0
@logo_duration = 180 + (LOGOTIME * 60)
end
def create_sshow
@slide_duration = 120
@old_pic_index = 0
@sprite = Plane.new
@sprite.opacity = 0
change_picture(true)
end
def dispose_sshow
@sprite.dispose
@sprite = nil
end
def dispose_logo
return unless LOGO
@logo.bitmap.dispose
@logo.dispose
end
def update
super
update_logo
update_initial_animation
update_sshow if MODE == 1
end
def update_logo
return if @phase != 0
loop do
break if @logo_duration == 0
execute_logo
Graphics.update
end
start_intro
end
def update_initial_animation
return if @phase != 1
@phase_time -= 1 if @phase_time > 0
if @phase_time == 0
@phase = 2
@phase_time = 30
end
end
def update_sshow
return if PICTURES.size == 1
@slide_duration -= 1
if @slide_duration <= 0
@sprite.opacity -= 5
else
@sprite.opacity += 5
end
return if @sprite.opacity != 0
change_picture
end
def execute_logo
@logo_duration -= 1
if @logo_duration > 120
@logo.opacity += 5
else
@logo.opacity -= 5
end
if @logo.opacity <= 0
@logo_duration = 0
@phase = 1
end
end
def change_picture(initial = false)
@slide_duration = [[60 * PICTIME, 9999].min, 60].max
if @sprite.bitmap != nil
@sprite.bitmap.dispose
@sprite.bitmap = nil
end
@old_pic_index += 1 unless initial
if @old_pic_index >= PICTURES.size
SceneManager.goto(Scene_Title)
else
pic = PICTURES[@old_pic_index]
@sprite.bitmap = Cache.intro(pic)
end
end
def play_intro_music
Audio.bgm_play('Audio/BGM/' + INTROMUSIC)
RPG::BGS.stop
RPG::ME.stop
end
def terminate
super
SceneManager.snapshot_for_background
dispose_sshow if MODE == 1
dispose_logo if LOGO
end
end #class Scene_Intro < Scene_Basequindi la domanda che vi porgo è.. si potrebbe aggiungere uno script o modificare il medesimo script in modo che permetta di avviare il video iniziale ma che permetta anche di saltarlo con qualsiasi tasto? (o al max il tasto start) aspetto vostre risposte :)
-
e come faccio a ridimensionare l'immagine con quella grandezza? ho provato con paint (non ho photoshop) ma mi sembra molto grande con quelle misure
utilizza photoscape, utile e gratuito.. basta ke trascini l'immagine nel programma fai ridimensiona (togli il catenino) e puoi mettere la risoluzione ke vuoi.. anche 1x1024 senza problemi (se lo fai nn si vedrà un bip ovviamente XD) poi dopo aver ridimensionato basta dire dove salvarlo e in che formato-qualità e il gioco è fatto!
-
Mi spiace, non conosco il portoghese...c'è una versione inglese dello script?
purtroppo no :/

Video intro con pulsante per stopparlo
in Supporto VX e VX-Ace
Posted
l'insulto in questione anche se involontario è del fatto che tu hai risposto dicendo che il video con quel metodo uscirebbe pulito o meglio "normale", è totalmente errato perché ho visto quello che mi hai fatto vedere tu non è assolutamente il risultato che io miro.. il risultato che miro io è un Anime Video (dalla durata di 2 min) , non sò se hai mai visto un anime.. quindi non sò dirti più precisamente dove stavi sbagliando.. comunque sia.. su quel piano abbiamo risolto quel piccolo problema dell'insulto anche perché la colpa è mia per non aver precisato dove tu sbagliavi.. poi.. sai quante immagini ci vogliono per ricreare un video di 10 secondi? quindi non solo ci sarebbe tantissimo lavoro con rpg maker e soprattutto tantissimo peso in + per una sola intro.. invece nei video è totalmente diverso.. quindi preferivo fin dall'inizio utilizzare un video così da risolvere tutti i problemi nella fase di progettazione.. e per il fatto dello schermo intero, sono riuscito a risolverlo senza problemi, in poche parole adesso il mio lavoro è completo. Per quanto riguarda il video intro.. basterà solamente mettere il mio video da me creato e ho finito con l'intro!