關於部落格
RPG製作大師XP腳本為主要更新

RPG製作大師VX腳本為其次更新

RPG製作大師VX_Ace目前不考慮

RPG製作大師MV腳本完全沒打算

留言完建議重新整理看看是否顯示

目前不處理本舖外腳本的相關問題

其他相關事項請觀看規定注意事項

本舖未來的經營計畫與VA的支援




var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-37462754-1']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

  • 308393

    累積人氣

  • 39

    今日人氣

    0

    追蹤人氣

【腳本】滾動字幕


使用方法
打開腳本編輯器,對腳本「Main」按下右鍵,選擇插入,會出現1個空白腳本
在空白腳本內貼上以下腳本:
RPG Maker XPRPG Maker VX 均可使用,但VX的使用者自定設置要做更改!! 

module Sword
  Sword28_Sudtitles = Array.new ; Sword28_Back = Array.new
#=======================================
#★ 魔劍工舖 - 滾動字幕 2.02
# 轉貼腳本請著名出處:http://blog.yam.com/a870053jjkj/
# 如果採用在遊戲中,看你高興是否顯示腳本出處,但嚴禁說是自己寫的腳本!!
#=======================================
#● 使用者自定設置
Sword28_XPVX = 0    # 此腳本用於XP時設為0;此腳本用在VX時設為1
Sword28_Speed = 1       # 字幕滾動的速度,數字越大越快,請勿輸入0
Sword28_Stop = 900     # 字幕滾動的時間,每40約為1秒(會受速度影響)
Sword28_Term = 1100  # 字幕結束的時間,每40約為1秒(會受速度影響)
Sword28_Shift = 0       # 設定字幕結束後回到的畫面,0為標題,1為地圖
Sword28_Input = 13      # 提早結束按鍵,0為不使用,可參考事件[按鍵輸入處理]
Sword28_Opacity = 10     # 設定切換背景圖時的每幀減少或增加的不透明度
#--------------------------------------------------------------
#○ 輪撥背景設置
# 設定要顯示的背景圖片,[]中的數字代表圖片顯示的順序,必須依照數字順序來編號
# 如果指定的背景圖檔案名稱為"",表示不顯示圖片,圖片請存在Panoramas資料夾中
Sword28_Back[1] = "005-Sunset01"
Sword28_Back[2] = "004-CloudySky01"
Sword28_Back[3] = "006-Mountains01"
Sword28_Back[4] = ""
#--------------------------------------------------------------
#○ 字幕內容設置
# 設定顯示的文字,[]中的數字表示行數,可自行增加 Sword28_Sudtitles[行數]
# 會先搜索該行顯示的內容是否在遊戲資料夾中的Pictures發現該內容名稱的圖片
# 如果有發現改為顯示那個圖片,沒發現則顯示內容(圖片名稱建議為英文或數字)
Sword28_Sudtitles[1] = "【遊戲作者】"
Sword28_Sudtitles[2] = "劍魔魂"
Sword28_Sudtitles[4] = "【腳本來源】"
Sword28_Sudtitles[5] = "魔劍工舖"
Sword28_Sudtitles[7] = "【特別感謝】"
Sword28_Sudtitles[8] = "RPG 製作大師 XP"
Sword28_Sudtitles[20] = "END"
=begin
========================================
● 設置方法
呼叫方法 : $scene = Sword_Subtitles.new
========================================
詳細設置說明請參考:http://blog.yam.com/a870053jjkj/article/23079054
=end
  $Sword ? $Sword[28] = 202 : $Sword = {28=>202} # 腳本使用標誌
