¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 3930 miembros registrados.
El último usuario registrado es LKendo.

Nuestros miembros han publicado un total de 83410 mensajes en 11867 argumentos.
Navega con Google Chrome
[DESCARGA]

[RMXP] Un Posible Script de Audio Loop

 :: RPG Maker :: Ayuda RPG

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP [RMXP] Un Posible Script de Audio Loop

Mensaje por AsFzKakarotto el 2017-06-12, 21:47

Hola amigos de Mundo Maker.
Cavando en lo mas profundo del internet, en los proyectos de Rpg maker XP Orientales… he encontrado este script… quizás sea difícil de entender ¿no?.
Y no es por ello que me ha llevado a pedir vuestra ayuda jajajaja por que de seguro que si fuera por todos los script que he encontrado, estaría lleno de mis mensajes xd.
La cosa es que este script  se parece a uno que lo he soñado en años por su real existencia, ya que de todos los inconvenientes que tiene RMXP el sistema de loopeo en un audio de formato [.Ogg] es lo que más me dolió que no tuviera ( Igual te adoro XP ).
Eh encontrado en algunos post ya pasados, algunas soluciones…
Ejemplo el script Audio_Loop que viene junto al de Audio_Player ,digamos que es un proyecto que nos permite crear un script para que nuestros audios personalizados se repitan constantemente de un punto a otro.
La idea fue genial pero tiene 2 inconvenientes…
1• No se puede minimizar la ventana del juego o la música se detiene.
2• Dentro de la unión entre un punto y otro existe un pequeño tiempo
 de silencio muy molestos y sin solución (esto no me agrado mucho).
Aun así es una de las pequeñas soluciones que agradezco como a muchos.

Y la otra magnifica solución fue el Rpg maker XP con el sistema de script transformado a VX, que si no me equivoco lo hizo el gran wecoc.
Este ultimo me gusto bastante ya que tiene dicho sistema y funciona como yo lo he deseado, pero resulta que ese método no funciona más a la hora de que el proyecto es comprimido, ya sea por el mismo rpg o con otros programas, el objetivo es igual. Y además aun desconozco si es compatible con los script de Rpg maker XP, ya que como se ha transformado a VX, creo que no funcionan o tal vez si, en conclusión no me he fijado bien… así que no lo confirmo.

Ya… me dejo de mensajes largos y aquí dejo el script (es que quería explicarme):

