你最喜歡.最常使用.最擅長的RPG製作大師版本是哪個呢?快來哈啦板板面投票吧!
LV. 6
GP 3

【教學】新手適用!詳細圖解更改標題畫面

樓主 蒼黎 snowjuice
GP83 BP-
各位好!為了使新手也能快速的讓自己的遊戲畫面能夠提升品質,
特此整理了一般常見的更改標題的方式,包含了以下內容:
●更改選項文字
●調整選項框大小
●移動選項位置
●增加選項(進入特殊功能地圖、顯示說明圖片)
●選項框透明化
教學內容以圖片方式呈現,相信會使新手們更清楚了解需要更改的地方,
也請各位不吝指教!

一、視窗規格
先來認識一下視窗的規格:
RPG Maker XP 的視窗大小為 640×480 ,
如果對它的大小有所掌握的話,相信在排版方面會有極大的幫助。(特別是選單的部分)
 
二、更改標題文字
在劇本編輯器裡,可以找到Scene_Title,並在第37行可以找到:
將這個部分改成自己所期望的文字就可以了。
 
三、移動選項位置
再看到第42行,這就是選項框的位置。
其中的X座標還減掉了選項框寬的一半,這是為了決定正中央的位置。
圖解:
四、更改大小
如果文字過長的話,可能就會有下列情形:
← 字被擠壓了
這時候就可以在以下位置更改選項框的寬度:
更改後,看起來就正常多了!

五、增加選項
想要在開頭標題增加選項的話,也能輕鬆達成!
首先,在以下位置增加紅框內文字:
在下圖位置增加紅框內文字:
其中 extra 可自訂名稱,但要與下方腳本配合。

(1)移動到指定地圖的作法:
在同頁腳本的175行左右插入以下腳本:(命令:退出 之下方)
#--------------------------------------------------------------------------
# ● 命令 : EXTRA
#--------------------------------------------------------------------------

def
extra #注意此處名稱
# 演奏確定 SE
$game_system.se_play($data_system.decision_se)
# 停止 BGM
Audio.bgm_stop
# 重置測量遊戲時間用的畫面計數器
Graphics.frame_count = 0
# 生成各種遊戲對像
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
# 設置初期同伴位置
$game_party.setup_starting_members
# 設置初期位置的地圖
$game_map.setup(2)
#移動到指定的地圖編號
# 主角向初期位置移動
$game_player.moveto(1,1)
#移動到指定的座標
# 刷新主角
$game_player.refresh
# 執行地圖設置的 BGM 與 BGS 的自動切換
$game_map.autoplay
# 刷新地圖 (執行並行事件)
$game_map.update
# 切換地圖畫面
$scene = Scene_Map.new
end
如此一來就能進入到特典地圖裡囉!
這可以用在需要用到地圖畫面的特典或說明。
*-*-*
但如果是想要等到遊戲破關後才開啟特典呢?
這時候可以參考並加入以下腳本:(相關設置請參考下列連結)
先照著以上文章內容完成必備的步驟後,
在以下位置寫上紅框內的文字:(取自上述連結範例工程)
再將剛才選項的部分改成如下圖所示:(取自上述連結範例工程)
這樣就完成囉!