end
#=======================================
#■ 滾動字幕窗口
class Sword_Wind_Holh < Window_Base
  include Sword # 連接自定設置
  #-------------------------------------------------------------
  #● 初始化物件
  def initialize
    high = Sword28_Sudtitles.size * 32 + 200 # 計算可顯示出所有字幕的高度
    super(0, 460, 640, high) ; self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #-------------------------------------------------------------
  #● 更新內容
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    y = 0 ; xpvx = Sword28_XPVX == 0 ? 320 : Graphics.width / 2
    #○ 循環產生窗口內容
    (0..Sword28_Sudtitles.size).each do |i| ; unless Sword28_Sudtitles[i] == nil
      if FileTest.exist?("Graphics/Pictures/#{Sword28_Sudtitles[i]}.png")
        b = Sword28_XPVX == 0 ?
        RPG::Cache.picture(Sword28_Sudtitles[i]) : Cache.picture(Sword28_Sudtitles[i])
        x = xpvx - (b.width / 2) - 16
        self.contents.blt(x, y, b, Rect.new(0, 0, 640, 480), 255)
      else
        x = xpvx - (contents.text_size(Sword28_Sudtitles[i]).width / 2) - 16
        self.contents.draw_text(x, y, 640, 32, Sword28_Sudtitles[i], 0)
      end
    end ; y += Sword28_XPVX == 0 ? 32 : 28 ; end
  end
end
#=======================================
#■ 滾動字幕畫面
class Sword_Subtitles
  include Sword  # 連接自定設置
  #-------------------------------------------------------------
  #● 主處理
  def main
    @holh_window = Sword_Wind_Holh.new # 產生滾動字幕窗口
    @holh_window.opacity = 0
    unless Sword28_Back[1] == nil
      logo = Sprite.new
      unless Sword28_Back[1] == ""
        xpvx = Sword28_XPVX == 0 ? 'Panoramas' : 'Parallaxes'
        logo.bitmap = Bitmap.new("Graphics/#{xpvx}/#{Sword28_Back[1]}")
      end
      b = Sword28_Term / (Sword28_Back.size - 1)
      d = b
    end
    Graphics.transition
    a = 0 ; c = 0 ; e = 1 ; f = false
    loop do
      Graphics.update
      a += Sword28_Speed ; c += Sword28_Speed
      # 背景圖更換
      b == nil ? b = -100 : 0
      if b <= c and b != -100
        f ? 0 : logo.opacity -= Sword28_Opacity
        if logo.opacity <= 0
          f = true ; e += 1
          logo.bitmap ? logo.bitmap.dispose : 0
          unless Sword28_Back[e] == ""
            logo.bitmap = Bitmap.new("Graphics/#{xpvx}/"+ Sword28_Back[e])
          end
          b += d
        end
      end
      unless b == -100
        f ? logo.opacity += Sword28_Opacity : 0
        logo.opacity >= 255 ? f = false : 0
      end
      @holh_window.y -= Sword28_Speed if a <= Sword28_Stop # 減少Y座標
      $scene = Sword28_Shift == 0 ? Scene_Title.new : $scene = Scene_Map.new if
      a >= Sword28_Term # 時間到時回到指定畫面
      # 按下制定按鈕時回到指定畫面
      Input.update
      unless Sword28_Input == 0 ; if  Input.trigger?(Sword28_Input)
        $scene = Sword28_Shift == 0 ? Scene_Title.new : $scene = Scene_Map.new
      end ; end
      break if $scene != self
    end
    Graphics.freeze
    @holh_window.dispose
    (logo.bitmap.dispose ; logo.dispose) unless Sword28_Back[1] == nil
    # 轉移到標題畫面時的淡入淡出效果
    if $scene.is_a?(Scene_Title)
      Graphics.transition
      Graphics.freeze
    end
  end
end

 
 
呼叫方法
可以使用事件中設置以下內容來進行呼叫
演奏 BGM:'015-Theme04', 100, 100 #演奏字幕的音樂
腳本:$scene = Sword_Subtitles.new
◆等待:1 畫格
#防止顯示不出來的情況(可不加)
 
 
使用者自定設置說明
Sword28_XPVX = 0 NEW
如果你是使用RPG製作大師XP(RPG Maker XP),這個就要設成0
如果你是使用RPG製作大師VX(RPG Maker VX),這個就要設成1
因為XP和VX的預設腳本有些不一樣,可能有窗口大小或是位置不對、某些功能會無效
還會有發生錯誤的情況,可由此設置來自動更改適合的腳本進行運行!!
 