Código:
#==============================================================================
# ■ BGMモジュール Ver.0.0.1
#------------------------------------------------------------------------------
#  BGM用音楽制御モジュール。
#   使用方法は各関数の説明を参照してください。
#------------------------------------------------------------------------------
# このモジュールを使用する場合はRattiE氏の EasyConv を導入しておいてください
#  → MoonlightINN(http://cgi.members.interq.or.jp/aquarius/rasetsu/)
#     → EasyConv は↓こちら
# http://cgi.members.interq.or.jp/aquarius/rasetsu/MoonlightINN/trash/tkoolxp.html
#
# このモジュールを使用する場合は ツクールXPのRTP を最新にアップデート
# しておいてください。(要:RGSS102J.dll)
#------------------------------------------------------------------------------
# by 和希
#------------------------------------------------------------------------------
# 2005/11/26 v0.0.1 初出。
#==============================================================================
module Bgm

  BGM_ALIAS = "bgm" # xpbgmBGMのエイリアス名(MCIの識別名)
  LOOP_CHECK_TIMING = 0.01  # ループ再生監視の頻度[秒] (実際はこれより遅くなる)
  @@filename  = nil   # 現在開いているファイル名
  @@stop_req  = false # 停止要求フラグ
  @@loop_thread = nil # ループ再生監視スレッド

  #--------------------------------------------------------------------------
  # このメソッドは内部用です!
  #--------------------------------------------------------------------------
  # ○ MCIにコマンド文字列を送信する
  #    command : コマンド文字列
  #    buffer  : MCIからの返事を格納するバッファ
  #    buf_len : bufferのサイズ
  #    hwnd    : RGSSからだと基本的に使わない
  #--------------------------------------------------------------------------
  def self.mciSendString( command, buffer=nil, buf_len=0, hwnd=0 )
    mci = Win32API.new('winmm.dll', 'mciSendStringA', %w(p p l l), 'l')

    ret = mci.call( EasyConv::u2s(command), buffer, buf_len, hwnd )
    if buffer != nil
      buffer.gsub!(/\A(.*)\Z/){ EasyConv::s2u( $1 ) }
    end
    return ret
  end

  #--------------------------------------------------------------------------
  # ● 再生する
  #--------------------------------------------------------------------------
  #    filename : 再生するファイル
  #    pos      : 再生開始場所(省略した場合はそのまま開始)
  #--------------------------------------------------------------------------
  def self.play(filename, pos=nil)
    if @@filename.nil? or @@filename != filename
      if not @@filename.nil?
        # @@filename が nil 以外なら別のファイルオープン中
        close # 強制再生中断&ファイルクローズ
      end
      # ファイルオープン ret==0 なら成功
      ret = mciSendString("open \"#{filename.to_s}\" alias #{BGM_ALIAS}")
      if ret == 0
        # ファイルオープン成功
        @@filename = filename.dup
      end
    end
    @@stop_req = false
    # ファイルオープン状態なら再生開始
    if not @@filename.nil?
      # 再生開始位置が設定されていた場合は、そこから再開する
      if not pos.nil?
        seek(pos)
      end
      mciSendString("play #{BGM_ALIAS}")
      # ループ再生監視スレッドの開始
      @@loop_thread = Thread.new do
        while !(@@filename.nil?) and !@@stop_req
          sleep(LOOP_CHECK_TIMING) # 待機する
          # MCIに再生状態を問い合わせる
          buffer = "\0" * 256 # 256バイト
          mciSendString("status #{BGM_ALIAS} mode", buffer, 255)
          buffer.delete!("\0")
          if (buffer != "playing") and !@@stop_req
            # 再生していない場合は先頭に移動して再生
            mciSendString("seek #{BGM_ALIAS} to 0")
            mciSendString("play #{BGM_ALIAS}")
          end
        end
        @@loop_thread = nil
      end # ループ再生監視スレッド、ここまで
    end
  end

  #--------------------------------------------------------------------------
  # ● 停止する
  #--------------------------------------------------------------------------
  def self.stop
    if not @@filename.nil?
      # ファイルを開いている場合は停止して先頭に戻す
      @@stop_req = true
      mciSendString("stop #{BGM_ALIAS}")
      mciSendString("seek #{BGM_ALIAS} to 0")
    end
  end

  #--------------------------------------------------------------------------
  # ● 一時停止する
  #--------------------------------------------------------------------------
  def self.pause
    if not @@filename.nil?
      # ファイルを開いている場合は一時停止する
      @@stop_req = true
      mciSendString("pause #{BGM_ALIAS}")
    end
  end

  #--------------------------------------------------------------------------
  # ● 一時停止を解除する
  #--------------------------------------------------------------------------
  def self.resume
    if not @@filename.nil?
      # ファイルを開いている場合は一時停止を解除する
      mciSendString("resume #{BGM_ALIAS}")
      @@stop_req = false
      # ループ再生監視スレッドの開始
      @@loop_thread = Thread.new do
        while !(@@filename.nil?) and !@@stop_req
          sleep(LOOP_CHECK_TIMING) # 待機する
          # MCIに再生状態を問い合わせる
          buffer = "\0" * 256 # 256バイト
          mciSendString("status #{BGM_ALIAS} mode", buffer, 255)
          buffer.delete!("\0")
          if (buffer != "playing") and !@@stop_req
            # 再生していない場合は先頭に移動して再生
            mciSendString("seek #{BGM_ALIAS} to 0")
            mciSendString("play #{BGM_ALIAS}")
          end
        end
        @@loop_thread = nil
      end # ループ再生監視スレッド、ここまで
    end
  end

  #--------------------------------------------------------------------------
  # ● 現在位置を取得する
  #--------------------------------------------------------------------------
  #    ファイルを開いていない場合は nil 、それ以外は位置を整数で返す
  #--------------------------------------------------------------------------
  def self.position
    if not @@filename.nil?
      # ファイルを開いている場合は現在位置を取得する
      buffer = "\0" * 256 # 256バイト
      mciSendString("status #{BGM_ALIAS} position", buffer, 255)
      buffer.delete!("\0")
      return buffer.to_i
    end
    return nil # ファイルを開いていない場合は nil を返す
  end

  #--------------------------------------------------------------------------
  # ● 現在位置を設定する
  #--------------------------------------------------------------------------
  #    pos : 指定位置
  #--------------------------------------------------------------------------
  def self.seek(pos)
    if not @@filename.nil?
      # ファイルを開いている場合は指定位置(pos)に移動させる
      @@stop_req = true
      mciSendString("seek #{BGM_ALIAS} to #{pos.to_s}")
    end
  end

  #--------------------------------------------------------------------------
  # ● 開いているファイルを閉じる
  #--------------------------------------------------------------------------
  def self.close
    if not @@filename.nil?
      # ファイルを開いている場合は停止する
      stop
      # そして閉じる
      @@filename = nil
      mciSendString("close #{BGM_ALIAS}")
    end
  end
