赞 | 3 |
VIP | 1 |
好人卡 | 40 |
积分 | 1 |
经验 | 93188 |
最后登录 | 2020-7-27 |
在线时间 | 1379 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 76
- 在线时间
- 1379 小时
- 注册时间
- 2012-7-5
- 帖子
- 1698
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 kuerlulu 于 2013-8-24 19:05 编辑
做完这个脚本突然发现以前有个前辈也发布过类似脚本,就是动态标题菜单那个,和我的原理一样。
↑防触雷先声明。
最后一下退出好像没录进去。
由于2611张帧图=26.9M所以就不用毒盘等工具放工程了,脚本是关键啦。
前面切换选项时换背景其实就是图片标题菜单的原理。
[pre lang="ruby" line="1" file="伪动态/视频"]class Scene_Logo20 # ■伪视频说明:越往后面越不同步
def main
@i = 10
# 生成伪视频前的准备:确定使用文件路径和居中
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.gameover("badapple20/" + @i.to_s)
@sprite.ox = @sprite.bitmap.width / 2
@sprite.oy = @sprite.bitmap.height / 2
@sprite.x = 320
@sprite.y = 240
# 我来组成 BGM
Audio.bgm_play("Audio/BGM/badapple.ogg" ,100 ,100)
Graphics.transition
# 主循环
loop do
@sprite.bitmap = RPG::Cache.gameover("badapple20/" + @i.to_s)
# 刷新游戏画面
Graphics.update
@sprite.bitmap = RPG::Cache.gameover("badapple20/" + @i.to_s)
# 刷新游戏画面
Graphics.update
# 刷新输入信息
Input.update
# 刷新画面
@i += 1
Graphics.update
# 如果画面被切换就中断循环
if $scene != self or @i == 2610
break
end
# 每500帧清空一下缓存确保流畅运行
if @i % 500 == 0
RPG::Cache.clear
end
end
# 各种释放
Graphics.freeze
@sprite.bitmap.dispose
@sprite.dispose
# 注释此行可BGM不停止
Audio.bgm_stop
# 呼出 Title
$scene = Scene_Title.new
# BGM已停止、、、
end
end[/pre]
话说注释得多有木有糖?
上面是用于播放视频的,使用时请先更改倒数第四行和Audio以及@sprite.bitmap后面的内容。调出方法用 Scene_Logo20.new
第一个@i = 10是指从文件名为“10.jpg”的文件开始刷新,也就是开头,下面的“@i == 2610”是指播放到“2611.jpg”的图就停止播放。这两个值可用来调同步率。 关于帧图的制作请翻到文末。
[pre lang="ruby" line="1" file="插入型"] @i = 722
# 生成伪视频前的准备:确定使用文件路径和居中
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.gameover("badapple20/" + @i.to_s)
@sprite.ox = @sprite.bitmap.width / 2
@sprite.oy = @sprite.bitmap.height / 2
@sprite.x = 320
@sprite.zoom_x = 1.25
@sprite.y = 240
@sprite.zoom_y = 1.25
# 主循环
loop do
@sprite.bitmap = RPG::Cache.gameover("badapple20/" + @i.to_s)
# 刷新游戏画面
Graphics.update
@sprite.bitmap = RPG::Cache.gameover("badapple20/" + @i.to_s)
# 刷新游戏画面
Graphics.update
# 刷新输入信息
Input.update
# 刷新画面
@i += 1
Graphics.update
# 如果画面被切换就中断循环
if $scene != self or @i == 790
break
end
# 每500帧清空一下缓存确保流畅运行
if @i % 500 == 0
RPG::Cache.clear
end
end
# 各种释放
Graphics.freeze
@sprite.bitmap.dispose
@sprite.dispose
[/pre]
上面这段可以插入在默认脚本中,使用时仍然要先改上述内容,“722”“790”就是视频中演示的菜单中只播放一段视频。
等完美版做出来我会更新在脚本开头就能改相应数据的。
下面是吐槽:关于为什么是20帧而不是40帧以及脚本中Graphics.update×3大丈夫吗不会卡帧吗什么的,其实我做了一个40帧的版本(6000多张),运行时完全不同步,RMXP的帧率真是碉堡了。掉帧什么的我不想吐槽了。
视频中的2倍速,很简单把第一个脚本的17 18 19 27行删掉,然后改一下BGM的节拍(第三个数值)为210就行了。
ps:结合真后台脚本享用更佳~
下面是技术信息,关于帧图制作,
采用KMP高级捕获技术按每秒20帧捕获=每50毫秒一张
捕获结束请打开毁图看看,右击图片进行批量转格式(如果你第一次捕获选择bmp格式要换到jpg格式)和批量重命名(选做:批量改大小。。很占CPU不建议一次弄完),建议分3-5次弄完。
关于音频,可以百度,也可以用KMP高级捕获技术提取音频。建议转成ogg格式。
如果想只播放一次请将 Audio.bgm_play 改成 Audio.se_play
更新了关于丫的视频(“分数”做好),同时也想请问一下有没有什么好的方法做音乐游戏菜单。。
视频更新完成。
请注意左上角。 |
|