ほぼ全ての画面で背景画像を設定スクリプト
Posted: 2016年3月11日(金) 20:38
バトル画面を除く、ほぼすべての画面の背景画像を設定することができるスクリプト素材です。
また、画面内のウインドウを全て透明化する機能もあります。
自分で背景画像をシーン毎に作ることができれば、オリジナリティあふれる画面になる……かも?


※改造した状態での再配布はクレジット表記をしてくれればOKです。
※また他サイトなどに改造の相談や質問するために引用転載することはOKです。

【使い方】
・スクリプト内で設定するだけ。
・要:背景画像素材
(例に使った背景画像はCLOSET様からお借りしました。ありがとうございました。)
【ダウンロード】
※スキルとアイテム画面で、アイテムなどを使用した場合に
表示するアクター選択ウインドウまで透明化するバグを修正しました。
また、画面内のウインドウを全て透明化する機能もあります。
自分で背景画像をシーン毎に作ることができれば、オリジナリティあふれる画面になる……かも?




※改造した状態での再配布はクレジット表記をしてくれればOKです。
※また他サイトなどに改造の相談や質問するために引用転載することはOKです。


【使い方】
・スクリプト内で設定するだけ。
・要:背景画像素材
(例に使った背景画像はCLOSET様からお借りしました。ありがとうございました。)
【ダウンロード】
コード: 全て選択
#==============================================================================
# ■ module Oxib_back_picture
#------------------------------------------------------------------------------
# ■ カスタマイズ項目
#==============================================================================
module Oxib_back_picture
#--------------------------------------------------------------------------
# ● メニュー画面の設定
#--------------------------------------------------------------------------
#背景画像を使用するかどうか(使用する→true 使用しない→ false)
MENU_USE = false
#画面内のウインドウを透明化するかどうか
MENU_WINDOWS_HIDE = true
#背景画像のファイル名 ※ファイルはピクチャフォルダに入れてください。
MENU_PICTURE = "back_picture"
#--------------------------------------------------------------------------
# ● アイテム画面の設定
#--------------------------------------------------------------------------
ITEM_USE = false
ITEM_WINDOWS_HIDE = true
ITEM_PICTURE = "back_picture"
#--------------------------------------------------------------------------
# ● スキル画面の設定
#--------------------------------------------------------------------------
SKILL_USE = false
SKILL_WINDOWS_HIDE = true
SKILL_PICTURE = "back_picture"
#--------------------------------------------------------------------------
# ● 装備画面の設定
#--------------------------------------------------------------------------
EQUIP_USE = false
EQUIP_WINDOWS_HIDE = true
EQUIP_PICTURE = "back_picture"
#--------------------------------------------------------------------------
# ● ステータス画面の設定
#--------------------------------------------------------------------------
STATUS_USE = false
STATUS_WINDOWS_HIDE = true
STATUS_PICTURE = "back_picture"
#--------------------------------------------------------------------------
# ● セーブ、ロード画面の設定
#--------------------------------------------------------------------------
FILE_USE = false
FILE_WINDOWS_HIDE = true
FILE_PICTURE = "back_picture"
#--------------------------------------------------------------------------
# ● ショップ画面の設定
#--------------------------------------------------------------------------
SHOP_USE = false
SHOP_WINDOWS_HIDE = true
SHOP_PICTURE = "back_picture"
end #消さないでください
#==============================================================================
# ☆ 設定ここまで ☆
#==============================================================================
#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
# ゲーム中の全てのウィンドウのスーパークラスです。
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# ● ウインドウを透明にする
#--------------------------------------------------------------------------
def opacity_zero(window_use = true)
return if window_use
self.opacity = 0
self.back_opacity = 0
end
end
#==============================================================================
# ■ Scene_MenuBase
#------------------------------------------------------------------------------
# メニュー画面系の基本処理を行うクラスです。
#==============================================================================
class Scene_MenuBase < Scene_Base
#--------------------------------------------------------------------------
# ● 背景の作成
#--------------------------------------------------------------------------
def create_back_picture(file)
@background_sprite = Sprite.new
@background_sprite.bitmap = Cache.picture(file)
end
#--------------------------------------------------------------------------
# ● 全ウィンドウを透明化
#--------------------------------------------------------------------------
def opacity_all_windows(use)
return if use == false
instance_variables.each do |varname|
ivar = instance_variable_get(varname)
ivar.opacity_zero(false) if ivar.is_a?(Window)
end
end
end
#==============================================================================
# ■ Scene_Menu
#------------------------------------------------------------------------------
# メニュー画面の処理を行うクラスです。
#==============================================================================
class Scene_Menu < Scene_MenuBase
#--------------------------------------------------------------------------
# ● 開始処理
#--------------------------------------------------------------------------
alias back_picture_start start
def start
back_picture_start
opacity_all_windows(Oxib_back_picture::MENU_WINDOWS_HIDE)
end
#--------------------------------------------------------------------------
# ● 背景の作成
#--------------------------------------------------------------------------
alias back_picture_create_background create_background
def create_background
if Oxib_back_picture::MENU_USE
create_back_picture(Oxib_back_picture::MENU_PICTURE)
else
back_picture_create_background
end
end
end
#==============================================================================
# ■ Scene_ItemBase
#------------------------------------------------------------------------------
# アイテム画面とスキル画面の共通処理を行うクラスです。
#==============================================================================
class Scene_ItemBase < Scene_MenuBase
#--------------------------------------------------------------------------
# ● 全ウィンドウを透明化
#--------------------------------------------------------------------------
def opacity_all_windows(use)
return if use == false
instance_variables.each do |varname|
ivar = instance_variable_get(varname)
next if ivar.is_a?(Window_MenuActor)
ivar.opacity_zero(false) if ivar.is_a?(Window)
end
end
end
#==============================================================================
# ■ Scene_Item
#------------------------------------------------------------------------------
# アイテム画面の処理を行うクラスです。
#==============================================================================
class Scene_Item < Scene_ItemBase
#--------------------------------------------------------------------------
# ● 開始処理
#--------------------------------------------------------------------------
alias back_picture_start start
def start
back_picture_start
opacity_all_windows(Oxib_back_picture::ITEM_WINDOWS_HIDE)
end
#--------------------------------------------------------------------------
# ● 背景の作成
#--------------------------------------------------------------------------
alias back_picture_create_background create_background
def create_background
if Oxib_back_picture::ITEM_USE
create_back_picture(Oxib_back_picture::ITEM_PICTURE)
else
back_picture_create_background
end
end
end
#==============================================================================
# ■ Scene_Skill
#------------------------------------------------------------------------------
# スキル画面の処理を行うクラスです。処理共通化の便宜上、スキルも「アイテム」
# として扱っています。
#==============================================================================
class Scene_Skill < Scene_ItemBase
#--------------------------------------------------------------------------
# ● 開始処理
#--------------------------------------------------------------------------
alias back_picture_start start
def start
back_picture_start
opacity_all_windows(Oxib_back_picture::SKILL_WINDOWS_HIDE)
end
#--------------------------------------------------------------------------
# ● 背景の作成
#--------------------------------------------------------------------------
alias back_picture_create_background create_background
def create_background
if Oxib_back_picture::SKILL_USE
create_back_picture(Oxib_back_picture::SKILL_PICTURE)
else
back_picture_create_background
end
end
end
#==============================================================================
# ■ Scene_Equip
#------------------------------------------------------------------------------
# 装備画面の処理を行うクラスです。
#==============================================================================
class Scene_Equip < Scene_MenuBase
#--------------------------------------------------------------------------
# ● 開始処理
#--------------------------------------------------------------------------
alias back_picture_start start
def start
back_picture_start
opacity_all_windows(Oxib_back_picture::EQUIP_WINDOWS_HIDE)
end
#--------------------------------------------------------------------------
# ● 背景の作成
#--------------------------------------------------------------------------
alias back_picture_create_background create_background
def create_background
if Oxib_back_picture::EQUIP_USE
create_back_picture(Oxib_back_picture::EQUIP_PICTURE)
else
back_picture_create_background
end
end
end
#==============================================================================
# ■ Scene_Status
#------------------------------------------------------------------------------
# ステータス画面の処理を行うクラスです。
#==============================================================================
class Scene_Status < Scene_MenuBase
#--------------------------------------------------------------------------
# ● 開始処理
#--------------------------------------------------------------------------
alias back_picture_start start
def start
back_picture_start
opacity_all_windows(Oxib_back_picture::STATUS_WINDOWS_HIDE)
end
#--------------------------------------------------------------------------
# ● 背景の作成
#--------------------------------------------------------------------------
alias back_picture_create_background create_background
def create_background
if Oxib_back_picture::STATUS_USE
create_back_picture(Oxib_back_picture::STATUS_PICTURE)
else
back_picture_create_background
end
end
end
#==============================================================================
# ■ Scene_File
#------------------------------------------------------------------------------
# セーブ画面とロード画面の共通処理を行うクラスです。
#==============================================================================
class Scene_File < Scene_MenuBase
#--------------------------------------------------------------------------
# ● 開始処理
#--------------------------------------------------------------------------
alias back_picture_start start
def start
back_picture_start
opacity_all_windows(Oxib_back_picture::FILE_WINDOWS_HIDE)
end
#--------------------------------------------------------------------------
# ● 背景の作成
#--------------------------------------------------------------------------
alias back_picture_create_background create_background
def create_background
if Oxib_back_picture::FILE_USE
create_back_picture(Oxib_back_picture::FILE_PICTURE)
else
back_picture_create_background
end
end
#--------------------------------------------------------------------------
# ● 全ウィンドウを透明化
#--------------------------------------------------------------------------
alias back_picture_opacity_all_windows opacity_all_windows
def opacity_all_windows(use)
back_picture_opacity_all_windows(use)
@savefile_windows.each {|window| window.opacity_zero(false)}
end
end
#==============================================================================
# ■ Scene_Shop
#------------------------------------------------------------------------------
# ショップ画面の処理を行うクラスです。
#==============================================================================
class Scene_Shop < Scene_MenuBase
#--------------------------------------------------------------------------
# ● 開始処理
#--------------------------------------------------------------------------
alias back_picture_start start
def start
back_picture_start
opacity_all_windows(Oxib_back_picture::SHOP_WINDOWS_HIDE)
end
#--------------------------------------------------------------------------
# ● 背景の作成
#--------------------------------------------------------------------------
alias back_picture_create_background create_background
def create_background
if Oxib_back_picture::SHOP_USE
create_back_picture(Oxib_back_picture::SHOP_PICTURE)
else
back_picture_create_background
end
end
end
#==============================================================================
# ■ Scene_End
#------------------------------------------------------------------------------
# ゲーム終了画面の処理を行うクラスです。
#==============================================================================
class Scene_End < Scene_MenuBase
#--------------------------------------------------------------------------
# ● 開始処理
#--------------------------------------------------------------------------
alias back_picture_start start
def start
back_picture_start
opacity_all_windows(Oxib_back_picture::MENU_WINDOWS_HIDE)
end
#--------------------------------------------------------------------------
# ● 背景の作成
#--------------------------------------------------------------------------
alias back_picture_create_background create_background
def create_background
if Oxib_back_picture::MENU_USE
create_back_picture(Oxib_back_picture::MENU_PICTURE)
else
back_picture_create_background
end
end
end
表示するアクター選択ウインドウまで透明化するバグを修正しました。