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

Project1

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

[RMVA发布] SINVideo,MPEG Player for RPG Maker

[复制链接]

Lv1.梦旅人

梦石
0
星屑
66
在线时间
1641 小时
注册时间
2011-9-26
帖子
313
跳转到指定楼层
1
发表于 2013-4-22 00:07:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 Shy07 于 2013-4-22 00:40 编辑

Ace虽说提供了视频播放功能,但是那个毫无互动性可言的播片工具实在是鸡肋。我会告诉你,锅盖娘的默砂开头看得我心里捉急得差点掀桌么。

不过神人总是有的,Syalon 大触一拍脑门写出了这个东西。原理是用 DShow 解码视频,然后直接把画面数据复制到 Bitmap 实例的内存区里。这样只要把这个 Bitmap 实例交给 Sprite 就可以做出各种效果了。

然后么,这东西本来是不应该分发的。但是我一个人偷着用也不好意思,而且都已经把代码提交到 SINRGE2 里了,所以还是趁着大半夜的发布到 6R 吧。不过 dll 的源码就不提供了,见谅。

截图和代码就不放了,直接下载范例工程吧

下载地址

评分

参与人数 3星屑 +337 收起 理由
feizhaodan + 300 奖赏条例
viktor + 7 DX操纵位图?nice 学习下
喵呜喵5 + 30 精品文章

查看全部评分

愿善用者善用之
https://github.com/Shy07/SINRGE2

Lv1.梦旅人

梦石
0
星屑
105
在线时间
5250 小时
注册时间
2011-10-7
帖子
1885

开拓者贵宾

2
发表于 2013-4-22 06:30:38 | 只看该作者
前排支持,这东西终于面世了←_←……音乐坑可以继续了TAT……

点评

早就面世了,你玩过的游戏里就用了这个  发表于 2013-4-22 19:23
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1175
在线时间
1564 小时
注册时间
2008-7-30
帖子
4418

贵宾

3
发表于 2013-4-22 14:01:46 | 只看该作者
然后直接把画面数据复制到 Bitmap 实例的内存区里


亮点。

点评

技术亮点呗。  发表于 2013-4-22 23:04
怎讲?  发表于 2013-4-22 19:23

See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

4
发表于 2013-4-22 17:20:03 | 只看该作者
我可以吐槽软解码效率么……

点评

莫非还指望硬解码?玩家硬件不支持怎么破?  发表于 2013-4-22 19:26
莫非还指望硬解码?玩家硬件不支持怎么破?  发表于 2013-4-22 19:25
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
276 小时
注册时间
2012-9-27
帖子
182

短篇八橙光组亚军

5
发表于 2013-4-22 18:02:35 | 只看该作者
看上去很神奇的样子~

评分

参与人数 1星屑 +7 收起 理由
Shy07 + 7 新兵给糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人 (暗夜天使)

永夜蟄居の玖瀨

梦石
0
星屑
71
在线时间
1018 小时
注册时间
2011-9-5
帖子
2813

开拓者贵宾

6
发表于 2013-4-22 18:38:29 | 只看该作者
前排占桌~

回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

7
发表于 2013-4-23 12:28:34 | 只看该作者
不支持?不支持再用软解啊……
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2013-4-23
帖子
8
8
发表于 2013-4-23 19:42:48 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
182 小时
注册时间
2012-2-11
帖子
233
9
发表于 2013-4-24 12:17:27 | 只看该作者
DeathKing 发表于 2013-4-22 14:01
亮点。

楼主请问SinVideo.dll是怎么实现的使用DDraw往RGSSBitmap渲染?
因为在下在考虑这个问题http://rpg.blue/thread-303559-1-1.html
我想看看SinVideo的源码,看看对Shader问题有没有什么帮助{:2_275:}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
66
在线时间
1641 小时
注册时间
2011-9-26
帖子
313
10
 楼主| 发表于 2013-4-24 14:43:28 | 只看该作者
viktor 发表于 2013-4-24 12:17
楼主请问SinVideo.dll是怎么实现的使用DDraw往RGSSBitmap渲染?
因为在下在考虑这个问题http://bbs.66rpg ...

SinVideo 并非用 Shader 实现的,而是直接拿 RGSSBitmap 的内存区作为视频播放的缓冲区。

RUBY 代码复制
  1. class ::Bitmap
  2.     # API
  3.     @@RtlMoveMemory_pl = Win32API.new('kernel32', 'RtlMoveMemory', 'pll', 'l')
  4.     @@RtlMoveMemory_lp = Win32API.new('kernel32', 'RtlMoveMemory', 'lpl', 'l')
  5.     def _dump(limit)
  6.       data = "rgba" * width * height
  7.       @@RtlMoveMemory_pl.call(data, address, data.length)
  8.       [width, height, Zlib::Deflate.deflate(data)].pack("LLa*") # compress
  9.     end
  10.     def self._load(str)
  11.       w, h, zdata = str.unpack("LLa*")
  12.       bmp = new(w, h)
  13.       @@RtlMoveMemory_lp.call(bmp.address, Zlib::Inflate.inflate(zdata), w * h * 4)
  14.       return bmp
  15.     end
  16.     # [[[bitmap.object_id * 2 + 16] + 8] + 16] == header
  17.     def address
  18.       buffer, ad = "rgba", object_id * 2 + 16
  19.       @@RtlMoveMemory_pl.call(buffer, ad, 4)
  20.       ad = buffer.unpack("L")[0] + 8
  21.       @@RtlMoveMemory_pl.call(buffer, ad, 4)
  22.       ad = buffer.unpack("L")[0] + 16
  23.       @@RtlMoveMemory_pl.call(buffer, ad, 4)
  24.       return buffer.unpack("L")[0]
  25.     end
  26.   end


这个是关键,先获得 Bitmap 的数据区地址,然后 DShow 解码视频
  1. GetCurrentBuffer(&rgssBitmapAddress, NULL)
复制代码
仅此而已。

因为某些原因不能直接公布源码,不过你可以看看这个:
https://github.com/Shy07/SINRGE2/blob/develop/SINRGE2%20Core/sin_video.cpp
和 SinVideo.dll 区别仅在于把 RGSSBitmap 换成了 HTEXTURE。
愿善用者善用之
https://github.com/Shy07/SINRGE2
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 12:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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