查看: 759|回复: 5

[有事请教] VA有把当前地图转存为PNG图片的插件吗?

[复制链接]
梦石
0
星屑
5269
在线时间
733 小时
注册时间
2013-1-18
回帖
525
发表于 2025-6-11 21:32:56 | 显示全部楼层 |阅读模式

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

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

×
MV自带这个功能,但是VA没有啊,请问有类似的插件吗?

老鹰

梦石
40
星屑
37812
在线时间
7091 小时
注册时间
2012-5-26
回帖
3297

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

发表于 2025-6-11 22:55:14 | 显示全部楼层
https://rpg.blue/thread-477828-1-1.html
https://rpg.blue/thread-480838-1-1.html

不过都是针对一般大小的地图,如果太大了可能会出问题

点评

感谢大佬的指点!  发表于 2025-6-12 08:30
回复

使用道具 举报

梦石
0
星屑
5269
在线时间
733 小时
注册时间
2013-1-18
回帖
525
 楼主| 发表于 2025-6-12 11:51:56 | 显示全部楼层
百里_飞柳 发表于 2025-6-11 22:55
https://rpg.blue/thread-477828-1-1.html
https://rpg.blue/thread-480838-1-1.html

大佬,我试了一下这个插件,确实好用。
但是有一点,这个截图会把地图上事件也截下来。
请问能否可以只截图地图的图块,不截图事件呢?
回复

使用道具 举报

老鹰

梦石
40
星屑
37812
在线时间
7091 小时
注册时间
2012-5-26
回帖
3297

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

发表于 2025-6-12 21:12:46 | 显示全部楼层
nhycs01 发表于 2025-6-12 11:51
大佬,我试了一下这个插件,确实好用。
但是有一点,这个截图会把地图上事件也截下来。
请问能否可以只截 ...

你可以在 def map_shop 方法里,效仿它隐藏玩家的做法,把其它事件也隐藏了,修改如下:
  1.   def map_shop
  2.     # 修改:地图事件隐藏
  3.     last_event_trans = {}  # id => bool
  4.     $game_map.events.each { |id, e| last_event_trans[id] = e.transparent; e.transparent = true }
  5.    
  6.     # プレイヤーを非表示
  7.     last_player_transparent = $game_player.transparent
  8.     $game_player.transparent = true
  9.     # マップの撮影
  10.     bitmap = Bitmap.new($game_map.width * 32, $game_map.height * 32)
  11.     screen_width = $game_map.screen_tile_x
  12.     screen_height = $game_map.screen_tile_y
  13.     ($game_map.width / screen_width.to_f).ceil.times do |x|
  14.       ($game_map.height / screen_height.to_f).ceil.times do |y|
  15.         $game_map.set_display_pos(screen_width * x, screen_height * y)
  16.         @spriteset.update_snap
  17.         dx = $game_map.display_x * 32
  18.         dy = $game_map.display_y * 32
  19.         snap = Graphics.snap_to_bitmap
  20.         bitmap.blt(dx, dy, snap, snap.rect)
  21.       end
  22.     end
  23.     # マップ画像の保存
  24.     Graphics.update
  25.     filename = sprintf('ground%03d-1.png', $game_map.map_id,$game_map.display_name)
  26.     bitmap.save_png(filename)
  27.     puts "`#{filename}' 保存完了!"

  28.     # 修改:地图事件复原
  29.     $game_map.events.each { |id, e|  e.transparent = last_event_trans[id]; e.update }
  30.    
  31.     # プレイヤーの状態を戻す
  32.     $game_player.transparent = last_player_transparent
  33.     $game_player.center($game_player.x, $game_player.y)
  34.     $game_player.update
  35.   end
复制代码

点评

大佬真牛!感谢!!感谢!!  发表于 2025-6-13 19:54
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部