Project1

标题: 寻找能写出这个插件的大佬 寻找跟写出第一个视频对话框... [打印本页]

作者: m3214888    时间: 2020-2-14 21:26
标题: 寻找能写出这个插件的大佬 寻找跟写出第一个视频对话框...
悬赏 希望有某位大佬能帮我写出一套 视频对话框 插件
要求:视频大小无限制 视频上层可以展示对话框 对话框可以上中下
   随意换样式  字体可自行更换  然后视频 框可以调整大小  可全屏幕
  也可设置成头像大小
希望有能力的大佬帮忙写一下
目前这玩意还没有
补充一点: 就是要到跟系统只带的对话框差不多形式 但是 要把 头像那一块改成视频的  
而且头像那一块 可以任意调整大小  然后上层的对话框 样式可以任意的更换

作者: play337    时间: 2020-2-14 23:22
印象中 ... 視頻默認是最上層... 如果有任何圖片或文字 都會被視頻蓋掉
這個問題我也很煩惱...

之前用 MoviePicture.js 把視頻當作圖片放 也想把歌詞放在視頻的上面 結果就是不行
如果有大老 可以把這個插件改成 可以加參數 改變載入的視頻在第幾層就好了...

而不要都做最上層...
作者: 774741359    时间: 2020-2-16 09:59
虽然没有给你做一个在对话框里显示视频的demo,但是下面这两张图表现的效果也差不多。
下面这个画面截图后面是正在播放一段视频,而这段视频是播放在一个Sprite的Bitmap的Canvas上的。
这代表着这段视频也可以显示在对话框上面,也可以和对话框融为一体,显示在“脸图”所在位置(当然视频尺寸要有修改)



提供一点思路:
1、核心问题:如何把视频画到和Sprite同层
RPGMaker游戏画面中所有的元素都是由Sprite实现的。
如果你想让视频和游戏画面中的其他元素有层级关系,就必须得让视频显示在Sprite上。
Sprite包含了一个Bitmap对象,Bitmap包含了一个Canvas对象,我们可以把视频画到Canvas上面,这样就可以实现需求了。
(相关文档:使用 canvas 处理视频)
这样解决了视频可以在Sprite上播放的核心问题之后,再搞对话框播放视频就简单多了(略)。

2、小问题:播放视频时游戏画面暂停:黑屏(GameCanvas被隐藏)
需要注意的一点是,在下面这个 Graphics._updateVisibility 方法里,原有的代码设定是video播放时,整个游戏的canvas将隐藏。当video播放完毕,canvas才会恢复。所以会出现播放video的时候整个游戏画面黑屏了,如果想做到播放视频和游戏画面并行运行,则需要如下修改:保证canvas任何时候都是可见得。
  1. /**
  2. * @static
  3. * @method _updateVisibility
  4. * @param {Boolean} videoVisible
  5. * @private
  6. */
  7. Graphics._updateVisibility = function(videoVisible) {
  8.     // this._video.style.opacity = videoVisible ? 1 : 0;
  9.     // this._canvas.style.opacity = videoVisible ? 0 : 1;

  10.     this._video.style.opacity = videoVisible ? 1 : 0;
  11.     this._canvas.style.opacity = 1;
  12. };
复制代码

顺便提一句,我对pixi.js的render操作流程完全没有了解,所以在操作canvas逐帧绘制video的时候遇到了无论如何操作canvas都不显示的问题。
盲测是撞到了pixi的优化机制怀里,但是又懒得去找,直接在drawImage后面跟了一个clearRect(width, height, 1, 1)来触发Canvas的刷新,所以如果你在搞这块需要注意一下相关问题。

3、小问题:播放视频时游戏画面暂停:事件解释器被挂起
还有一点就是原版机制,在播放视频的时候Game_Interpreter事件解释器会被挂起,事件将中止运行(setWaitMode)。
  1. // Play Movie
  2. Game_Interpreter.prototype.command261 = function() {
  3.     if (!$gameMessage.isBusy()) {
  4.         var name = this._params[0];
  5.         if (name.length > 0) {
  6.             var ext = this.videoFileExt();
  7.             console.log('movies/' + name + ext)
  8.             Graphics.playVideo('movies/' + name + ext);
  9.             this.setWaitMode('video');
  10.         }
  11.         this._index++;
  12.     }
  13.     return false;
  14. };
