Project1

标题: 【RGD】使用 DirectX 驱动的 RMVA Game.exe(v1.6) [打印本页]

作者: ⑨姐姐    时间: 2018-5-4 19:31
标题: 【RGD】使用 DirectX 驱动的 RMVA Game.exe(v1.6)
本帖最后由 ⑨姐姐 于 2020-9-15 19:20 编辑

如果发现脚本冲突请参考 http://cirno.blog/archives/391目前只支持 RGSS301.dll 以及更高版本的dll。RGSS300.dll 会出错。




简介


RGDirect (RGD) 是对 RPG Maker VX Ace (RMVA) 的脚本系统 RGSS3 的部分重新实现和功能扩展。它的主要作用是提升游戏的绘图效率、增强绘图扩展性,同时修正一些存在于原版 RGSS3 的漏洞。
这项工作由我和 Fux2 共同完成。Fux2 负责所有 C++ 代码和 Ruby 交互、Ruby 对象处理以及描绘文字相关的功能,我负责 D3D 绘图相关的功能。感谢 Mayaru 绘制了 RGD 的形象和图标文件。

使用方法

使用附件压缩包里的 Game.exe 替换原始游戏中的 Game.exe。

一些特性
除此之外还有突破分辨率限制、Bitmap和Viewport直接保存为图片等等附加功能。


效果演示
效果演示


使用约定


下载、更新记录和更多信息

http://cirno.blog/archives/290


作者: 暮觉    时间: 2018-5-4 19:39
前排恭喜发布!
被⑨姐姐和黄鸡的黑科技触瞎_(:3」∠) _
作者: devil033    时间: 2018-5-4 19:43
朝拜大佬,太牛逼,太感谢了!
作者: 梦想家大魔王    时间: 2018-5-4 19:51
这个真棒!有技术就是可以为所欲为!
作者: 猪衰衰    时间: 2018-5-4 19:52
赶紧前来朝圣
作者: Nil2018    时间: 2018-5-4 19:57
十分感谢大佬们的努力!
就是我这里每次保存以后都会dll报错.....
作者: 迷糊的安安    时间: 2018-5-4 20:00
见证神科技的诞生……

感觉标题要不要写上【告别卡顿+放大不糊+图像增强】之类描述?
作者: 文雅夕露    时间: 2018-5-4 20:24
本帖最后由 文雅夕露 于 2018-5-4 20:46 编辑

32位系统貌似不能使用?
跟操作系统有关系吗?

PS:默认脚本也无法使用。
作者: 余音·魔眼    时间: 2018-5-4 20:44
本帖最后由 余音·魔眼 于 2018-5-4 20:52 编辑

没想到这么快就出来了!激动地去下载了!

以及……错误的DLL文件是咋回事?
作者: MireniamuYuki    时间: 2018-5-4 20:55
醋虾
作者: xiaohuangdi    时间: 2018-5-4 21:19
余音·魔眼 发表于 2018-5-4 20:44
没想到这么快就出来了!激动地去下载了!

以及……错误的DLL文件是咋回事? ...

.ini 里面换成301.dll   跟其他的viewport 脚本冲突的厉害
作者: devil033    时间: 2018-5-4 21:46
发现2个问题:
1. 使用SV100,战斗时,我方7人,敌方8人,开启显示装备的武器,略有掉帧,但最主要的是画面有明显的卡顿,特别是使用技能显示动画的时候(未使用RGD时,相同的分辨率1024*640,只是掉帧,但不会卡顿)
2. 同样是以上的战斗状态,敌人的影子坐标坐标、武器坐标,我方的武器坐标, 都会发生偏移
作者: 骷髅岛遗老    时间: 2018-5-4 22:59
卧槽跪拜大佬
作者: Distoy    时间: 2018-5-4 23:29
太棒了,做像素游戏终于可以放大显示了。

作者: 喵呜喵5    时间: 2018-5-5 00:16
希望能追加使用bitmap作为viewport

作者: ⑨姐姐    时间: 2018-5-5 00:24
喵呜喵5 发表于 2018-5-5 00:16
希望能追加使用bitmap作为viewport

喵5说到点子上了!

今天还在想如果能添加d3d的绘制三角形绘制几何图形,那么表现力就强很多了(比如不需要位图操作的视野效果),可是直接插入绘制流程可能会有状态操作上的不方便……

于是目前的想法是,如果以后要做这个,可以先绘制到一个临时的viewport上,然后把viewport的内容复制到bitmap。然而这样又多了一次纹理复制的过程,而且写出来的结构可能也是比较麻烦的(需要手动调用一次begin一次end)……

之后看看有没有好办法吧。
作者: devil033    时间: 2018-5-5 00:43
更新之后基本上一进游戏就报 Game.exe停止工作






作者: shitake    时间: 2018-5-5 01:31
本帖最后由 shitake 于 2018-5-5 02:11 编辑

1080p全屏就是爽 233
话说既然Mouse都做了 为啥不顺手把全键盘都做了?
这两个脚本大部分都是一体的 只弄一个反而要去删除和整合

[line]1[/line]



测试了下 像素字体+原始分辨率640x360的图 3倍缩放到1080p全屏 效果看起来还不错

不过测试途中发现全屏貌似有些问题啊
比如全屏后得等个一两秒下边的开始菜单栏才会隐去
然后游戏中打开了下英伟达的GeFroce Experience菜单 结果游戏就崩溃了
作者: congwsbn    时间: 2018-5-5 18:29
跟你们说,⑨姐姐醋鸡的RGD超级棒的!我要吹爆!
作者: 小吵闹的革命    时间: 2018-5-5 19:44
支持一下,非常感谢⑨姐姐与黄鸡为我们带来的RGSS4,期望你们今后也能做出更好的作品,支持你们哦
作者: guoxiaomi    时间: 2018-5-5 21:49
系统是win10x64

同17楼,工程是空的工程然后加上了几个小事件,已经替换调了301,修改了Game.ini,然后放着不动大概10s左右就卡住了,然后程序崩溃。

