【解決済み】文章内の特定位置でSEを再生するスクリプトを作ってもらえないでしょうか

ラビトム
記事: 6
登録日時: 2016年12月16日(金) 04:31

【解決済み】文章内の特定位置でSEを再生するスクリプトを作ってもらえないでしょうか

投稿記事by ラビトム » 2016年12月16日(金) 04:49

文章を途中まで表示したところでSEを再生するようにしたいです。
現状だと移動ルートの設定で、ウェイトを入れたあとにSEを再生していますが、面倒が多く、また、プレイヤーが決定ボタンを押したりするとタイミングがずれるので制御文字でSEを入れれるようにしたいです。
お願いします。
最後に編集したユーザー ラビトム on 2016年12月18日(日) 09:28 [ 編集 1 回目 ]

faida
記事: 272
登録日時: 2015年12月17日(木) 16:44

Re: 文章内の特定位置でSEを再生するスクリプトを作ってもらえないでしょうか

投稿記事by faida » 2016年12月16日(金) 09:16

手元にあったのでとりあえず。

コード: 全て選択

# 作者:faida @faida3983

#==============================================================================
# ■ Window_Message
#==============================================================================

class Window_Message
  #--------------------------------------------------------------------------
  # ● 全ウィンドウの作成
  #--------------------------------------------------------------------------
  alias fai_nw_create_all_windows create_all_windows
  def create_all_windows
    fai_nw_create_all_windows
    @name_window = Window_Base.new(0, 0, 544, 48)
    @name_window.openness = 0
  end
  #--------------------------------------------------------------------------
  # ● 全ウィンドウの解放
  #--------------------------------------------------------------------------
  alias fai_nw_dispose_all_windows dispose_all_windows
  def dispose_all_windows
    fai_nw_dispose_all_windows
    @name_window.dispose
  end
  #--------------------------------------------------------------------------
  # ● 全ウィンドウの更新
  #--------------------------------------------------------------------------
  alias fai_nw_update_all_windows update_all_windows
  def update_all_windows
    fai_nw_update_all_windows
    @name_window.update
  end
  #--------------------------------------------------------------------------
  # ★ 特殊文字の変換
  #--------------------------------------------------------------------------
  alias fai_nw_convert_escape_characters convert_escape_characters
  def convert_escape_characters(text)
    @name_window.close if !text[/\\W\[(.+)\]/i]
    fai_nw_convert_escape_characters(text)
  end
  #--------------------------------------------------------------------------
  # ● 制御文字の処理
  #--------------------------------------------------------------------------
  alias fai_nw_process_escape_character process_escape_character
  def process_escape_character(code, text, pos)
    fai_nw_process_escape_character(code, text, pos)
    case code.upcase
    when 'S'
      c = text.slice!(/^(?:\[(.+?)\s*\,\s*(\d+)\s*\,\s*(\d+)])/)
      Audio.se_play("Audio/SE/" + $1, $2.to_i, $3.to_i)
    when 'W'
      c = text.slice!(/^(?:\[.+?\])/).gsub(/[\[\]]/){}
      @name_window.contents.clear; width = contents.text_size(c).width + 24
      @name_window.width = width; @name_window.create_contents
      @name_window.contents.draw_text(0,0, width, line_height, c)
      @name_window.open
    end
  end
  #--------------------------------------------------------------------------
  # ● ウィンドウ位置の更新
  #--------------------------------------------------------------------------
  alias fai_nw_update_placement update_placement
  def update_placement
    fai_nw_update_placement
    case @position
    when 0
      @name_window.y = self.height
    when 1
      @name_window.y = self.y - @name_window.height
    when 2
      @name_window.y = self.y - @name_window.height
    end
  end
  #--------------------------------------------------------------------------
  # ● ウィンドウを閉じ、完全に閉じるまで待つ
  #--------------------------------------------------------------------------
  alias fai_nw_close_and_wait close_and_wait
  def close_and_wait
    @name_window.close
    fai_nw_close_and_wait
  end
  #--------------------------------------------------------------------------
  # ● 全ウィンドウが完全に閉じているか判定
  #--------------------------------------------------------------------------
  alias fai_nw_all_close? all_close?
  def all_close?
    fai_nw_all_close? && @name_window.close?
  end
end
使い方は文章中に\S[SE名, 音量, ピッチ] だったはずです。
\S[Fire1, 80, 100] とかですかね。
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
ラビトム
記事: 6
登録日時: 2016年12月16日(金) 04:31

Re: 文章内の特定位置でSEを再生するスクリプトを作ってもらえないでしょうか

投稿記事by ラビトム » 2016年12月18日(日) 09:27

ありがとうございます。うまくいきました。お礼が遅くなってしまい申し訳ないです。

“VX / Ace:スクリプト素材のリクエスト” へ戻る