Video No rmxp!

    Compartilhe
    avatar
    Cefr1000
    Administrador
    Administrador

    Mensagens : 49
    Créditos : 1163
    Data de inscrição : 05/05/2011
    Idade : 21
    Localização : Cefrilândia

    Video No rmxp!

    Mensagem  Cefr1000 em Sex Maio 06, 2011 1:37 pm

    Picture Video - Video Por Pictures
    Versão: 1.0

    OBS: nao foi feito por mim e sim Por Rafidelis (Idealização por Dark Goku)


    Características

    Este script,cria um video usando pictures separadas e animando elas em uma
    sequência para que simulem um vídeo normal.
    Fiz a pedido do Membro Dark Goku.

    Características:
    * - Controle de execução do vídeo -> ( Pausar,Retomar,Parar )
    * - Posicionamento do vídeo -> ( Centralizar Automaticamente,ou definir as
    coordenadas (x e y) para exibição do vídeo )
    * - Definição da velocidade de execução -> ( Super Lento, Lento, Normal,
    Rápido e Super Rápido )
    * - Executar com mapa no fundo,ou fundo preto.

    * - Redimensionamento do tamanho da tela do video

    ** Entre outros (Veja na parte de instruções para mais detalhes)
    Instruções

    Todas as Instruções se encontram no proprio script,e na demo.

    Vídeo

    se quiser ver o video esta aqui.
    [Você precisa estar registrado e conectado para ver este link.]

    Download

    Este script,pode ser usado tanto no RPGMaker VX ou no RPGMaker XP,fiz 2 demos,porem os
    scripts são os mesmo,o que muda são os efeitos sonoros \o\

    Demo rpg maker vx: [Você precisa estar registrado e conectado para ver este link.]

    demo rpg make xp:http://www.4shared.com/file/VEduozZo/Picture_Video_-_Video_Por_Pict.html

    Script


    Código:
    #==============================================================================
    #          [RGSS/RGSS2] Picture Video - Filme por Pictures
    #------------------------------------------------------------------------------
    # $RafiScripts.by = Rafidelis(RafiScripts - RafideliSoft Brasil)             
    # $RafiScripts.version = 1.0                                                 
    # $RafiScripts.release_date = 18/06/10 (d/m/y)                               
    # $RafiScripts.email = [Você precisa estar registrado e conectado para ver este link.] or [Você precisa estar registrado e conectado para ver este link.] 
    # $RafiScripts.website = [Você precisa estar registrado e conectado para ver este link.] or [Você precisa estar registrado e conectado para ver este link.]        
    # $RafiScripts.website² = [Você precisa estar registrado e conectado para ver este link.]                    
    #==============================================================================
    # [** $RafiScripts.desc **]  // Sobre o Script / About Script                 
    #------------------------------------------------------------------------------
    # Este script cria um filme de Pictures,simulando um vídeo normal.
    # Idealização : Dark Goku (Ou bobo sayajyn,dá tudo na mesma)
    # Características:
    #  * - Controle de execução do vídeo -> ( Pausar,Retomar,Parar )
    #  * - Posicionamento do vídeo -> ( Centralizar Automaticamente,ou definir as
    #      coordenadas (x e y) para exibição do vídeo )
    #  * - Definição da velocidade de execução -> ( Super Lento, Lento, Normal,
    #      Rápido e Super Rápido )
    #  * - Executar com mapa no fundo,ou fundo preto.

    #  * - Redimensionamento do tamanho da tela do video
    #
    # OBS: Esse script provavelmente é incompativel com a maioria dos scripts de
    #      pular a tela de título.Fique atento!
    #
    #==============================================================================
    # [** $RafiScripts.instr ] // Instruções / Instructions:                     
    #------------------------------------------------------------------------------
    # * - Colar Acima do Main
    # * - Editar as Constantes no Modulo Rafidelis::Picture_Video_Conf
    #
    # ** Comandos para serem usados no comando 'chamar script'(3° Aba)

    #  $picture_video.path = String (Ex : 'Graphics/Pictures" )
    #    |_ Definição da Pasta onde se encontram as imagens usadas no vídeo atual
    #
    #  $picture_video.pictures_prefix = String (Ex : 'Picture_' )
    #    |_ Definição do prefixo das imagens usadas no vídeo.
    #
    #  $picture_video.max_frames = Inteiro (Ex : 45 )
    #    |_ Definição do número máximo de frames(pictures) do vídeo
    #
    #  $picture_video.play_speed = String ou Inteiro
    #    |_ Se for uma string(Texto),os possiveis valores são:
    #    => "Super Slow","Super lento"      : velocidade = 5
    #    => "Slow","Lento","Devagar"        : velocidade = 10
    #    => "Normal"                        : velocidade = 20
    #    => "Fast","Rápido","Rapido"        : velocidade = 40
    #    => "Super Fast","Super rápido"      : velocidade = 60
    #
    #  $picture_video.from_map = Valor Booleano( true ou false)
    #  |_ Definição se o fundo do vídeo será o mapa atual,ou fundo preto.
    #
    #  $picture_video.x =  Inteiro ( Ex : 50 )
    #  |_ Definição da posição horizontal do vídeo no mapa
    #
    #  $picture_video.y = Inteiro ( Ex : 80 )
    #  |_ Definição da posição vertical do vídeo no mapa
    #
    #  $picture_video.auto_center = Valor Booleano( true ou false )
    #  |_ Definição de auto centralização do vídeo no mapa. Se essa opção estiver
    #      ativa,as opções $picture_video.x = valor e $picture_video.y = valor serão
    #      ignoradas. Para poder definir as coordenas que quiser,através dos métodos
    #      citados,essa opção deve estar desativada(false).
    #
    #  $picture_video.music = String ( Ex : "Fundo_Filme01" )
    #  |_ Nome do arquivo de música do vídeo atual. Deve estar na pasta
    #      'Audio/BGM',e deve ser um arquivo de som valido(mp3,wav,etc)
    #
    #  $picture_video.can_pause = Valor Booleano (true ou false)
    #  |_ Permitir ou não que o vídeo seja pausado durante sua execução
    #
    #  $picture_video.can_stop = Valor Booleano (true ou false)
    #  |_ Permitir a possibilidade de sair da execução do vídeo.
    #
    #  $picture_video.resize_screen(largura,altura)
    #  |_ Define uma nova dimensão para a tela aonde o vídeo será exibido.
    #      As imagens automaticamente se ajustam as dimensões passadas.
    #
    #  $picture_video.reset_screen_dimensions!
    #  |_ Restaura as dimensões da tela para o tamanho das imagens que serão
    #      usadas no vídeo.Use esse método após utilizar o método
    #      $picture.resize_screen(largura,altura)
    #-----------------------------------------------------------------------------
    # Exemplos de definições de vídeos:
    #=============================================================================
    # 1)
    # $picture_video.path = "Graphics/Pictures/Video1/"
    # $picture_video.pictures_prefix = "Picture_"
    # $picture_video.max_frame = 160
    # $picture_video.play_speed = "Lento"
    # $picture_video.from_map = false
    # $picture_video.auto_center = false
    # $picture_video.x = 20
    # $picture_video.y = 100
    # $picture_video.play! # Executar Vídeo!
    #
    # - O exemplo acima irá definir as posições 20 e 100 para exibir o vídeo,pois
    #  a opção 'auto_center' foi desativada. O prefixo das pictures é : 'Picture_',
    #  ou seja, quando estiver no primeiro frame,a imagem procurada na pasta será:
    #  'Picture_0',e quando estiver no frame 15,por exemplo,a imagem procurada na
    #  pasta 'Graphics/Pictures/Video01/' será 'Picture_15'.O numero máximo de
    #  frames é de 160,ou seja a ultima picture será : 'Picture_160'.
    #  Nesse exemplo,o fundo do vídeo ficara preto,pois não sera exibido o mapa
    #  atual. O vídeo ficara lento durante sua execução, pois foi definida a
    #  velocidade lenta para a execução.
    #-------------------------------------------------------------------------------
    # 2)
    # $picture_video.path = "Graphics/Pictures/Video2"
    # $picture_video.pictures_prefix = "Picture_"
    # $picture_video.max_frame = 80
    # $picture_video.from_map = false
    # $picture_video.music = "Video02_Sound"
    # $picture_video.can_pause = false
    # $picture_video.can_stop = false
    # $picture_video.play!
    #
    # - O exemplo acima,executa um vídeo com o total de 80 frames,e as imagens
    #  usadas devem estar na pasta "Graphics/Pictures/Video2" com o prefixo
    #  'Picture_'.
    #  O vídeo ficara posicionado no centro da tela,com o fundo preto e velocidade
    #  de execução normal(se a velocidade de execução não tiver sido modificada
    #  anteriormente).
    #  O som a ser tocado será o 'Video2_Sound',na pasta 'Sound/BGM',e por fim
    #  não será possível pausar ,nem parar o vídeo durante sua execuçao. Ou seja,
    #  só sera possível retornar ao mapa quando o vídeo terminar.
    #
    #------------------------------------------------------------------------------
    # Baixe a demo(que se encontra no Tópico 'Picture Video',na sessão de Scripts
    # RGSS2 do forum da ReinoRPG.com([Você precisa estar registrado e conectado para ver este link.] para demonstração de
    # como usar esse script com imagens.
    # Lembrando que esse script funciona tanto no RPGMaker VX e RPGMaker XP.
    #=============================================================================

    #==============================================================
    # ATENÇÃO!
    # Se você for usar esse script no RPGMaker XP, retire a linha
    # '=begin'(Linha 142) e a linha '=end'(Linha 148) logo abaixo:
    #==============================================================
    =begin
    module Cache
      def self.load_bitmap(path,file,hue=0)
        return RPG::Cache.load_bitmap(path,file,hue)
      end
    end
    =end
    module Rafidelis
      #==========================================================================
      # ** Modulo de Configurações do Script de Video por Imagens
      #--------------------------------------------------------------------------
      module Picture_Video_Conf
       
        # Scene que retorna quando acabar o 'filme de pictures'( Padrão: Scene_Map )
        Scene_When_Return = Scene_Map
       
        # Segundos a esperar,antes de fechar o filme ( Padrão : 0.5 )
        Wait_Seconds_Before_Terminate = 0.5
       
        # Tecla para pausar o vídeo ( Padrão : Input::C ) (Enter)
        Pause_Key = Input::C
       
        # Tecla para retornar o vídeo quando estiver pausado ( Padrão : Input::C )
        Play_Key = Input::C
       
        # Tecla para sair da execução do vídeo ( Padrão : Input::B) (Esc)
        Stop_Key = Input::B
       
        # Escrever ou não na tela do vídeo o texto de pause ( Padrão : true)
        Show_Pause_Text = true
       
        # Texto a ser exibido enquanto o vídeo estiver pausado
        Pause_Text = "-- Pausado -- Pressione Enter para Executar"
       
        # Propriedades da Fonte do Texto de Pause
        Pause_Text_Font = {
        "Cor" => Color.new(255,255,255) , # Branco
        "Negrito" => false ,        # C/ Negrito
        "Itálico" => true ,        # S/ itálico
        "Nome" => Font.default_name } # Fonte Padrão
       
        # Nome do som(SE) a ser tocado quando pressionar a tecla de pausar
        # o filme for pressionada
        Pause_Sound = 'Cursor' # No XP use : '001-System01'
        # Nome do som(SE) a ser tocado quando a tecla de executar o filme
        # for pressionada
        Play_Sound = 'Cursor'  # No vx use : '001-System01'
        # Nome do som(SE) a ser tocado quando a pressionar a tecla de sair
        # da execução do filme
        Stop_Sound = 'Cancel'  # No XP use : '003-System03'
       
        # Parar os sons do mapa(BGM,BGS,SE e ME) quando iniciar a execução do filme
        Stop_Map_Sounds = true
       
        #==========================================================================
        # ** Retornar as dimensões da janela de jogo,dependendo do RPGMaker usado
        #--------------------------------------------------------------------------
        def self.screen_dimensions
          if defined?($TEST)      # Se for o VX
            return [Graphics.width,Graphics.height]
          elsif defined?($DEBUG)  # Se for o XP
            return [640,480]
          end
        end
      end
      #============================================================================
      # ** Picture Video
      #----------------------------------------------------------------------------
      # Esta classe é usada para armazenar  os dados do vídeo de imagens.
      # Pode ser acessada usando $picture_video
      #============================================================================
      class Picture_Video
        # Variáveis de instancias com acesso de leitura e escrita permitidos :
        attr_accessor ( :auto_center,:can_pause,:can_stop,:dimensions,:frame,
                        :from_map,:path,:pictures_prefix,:playing,:max_frames,:x,:y )
        # Variáveis de Instancia com acesso somente de leitura.
        attr_reader  ( :play_speed , :music )
       
        #=========================================================================
        # ** Inicialização do Objeto
        #-------------------------------------------------------------------------
        def initialize
          @auto_center = true          # Auto centralizar a tela do vídeo na Janela
          @can_pause = true
          @can_stop = true
          @frame = 0
          @from_map = true
          @path = ""
          @pictures_prefix = ""
          @playing = false
          @play_speed = 20
          @max_frames = 0
          @music = ""
          @x = 0
          @y = 0
          @repeat = false
          @wait_count = 0
          @dimensions = [nil,nil]
        end
        #=========================================================================
        # ** Retorno do largura da tela de vídeo
        #-------------------------------------------------------------------------
        def screen_width
          return @dimensions[0].nil? ? 0 : @dimensions[0]
        end
        #=========================================================================
        # ** Retorno do altura da tela de vídeo
        #-------------------------------------------------------------------------
        def screen_height
          return @dimensions[1].nil? ? 0 : @dimensions[1]
        end
        #=========================================================================
        # ** Definir novas dimensões para a tela do vídeo
        #-------------------------------------------------------------------------
        def resize_screen(width,height)
          @dimensions[0] = width if ( @dimensions[0] != width )
          @dimensions[1] = height if ( @dimensions[1] != height )
        end
        #=========================================================================
        # ** Definição do novo arquivo de som
        #-------------------------------------------------------------------------
        def music=(sound)
          @music = sound
        end     
        #=========================================================================
        # ** Definição do velocidade de execução do vídeo
        #-------------------------------------------------------------------------
        def play_speed=(speed)
          return if @play_speed == speed
          @play_speed = speed.is_a?(String) ? return_play_speed(speed) : speed
        end
        #=========================================================================
        # ** Executar vídeo
        #-------------------------------------------------------------------------
        def play!
          if Rafidelis::Picture_Video_Conf::Stop_Map_Sounds
            Audio.bgm_stop
            Audio.bgs_stop
            Audio.me_stop
            Audio.se_stop
          end
          @playing = true
          Audio.bgm_play("Audio/BGM/#{@music}")
          $scene = Rafidelis::Scene_Picture_Video.new
        end
        #=========================================================================
        # ** Pausar Vídeo
        #-------------------------------------------------------------------------
        def pause!
          @playing = false
          Audio.bgm_stop
        end
        #=========================================================================
        # ** Parar Vídeo
        #-------------------------------------------------------------------------
        def stop!
          Audio.bgm_stop
          @playing = false
          @frame = 0
          Graphics.transition(10)
          $scene = Rafidelis::Picture_Video_Conf::Scene_When_Return.new
        end
        #=========================================================================
        # ** Verificação da flag de vídeo pausado
        #-------------------------------------------------------------------------
        def paused?
          return (not playing?)
        end
        #=========================================================================
        # ** Verificação da flag de vídeo sendo executado
        #-------------------------------------------------------------------------
        def playing?
          return @playing
        end
        #=========================================================================
        # ** Verificação da flag de vídeo finalizado
        #-------------------------------------------------------------------------
        def finished?
          return (@frame >= @max_frames)
        end
        #=========================================================================
        # ** Resetar as dimensoes da tela para o tamanho da imagem
        #-------------------------------------------------------------------------
        def reset_screen_dimensions!
          @dimensions = [nil,nil]
        end
        #=========================================================================
        # ** Atualização
        #-------------------------------------------------------------------------
        def update
          return if paused?
          # Se ainda não tiver chegado ao ultimo frame
          if ( @frame < @max_frames )
            if ( @wait_count < 100 )
              @wait_count += @play_speed
            else
              @wait_count = 0
              # Se estiver no ultimo frame
              if ( @frame >= @max_frames )
                @frame = 0 if @repeat
              else
                @frame += 1
              end
            end
          end
        end
        private        # Método Privado da classe
        #=========================================================================
        # ** Privado : Retornar velocidade de execução,através de uma string
        #-------------------------------------------------------------------------
        def return_play_speed(label)
          case label.downcase
          when "super slow","super lento","super devagar" ; 5
          when "slow","devagar","lento" ; 10
          when "normal" ; 20
          when "fast","rapido","rápido" ; 40
          when "super fast","super rapido","super rápido" ; 60
          else ; 20
          end
        end
      end
      #============================================================================
      # ** Sprite Picture Video
      #----------------------------------------------------------------------------
      # Esta classe é usada para criar os sprites durante a exibição dos vídeos
      # por pictures.
      #============================================================================
      class Sprite_Picture_Video < Sprite
        #=========================================================================
        # ** Inicialização do Objeto
        #-------------------------------------------------------------------------
        def initialize
          super()
          self.z = 999
          update
          @pause_sprite = Sprite.new
          @pause_sprite.bitmap = Bitmap.new(bitmap.width,bitmap.height)
          @pause_sprite.x = self.x
          @pause_sprite.y = self.y
          @pause_sprite.z = self.z + 10
        end
        #=========================================================================
        # ** Atualização
        #-------------------------------------------------------------------------
        def update
          if $picture_video.dimensions != @dimensions
            @dimensions = $picture_video.dimensions
          end
          if ($picture_video.frame != @frame)
            @frame = $picture_video.frame
            update_bitmap
          end
        end
        #=========================================================================
        # ** Exibição do Texto de Pause
        #-------------------------------------------------------------------------
        def draw_pause_text
          text = Rafidelis::Picture_Video_Conf::Pause_Text
          @pause_sprite.bitmap.clear
          font_size = ( @dimensions[0] <= 150 ? 14 : 17 )
          f = Rafidelis::Picture_Video_Conf::Pause_Text_Font
          self.bitmap.font.name = f["Nome"]
          @pause_sprite.bitmap.font.color = f["Cor"]
          @pause_sprite.bitmap.font.bold = f["Negrito"]
          @pause_sprite.bitmap.font.italic = f["Itálico"]
          @pause_sprite.bitmap.font.size = font_size
          @pause_sprite.bitmap.draw_text(0,0,bitmap.width,32,text,1)
        end   
        #=========================================================================
        # ** Deletar texto de Pause
        #-------------------------------------------------------------------------
        def erase_pause_text
          @pause_sprite.bitmap.clear
        end
        #=========================================================================
        # ** Atualização do Bitmap do Sprite
        #-------------------------------------------------------------------------
        def update_bitmap
          unless self.bitmap.nil?
            self.bitmap.dispose unless self.bitmap.disposed?
          end
          picture = ($picture_video.pictures_prefix + @frame.to_s)
          bitmap = Cache.load_bitmap($picture_video.path,picture)
          if @dimensions[0].nil?
            $picture_video.dimensions[0] = @dimensions[0] = bitmap.width
          end
          if @dimensions[1].nil?
            $picture_video.dimensions[1] = @dimensions[1] = bitmap.height
          end
          w,h = $picture_video.screen_width,$picture_video.screen_height
          self.bitmap = Bitmap.new(w,h)
          dest_rect = Rect.new(0,0,w,h)
          self.bitmap.stretch_blt(dest_rect, bitmap, bitmap.rect)
          # Se a opção de auto centralizar estiver ativa
          if $picture_video.auto_center
            # A picture é centralizada na tela
            w = Picture_Video_Conf.screen_dimensions[0]
            h = Picture_Video_Conf.screen_dimensions[1]
            self.x = ( w - self.bitmap.width ) / 2
            self.y = ( h - self.bitmap.height ) / 2
          else
            self.x = $picture_video.x
            self.y = $picture_video.y
          end
        end
      end
      #============================================================================
      # ** Scene Picture Video
      #----------------------------------------------------------------------------
      # Esta classe processa a execução dos vídeos por pictures.
      #============================================================================
      class Scene_Picture_Video
        include Rafidelis::Picture_Video_Conf
        #=========================================================================
        # ** Inicialização do Objeto
        #-------------------------------------------------------------------------
        def initialize
          @spriteset = Spriteset_Map.new if $picture_video.from_map
          @sprite_picture_video = Sprite_Picture_Video.new()
        end
        #=========================================================================
        # ** Processo Principal
        #-------------------------------------------------------------------------
        def main
          Graphics.transition(10)
          Input.update                  # Atualiza as informações inseridas
          loop do
            Graphics.update            # Atualiza os gráficos
            Input.update                # Atualiza as informações inseridas
            update                      # Atualização
            break if $scene != self    # Descontinuação do loop
          end
          Graphics.update
          Graphics.freeze              # Congelamento dos gráficos
          terminate                    # Fim
        end
        #=========================================================================
        # ** Atualização
        #-------------------------------------------------------------------------
        def update
          @sprite_picture_video.update
          $picture_video.update
          if $picture_video.playing?            # Se estiver sendo executando
            if Input.trigger?(Pause_Key) and $picture_video.can_pause
              Audio.se_play("Audio/SE/#{Pause_Sound}")
              $picture_video.pause!
            end
          elsif $picture_video.paused?          # Se estiver pausado
            @sprite_picture_video.draw_pause_text if Show_Pause_Text
            if Input.trigger?(Play_Key)
              @sprite_picture_video.erase_pause_text if Show_Pause_Text
              Audio.se_play("Audio/SE/#{Play_Sound}")
              Audio.bgm_play("Audio/BGM/#{$picture_video.music}")
              $picture_video.playing = true
            end
          end
          # Se for possivel parar o vídeo
          if Input.trigger?(Stop_Key) and $picture_video.can_stop
            @sprite_picture_video.erase_pause_text if Show_Pause_Text
            Audio.se_play("Audio/SE/#{Stop_Sound}")
            $picture_video.stop!
          end       
          # Se o vídeo tiver terminado
          if $picture_video.finished?
            time = Wait_Seconds_Before_Terminate * 60
            time.to_i.times {Graphics.update()}
            $picture_video.stop!
          end
        end
        #=========================================================================
        # ** Finalização
        #-------------------------------------------------------------------------
        def terminate
          @sprite_picture_video.dispose
        end
      end
    end
    #==============================================================================
    # Scene_Title
    #------------------------------------------------------------------------------
    # Classe das operações na tela de título.
    #==============================================================================
    class Scene_Title
      alias rafidelis_picture_video_main main
      #=========================================================================
      # ** Inicialização do Processo
      #-------------------------------------------------------------------------
      def main
        $picture_video = Rafidelis::Picture_Video.new
        rafidelis_picture_video_main
      end
    end


    Última edição por Cefr1000 em Sab Maio 07, 2011 5:22 pm, editado 2 vez(es)
    avatar
    Herbherth
    Iniciante
    Iniciante

    Mensagens : 1
    Créditos : 1
    Data de inscrição : 07/05/2011
    Idade : 106
    Localização : Planeta XK42

    Re: Video No rmxp!

    Mensagem  Herbherth em Sab Maio 07, 2011 2:01 pm

    o código da postagem está com defeito...
    ah, ta postagem, não do script

    está aparecendo os sizes e etc

    vou fazer um teste pra ver se é esse código que ta com defeito ou se foi só na postagem:

    texto no tamanho 24



    PS: acho que foi porque você colocou o "pt" após o número


    Última edição por Paione em Dom Maio 08, 2011 11:03 am, editado 1 vez(es) (Razão : Erros ortograficos)
    avatar
    Luitucaninho
    Moderador Global
    Moderador Global

    Mensagens : 5
    Créditos : 1000
    Data de inscrição : 08/05/2011
    Localização : Minha Casa :P

    Re: Video No rmxp!

    Mensagem  Luitucaninho em Dom Maio 08, 2011 2:44 pm

    Parece ser legal, quem sabe uso no meu projeto!
    avatar
    MimicKayo
    Iniciante
    Iniciante

    Mensagens : 37
    Créditos : 62
    Data de inscrição : 01/06/2011
    Idade : 20
    Localização : Minha casa

    Re: Video No rmxp!

    Mensagem  MimicKayo em Qui Ago 11, 2011 8:12 am

    Parece ser bem útil e legal.
    Mas por algum motivo,nunca vi esse sistema em um jogo de Rmvx ou Rmxp. . .
    É um script desconhecido ?

    Conteúdo patrocinado

    Re: Video No rmxp!

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Qua Nov 14, 2018 5:07 pm