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

Project1

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

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

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
116 小时
注册时间
2012-8-12
帖子
61
跳转到指定楼层
1
发表于 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 我很赞同

查看全部评分

Lv1.梦旅人

梦石
0
星屑
49
在线时间
49 小时
注册时间
2012-3-18
帖子
28
2
发表于 2012-8-25 12:49:55 | 只看该作者
没看懂,不过貌似好厉害的样子
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
191 小时
注册时间
2011-7-16
帖子
1102
3
发表于 2012-8-25 13:17:05 | 只看该作者
原来……是截图用的脚本,不过……可以用来干什么呢(我笨……)
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1058
在线时间
878 小时
注册时间
2012-6-28
帖子
1079
4
发表于 2012-8-25 13:21:52 | 只看该作者
好东西啊,不知道楼主有没有xp版的

点评

喵呜……你不是VA党么……………………  发表于 2012-10-23 21:37
不追求华丽的商业素材;不依赖与自己运用能力不符的外挂脚本;不搞华而不实的无用噱头。
                    修改,使用最朴实的素材,融入自己的智慧做最好的游戏!
                                    点这里!暂不设加入门槛
         
                               我觉得我的优点是,会认真的画每一张地图。
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (超级版主)

嗜谎者

梦石
2
星屑
16562
在线时间
3893 小时
注册时间
2010-9-12
帖子
9635

极短24评委极短23评委极短22评委极短21评委开拓者

5
发表于 2012-8-25 13:22:31 | 只看该作者
原来如此,范例的图片是这样截下来的啊。。。
很有用,谢楼主搬运~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
59
在线时间
536 小时
注册时间
2010-6-20
帖子
1489
6
发表于 2012-8-25 13:24:54 | 只看该作者
fuck 这脚本太好用了 感谢无节操地UP赐予我们神圣的脚本 看来UP是哲♂学♂家

点评

想被封的话就继续吧  发表于 2012-8-25 19:10
如果你能注意一下你的发言你就不会被爆菊了- =-  发表于 2012-8-25 15:19
操 又被爆菊了 现在的版主真的那么有节操?  发表于 2012-8-25 14:06
!!  发表于 2012-8-25 14:06
在下该说什么好……  发表于 2012-8-25 13:28

评分

参与人数 1星屑 -20 收起 理由
Raiku -20 请注意发言

查看全部评分

[url=http://rpg.blue/thread-329159-1-1.html]http://attach.66rpg.com/bbs/attachment/forum/201308/24/132414sa8au7zgh7ab21gx.png[/url]   [b]
无尽之旅--永无止尽的旅程。[/b]
回复 支持 反对

使用道具 举报

Lv1.梦旅人

水星地球侵略

梦石
0
星屑
53
在线时间
757 小时
注册时间
2011-8-23
帖子
5295
7
发表于 2012-8-25 13:29:18 | 只看该作者
很实用的脚本,对地图分享有很大的帮助呢。

点评

我現在才注意到你的頭像  发表于 2012-8-25 13:49
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
543 小时
注册时间
2011-6-25
帖子
441
8
发表于 2012-8-25 13:50:43 | 只看该作者
這樣用Overlay就很方便了


‘‘──poiuy12348609于2012-8-25 13:51补充以下内容:

這樣用Overlay就很方便了
’’

点评

Overlay ? 能将讲讲吗? 一直没弄懂  发表于 2012-9-26 19:27
上次被水君恶搞了……  发表于 2012-8-25 13:52


------------------------------------------我只放我看中的遊戲-----------------------------------------------
臉書:http://www.facebook.com/brian.lee.52643821
  音速君的論壇
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3263
在线时间
3616 小时
注册时间
2006-9-6
帖子
37399

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

9
发表于 2012-8-25 14:42:25 | 只看该作者
终于有VA版的了,不过要自己隐藏事件略囧,考虑到瀑布之类的吧……
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1058
在线时间
878 小时
注册时间
2012-6-28
帖子
1079
10
发表于 2012-8-25 18:05:23 | 只看该作者
越前リョーマ 发表于 2012-8-25 14:42
终于有VA版的了,不过要自己隐藏事件略囧,考虑到瀑布之类的吧……

大神,我找了一下午没找到xp版的,能赐我个链接吗?

点评

搜各种压力的猫君的帖子  发表于 2012-8-25 18:12
不追求华丽的商业素材;不依赖与自己运用能力不符的外挂脚本;不搞华而不实的无用噱头。
                    修改,使用最朴实的素材,融入自己的智慧做最好的游戏!
                                    点这里!暂不设加入门槛
         
                               我觉得我的优点是,会认真的画每一张地图。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-1 12:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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