Sword28_Speed = 1
設定滾動字幕的速度,嚴格來說是每幀(40幀約為1秒)移動1像素
所以設成2,就表示每幀移動2像素的意思
請勿輸入0,畢竟每幀移動0像素跟沒移動是一樣的,可能會卡死
 
Sword28_Stop = 900
這裡是設定當滾動字幕移動了特定的像素之後,會停止滾動的效果
所以輸入900就表示字已經滾動了900像素以上的距離後停止滾動
由於是判定移動了多少,所以會受到Sword28_Speed的設置的影響
通常滾動時間計算是: Sword28_Stop ÷ Sword28_Speed = 實際幀數
XP每40幀約為1秒(平滑)而VX每60幀約為1秒
如果不想要此效果,可以把這個數值設置的比Sword28_Speed還大即可
 
Sword28_Term = 1100
這裡是設定當滾動字幕移動了特定的像素之後,會結束滾動畫面的效果
所以輸入1100就表示字已經滾動了1100像素以上的距離後結束滾動字幕畫面
由於是判定移動了多少,所以會受到Sword28_Speed的設置的影響
要判斷正確的時間方式,請參考Sword28_Stop設置的內容
 
Sword28_Shift = 0
這裡設定當滾動畫面結束之時,將畫面轉移到得位置
0為遊戲一打開會出現的標題畫面,1為回到地圖繼續遊戲
 
Sword28_Input = 13
不是所有的玩家都會有耐心的把字幕給看完
可以設個按鍵給不想看字幕的玩家,按一下按鍵之後結束掉滾動字幕畫面
如果此設置輸入0表示不使用,按鍵的設置可以參考事件 [按鍵輸入的處理]
2:下鍵
4:左鍵
6:右鍵
8:上鍵
11:Shift、Z鍵
12:Esc、Num 0、X鍵
13:空白、Enter、C鍵
14:A鍵
15:S鍵
16:D鍵
17:Q、Pageup鍵
18:W、Pagedown鍵

 
Sword28_Opacity = 10
設定在背景圖片要切換時,每幀增加或減少背景圖片的不透明度的數目
簡單來說此設定就是設定切換圖片的速度,1為最慢,255為最快
 
Sword28_Back[編號] = "背景圖片檔案名稱"
設定要顯示的背景圖片,編號從1開始依照數字順序編號下去
所以要顯示多張背景圖片,可以自行新增Sword28_Back設置
圖片設置的越多,則背景圖的切換就會越快
通常是依照Sword28_Term設置的數值除此設置的數量為單張背景顯示的時間
通常背景圖片請存在:你的遊戲資料夾名稱GraphicsPanoramas
 
Sword28_Sudtitles[行數] = "文字內容"
設定滾動字幕顯示的文字或圖片,文字內容要被"符號包圍住才算成立
而行數請設定顯示在第幾行,如果行數一樣,將由下面的取代上面的內容
在系統設置滾動字幕窗口時,會先檢查看看路徑:你的遊戲資料夾名稱GraphicsPictures
如果有發現和文字內容一樣的檔案名稱的png圖片時,則此行視同顯示那個圖片
如果沒找到和文字內容一樣的檔案名稱的png圖片時,則此行是同顯示文字內容
範例:Sword28_Sudtitles[5] = "123"
如果指定資料夾中沒有檔案名稱為123的png圖片之時
就表示第5行的內容為 123 ,其他的依此類推
如果有在指定的資料夾找到和文字內容一樣的檔案名稱的png圖片時
就表示在第5行中顯示那個圖片
可以自行新增多個Sword28_Sudtitles設置來增加內容
如果有沒設置的行數視同那行為空白
如果還是不了解,詳細可以看下面的範例下載
 
 
範例下載
下載連接:檔案大小:256 KB檔案類型:RAR(內為RMXP遊戲壓縮安裝檔)
☆範例中的腳本版本為未標示實際版本的腳本,基本上不是最新的腳本就是了
☆yam天空部落空間,檔案名稱有被轉過
☆本人掃毒程式不是說很好,雖然目前沒看出什麼中毒跡象,但下載前建議先用掃毒程式查毒
☆範例中包含1張範例圖片(用於顯示END)
相簿設定
標籤設定
相簿狀態