end

No se lo que es, no se como funciona y no se como llamarlo, pero según como he leído algo, no estoy seguro pero permite realizar acciones con los audios de BGM y dentro de los comandos está el deseado LOOP, por eso me gustaría saber en manos de expertos o aficionados ¿Que demonios hace el script y como llamar sus comandos?.
Nota: lo he pegado en el maker y no ocurre nada, tampoco hay errores.
En el script se menciona algo de “EasyConv” si es un script de requerimiento aquí esta:

Código:
#==============================================================================
# ■ EasyConv module - Ver 0.91
#------------------------------------------------------------------------------
#  文字コード簡易変換モジュール。
#   コードは「Dante98とかのページ」に掲載されたものを流用しています。
#------------------------------------------------------------------------------
# 注意!).当モジュールに関するバグ報告、質問等は「Dante98とかのページ」
# 管理人の郵便はみがき氏ではなく、下記の連絡先までお願いします。
#------------------------------------------------------------------------------
# HP  :Moonlight INN
# URL:http://cgi.members.interq.or.jp/aquarius/rasetsu/
# 管理人:RaTTiE
# e-mail:rasetsu@aquarius.interq.or.jp
#--- 簡易リファレンス ---------------------------------------------------------
# EasyConv::s2u(text) : S-JIS -> UTF-8
# EasyConv::u2s(text) : UTF-8 -> S-JIS
#==============================================================================

module EasyConv
  
  # API用定数定義
  
  CP_ACP = 0
  CP_UTF8 = 65001
  
  #--------------------------------------------------------------------------
  # ● S-JIS -> UTF-8
  #--------------------------------------------------------------------------
  def s2u(text)
  # API定義
    m2w = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
    w2m = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')

  # S-JIS -> Unicode
    len = m2w.call(CP_ACP, 0, text, -1, nil, 0);
    buf = "\0" * (len*2)
    m2w.call(CP_ACP, 0, text, -1, buf, buf.size/2);

  # Unicode -> UTF-8
    len = w2m.call(CP_UTF8, 0, buf, -1, nil, 0, nil, nil) - 1;
    ret = "\0" * len
    w2m.call(CP_UTF8, 0, buf, -1, ret, ret.size, nil, nil);
    
    return ret
  end
  # module_functionとして公開
  module_function :s2u
  #--------------------------------------------------------------------------
  # ● UTF-8 -> S-JIS
  #--------------------------------------------------------------------------
  def u2s(text)
  # API定義
    m2w = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
    w2m = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')

  # UTF-8 -> Unicode
    len = m2w.call(CP_UTF8, 0, text, -1, nil, 0);
    buf = "\0" * (len*2)
    m2w.call(CP_UTF8, 0, text, -1, buf, buf.size/2);

  # Unicode -> S-JIS
    len = w2m.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil) - 1;
    ret = "\0" * len
    w2m.call(CP_ACP, 0, buf, -1, ret, ret.size, nil, nil);

    return ret
  end
  # module_functionとして公開
  module_function :u2s
end

Pero consecuentemente no creo que el sistema lo necesite o tenga algo que ver, lo dejo por si a caso.
avatar
AsFzKakarotto
Iniciado
Iniciado

0/3

Créditos 49

Gracias : 5

Volver arriba Ir abajo

RPG Maker XP Re: [RMXP] Un Posible Script de Audio Loop

Mensaje por BreinLand entertainment el 2017-06-18, 19:21

Te dejo la traducción de los scripts que has puesto, que supongo que explicará que hacen:

Código:

#==============================================================================
# ■ Módulo BGM Ver.0.0.1
#------------------------------------------------------------------------------
#  Módulo de control de la música del BGM.
#  Para su forma de uso, diríjase a la descripción de cada función.
#------------------------------------------------------------------------------
#  Si desea utilizar este módulo tenga encima el script "EasyConv" del Sr. Rattie
#  → MoonlightINN(http://cgi.members.interq.or.jp/aquarius/rasetsu/)
#    → EasyConv está aquí ↓
# http://cgi.members.interq.or.jp/aquarius/rasetsu/MoonlightINN/trash/tkoolxp.html
#
# Actualize a la última versión del RTP de Maker XP si desea utilizar este módulo
# #Debe tener (En: RGSS102J.dll)
#------------------------------------------------------------------------------
# by Kazuki
# Traducción cutre: Izheil
#------------------------------------------------------------------------------
# 2005/11/26 v0.0.1 Primera versión
#==============================================================================
module Bgm

  BGM_ALIAS = "bgm" # xpbgmBGM -> El nombre del BGM (nombre diferente del MCI)
  LOOP_CHECK_TIMING = 0.01  # Frecuencia de fps del loop [s] (en realidad va más lento que esto)
  @@filename  = nil  # Nombre de archivo que está abierto en el momento
  @@stop_req  = false # Indicador de petición de parada
  @@loop_thread = nil # Hilo del loop

  #--------------------------------------------------------------------------
  # Este método es para uso interno del script!
  #--------------------------------------------------------------------------
  # ○ Para enviar una cadena de comandos al MCI
  #    command : Cadena de comandos
  #    buffer  : buffer para almacenar la respuesta del MCI
  #    buf_len : tamaño del buffer (longitud/length)
  #    hwnd    : RGSS no se utiliza
  #--------------------------------------------------------------------------
  def self.mciSendString( command, buffer=nil, buf_len=0, hwnd=0 )
    mci = Win32API.new('winmm.dll', 'mciSendStringA', %w(p p l l), 'l')

    ret = mci.call( EasyConv::u2s(command), buffer, buf_len, hwnd )
    if buffer != nil
      buffer.gsub!(/\A(.*)\Z/){ EasyConv::s2u( $1 ) }
    end
    return ret
  end

  #--------------------------------------------------------------------------
  # ● Reproducir
  #--------------------------------------------------------------------------
  #    filename : Archivo que desea reproducir
  #    pos      : Posición del inicio de reproducción (desde el inicio si se omite)
  #--------------------------------------------------------------------------
  def self.play(filename, pos=nil)
    if @@filename.nil? or @@filename != filename
      if not @@filename.nil?
        # Si @@filename no es nulo otro archivo está siendo abierto
        close # Interrumpte la reproducción forzada y cierra el archivo
      end
      # Éxito si el archivo abierto ret == 0
      ret = mciSendString("open \"#{filename.to_s}\" alias #{BGM_ALIAS}")
      if ret == 0
        # Éxito en la apertura del archivo
        @@filename = filename.dup
      end
    end
    @@stop_req = false
    # Empieza el playback si el archivo está abierto
    if not @@filename.nil?
      # Si la posición del inicio del playback ha sido definida, empezar desde ahí.
      if not pos.nil?
        seek(pos)
      end
      mciSendString("play #{BGM_ALIAS}")
      # Empezar el hilo de monitoreo del loop
      @@loop_thread = Thread.new do
        while !(@@filename.nil?) and !@@stop_req
          sleep(LOOP_CHECK_TIMING) # Standby
          # Poner en cola el MCI según el estado del playback
          buffer = "\0" * 256 # 256バイト
          mciSendString("status #{BGM_ALIAS} mode", buffer, 255)
          buffer.delete!("\0")
          if (buffer != "playing") and !@@stop_req
            # Si no está reproduciéndose, vuelve al inicio y empieza a reproducir
            mciSendString("seek #{BGM_ALIAS} to 0")
            mciSendString("play #{BGM_ALIAS}")
          end
        end
        @@loop_thread = nil
      end # Aquí acaba el hilo de monitoreo del playback
    end
  end

  #--------------------------------------------------------------------------
  # ● Stop
  #--------------------------------------------------------------------------
  def self.stop
    if not @@filename.nil?
      # Si el archivo está abierto, se para y se reinicia
      @@stop_req = true
      mciSendString("stop #{BGM_ALIAS}")
      mciSendString("seek #{BGM_ALIAS} to 0")
    end
  end

  #--------------------------------------------------------------------------
  # ● 一Para parar
  #--------------------------------------------------------------------------
  def self.pause
    if not @@filename.nil?
      # Pausar si el archivo está abierto
      @@stop_req = true
      mciSendString("pause #{BGM_ALIAS}")
    end
  end

  #--------------------------------------------------------------------------
  # ● 一Liberar el tiempo de parada
  #--------------------------------------------------------------------------
  def self.resume
    if not @@filename.nil?
      #Si el archivo está abierto, cancelar la pausa
      mciSendString("resume #{BGM_ALIAS}")
      @@stop_req = false
      # Empezar el hilo de monitoreo del loop
      @@loop_thread = Thread.new do
        while !(@@filename.nil?) and !@@stop_req
          sleep(LOOP_CHECK_TIMING) # Stand by
          # Poner en cola el MCI según el estado del playback
          buffer = "\0" * 256 # 256バイト
          mciSendString("status #{BGM_ALIAS} mode", buffer, 255)
          buffer.delete!("\0")
          if (buffer != "playing") and !@@stop_req
            # Si no se está reproduciendo, volver al inicio y empezar a reproducir
            mciSendString("seek #{BGM_ALIAS} to 0")
            mciSendString("play #{BGM_ALIAS}")
          end
        end
        @@loop_thread = nil
      end # Aquí acaba el hilo de monitoreo del loop hasta ahora
    end
  end

  #--------------------------------------------------------------------------
  # ● Adquirir posición actual
  #--------------------------------------------------------------------------
  #    Nil si el archivo no está abierto, de lo contrario devolver la posición con un número
  #--------------------------------------------------------------------------
  def self.position
    if not @@filename.nil?
      # Si el archivo está abierto obtener la posición actual
      buffer = "\0" * 256 # 256バイト
      mciSendString("status #{BGM_ALIAS} position", buffer, 255)
      buffer.delete!("\0")
      return buffer.to_i
    end
    return nil # Devolver nil si el archivo no está abierto
  end

  #--------------------------------------------------------------------------
  # ● Definir la posición actual
  #--------------------------------------------------------------------------
  #    pos : Posición especificada
  #--------------------------------------------------------------------------
  def self.seek(pos)
    if not @@filename.nil?
      # Moverse a la posición especificada (pos) cuando el archivo está abierto
      @@stop_req = true
      mciSendString("seek #{BGM_ALIAS} to #{pos.to_s}")
    end
  end

  #--------------------------------------------------------------------------
  # ● Cerrar el archivo abierto
  #--------------------------------------------------------------------------
  def self.close
    if not @@filename.nil?
      # Parar si el archivo está abierto
      stop
      # Cerrar
      @@filename = nil
      mciSendString("close #{BGM_ALIAS}")
    end
  end
