设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 11965|回复: 26
打印 上一主题 下一主题

[转载] Parallax--地图区域截图保存(va)

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
116 小时
注册时间
2012-8-12
帖子
61
跳转到指定楼层
发表于 2012-8-25 12:27:59 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 吾不知 于 2012-8-25 12:29 编辑

这是一个好用的脚本,可以帮助我们节省大量的时间。
概要:地图区域自动截图保存,在制作视差映射时节省大量拼接图片的时间,将整张地图截图并保存下来。
使用方法:进入游戏前将主角透明,不必要的事件隐藏(避免截图后干扰),测试时按F7键即可自动截图并保存在主文件目录下,保存的文件名可以在倒数第九行更改,
如'ground%03d-1.png' ='ground地图id-1.png' 可以直接在一些视差脚本中使用。

来源:
#    バージョン :  1.0.0
#    対      応 :  RPGツクールVX Ace : RGSS3
#    制  作  者 :  CACAO
#    配  布  元 :  http://cacaosoft.web.fc2.com/


脚本如下
RUBY 代码复制
  1. #******************************************************************************
  2. #
  3. #    * PNG 保存
  4. #
  5. #  --------------------------------------------------------------------------
  6. #    バージョン :  1.0.0
  7. #    対      応 :  RPGツクールVX Ace : RGSS3
  8. #    制  作  者 :  CACAO
  9. #    配  布  元 :  [url]http://cacaosoft.web.fc2.com/[/url]
  10. #  --------------------------------------------------------------------------
  11. #   == 概    要 ==
  12. #
  13. #    : ピングファイルの出力機能を追加します。
  14. #
  15. #  --------------------------------------------------------------------------
  16. #   == 使用方法 ==
  17. #
  18. #    ★ Bitmap#save_png(filename, alpha = false)
  19. #     このビットマップをピングファイルで出力
  20. #     filename : 保存するファイル名
  21. #     alpha    : αチャンネルの有無
  22. #
  23. #
  24. #******************************************************************************
  25.  
  26.  
  27. #/////////////////////////////////////////////////////////////////////////////#
  28. #                                                                             #
  29. #                  このスクリプトに設定項目はありません。                     #
  30. #                                                                             #
  31. #/////////////////////////////////////////////////////////////////////////////#
  32.  
  33.  
  34. class Bitmap
  35.   #--------------------------------------------------------------------------
  36.   # ● ピング画像として保存
  37.   #     filename : ファイル名
  38.   #     alpha    : アルファチャンネルの有無
  39.   #--------------------------------------------------------------------------
  40.   def save_png(filename, alpha = false)
  41.     sgnt = "\x89PNG\r\n\x1a\n"
  42.     ihdr = _chunk('IHDR', [width,height,8,(alpha ? 6 : 2),0,0,0].pack('N2C5'))
  43.     data = []
  44.     height.times do |y|
  45.       data << 0
  46.       width.times do |x|
  47.         color = self.get_pixel(x, y)
  48.         data << color.red << color.green << color.blue
  49.         data << color.alpha if alpha
  50.       end
  51.     end
  52.     idat = _chunk('IDAT', Zlib::Deflate.deflate(data.pack('C*')))
  53.     iend = _chunk('IEND', "")
  54.     File.open(filename, 'wb') do |file|
  55.       file.write(sgnt)
  56.       file.write(ihdr)
  57.       file.write(idat)
  58.       file.write(iend)
  59.     end
  60.   end
  61. private
  62.   #--------------------------------------------------------------------------
  63.   # ● チャンクの作成
  64.   #     name : チャンク名
  65.   #     data : チャンクデータ
  66.   #--------------------------------------------------------------------------
  67.   def _chunk(name, data)
  68.     return [data.size, name, data, Zlib.crc32(name + data)].pack('NA4A*N')
  69.   end
  70. end
  71.  
  72.  
  73. #******************************************************************************
  74. #
  75. #    * マップ画像の保存
  76. #
  77. #  --------------------------------------------------------------------------
  78. #    バージョン :  1.0.0
  79. #    対      応 :  RPGツクールVX Ace : RGSS3
  80. #    制  作  者 :  CACAO
  81. #    配  布  元 :  [url]http://cacaosoft.web.fc2.com/[/url]
  82. #  --------------------------------------------------------------------------
  83. #   == 概    要 ==
  84. #
  85. #    : マップを1枚の画像にして保存します。
  86. #
  87. #  --------------------------------------------------------------------------
  88. #   == 注意事項 ==
  89. #
  90. #    ※ 画像保存に『PNG 保存』スクリプトが必要になります。
  91. #    ※ ゲーム配布時には、削除してください。
  92. #    ※ 撮影時にプレイヤーは非表示になります。
  93. #
  94. #  --------------------------------------------------------------------------
  95. #   == 使用方法 ==
  96. #
  97. #    ★ マップ画像を保存する
  98. #     マップ画面で F7 キーを押してください。
  99. #     右下まで移動すると停止しますが、画像を保存しています。
  100. #     画面が元に戻るまで、しばらくお持ちください。
  101. #     画像は、ゲームフォルダに保存されます。
  102. #
  103. #    ※ キーを変更するには、:F7 で検索してください。
  104. #       1箇所のみ引っかかるので、そこを変更してください。
  105. #
  106. #
  107. #******************************************************************************
  108.  
  109.  
  110. #/////////////////////////////////////////////////////////////////////////////#
  111. #                                                                             #
  112. #                下記のスクリプトを変更する必要はありません。                 #
  113. #                                                                             #
  114. #/////////////////////////////////////////////////////////////////////////////#
  115.  
  116.  
  117. class Sprite_Character < Sprite_Base
  118.   #--------------------------------------------------------------------------
  119.   # ● フレーム更新
  120.   #--------------------------------------------------------------------------
  121.   def update_snap
  122.     self.x = @character.screen_x
  123.     self.y = @character.screen_y
  124.     self.z = @character.screen_z
  125.     self.visible = !@character.transparent
  126.  
  127.     if @balloon_duration > 0
  128.       @balloon_sprite.x = x
  129.       @balloon_sprite.y = y - height
  130.       @balloon_sprite.z = z + 200
  131.     end
  132.   end
  133. end
  134.  
  135. class Spriteset_Map
  136.   #--------------------------------------------------------------------------
  137.   # ●
  138.   #--------------------------------------------------------------------------
  139.   def update_snap
  140.     @tilemap.ox = $game_map.display_x * 32
  141.     @tilemap.oy = $game_map.display_y * 32
  142.  
  143.     @parallax.ox = $game_map.parallax_ox(@parallax.bitmap)
  144.     @parallax.oy = $game_map.parallax_oy(@parallax.bitmap)
  145.  
  146.     @character_sprites.each {|sprite| sprite.update_snap }
  147.  
  148.     airship = $game_map.airship
  149.     @shadow_sprite.x = airship.screen_x
  150.     @shadow_sprite.y = airship.screen_y + airship.altitude
  151.     @shadow_sprite.opacity = airship.altitude * 8
  152.  
  153.     Graphics.update
  154.   end
  155. end
  156.  
  157. class Scene_Map < Scene_Base
  158.   #--------------------------------------------------------------------------
  159.   # ● フレーム更新
  160.   #--------------------------------------------------------------------------
  161.   alias _cao_mapshot_update update
  162.   def update
  163.     _cao_mapshot_update
  164.     map_shop if Input.press?(:F7)
  165.   end
  166.   #--------------------------------------------------------------------------
  167.   # ●
  168.   #--------------------------------------------------------------------------
  169.   def map_shop
  170.     # プレイヤーを非表示
  171.     last_player_transparent = $game_player.transparent
  172.     $game_player.transparent = true
  173.     # マップの撮影
  174.     bitmap = Bitmap.new($game_map.width * 32, $game_map.height * 32)
  175.     screen_width = $game_map.screen_tile_x
  176.     screen_height = $game_map.screen_tile_y
  177.     ($game_map.width / screen_width.to_f).ceil.times do |x|
  178.       ($game_map.height / screen_height.to_f).ceil.times do |y|
  179.         $game_map.set_display_pos(screen_width * x, screen_height * y)
  180.         @spriteset.update_snap
  181.         dx = $game_map.display_x * 32
  182.         dy = $game_map.display_y * 32
  183.         snap = Graphics.snap_to_bitmap
  184.         bitmap.blt(dx, dy, snap, snap.rect)
  185.       end
  186.     end
  187.     # マップ画像の保存
  188.     Graphics.update
  189.     filename = sprintf('ground%03d-1.png', $game_map.map_id,$game_map.display_name)
  190.     bitmap.save_png(filename)
  191.     puts "`#{filename}' 保存完了!"
  192.     # プレイヤーの状態を戻す
  193.     $game_player.transparent = last_player_transparent
  194.     $game_player.center($game_player.x, $game_player.y)
  195.     $game_player.update
  196.   end
  197. end