(2)顯示說明圖片的作法:(編寫自精華區
首先,先建立一個新的腳本:
在Main上按下右鍵、或鍵盤上的Insert新增。
在新的一頁貼上以下腳本:
#=============================================
# ■ Scene_introduction
#------------------------------------------------------------------------------
# 顯示圖片說明。
#=============================================
class Scene_introduction
def main
# 播放背景音效
Audio.bgm_play("Audio/BGM/058-Slow01")
#音效路徑再Audio/BGM/ 內,可以自行設定。
#產生圖片
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.picture("introduction")
#introduction是圖片的名稱,大小為640x480。
#圖片存放於GraphicsPicture內的檔案。
#將產生的圖片置於畫面中央。
@sprite.x = (640 - @sprite.bitmap.width) / 2
@sprite.y = (480 - @sprite.bitmap.height) / 2
# 透明度
@sprite.opacity = 255
Graphics.transition
# 主循環
loop do
# 刷新遊戲畫面
Graphics.update
# 刷新輸入信息
Input.update
# 刷新畫面
update
# 如果畫面被切換就中斷此循環
if $scene != self
Audio.se_play("Audio/SE/002-System02")
#這是用來播放按下任一鍵的音效
break
end
end
Graphics.freeze
@sprite.bitmap.dispose
@sprite.dispose
end
#--------------------------------------------------------------------------
# ● 刷新畫面
#--------------------------------------------------------------------------
def update
# 按下 A,B,C,下,上,左,右 鍵的情况下
if Input.trigger?(Input::A)
refresh
end
if Input.trigger?(Input::B)
refresh
end
if Input.trigger?(Input::C)
refresh
end
if Input.trigger?(Input::DOWN)
refresh
end
if Input.trigger?(Input::UP)
refresh
end
if Input.trigger?(Input::RIGHT)
refresh
end
if Input.trigger?(Input::LEFT)
refresh
end
def refresh
$scene = Scene_Title.new
Audio.se_stop
end
end
end
回到Scene_Title,同樣去更改以下位置:
新增:
這樣就能順利看到圖片了~

六、視窗透明化
想要把選項框半透明化要如何作呢?
只要在腳本內加入一句話即可實現!如圖所示:
如果連框框都不想要,那麼就把數字改成 0 吧!


那麼這次的圖解教學先到這邊做個段落,
如果還有什麼其他新功能會再陸續增加!

以下是主選單的更改文章:目前都是最基本的O.O
83
-
LV. 10
GP 175
2 樓 mildred zxcvb1121
GP0 BP-
因為我是VX,所以腳本似乎是不一樣的ˊˋ?
我找了一下跟你的教學裡面相關名稱的地方,然後做了修改
不過好像,會出錯><
像這樣↓

他說錯在這裡↓

然後我這邊也有改↓

不過我對腳本真的很不熟悉,所以想說來做一下練習
這是哪邊出錯了呢?
還是說....VX改的地方不一樣?><

最後附上整個腳本
#==============================================================================
# ** Scene_Title
#------------------------------------------------------------------------------
#  這個類用來執行顯示標題畫面的程式。
#==============================================================================

class Scene_Title < Scene_Base
  #--------------------------------------------------------------------------
  # * 主程序
  #--------------------------------------------------------------------------
  def main
    if $BTEST                         # 作戰測試?
      battle_test                     # 開始作戰測試
    else                              # 正常遊戲
      super                           # 正常執行主程序
    end
  end
  #--------------------------------------------------------------------------
  # * 程式開始
  #--------------------------------------------------------------------------
  def start
    super
    load_database                     # 載入資料庫
    create_game_objects               # 創建遊戲物件
    check_continue                    # 讀檔可行性判定
    create_title_graphic              # 創建標題圖形
    create_command_window             # 創建命令視窗
    play_title_music                  # 播放標題畫面BGM
  end
  #--------------------------------------------------------------------------
  # * 執行畫面過渡顯示漸變
  #--------------------------------------------------------------------------
  def perform_transition
    Graphics.transition(20)
  end
  #--------------------------------------------------------------------------
  # * 程式開始後的處理
  #--------------------------------------------------------------------------
  def post_start
    super
    open_command_window
  end
  #--------------------------------------------------------------------------
  # * 程式終止前的處理
  #--------------------------------------------------------------------------
  def pre_terminate
    super
    close_command_window
  end
  #--------------------------------------------------------------------------
  # * 終止程式
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_command_window
    snapshot_for_background
    dispose_title_graphic
  end
  #--------------------------------------------------------------------------
  # * 更新幀
  #--------------------------------------------------------------------------
  def update
    super
    @command_window.update
    if Input.trigger?(Input::C)
      case @command_window.index
      when 0    # 開始遊戲
        command_new_game
      when 1    # 讀取存檔
        command_continue
      when 2    # 離開遊戲
        command_shutdown
      when 3    # 特典
        command_extra
      end
    end
  end
  #--------------------------------------------------------------------------
  # * 讀取數據
  #--------------------------------------------------------------------------
  def load_database
    $data_actors        = load_data("Data/Actors.rvdata")
    $data_classes       = load_data("Data/Classes.rvdata")
    $data_skills        = load_data("Data/Skills.rvdata")
    $data_items         = load_data("Data/Items.rvdata")
    $data_weapons       = load_data("Data/Weapons.rvdata")
    $data_armors        = load_data("Data/Armors.rvdata")
    $data_enemies       = load_data("Data/Enemies.rvdata")
    $data_troops        = load_data("Data/Troops.rvdata")
    $data_states        = load_data("Data/States.rvdata")
    $data_animations    = load_data("Data/Animations.rvdata")
    $data_common_events = load_data("Data/CommonEvents.rvdata")
    $data_system        = load_data("Data/System.rvdata")
    $data_areas         = load_data("Data/Areas.rvdata")
  end
  #--------------------------------------------------------------------------
  # * 讀取資料(作戰測試用)
  #--------------------------------------------------------------------------
  def load_bt_database
    $data_actors        = load_data("Data/BT_Actors.rvdata")
    $data_classes       = load_data("Data/BT_Classes.rvdata")
    $data_skills        = load_data("Data/BT_Skills.rvdata")
    $data_items         = load_data("Data/BT_Items.rvdata")
    $data_weapons       = load_data("Data/BT_Weapons.rvdata")
    $data_armors        = load_data("Data/BT_Armors.rvdata")
    $data_enemies       = load_data("Data/BT_Enemies.rvdata")
    $data_troops        = load_data("Data/BT_Troops.rvdata")
    $data_states        = load_data("Data/BT_States.rvdata")
    $data_animations    = load_data("Data/BT_Animations.rvdata")
    $data_common_events = load_data("Data/BT_CommonEvents.rvdata")
    $data_system        = load_data("Data/BT_System.rvdata")
  end
  #--------------------------------------------------------------------------
  # * 創建遊戲物件
  #--------------------------------------------------------------------------
  def create_game_objects
    $game_temp          = Game_Temp.new
    $game_message       = Game_Message.new
    $game_system        = Game_System.new
    $game_switches      = Game_Switches.new
    $game_variables     = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.new
    $game_actors        = Game_Actors.new
    $game_party         = Game_Party.new
    $game_troop         = Game_Troop.new
    $game_map           = Game_Map.new
    $game_player        = Game_Player.new
  end
  #--------------------------------------------------------------------------
  # * 讀檔可行性判定
  #--------------------------------------------------------------------------
  def check_continue
    @continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
  end
  #--------------------------------------------------------------------------
  # * 創建標題圖形
  #--------------------------------------------------------------------------
  def create_title_graphic
    @sprite = Sprite.new
    @sprite.bitmap = Cache.system("Title")
  end
  #--------------------------------------------------------------------------
  # * 清除標題圖形
  #--------------------------------------------------------------------------
  def dispose_title_graphic
    @sprite.bitmap.dispose
    @sprite.dispose
  end
  #--------------------------------------------------------------------------
  # * 創建命令視窗
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::new_game
    s2 = Vocab::continue
    s3 = Vocab::shutdown
    s4 = Vocab::extra
    @command_window = Window_Command.new(172, [s1, s2, s3, s4])
    @command_window . opacity = 1
    @command_window.x = (900- @command_window.width) / 2
    @command_window.y = 288
    if @continue_enabled                    # 如果[讀取存檔]可用
      @command_window.index = 1             # 移動游標至該命令項目上
    else                                    # 如果[讀取存檔]不可用
      @command_window.draw_item(1, false)   # 半透明顯示該命令項
    end
    @command_window.openness = 0
    @command_window.open
  end
  #--------------------------------------------------------------------------
  # * 清除命令視窗
  #--------------------------------------------------------------------------
  def dispose_command_window
    @command_window.dispose
  end
  #--------------------------------------------------------------------------
  # * 展開命令視窗
  #--------------------------------------------------------------------------
  def open_command_window
    @command_window.open
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 255
  end
  #--------------------------------------------------------------------------
  # * 合攏命令視窗
  #--------------------------------------------------------------------------
  def close_command_window
    @command_window.close
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 0
  end
  #--------------------------------------------------------------------------
  # * 播放標題畫面BGM
  #--------------------------------------------------------------------------
  def play_title_music
    $data_system.title_bgm.play
    RPG::BGS.stop
    RPG::ME.stop
  end
  #--------------------------------------------------------------------------
  # * 檢查玩家起點事件是否存在
  #--------------------------------------------------------------------------
  def confirm_player_location
    if $data_system.start_map_id == 0
      print "玩家起始位置沒有被指定。"
      exit
    end
  end
  #--------------------------------------------------------------------------
  # * 命令項:新的劇情
  #--------------------------------------------------------------------------
  def command_new_game
    confirm_player_location
    Sound.play_decision
    $game_party.setup_starting_members            # 隊伍初期陣容設置
    $game_map.setup($data_system.start_map_id)    # 玩家起始位置設置
    $game_player.moveto($data_system.start_x, $data_system.start_y)
    $game_player.refresh
    $scene = Scene_Map.new
    RPG::BGM.fade(1500)
    close_command_window
    Graphics.fadeout(60)
    Graphics.wait(40)
    Graphics.frame_count = 0
    RPG::BGM.stop
    $game_map.autoplay
  end
  #--------------------------------------------------------------------------
  # * 命令項:讀取存檔
  #--------------------------------------------------------------------------
  def command_continue
    if @continue_enabled
      Sound.play_decision
      $scene = Scene_File.new(false, true, false)
    else
      Sound.play_buzzer
    end
  end
  #--------------------------------------------------------------------------
  # * 命令項:退出遊戲
  #--------------------------------------------------------------------------
  def command_shutdown
    Sound.play_decision
    RPG::BGM.fade(800)
    RPG::BGS.fade(800)
    RPG::ME.fade(800)
    $scene = nil
  end
  #--------------------------------------------------------------------------
  # * 作戰測試
  #--------------------------------------------------------------------------
  def battle_test
    load_bt_database                  # 從資料庫中載入作戰測試所需資料
    create_game_objects               # 創建遊戲物件
    Graphics.frame_count = 0          # 初始化遊戲時間
    $game_party.setup_battle_test_members
    $game_troop.setup($data_system.test_troop_id)
    $game_troop.can_escape = true
    $game_system.battle_bgm.play
    snapshot_for_background
    $scene = Scene_Battle.new
  end
end


這樣ˊ ˋ
(我不會截這種長條圖,,,,)

0
-
LV. 1
GP 0
3 樓 芭樂君 ken357652
GP1 BP-
受益良多!感謝!
1
-
LV. 1
GP 0
4 樓 alwaysdie a473857248
GP1 BP-

怎麼好像連第一步也做不了QAQ
1
-
未登入的勇者,要加入 5 樓的討論嗎?
板務人員:

2727 筆精華,昨天 更新
一個月內新增 13
歡迎加入共同維護。


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】