我又把 Game.exe 换成默认的。更换之后,现在无论是双击exe,或者工程打开后F12运行,都会提示没有安装VL Gothic 字体
作者: H·H·Y    时间: 2018-5-5 22:16
感觉拿来做黄油会有非同寻常的效果
作者: shencao    时间: 2018-5-5 22:41
还有法线?这有点太强了吧
以后开新坑的时候会试试~(旧坑因为塞了很多脚本搞不动兼容问题还是不动了XD
作者: 浮云半仙    时间: 2018-5-6 10:34
本帖最后由 浮云半仙 于 2018-5-6 10:49 编辑

(火钳后排刘明)
在vs里面改下设置,工具链用比如msvc14_xp编译出来的可以在winxp上跑
d3d⑨应该是是需要经常check capability看看显卡+运行时是否资瓷某个接口,否则大概就会炸?(d3d11大法好(逃

作者: 凯琳·赛拉菲姆    时间: 2018-5-6 11:00
碉堡了 划时代的产物
作者: 喵呜喵5    时间: 2018-5-6 13:33
期望有更新日志……
还是更新只是修bug?
作者: 鸟猫    时间: 2018-5-7 00:53
⑨姐姐是世界上最好的姐姐,黄鸡哥哥是最好的哥哥
向诸位造轮者表示感谢
作者: 春风莉露    时间: 2018-5-7 15:31
画面变得更精致了,棒棒哒
作者: devil033    时间: 2018-5-7 19:58
这次好了,不会崩了
但有个新的问题
我用了一个视频格式扩展脚本,现在这个版本会跳过视频播放(不播放视频),以前的版本并没有这个问题

以下是我用的视频格式扩展脚本

另外想问题个问题:就是SV100多人战斗,并显示武器画面会卡顿很明显的问题,以后会优化吗?谢谢

RUBY 代码复制
  1. =begin
  2.  ■ RGDS_SP ver 0.0.1.2
  3.  動画再生スクリプト(表示系)for VX Ace
  4.  動画再生スクリプト(ベース)より下に配置してください。
  5.  
  6. =end
  7.  
  8.  
  9.  
  10.  
  11. module RGDS_SP
  12.   @@visible = false
  13.  
  14.   # ■ 動画設定クラス $game_system.movie_infoで使用
  15.   class MovieInfo
  16.     attr_reader :x
  17.     attr_reader :y
  18.     attr_reader :z
  19.     attr_reader :width_max
  20.     attr_reader :height_max
  21.     attr_reader :origin_center
  22.     attr_accessor :mode
  23.     attr_accessor :refresh_flag
  24.     def initialize
  25.       @x = Graphics.width / 2
  26.       @y = Graphics.height / 2
  27.       @z = 500
  28.       @width_max  = 0
  29.       @height_max = 0
  30.       @origin_center = true
  31.       @mode = 0
  32.       @refresh_flag = false
  33.     end
  34.  
  35.     # セッター
  36.     def x=(n)
  37.       @x = n
  38.       @refresh_flag = true
  39.     end
  40.     def y=(n)
  41.       @y = n
  42.       @refresh_flag = true
  43.     end
  44.     def z=(n)
  45.       @z = n
  46.       @refresh_flag = true
  47.     end
  48.     def width_max=(n)
  49.       @width_max = n
  50.       @refresh_flag = true
  51.     end
  52.     def width_max=(n)
  53.       @width_max = n
  54.       @refresh_flag = true
  55.     end
  56.     def origin_center=(flag)
  57.       @origin_center = flag
  58.       @refresh_flag = true
  59.     end
  60.  
  61.     # ■ 表示位置、サイズを指定します。
  62.     #- x, y: 表示座標
  63.     #- width_max, height_max: 表示枠。この内部に収まるように拡大縮小します。
  64.     #                       : どちらかが0以下の場合拡大縮小は行われません。
  65.     #- orogin: 表示位置基準点 false(デフォ): 動画の左上, true: 動画の中心を上記
  66.     #-         の[x,y]にあわせます
  67.     def set_position(x=0,y=0,width_max=0,height_max=0,origin=false)
  68.       @x = x
  69.       @y = y
  70.       @width_max  = width_max
  71.       @height_max = height_max
  72.       @origin_center = origin
  73.       @refresh_flag = true
  74.     end
  75.  
  76.     # ■ 以降の表示位置、サイズをデフォルトに戻します。
  77.     # 拡大縮小なし、左上にあわせて表示
  78.     def reset_position
  79.       @x = Graphics.width / 2
  80.       @y = Graphics.height / 2
  81.       @width_max  = 0
  82.       @height_max = 0
  83.       @origin_center = true
  84.       @refresh_flag = true
  85.     end
  86.  
  87.   end
  88.  
  89.  
  90.   class MovieSprite < ::Sprite
  91.     # 初期化
  92.     def initialize(viewport=nil)
  93.       super
  94.       self.visible = false
  95.       self.bitmap = RGDS.bitmap
  96.       fix_position()
  97.     end
  98.  
  99.     # 拡大縮小処理
  100.     def change_zoom
  101.       zoom = 1.0
  102.       bw = self.bitmap.width
  103.       bh = self.bitmap.height
  104.       return if bw <= 0 or bh <= 0
  105.       if $game_system.movie_info.width_max > 0 and $game_system.movie_info.height_max > 0
  106.         zoom_w = $game_system.movie_info.width_max.to_f / bw.to_f
  107.         zoom_h = $game_system.movie_info.height_max.to_f / bh.to_f
  108.         zoom = [zoom_w, zoom_h].min
  109.       end
  110.       self.zoom_x = zoom
  111.       self.zoom_y = zoom
  112.     end
  113.  
  114.     # 表示位置変更
  115.     def fix_position
  116.       self.x = $game_system.movie_info.x
  117.       self.y = $game_system.movie_info.y
  118.       self.z = $game_system.movie_info.z
  119.       if $game_system.movie_info.origin_center
  120.         self.ox = self.bitmap.width / 2
  121.         self.oy = self.bitmap.height / 2
  122.       end
  123.       change_zoom()
  124.     end
  125.  
  126.     def update
  127.       if (self.visible = RGDS.visible)
  128.         if RGDS.bitmap_changed? or self.bitmap.disposed?
  129.           self.bitmap = RGDS.bitmap
  130.           fix_position()
  131.           RGDS.bitmap_changed = false
  132.           $game_system.movie_info.refresh_flag = false
  133.         elsif $game_system.movie_info.refresh_flag
  134.           fix_position()
  135.           $game_system.movie_info.refresh_flag = false
  136.         end
  137.       end
  138.       super
  139.     end
  140.   end
  141.  
  142.   module_function
  143.  
  144.   # ■ 動画をオープンします。初回は1~2秒ほどかかる場合もあります。
  145.   def open(filename)
  146.     RGDS.open(filename)
  147.   end
  148.  
  149.   # ■ 動画を停止しクローズします。
  150.   def close
  151.     RGDS.close()
  152.   end
  153.  
  154.   # ■ openされた動画を再生します。一時停止中なら再開します。
  155.   # 再生が終わると自動的にクローズします。
  156.   def run
  157.     RGDS.run()
  158.   end
  159.  
  160.   # ■ 動画を一時停止します。再開はrunで行います。
  161.   def pause
  162.     RGDS.pause()
  163.   end
  164.  
  165.   # ■ 動画をオープンして自動再生します。
  166.   #- 決定キーでスキップします。
  167.   def start_movie(filename, option={})
  168.  
  169.     # スキップ検出オプション
  170.     if option.key?(:skip_sw)
  171.       skip_sw = option[:skip_sw].to_i
  172.     else
  173.       skip_sw = 0
  174.     end
  175.  
  176.     # スキップ禁止モードオプション
  177.     if option.key?(:nsm)
  178.       nsm_mode = option[:nsm]
  179.     else
  180.       nsm_mode = false
  181.     end
  182.  
  183.     if skip_sw > 0
  184.       $game_switches[skip_sw] = true
  185.     end
  186.     scene_temp = SceneManager.scene
  187.     if scene_temp.is_a?(Scene_Map) or scene_temp.is_a?(Scene_Battle)
  188.       msgv = SceneManager.scene.instance_variable_get(:@message_window)
  189.       msgv.update
  190.       tempv = msgv.visible
  191.       msgv.visible = false
  192.       # オープン
  193.       RGDS.open(filename)
  194.       RGDS.run()
  195.       # 終了またはボタンが押されるまでループ
  196.       loop do
  197.         break if scene_temp != SceneManager.scene
  198.  
  199.         # 画面の更新
  200.         if SceneManager.scene.is_a?(Scene_Map)
  201.           SceneManager.scene.update_for_fade
  202.         else
  203.           SceneManager.scene.update_basic
  204.         end
  205.  
  206.         if !RGDS.active? # 再生終了
  207.           if skip_sw > 0
  208.             $game_switches[skip_sw] = false
  209.           end
  210.           break
  211.         end
  212.         unless nsm_mode
  213.           if Input.trigger?(Input::A)# or Input.trigger?(Input::B)
  214.             break
  215.           end
  216.         end
  217.       end
  218.       RGDS.close()
  219.       msgv.visible = tempv
  220.     end
  221.   end
  222.  
  223.  
  224.   # ■ 以降の表示位置、サイズを指定します。
  225.   #- x, y: 表示座標
  226.   #- width_max, height_max: 表示枠。この内部に収まるように拡大縮小します。
  227.   #                       : どちらかが0以下の場合拡大縮小は行われません。
  228.   #- origin: 表示位置基準点 false: 動画の左上, true: 動画の中心を上記
  229.   #-         の[x,y]にあわせます
  230.   def set_position(x=0,y=0,width_max=0,height_max=0,origin=false)
  231.     $game_system.movie_info.set_position(x,y,width_max,height_max,origin)
  232.   end
  233.  
  234.   # ■ 以降の表示位置、サイズをデフォルトに戻します。
  235.   # 拡大縮小なし、中央にあわせて表示
  236.   def reset_position
  237.     $game_system.movie_info.reset_position()
  238.   end
  239.  
  240.   # 再生音量取得
  241.   def get_volume
  242.     return RGDS.get_volume()
  243.   end
  244.  
  245.   # 再生音量設定
  246.   def set_volume(volume)
  247.     return RGDS.set_volume(volume)
  248.   end
  249.  
  250. end
  251.  
  252. class Game_System
  253.   def init_movie_info
  254.     @movie_info = RGDS_SP::MovieInfo.new
  255.   end
  256.   def movie_info
  257.     init_movie_info() if @movie_info.nil?
  258.     return @movie_info
  259.   end
  260. end
  261.  
  262.  
  263. class Spriteset_Map
  264.   alias :_hn_movie__initialize :initialize unless private_method_defined?(:_hn_movie__initialize)
  265.   def initialize
  266.     # 元の処理
  267.     _hn_movie__initialize
  268.     # 追加処理
  269.     create_movie
  270.     update_movie
  271.   end
  272.  
  273.   alias :_hn_movie__dispose :dispose unless method_defined?(:_hn_movie__dispose)
  274.   def dispose
  275.     dispose_movie
  276.     _hn_movie__dispose
  277.   end
  278.  
  279.   alias :_hn_movie__update :update unless method_defined?(:_hn_movie__update)
  280.   def update
  281.     update_movie
  282.     _hn_movie__update
  283.   end
  284.  
  285.   # ■ シーン移行時に動画を待機モードにします。
  286.   def create_movie
  287.     @sp_movie = RGDS_SP::MovieSprite.new()
  288.     @sp_movie.viewport = @viewport1
  289.     RGDS.system_resume
  290.   end
  291.  
  292.   # ■ シーン移行時に動画を待機モードにします。
  293.   def dispose_movie
  294.     RGDS.system_pause
  295.     @sp_movie.viewport = nil
  296.     @sp_movie.dispose
  297.     @sp_movie = nil
  298.   end
  299.  
  300.   def update_movie
  301.     if RGDS.active?
  302.       RGDS.update
  303.     end
  304.     @sp_movie.update unless @sp_movie.nil?
  305.   end
  306. end
  307.  
  308. class Spriteset_Battle
  309.   alias :_hn_movie__initialize :initialize unless private_method_defined?(:_hn_movie__initialize)
  310.   def initialize
  311.     # 元の処理
  312.     _hn_movie__initialize
  313.     # 追加処理
  314.     create_movie
  315.     update_movie
  316.   end
  317.  
  318.   alias :_hn_movie__dispose :dispose unless method_defined?(:_hn_movie__dispose)
  319.   def dispose
  320.     dispose_movie
  321.     _hn_movie__dispose
  322.   end
  323.  
  324.   alias :_hn_movie__update :update unless method_defined?(:_hn_movie__update)
  325.   def update
  326.     update_movie
  327.     _hn_movie__update
  328.   end
  329.  
  330.   # ■ シーン移行時に動画を待機モードにします。
  331.   def create_movie
  332.     @sp_movie = RGDS_SP::MovieSprite.new()
  333.     @sp_movie.viewport = @viewport1
  334.     RGDS.system_resume
  335.   end
  336.  
  337.   # ■ シーン移行時に動画を待機モードにします。
  338.   def dispose_movie
  339.     RGDS.system_pause
  340.     @sp_movie.viewport = nil
  341.     @sp_movie.dispose
  342.     @sp_movie = nil
  343.   end
  344.  
  345.   def update_movie
  346.     if RGDS.active?
  347.       RGDS.update
  348.     end
  349.     @sp_movie.update unless @sp_movie.nil?
  350.   end
  351. end

作者: ⑨姐姐    时间: 2018-5-7 20:01
devil033 发表于 2018-5-7 19:58
这次好了,不会崩了
但有个新的问题
我用了一个视频格式扩展脚本,现在这个版本会跳过视频播放(不播放视频 ...

播放视频功能是仅有的一个原版RM有而这里没提供的功能……

另外sideview不一定会优化,也许可以等RGD稳定以后根据RGD的特性重新定制一个版本,减少位图操作,增加精灵操作,思路上大概是这样吧。
作者: 鑫晴    时间: 2018-5-11 00:51
我新建工程,然后把Game.exe替换过去,运行就会提示错误的DLL文件。(尝试了中文版和Steam版都是这样)
作者: kbsora    时间: 2018-5-11 15:39
這真的很厲害,感謝製作,解決了卡頓跟解析度的問題
作者: 穿越时空之剑    时间: 2018-5-11 17:56
有RGSS301dll,运行时提示加载RGSS300核心库失败,我又复制了RGSS300dll进去,然后提示错误的dll文件…是不是脚本冲突了
作者: 穿越时空之剑    时间: 2018-5-11 18:57
有这个脚本存在的情况下打开技能画面游戏会无响应退出
冲突脚本代码

作者: KB.Driver    时间: 2018-5-17 18:28
感觉可以做出不少厉害的效果(
总之很有趣的样子!感谢分享~
作者: 高须小龙    时间: 2018-5-18 09:03
很强!开放了不少东西。
作者: guoxiaomi    时间: 2018-5-20 17:06
本帖最后由 guoxiaomi 于 2018-5-20 18:49 编辑

今天下载1.0.2版本的example试图运行,发现在笔记本上能正常执行,在台式机上显示“Game.exe”已停止工作。
两台电脑都是win10,怀疑是显卡的问题?笔记本的显卡是GeForce GT 520M,台式机查了一下是GeForce 605
说实话两款显卡都很旧,甚至不知道哪个更渣。

顺便问一下RGSS303.dll是什么?

又摸了台 Thinkpad x1 carbon,显卡是 HD5500,显示“由于找不到 d3dx9_43.dll,无法继续执行代码”,但是这台电脑是公共的,所以我没法安装DirectX9再测试……

605的机子下了最新的驱动,打开范例在最前面敲了一行“msgbox '?'”,F12后,游戏窗口、控制台出现,均黑屏无显示,然后很快就报错。

之前试图卸载论坛版的VA,重装steam版的VA,发现卸载了va好像会优先报错“不存在RTP”,但是不太记得是不是在范例里了。
作者: ⑨姐姐    时间: 2018-5-20 17:34
guoxiaomi 发表于 2018-5-20 17:06
今天下载1.0.2版本的example试图运行,发现在笔记本上能正常执行,在台式机上显示“Game.exe”已停止工作。 ...


嗯……不要在意303,那个是测试用dll,可能被我不小心打包进去了。

605看上去版本也已经够了,装一个新的驱动试试?另外能不能看到是在什么时机触发的错误?
运行其他的DirectX9游戏(比如东方风神录)有没有问题?
作者: fux2    时间: 2018-5-22 16:56
guoxiaomi 发表于 2018-5-20 17:06
今天下载1.0.2版本的example试图运行,发现在笔记本上能正常执行,在台式机上显示“Game.exe”已停止工作。 ...

Game.exe停止工作的时机大概是什么时候?
作者: guoxiaomi    时间: 2018-5-23 20:22
本帖最后由 guoxiaomi 于 2018-5-23 20:24 编辑
fux2 发表于 2018-5-22 16:56
Game.exe停止工作的时机大概是什么时候?


日志名称:          Application
来源:            Application Error
日期:            2018/5/23 20:18:32
事件 ID:         1000
任务类别:          (100)
级别:            错误
关键字:           经典
用户:            暂缺
计算机:           DESKTOP-FMR4N2O
描述:
错误应用程序名称: Game.exe,版本: 0.0.0.0,时间戳: 0x5af6cc75
错误模块名称: Game.exe,版本: 0.0.0.0,时间戳: 0x5af6cc75
异常代码: 0xc0000005
错误偏移量: 0x0000d891
错误进程 ID: 0x27e8
错误应用程序启动时间: 0x01d3f2902a02b543
错误应用程序路径: C:\Users\guoxiaomi\Downloads\RGDv1.0.2Example\Game.exe
错误模块路径: C:\Users\guoxiaomi\Downloads\RGDv1.0.2Example\Game.exe
报告 ID: 29404199-729e-4e5f-84f7-ee4ce6d3d39a
错误程序包全名:
错误程序包相对应用程序 ID:
事件 Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Application Error" />
    <EventID Qualifiers="0">1000</EventID>
    <Level>2</Level>
    <Task>100</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2018-05-23T12:18:32.767988200Z" />
    <EventRecordID>65520</EventRecordID>
    <Channel>Application</Channel>
    <Computer>DESKTOP-FMR4N2O</Computer>
    <Security />
  </System>
  <EventData>
    <Data>Game.exe</Data>
    <Data>0.0.0.0</Data>
    <Data>5af6cc75</Data>
    <Data>Game.exe</Data>
    <Data>0.0.0.0</Data>
    <Data>5af6cc75</Data>
    <Data>c0000005</Data>
    <Data>0000d891</Data>
    <Data>27e8</Data>
    <Data>01d3f2902a02b543</Data>
    <Data>C:\Users\guoxiaomi\Downloads\RGDv1.0.2Example\Game.exe</Data>
    <Data>C:\Users\guoxiaomi\Downloads\RGDv1.0.2Example\Game.exe</Data>
    <Data>29404199-729e-4e5f-84f7-ee4ce6d3d39a</Data>
    <Data>
    </Data>
    <Data>
    </Data>
  </EventData>
</Event>



日志名称:          Application
来源:            Windows Error Reporting
日期:            2018/5/23 20:18:36
事件 ID:         1001
任务类别:          无
级别:            信息
关键字:           经典
用户:            暂缺
计算机:           DESKTOP-FMR4N2O
描述:
错误存储段 2049988286072091085,类型 1
事件名称: APPCRASH
响应: 不可用
Cab Id: 0

问题签名:
P1: Game.exe
P2: 0.0.0.0
P3: 5af6cc75
P4: Game.exe
P5: 0.0.0.0
P6: 5af6cc75
P7: c0000005
P8: 0000d891
P9:
P10:

附加文件:
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER18E9.tmp.dmp
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER1F15.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER1F13.tmp.csv
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER1F33.tmp.txt

可在此处获取这些文件:
C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_Game.exe_2eef9460dc4b0943858351838261c112bf1148b_6ea368d8_2276281c

分析符号:
重新检查解决方案: 0
报告 Id: 29404199-729e-4e5f-84f7-ee4ce6d3d39a
报告状态: 268435457
哈希存储段: ec60535a08025ad0fc73057c2109f1cd
事件 Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Windows Error Reporting" />
    <EventID Qualifiers="0">1001</EventID>
    <Level>4</Level>
    <Task>0</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2018-05-23T12:18:36.769193100Z" />
    <EventRecordID>65521</EventRecordID>
    <Channel>Application</Channel>
    <Computer>DESKTOP-FMR4N2O</Computer>
    <Security />
  </System>
  <EventData>
    <Data>2049988286072091085</Data>
    <Data>1</Data>
    <Data>APPCRASH</Data>
    <Data>不可用</Data>
    <Data>0</Data>
    <Data>Game.exe</Data>
    <Data>0.0.0.0</Data>
    <Data>5af6cc75</Data>
    <Data>Game.exe</Data>
    <Data>0.0.0.0</Data>
    <Data>5af6cc75</Data>
    <Data>c0000005</Data>
    <Data>0000d891</Data>
    <Data>
    </Data>
    <Data>
    </Data>
    <Data>
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER18E9.tmp.dmp
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER1F15.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER1F13.tmp.csv
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER1F33.tmp.txt</Data>
    <Data>C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_Game.exe_2eef9460dc4b0943858351838261c112bf1148b_6ea368d8_2276281c</Data>
    <Data>
    </Data>
    <Data>0</Data>
    <Data>29404199-729e-4e5f-84f7-ee4ce6d3d39a</Data>
    <Data>268435457</Data>
    <Data>ec60535a08025ad0fc73057c2109f1cd</Data>
  </EventData>
</Event>
作者: fux2    时间: 2018-5-23 22:57
guoxiaomi 发表于 2018-5-23 20:22
日志名称:          Application
来源:            Application Error
日期:            2018/5/23 20:18 ...

收到,分析中。
作者: 路路    时间: 2018-5-26 09:08
弱弱的问一下在PS_OUTPUT PS中如何用传回的参数(int x y..)点对点(或者矩形着色)texture myparam_tex(纹理位置x y) 着色到精灵
作者: ⑨姐姐    时间: 2018-5-26 12:32
路路 发表于 2018-5-26 09:08
弱弱的问一下在PS_OUTPUT PS中如何用传回的参数(int x y..)点对点(或者矩形着色)texture myparam_tex(纹 ...

如果要操作一个矩形里的颜色,可以用TEXCOORD:

  1. float4 PS(float2 texcoord : TEXCOORD) : COLOR
  2. {
  3.     if (texcoord.x > 0.3 && texcoord.y < 0.5 && texcoord.y > 0.3 && texcoord.y < 0.5)
  4.         return float4(1, 0, 0, 1);
  5.      else return float4(0, 1, 0, 1);
  6. }
复制代码


不过一般不建议在shader里做区域操作。替代的方法有二:
1、使用Bitmap#fill_rect;
2、使用两个精灵,第二个精灵覆盖第一个精灵的区域部分(推荐)。
作者: 余音·魔眼    时间: 2018-6-5 19:28
我想问一下,跟烛光脚本冲突怎么办
作者: 余音·魔眼    时间: 2018-6-6 18:50
余音·魔眼 发表于 2018-6-5 19:28
我想问一下,跟烛光脚本冲突怎么办

删掉之后还是有一些问题,我按照你那个脚本兼容方案整理上试着改了点,到改blend_blt的时候不会了,也就是说怎样使用两个精灵,具体是哪两个,该怎么操作,麻烦告知
作者: ⑨姐姐    时间: 2018-6-7 13:28
更新了v1.1版本,修复大量BUG,并且添加了一些新功能。
详情请看更新记录部分。
作者: BlueHalo    时间: 2018-6-12 08:16
感觉很吊的样纸
作者: 233213fedf    时间: 2018-6-17 21:44
这什么情况……




作者: fux2    时间: 2018-6-18 01:09
233213fedf 发表于 2018-6-17 21:44
这什么情况……

请问朋友的显卡是什么型号的。
作者: KB.Driver    时间: 2018-6-18 14:03
今天刚刚开始用这个,目的是想加快精灵的处理速度。
但是出现了一些意想不到的问题……

一个是坐标图的文字颜色变了……
还有一个是更改画面色调时变得和以前不一样了……
具体见下面的截图(100多k的是原版 300多k的是RGD)

使用原版Game.exe

使用RGD的Game.exe


代码:
坐标
色调




想问问原因……以及可以的话,有解决方案吗?
作者: ⑨姐姐    时间: 2018-6-18 14:13
@KB.Driver 试试这个exe如何?

Game.zip

391.22 KB, 下载次数: 145


作者: KB.Driver    时间: 2018-6-18 15:24
⑨姐姐 发表于 2018-6-18 14:13
@KB.Driver 试试这个exe如何?

emmm...
用了以后好多设计透明度的部分都出问题了……(还挺严重的……)
另外坐标的颜色是正常了,画面色调还是不一样。。。
作者: ⑨姐姐    时间: 2018-6-18 19:04
KB.Driver 发表于 2018-6-18 15:24
emmm...
用了以后好多设计透明度的部分都出问题了……(还挺严重的……)
另外坐标的颜色是正常了,画面 ...


如果方便的话可以试试在空白工程里重现出对应的问题?
如果依赖外部脚本的话麻烦看看是具体哪个脚本出问题的吧,然后发一下,我去测试……
另外如果透明度的部分涉及到跨多个viewport,那确实不能保证效果没问题……
作者: KB.Driver    时间: 2018-6-19 13:06
⑨姐姐 发表于 2018-6-18 19:04
如果方便的话可以试试在空白工程里重现出对应的问题?
如果依赖外部脚本的话麻烦看看是具体哪个脚本出问 ...

emm 因为是我自己写的脚本然后初学RGSS这些都不是太懂……
我把工程附在附件里了……涉及到有问题的地方做了点标注
由于dll太大,附件装不下,需要自己放进去……

Project1.7z (1.3 MB, 下载次数: 120)
Fonts.7z (1.5 MB, 下载次数: 100)
Fonts(2).7z (1.84 MB, 下载次数: 101)

顺便这是不用RGD的效果重点是坐标数字的颜色是白色、后面的场景色调变化为茶色


作者: 越前リョーマ    时间: 2018-6-23 17:00
是神作
作者: 233213fedf    时间: 2018-6-24 12:03
fux2 发表于 2018-6-18 01:09
请问朋友的显卡是什么型号的。


作者: 谜样神君    时间: 2018-6-24 12:25
我的天,这个太厉害了!
作者: MireniamuYuki    时间: 2018-6-24 21:37
RGD改了游戏里Window那个对话框的暂停小箭头的闪烁频率吗?看上去快了好多……
作者: devil033    时间: 2018-6-29 12:51
之前使用 1024 *640 的分辨率
SV横版战斗脚本,7个VS 8个的战斗,敌我双方全显示武器图标,结果战斗时明显有掉帧,并且战斗动画有卡顿现象

现在改回640 * 480 的分辨率
SV横版战斗脚本,5个VS 5个的战斗,敌我双方全显示武器图标,结果战斗还是会掉帧,战斗动画也有卡顿现象

想知道这个问题会优化吗
作者: aa3296511726    时间: 2018-7-2 22:42
膜拜dalao
作者: sdgn    时间: 2018-7-6 20:13
本帖最后由 sdgn 于 2018-7-6 20:37 编辑

滿不錯的東西
作者: 余音·魔眼    时间: 2018-7-7 22:35
本帖最后由 余音·魔眼 于 2018-7-7 22:39 编辑

我想问一下这个是不是对电脑配置有要求啊,我把游戏发给别人,有的人会出现“Game.exe已停止运行”的错误,而有的电脑不会。。
有的连开都开不了。。
作者: ABC11224399    时间: 2018-7-9 00:41
为什么感觉全屏状态下会有点图像失真
作者: pajiman1999    时间: 2018-7-9 16:27
请问我做的游戏给朋友玩  我自己 就没事正常打开 我朋友打开游戏是黑屏几秒 然后自动关闭了 是什么原因呢  我用了这个 game.exe

我自己玩极为流畅 很舒服

作者: pajiman1999    时间: 2018-7-9 16:35
我系统是 win7  我朋友系统是 win10  打了dx9
作者: pajiman1999    时间: 2018-7-9 18:39
pajiman1999 发表于 2018-7-9 16:35
我系统是 win7  我朋友系统是 win10  打了dx9

好的 我叫他试试
作者: pajiman1999    时间: 2018-7-9 18:40
pajiman1999 发表于 2018-7-9 18:39
好的 我叫他试试

谢谢大佬回复我
作者: BlueHalo    时间: 2018-7-12 11:38
我觉得你可以去试试用OpenGL试试做3D
作者: MireniamuYuki    时间: 2018-7-14 18:35
RGD禁用了F12吗?
另外觉得可以用这个来实现单独的图像加密……
作者: 丿梁丶小柒    时间: 2018-7-16 17:00
我靠,9姐姐怎么突然境界如此恐怖如斯了。
一直不断努力都没有超越9姐姐,真是悲伤
作者: 丿梁丶小柒    时间: 2018-7-17 00:35
恕我直言,大部分api看不懂。比如怎么画个三角形。有例子嘛
还有那个shader  看半天 没看明白怎么用是啥东西。新api都不知道是什么东西
作者: 1262917464    时间: 2018-7-17 01:03
wine表示不兼容(一本正经(扔出去

backtrace.7z

2.32 KB, 下载次数: 93

错误文件


作者: 探求者    时间: 2018-7-17 15:37
快住手,这已经不是RMVA

还有,大佬,缺大腿挂件吗?
作者: 探求者    时间: 2018-7-17 15:48
Nil2018 发表于 2018-5-4 19:57
十分感谢大佬们的努力!
就是我这里每次保存以后都会dll报错.....

DLL版本问题
需要3.0.1.1版本的DLL
300和301都要有
https://www.jb51.net/dll/RGSS300.dll.html
https://www.jb51.net/dll/RGSS301.dll.html
有趣的是脚本之家就有www
作者: 探求者    时间: 2018-7-17 16:24
@⑨姐姐
删掉300的话:


把301改名为300




作者: 西卡小飞    时间: 2018-7-17 22:59
在分屏显示器的情况下全屏会出BUG呢。。。。
作者: 丿梁丶小柒    时间: 2018-7-17 23:44
*SyntaxError - 2018-07-16 22:58:11 (Monday)
(eval):1: syntax error, unexpected $end, expecting ')'
*SyntaxError - 2018-07-16 22:58:11 (Monday)
(eval):1: syntax error, unexpected $end, expecting ')'
(RGD.onWindowBlur if RGD.respond_to?(:onWindowBlur); RGD.__blur
*SyntaxError - 2018-07-16 22:58:11 (Monday)
(eval):1: syntax error, unexpected $end, expecting ')'
(RGD.onWindowBlur if RGD.respond_to?(:onWindowBlur); RGD.__blur

一直打印这个错误txt 游戏能玩,为啥
作者: 西卡小飞    时间: 2018-7-18 00:05
崩溃,直接显示停止运行~
尤其是外接显示器作主显示器的时候。笔记本自带显示器做主显示器时没有问题

嘛~只是提一下。不过测试游戏时会比较麻烦
作者: 1262917464    时间: 2018-7-27 17:30

字体是什么鬼哦(
Font.pixel怕不是假的
以及在xp下面直接显示错乱(
作者: 1262917464    时间: 2018-8-1 22:47
1262917464 发表于 2018-7-27 17:30
字体是什么鬼哦(
Font.pixel怕不是假的
以及在xp下面直接显示错乱(

http://nobihazard.tk/download/%E ... %E5%8C%96%201.20.7z
是这个(
作者: RMVXA    时间: 2018-8-4 08:55
本帖最后由 RMVXA 于 2018-8-4 08:57 编辑

一直在用Map Effects这个脚本,感觉效果跟它差不多。


作者: 七重    时间: 2018-8-15 07:56
直到今天才尝试使用了一下这个。

效果让人感动。
768*448分辨率 加 1.5倍缩放 加 弹性屏幕 加 像素移动 居然十分流畅。

自己本来已经放弃了弹性屏幕和像素移动和非整数倍倍放。因为只用原来DLL拓展的话,屏幕的移动会变得不平滑,看着犯晕。
于是今天想起这个就尝试了,效果真的好。

--

但是有个问题是想请教的。
关于对半生的灯光脚本的兼容。

我看了前楼的留言和解决方案。
但是我不知道接下来具体应该怎么做。

删除位图拓展之后,
比如第一个报错是 @bitmap.invert()未定义。
解决方法是。。,#可以使用 process_color 处理,也可以新建 shader 让精灵使用。。

不知道具体应该怎么做,请问楼主是否有已经兼容的过半生灯光脚本,或者是稍微指明一下写法。
作者: fux2    时间: 2018-8-15 21:06
七重 发表于 2018-8-15 07:56
直到今天才尝试使用了一下这个。

效果让人感动。

加入这个试试,没试过不知道对不对(*x

RUBY 代码复制
  1. class Bitmap
  2.         def invert
  3.                 self.process_color do |color_arr|
  4.                         color_arr.size.times do |i|
  5.                                 color_arr[i].red = 255-color_arr[i].red
  6.                                 color_arr[i].green = 255-color_arr[i].green
  7.                                 color_arr[i].blue = 255-color_arr[i].blue
  8.                         end
  9.                 end
  10.                 self
  11.         end
  12. end

作者: 七重    时间: 2018-8-15 21:28
fux2 发表于 2018-8-15 21:06
加入这个试试,没试过不知道对不对(*x

class Bitmap

十分感谢你的帮助。

invert已经不会报错了。

接下来的报错是:
bitmap 的blend_blt 方法未定义。

文档的解决方案是
# 带混合效果的 blt,建议使用两个精灵,可以新建一个 Spriteset 用于管理。

这个也没有头绪。。

我检索了一下解决方案的关键词,半生大概只有这两个冲突。。
如果可以的话这点也恳请指教。

作者: fux2    时间: 2018-8-15 23:22
七重 发表于 2018-8-15 21:28
十分感谢你的帮助。

invert已经不会报错了。
  1. class Bitmap
  2.         def blend_blt(*arg)
  3.                 self
  4.         end
  5. end
复制代码


你可以试着增加这么个空方法,如果有其他的报错也可以尝试这样处理,因为这些方法你不一定有用到,放个空方法容错就可以了。
作者: 七重    时间: 2018-8-16 08:45
fux2 发表于 2018-8-15 23:22
你可以试着增加这么个空方法,如果有其他的报错也可以尝试这样处理,因为这些方法你不一定有用到,放个 ...

谢谢,这样一来确实可以运行了。
虽然是黑屏。

看来冲突是只有这两个。


不过因为这个函数是控制图像光效的乘算的,所以不能留空。


昨晚睡觉前再对各种资料扫了一遍,尝试自己解决。

哦。。原来解决方案说的用两个精灵是让一个覆盖另一个吗。
天なぁ,这是要怎么做。。

总之我感受了一下之后,感觉怕不是一下子可以学会的。
之后会再学习一下吧。

--
另外就是RGD的API参考,我个人觉得有些说明是比较难懂的,又或者说是相当专业向的。(当然,这个层次是理所当然十分专业向的。)

不过有一点希望。
如果能够像其他的一些库的文档一样,写上一些简短的使用范例代码,那样即使编程水平没有达到专业程度的人,或许也可以照葫芦画瓢使用起来完成一些这个工具所能实现的特有的效果。

作者: fux2    时间: 2018-8-16 17:28
七重 发表于 2018-8-16 08:45
谢谢,这样一来确实可以运行了。
虽然是黑屏。

那等待下版本的发布吧,下版本⑨姐姐实现了内置的超强光效,还修复了一堆bug
作者: 26529208    时间: 2018-8-16 20:42
RGSS3 中 Sprite 的 blend_type可以跨 Viewport 起作用,但 RGD 中由于实现方式差异, Viewport 之间的合成相互独立,上层的加法、减法合成不能作用在下层。

请问这个在下个版本中会有改善吗?
作者: devil033    时间: 2018-8-24 18:32
把这个用在SV横版战斗中,敌人的武器坐标不对,坐标偏右上了
早期版本是敌我双方武器坐标都不对,现在我方的对了,但敌方的还是不对
作者: deadseifer    时间: 2018-8-27 01:00
实在太棒了!因为VA的限制和性能一度放弃了……甩了一个大坑……现在又想把坑填起来
目前发现斜体字显示间距变大还有显示Float的rounding有问题 我这现在回避率都快显示成派了……
但是我不确定是RGD带来的问题还是把300换成301.dll的问题 因为以前项目是在300下开发的
期待越来越强大的RGD 真心希望能有一份非常用户友好的API文档……介绍方法使用和代码范例
作者: shitake    时间: 2018-8-27 07:49
⑨姐姐啊 rgd导致bitmap2png的脚本失效,能不能直接给rgd的bitmap内置save2png啊
作者: deadseifer    时间: 2018-8-27 23:22
之前用Bitmap写了一个简单的模块 用来实现非real-time的窗口毛玻璃特效 原理无非就是blur了……用原始Game.exe每次生成一个毛玻璃窗口会掉5帧 换了RGD竟然不掉帧!可是明明说RGD处理Bitmap类效率略低啊……不懂
另外可不可以提问?在写脚本的时候使用Thread会不会效率更高呢?
还有个请求,请问通过重写Game.exe能不能让Ruby版本使用更高版本呢?现在Ruby效率更高了……可不可以另出一份使用最新版本的RGD啊……?辛苦了
作者: ⑨姐姐    时间: 2018-8-29 21:41
1.2更新了!
增加了Geometry的z和w坐标,以及shader功能。
窗口焦点触发事件改为RGD.focus_in和RGD.focus_out,取消窗口关闭事件。
性能优化。
修复大量BUG。

另外更新一个RGD光照脚本:http://invwindy.mist.so/wp-conte ... ighting_Example.zip
截图

作者: devil033    时间: 2018-8-29 23:38
迫不及待试了一下,SV敌人武器的坐标还是歪的...
作者: 七重    时间: 2018-8-30 09:39
我体验了一下新附带的光照脚本,确实是很厉害的,也许是当之无愧的技术最强?
感谢你的劳动与付出。

但是也有疑惑的地方。

在光照这个方面分为了 视野 以及 发光图,可供分别设置。
看起来是好像可以做出更精细的效果了。
但是我还是不太清楚提供这样设置的本意是什么。

我个人是觉得只需要有一个视野的设置就足够了。
(发光图的作用,看起来是可以制作一些不能突破黑暗层的光照?又或者是单纯为了对视野进行染色?)

--
其实是有希望可以改进的功能的。
希望视野图可以带有类似半生灯光那样的,正片叠底的图片合成方式。
这样做的话,就可以使用一个带有多种颜色的光照图片。
本身也可以在绘图软件上编辑。

比如现在的半生,其实是可以直接当做ULDS那样使用,直接制作一个上层的,包含整个房间的光源图片的。
编辑起来十分方便。而且也可以直接在绘图软件上绘制细腻的颜色变化。
完成一个房间的光照只需要一张图片。

如今的RGD光照如果想要改变色彩,是需要通过发光图的部分输入参数进行不可视的设置的,并且光源只能是单色。


--
最后只是顺带一提的,一点无关要紧的感想。
建筑物的影子如果不会随着距离的变化而模糊的话,会显得相当不自然。(而且人物的光照上去也是没有影响的,如果改一下合成模式大概可以调整?)
不过这样可能会十分消耗绘图效率吧?

人物的影子倒是自然变化的。大概是建筑与事件的算法不一样。

作者: devil033    时间: 2018-8-30 09:55
本帖最后由 devil033 于 2018-8-30 09:56 编辑

这是弄个简单的工程

Project4.rar

1.49 MB, 下载次数: 178


作者: ⑨姐姐    时间: 2018-8-30 13:52
Game.zip (212.53 KB, 下载次数: 133)
试试这个吧 @devil033
作者: ocq7034520    时间: 2018-8-31 17:47
好厉害,虽然不懂
作者: Nil2018    时间: 2018-9-1 00:52
报告,图块通行度出现bug_(:зゝ∠)_
使用rgd以后,可通行的桥覆盖到了人物头顶...变成星星通行了..

Project2.rar

1.42 MB, 下载次数: 154


作者: ⑨姐姐    时间: 2018-9-1 06:39
七重 发表于 2018-8-30 09:39
我体验了一下新附带的光照脚本,确实是很厉害的,也许是当之无愧的技术最强?
感谢你的劳动与付出。

抱歉之前漏掉了这条回复没看到……

多种颜色的光照图片是没问题的。只要在发光图本身带上多种颜色就可以了,颜色参数设置为255, 255, 255,相当于直接使用图片颜色。

整个场景一张图也是可以做的,只要在地图上固定一个事件,让它的可见图和光照图是整个场景的范围就可以了。

影子不会模糊确实是因为还没做,以后可能会改进吧,暂时思路上不是很清晰所以先搁置了……




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1