点评

一个剑士就有这么高深的插件,让在下这种大水比情何以堪!  发表于 2016-3-5 03:51

评分

参与人数 3星屑 +312 收起 理由
荷包PIG蛋 + 20 真的很棒~
king + 252 塞糖
Luciffer + 40 我很赞同

查看全部评分

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

26
发表于 2013-9-29 22:27:30 | 只看该作者
太大的地图用这个脚本会出现cant create bitmap报错。
小地图使用还可以。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

贝鲁耶的依叶森林
持镰的苍色水野

梦石
2
星屑
659
在线时间
563 小时
注册时间
2007-4-8
帖子
1304

第4届短篇游戏比赛季军短篇八RM组亚军

25
发表于 2013-9-22 23:57:54 | 只看该作者
_(:з」∠)_ 这脚本简直神了
水野的主页><
头像来自于游戏《龙背上的骑兵3》主角——Zero
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
517
在线时间
13 小时
注册时间
2013-8-12
帖子
3
24
发表于 2013-8-13 15:50:10 | 只看该作者
好东西啊!!顶一个!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
369 小时
注册时间
2013-4-14
帖子
1177
23
发表于 2013-7-16 14:12:35 | 只看该作者
似乎.......很不错???
从未被模仿,一直被超越~~~~~~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
帖子
643
22
发表于 2013-7-7 11:41:10 | 只看该作者
哇!不错,这样大地图就能截了
最近在研究XAS
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
53
在线时间
572 小时
注册时间
2011-4-1
帖子
749
21
发表于 2013-4-8 15:29:48 | 只看该作者
地图100*100的尺寸,按一下F7,画面切换了好几下后,就不知道该怎么办了……怎么办……
算了,不想那些不开心的事了!因为喜欢,所以才会去做,以后就不要再想“一步登天”了!Let it go!^_^
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
13 小时
注册时间
2012-8-1
帖子
12
20
发表于 2013-4-3 20:03:05 | 只看该作者
请问有VX的地图导出脚本吗?找了很久了,之前看的几个帖子全是死链。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
616 小时
注册时间
2010-10-29
帖子
463
19
发表于 2012-12-29 03:26:56 | 只看该作者
再配布は禁止
加工・改変の有無に関わらず、素材の転載・譲渡を目的とした再配布はご遠慮願います。
また、非暗号化プロジェクトでの配布の際は、素材の抜き取りを禁止する旨を明記してください。

禁止转载!!!!!!!!!!!

点评

反正没人发现(喂喂!!)LBQ君表这么严肃嘛=3=  发表于 2013-2-2 21:37
我命令你给我点下面的东西!

LBQ Works
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
475
在线时间
8 小时
注册时间
2011-4-16
帖子
1
18
发表于 2012-10-23 20:59:19 | 只看该作者
表示编入了Main之后按F7也没反应。。是否需要等候几分钟?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
177 小时
注册时间
2011-6-7
帖子
88
17
发表于 2012-9-30 22:53:53 | 只看该作者
这个脚本给力
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-23 10:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表