复制代码
如果你希望Game_Interpreter在播放视频的时候正常工作,推荐使用脚本来播放视频:
  1. Graphics.playVideo('movies/视频文件名.后缀’);
复制代码
虽然你绕过了 setWaitMode,事件解释器不会再被挂起,你可以在播放视频的时候自由使用事件,但是这也代表你的事件将不会再等待你的视频播放完毕(需要注意)
  1. this.setWaitMode('video');
复制代码

4、解决了以上问题,基本上可以实现楼主的需求了。

RPGMaker 脚本/学习交流群 :143356012



作者: walf_man    时间: 2020-2-16 11:25
楼上太牛了,这个问题得到了解决真是太棒了
作者: m3214888    时间: 2020-2-16 11:46
本帖最后由 m3214888 于 2020-2-16 13:24 编辑

3楼理论都是可行的 但是毕竟并没有看到案例与成品 所以还不能说突破了这个插件!
如果今后所有看到此贴的 可以按3楼的方法试试 看能不能实现,如果可以的话 建议做一个范例!这样就更加直观的去了解
如果试了之后不能实现!再另想它法!案例与插件https://rpg.blue/thread-480237-1-1.html这里可以下载案例与插件供大家参考 我只写了下载后需要调试哦
作者: 多才不易必自闭    时间: 2020-2-16 11:55
6666666666666666666
作者: 苍穹之光    时间: 2020-2-16 12:03
方法是有了,楼主可以试着自己写一下,感谢大佬授人以渔。
作者: m3214888    时间: 2020-2-16 12:25
本帖最后由 m3214888 于 2020-2-16 12:55 编辑

我刚刚试着写了一个 大家可以看一下
还没有完全写大家可以参考参考
案例与插件https://rpg.blue/thread-480237-1-1.html这里可以下载案例与插件供大家参考 我只写了下载后需要调试哦
作者: m3214888    时间: 2020-2-16 13:25
苍穹之光 发表于 2020-2-16 12:03
方法是有了,楼主可以试着自己写一下,感谢大佬授人以渔。

案例与插件https://rpg.blue/thread-480237-1-1.html这里可以下载案例与插件供大家参考 我只写了下载后需要调试哦
作者: m3214888    时间: 2020-2-16 13:26
多才不易必自闭 发表于 2020-2-16 11:55
6666666666666666666

案例与插件https://rpg.blue/thread-480237-1-1.html这里可以下载案例与插件供大家参考 我只写了下载后需要调试哦
作者: 苍穹之光    时间: 2020-2-17 22:31
骗人的吧?帖子是开水区的,还要100星屑
作者: m3214888    时间: 2020-2-17 22:56
好东西往往有版权问题啊 今天因为被原作者投诉
作者: 574656549    时间: 2020-3-25 20:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: zpf1688    时间: 2020-3-26 08:33
774741359 发表于 2020-2-16 09:59
虽然没有给你做一个在对话框里显示视频的demo,但是下面这两张图表现的效果也差不多。
下面这个画面截图后 ...

大神!小弟跟你学到了!
作者: play337    时间: 2020-3-27 20:23
m3214888 发表于 2020-2-16 13:26
案例与插件https://rpg.blue/thread-480237-1-1.html这里可以下载案例与插件供大家参考 我只写了下载后需 ...

下載了您的範例...很開心的一執行就....



求幫助...
作者: 沧海孤云    时间: 2020-5-14 17:57
m3214888 发表于 2020-2-17 22:56
好东西往往有版权问题啊 今天因为被原作者投诉

买了后发现分享过期,请重新分享下。(小文件建议用蓝奏云,百度云是真的坑)
作者: chenly228    时间: 2020-10-18 01:45
楼主写的范例……100星屑买一个已经打不开的腾讯微云地址,我感觉受到了欺骗




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