end

Código:

#==============================================================================
# ■ Módulo EasyConv  - Ver 0.91
#------------------------------------------------------------------------------
#  Módulo de conversión simple de caracteres.
#  El código ha sido hecho con la ayuda de algunos post de Dante98 entre otros.
#------------------------------------------------------------------------------
# ¡Precaución! Para reportes de fallos, preguntas, etc. en este módulo, diríjase a "Dante98 y
# otras páginas"
# Si el creador del post no es Mr. Miyagaki, por favor, diríjase al siguiente contacto.
#------------------------------------------------------------------------------
# HP  :Moonlight INN
# URL:http://cgi.members.interq.or.jp/aquarius/rasetsu/
# Creador:RaTTiE
# e-mail:rasetsu@aquarius.interq.or.jp
#--- Referencia simple ---------------------------------------------------------
# EasyConv::s2u(text) : S-JIS -> UTF-8
# EasyConv::u2s(text) : UTF-8 -> S-JIS
#==============================================================================

module EasyConv
 
  # Definición constante API
 
  CP_ACP = 0
  CP_UTF8 = 65001
 
  #--------------------------------------------------------------------------
  # ● S-JIS -> UTF-8
  #--------------------------------------------------------------------------
  def s2u(text)
  # Definición de API
    m2w = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
    w2m = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')

  # S-JIS -> Unicode
    len = m2w.call(CP_ACP, 0, text, -1, nil, 0);
    buf = "\0" * (len*2)
    m2w.call(CP_ACP, 0, text, -1, buf, buf.size/2);

  # Unicode -> UTF-8
    len = w2m.call(CP_UTF8, 0, buf, -1, nil, 0, nil, nil) - 1;
    ret = "\0" * len
    w2m.call(CP_UTF8, 0, buf, -1, ret, ret.size, nil, nil);
   
    return ret
  end
  # module_functionとして公開
  module_function :s2u
  #--------------------------------------------------------------------------
  # ● UTF-8 -> S-JIS
  #--------------------------------------------------------------------------
  def u2s(text)
  # Definición de API
    m2w = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
    w2m = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')

  # UTF-8 -> Unicode
    len = m2w.call(CP_UTF8, 0, text, -1, nil, 0);
    buf = "\0" * (len*2)
    m2w.call(CP_UTF8, 0, text, -1, buf, buf.size/2);

  # Unicode -> S-JIS
    len = w2m.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil) - 1;
    ret = "\0" * len
    w2m.call(CP_ACP, 0, buf, -1, ret, ret.size, nil, nil);

    return ret
  end
  # Publicado como module_function
  module_function :u2s
