#****************************************************************************** # # * スクリーンショット # # -------------------------------------------------------------------------- # バージョン : 1.0.4 # 対 応 : RPGツクールVX Ace : RGSS3 # 制 作 者 : CACAO # 配 布 元 : http://cacaosoft.webcrow.jp/ # -------------------------------------------------------------------------- # == 概 要 == # # : 現在のゲーム画面を画像保存します。 # # -------------------------------------------------------------------------- # == 注意事項 == # # ※ このスクリプトの実行には、『PNG 保存』のスクリプトが必要です。 # ※ 画像の保存中は、ゲームが停止します。 # # -------------------------------------------------------------------------- # == 使用方法 == # # ★ 撮影する # PrintScreen(PrtScn) キー を押してください。 # # #****************************************************************************** #============================================================================== # ◆ 設定項目 #============================================================================== module CAO module SS #-------------------------------------------------------------------------- # ◇ 保存名 #-------------------------------------------------------------------------- SAVE_NAME = "ScreenShot/%Y%m%d%H%M%S.png" #-------------------------------------------------------------------------- # ◇ ロゴ追加 #-------------------------------------------------------------------------- FILE_LOGO = "" #-------------------------------------------------------------------------- # ◇ 撮影時の効果音 #-------------------------------------------------------------------------- FILE_SOUND = RPG::SE.new("Key", 100, 150) #-------------------------------------------------------------------------- # ◇ 撮影間隔 #-------------------------------------------------------------------------- WAIT = 40 end # module SS end # module CAO #/////////////////////////////////////////////////////////////////////////////# # # # 下記のスクリプトを変更する必要はありません。 # # # #/////////////////////////////////////////////////////////////////////////////# module CAO::SS #-------------------------------------------------------------------------- # ● #-------------------------------------------------------------------------- GetKeyState = Win32API.new('user32', 'GetKeyState', 'i', 'i') #-------------------------------------------------------------------------- # ● #-------------------------------------------------------------------------- def self.press_prtscn? return (GetKeyState.call(0x2C) >> 15) & 1 == 1 end #-------------------------------------------------------------------------- # ● #-------------------------------------------------------------------------- def self.mkdir(path) return if FileTest.directory?(path) parent = path.split(/[\\\/]/)[0..-2].join('/') self.mkdir(parent) unless parent.empty? || FileTest.directory?(parent) Dir.mkdir(path) end end class << Graphics #-------------------------------------------------------------------------- # ● #-------------------------------------------------------------------------- @@ss_count = 0 #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- alias _cao_ss_update update def update _cao_ss_update if CAO::SS.press_prtscn? && @@ss_count <= 0 @@ss_count = CAO::SS::WAIT CAO::SS::FILE_SOUND.play if CAO::SS::FILE_SOUND save_screen_shot end @@ss_count -= 1 if @@ss_count > 0 end #-------------------------------------------------------------------------- # ● スクリーンショットの保存 #-------------------------------------------------------------------------- def save_screen_shot filename = Time.now.strftime(CAO::SS::SAVE_NAME) CAO::SS.mkdir(File.dirname(filename)) bitmap = Graphics.snap_to_bitmap unless CAO::SS::FILE_LOGO.empty? logo = Cache.system(CAO::SS::FILE_LOGO) bitmap.blt(0, 0, logo, logo.rect) end bitmap.save_png(filename) bitmap.dispose end end