文章を途中まで表示したところでSEを再生するようにしたいです。
現状だと移動ルートの設定で、ウェイトを入れたあとにSEを再生していますが、面倒が多く、また、プレイヤーが決定ボタンを押したりするとタイミングがずれるので制御文字でSEを入れれるようにしたいです。
お願いします。
【解決済み】文章内の特定位置でSEを再生するスクリプトを作ってもらえないでしょうか
【解決済み】文章内の特定位置でSEを再生するスクリプトを作ってもらえないでしょうか
最後に編集したユーザー ラビトム [ 2016年12月18日(日) 09:28 ], 累計 1 回
Re: 文章内の特定位置でSEを再生するスクリプトを作ってもらえないでしょうか
手元にあったのでとりあえず。使い方は文章中に\S[SE名, 音量, ピッチ] だったはずです。
\S[Fire1, 80, 100] とかですかね。
コード: 全て選択
# 作者: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[Fire1, 80, 100] とかですかね。
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
Re: 文章内の特定位置でSEを再生するスクリプトを作ってもらえないでしょうか
ありがとうございます。うまくいきました。お礼が遅くなってしまい申し訳ないです。