end

Así que... por lo que entiendo, el script importante es el primero, y las líneas que te interesan deben ser estas:

Código:
 
  BGM_ALIAS = "bgm" # xpbgmBGM -> El alias del BGM (nombre diferente del MCI)
  LOOP_CHECK_TIMING = 0.01  # Frecuencia de fps del loop [s] (en realidad va más lento que esto)
  @@filename  = nil  # Nombre de archivo que está abierto en el momento
  @@stop_req  = false # Indicador de petición de parada
  @@loop_thread = nil # Hilo del loop

 #    filename : Archivo que desea reproducir
  #    pos      : Posición del inicio de reproducción (desde el inicio si se omite)

Intenta hacer llamadas de script con lo de @@filename y @@loop_thread, porque el script en sí... no parece dar muchas explicaciones.

En loop thread no se si se refiere al número de loops que quieres hacer o algo (con que pongas 999, o hasta el infinito y más allá... creo que debería ser suficiente)
avatar
BreinLand entertainment
Soñador
Soñador

0/3

Créditos 159

Gracias : 33

http://breinland.tk/

Volver arriba Ir abajo

RPG Maker XP Re: [RMXP] Un Posible Script de Audio Loop

Mensaje por Wecoc el 2017-06-18, 20:08

Voy a soltar éste post aquí: Script de música y Audio
Han salido varios scripts de Audio para RPG maker que dan nuevas funcionalidades y arreglan ese tipo de problemas, puesto que el sistema de Audio por defecto del maker es muy limitado. En ese post comenté tres de los más conocidos.

También se habló hace un tiempo de SoLoud, una nueva librería de audio que tiene una API para RPG maker y que en principio soluciona ese tipo de problemas, pero no sé como se usa, la verdad... no he llegado a investigarlo a fondo aún. Lo probaré, si resulta ser una mina de oro ya haré un tutorial de uso.

Edito: Lo he probado y no puede usarse con RPG maker XP porque requiere de muchos módulos solo disponibles en versiones más recientes de Ruby. Según parece SoLoud solo es usable en RPG maker VX Ace y quizá RPG maker XP Ace (Kiss Tutorial). Lástima, porque prometía bastante. Para poder usarlo habría que hacer un script completamente distinto al wrapper para Ruby que da el programa, o bien lograr hacer un script de compatibilidad a parte, con integración de DL, Mutex, Fiber, EM y algunas clases más.

Me han comentado que Pokessentials tiene un módulo interesante de Audio también, así que seguramente valga la pena tirar por ahí.

AsdfKakaroto escribió:Y la otra magnifica solución fue el Rpg maker XP con el sistema de script transformado a VX, que si no me equivoco lo hizo el gran wecoc.
No me queda claro a qué te refieres exactamente. Yo el Audio Module apenas lo he tocado puesto que es un tema que se me escapa de las manos, solo lo intenté adaptar (sin buen resultado) cuando intenté recrear el sistema iMuse.
avatar
Wecoc
Administrador
Administrador



Créditos 8988

Gracias : 442

Volver arriba Ir abajo

RPG Maker XP Re: [RMXP] Un Posible Script de Audio Loop

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Ayuda RPG

Permisos de este foro:
No puedes responder a temas en este foro.