Project1

标题: 【Fuki对话框】自定义窗口边框+Fuki对话框 v0.9.1 [打印本页]

作者: trentswd    时间: 2015-12-20 23:26
标题: 【Fuki对话框】自定义窗口边框+Fuki对话框 v0.9.1
本帖最后由 trentswd 于 2016-3-7 23:23 编辑


2016-01-31 更新
1 修正姓名框显示问题
2 修正可能的小数坐标导致显示模糊的问题

下载
twdp_window 0.9.1.zip (33.34 KB, 下载次数: 1432)

2016-01-31 更新
后面的修改主要是对Meta的修改和一些修正,比较繁琐就不列举了,一个一个说吧

下载
twdp_window_v0_9.7z (30.16 KB, 下载次数: 780)

用法:
显示文章中:
显示文章里面使用以下控制符号
#{NEXT} 进入下一个事件,直到下一个显示文章内容。会和下一个显示文章内容合并
#{F:编号} 此对话框转换为Fuki对话框,编号:正数为地图事件ID,0为本事件,-1为主角,-2之后为队伍成员。如果该行走图不是标准高度,可以#{F:编号,高度}来调整
#{P:文件名} 显示头像。当你没选头像时,文件名就是文件名。如果你选了头像,那么文件名就是“头像名_头像编号_文件名“,例如,下图中文件名是N,选了头像,所以最终查找的是"Package1_8_n.png"。
【注意】头像文件夹已经换到了img\portraits,防止干扰正常头像选取
#{PM:文件名} 显示头像,同上,但是水平反转
#{N:姓名} 显示姓名框
#{PP}手动页面暂停

自动换行:
TWDP_ShowMessageEx.js的参数Auto Wrap改成true,之后忽略所有换行符。文字遇到边缘自动换行
若需要强制换行,请使用#{BR}
已知问题:会影响战斗界面的消息。

Meta:
这个插件控制窗口用的是JSON,JSON里面包含了窗口所有的参数,包括背景、字体、缩进之类的参数,我把它叫做Meta
使用带JSON的窗口皮肤,会使用窗口皮肤里面的Meta,如果使用默认皮肤,则使用自带的Meta

默认Meta
JAVASCRIPT 代码复制
  1. {
  2.       "fontSize": 28,  //字体大小
  3.       "padding": 18, //内容和窗口边框的边距
  4.       "fontColor": "0", //字体颜色,"0"是默认颜色,可以使用#FFFFFF格式,也可以使用rgba(255,255,255,255)格式
  5.       "unitFontColor": "", //金钱单位颜色,YEP兼容选项,一般不用
  6.       "lineHeight": 36,//行高
  7.       "textOutlined": true, //文字描边
  8.       "textShadowed": false,//文字阴影,这俩不要一起用
  9.       "outlineColor": "rgba(0, 0, 0, 0.5)", //文字描边颜色
  10.       "shadowColor": "rgba(0,0,0,0.5)", //文字阴影颜色
  11.       "shadowDistance": 1, //阴影和文字的距离
  12.       "outlineWidth": 4, //描边的宽度
  13.       "back": {//窗口背景选项
  14.         "opacity": 192, //背景透明度
  15.         "useTone": true//是否使用色调,也就是游戏系统里面的窗口颜色
  16.       },
  17.       "paddingDetail": { //边距详细,不需要就可以不管
  18.         "top": 0,//上边距
  19.         "left": 0,//下边距
  20.         "right": 0,//左边距
  21.         "bottom": 0,//右边距
  22.         "withNameWindow": {  //有人名框的情况下的边距
  23.           "top": 0,
  24.           "left": 0,
  25.           "right": 0,
  26.           "bottom": 0
  27.         }
  28.       },
  29.       "fuki": {//使用fuki对话框情况下
  30.         "maxWidth": 480,//最大宽度
  31.         "maxWidthWithPortrait": 600,//有头像时候的最大宽度
  32.         "minWidth": 80,//最小宽度
  33.         "minWidthWithPortrait": 200,//有头像时候的最小宽度
  34.         "maxLines": 4,//最大行数
  35.         "minLines": 1,//最小行数
  36.         "minLinesWidthPortrait": 3,//有头像时候的最小行数
  37.         "arrowHeight": 0,//箭头高度,现在没有对话箭头,可以当作对话框和人物的额外间距使用
  38.         "charaHeight": 50,//人物的默认高度
  39.         "charaSpace": 15,//人物和对话框的间距
  40.         "additionTopForPlacement": 0,//计算对话框大小的时候,上方的额外高度(比如你上面有装饰,加上这个防止装饰被放到屏幕外面)
  41.         "additionLeftForPlacement": 0,//计算对话框大小的时候,左方的额外高度
  42.         "additionRightForPlacement": 0,//计算对话框大小的时候,右方的额外高度
  43.         "additionBottomForPlacement": 0//计算对话框大小的时候,下方的额外高度
  44.       },
  45.       "portrait": {//头像
  46.         "indent": 20,//缩进
  47.         "spacing": 20,//和文字的间距
  48.         "distanceToBottom": 5//和下方的间距
  49.       },
  50.       "asNameWindow": {//如果此窗口是姓名框
  51.         "offsetX": 0,//横向偏移
  52.         "offsetY": 0,//纵向偏移
  53.         "widthDelta": 0,//如果显示,给原来窗口增加的宽度,用于计算如何放置窗口
  54.         "heightDelta": 0,//如果显示,给原来窗口增加的高度,用于计算如何放置窗口
  55.         "openWhenDisplay": true,//显示是使用open动画
  56.         "closeWhenDisappear": true//消失时使用close动画
  57.       }
  58.     };


如何设定Meta:
1 如果使用自定义窗口背景,那么在窗口背景的JSON里面直接改
2 如果使用系统默认WindowSkin,则需要在插件“TWDP_BaseWindowEx.js”的“User Window Meta”参数里面设置
更改的时候写一部分json就可以了
例如你只想修改头像的缩进 你只需要写
JAVASCRIPT 代码复制
  1. {
  2.       "portrait": {
  3.         "indent": 20
  4.       }
  5. };


参数介绍:
TWDP_BaseWindowEx.js

Use TWD Window Skin
是否全局使用自定义窗口背景 不要使用 保持为false

Default Window Skin
全局默认自定义皮肤,不要使用,保持为空

User Window Meta
用户自定义Meta,见上文
Meta有默认Meta,窗口皮肤内的Meta和用户自定义Meta,最后使用时,优先使用用户自定义的,其次使用窗口皮肤内的,如果都没有则使用默认的

Enable Window Stacking
是否启用窗口堆叠
就是取消WindowLayer的窗口清除,让窗口可以互相叠在一起,默认为true
也应该保持为true,除非你遇到问题,那就改成false

TWDP_ShowMessageEx.js

Auto Wrap
是否自动换行

Text Window Skin
窗口自定义背景,注意写json的文件名就可以了

Text Window Skin For None Fuki
不用fuki时的窗口自定义背景

Name Window Skin
姓名框自定义背景

Name Window Skin For None Fuki
不用fuki时姓名框自定义背景

Gold Window Skin
金币框自定义背景

Choice Window Skin
选项框自定义背景

Number Window Skin
数字输入框自定义背景

Item Window Skin
物品选择框自定义背景

Text Window Meta
对话框自定义Meta,和见上文,不过这个只对对话框有效

Name Window Meta
姓名框自定义Meta

Gold Window Meta
金币框自定义Meta

Choice Window Meta
选项框自定义Meta

Item Window Meta
物品选择框自定义Meta

Number Window Meta
数字输入框自定义Meta

窗口背景皮肤格式:
吃完饭来写

[line]1[/line]
目前实现的功能
1 自定义窗口背景。
2 Fuki对话框。
3 头像、对话中切换头像。同时支持默认头像。
4 对话中间插入事件。
5 姓名框
6 翻页暂停、长文翻页
7 自动换行

功能范例
如图

自定换行和长文范例:


窗口背景格式
Work In Progress

兼容性
兼容YEP

顺序
目前放在最下面,至少放在YEP Message Core下面
TWDP_ShowMessageEx.js放在TWDP_BaseWindowEx.js下面

用法:
显示文章中:
显示文章里面使用以下控制符号
#{NEXT} 进入下一个事件,直到下一个显示文章内容。会和下一个显示文章内容合并
#{F:编号} 此对话框转换为Fuki对话框,编号:正数为地图事件ID,0为本事件,-1为主角,-2之后为队伍成员。新加如果该行走图不是标准高度,可以#{F:编号,高度}来调整
#{P:文件名} 显示头像。当你没选头像时,文件名就是文件名。如果你选了头像,那么文件名就是“头像名_头像编号_文件名“,例如,下图中文件名是N,选了头像,所以最终查找的是"Package1_8_n.png"

#{PM:文件名} 显示头像,同上,但是水平反转
#{N:姓名} 显示姓名框
#{PP}手动页面暂停

自动换行:
TWDP_ShowMessageEx.js的参数Auto Wrap改成true,之后忽略所有换行符。文字遇到边缘自动换行
若需要强制换行,请使用#{BR}

使用自定义皮肤:
我暂时没空写JSON的文档,就先放一个范例:
请注意这个图是天之痕里面扒来的,请不要在游戏中使用。
在img文件夹里面创建一个文件夹twdWindowskin,将json和png放进去。注意,json和png文档必须名字一样
然后在TWDP_ShowMessageEx.js的参数中,修改参数,如图

有兴趣可以配合代码看看json的格式,自己定义自己的窗口皮肤……(

下载
最新:
注意JSON文件也有更新
twdp_window_v0_2.zip (30.57 KB, 下载次数: 815)
旧版本:
twdp_window_v0_1.zip (29.69 KB, 下载次数: 237)

下一步
1 写JSON文档
2 修改金币窗口、选择肢窗口、数字输入窗口、物品选择窗口
3 修改选择框的实现
4 半身像
5 fuki的箭头

问题反馈
请回帖,附上F8控制台中的内容
作者: luruipeng1    时间: 2015-12-21 00:23
终于有人做对话框了呢。
感谢楼主
作者: doranikofu    时间: 2015-12-21 00:36
前排围观菊苣 回头测试
作者: luruipeng1    时间: 2015-12-21 00:43
是{PM,文件名}还是{PM:文件名}
感觉图里的和说的用法不一样..所以是用哪种呢?.
作者: andrewx    时间: 2015-12-21 01:09
被这个完美妇科天之痕的对话框惊艳到了,明天试试看
作者: trentswd    时间: 2015-12-21 22:30
更新
如果没有bug短时间应该就这样了……
作者: larbi    时间: 2015-12-22 10:45
这个对话框很好诶~先马克~回家再用~
作者: dongdongdjh    时间: 2015-12-22 13:15

作者: 952193683    时间: 2016-1-29 19:45
我只要简单的显示图片和变量和自动换行怎么弄啊,我看的有些复杂
作者: 影痕轩    时间: 2016-1-30 15:02
什么时候更新呀
作者: trentswd    时间: 2016-1-30 18:23
影痕轩 发表于 2016-1-30 15:02
什么时候更新呀

需要更新什么?有问题或者需求直接说吧,我看看能不能改。
作者: 影痕轩    时间: 2016-1-31 11:45
本帖最后由 影痕轩 于 2016-1-31 12:07 编辑

这个不用自带的换行就会显示不完全,但是用了的话又会出现

不用气泡对话框会出现文字断层的情况

偶尔还会这样

0.0
这个怎么办呀
作者: trentswd    时间: 2016-1-31 16:01
影痕轩 发表于 2016-1-31 11:45
这个不用自带的换行就会显示不完全,但是用了的话又会出现

不用气泡对话框会出现文字断层的情况

这东西我自己一直在用,所以一直都在陆续改,你说的第一个问题是改了
第二个问题我自己没遇到过

另外不用自动换行应该也没问题呀,就是要自己换行

我整理一下更新一下吧
作者: 影痕轩    时间: 2016-1-31 19:33
trentswd 发表于 2016-1-31 16:01
这东西我自己一直在用,所以一直都在陆续改,你说的第一个问题是改了
第二个问题我自己没遇到过

嗯,期待哦,因为游戏已经做不少了,现在一段段该换行太麻烦了,,,
作者: 影痕轩    时间: 2016-1-31 19:36
期待已久
作者: 影痕轩    时间: 2016-1-31 20:46
影痕轩 发表于 2016-1-31 19:36
期待已久

额,第一个问题解决了,第二个问题的话,虽然没解决,不过动画快多了,是不是因为我是用的你给的UI改的原因,没改脚本,所以才这样的....
作者: z340161558    时间: 2016-2-1 16:31
回复加收藏
作者: 影痕轩    时间: 2016-2-1 18:56
原来是我的脚本和这个冲突了,现在已经解决了,谢谢了,更新了记得@我哦
作者: 夏末渐离    时间: 2016-2-2 09:46
抱走了……
作者: 伽菈弥    时间: 2016-2-3 14:30
这个效果真是不错,有点范了
作者: 影痕轩    时间: 2016-2-4 01:24
话说,如果添加半身像那种的。该怎么弄呀
作者: 影痕轩    时间: 2016-2-4 01:27
我想弄成那种半身像对话,带姓名框的那种0.0....当然FUKI也需要0.0
作者: 影痕轩    时间: 2016-2-4 01:32
额.其实虽然事件也可以实现..但是脚本方便许多呀,就当给你提个建议哦0.0嘿嘿
作者: 893299399    时间: 2016-2-8 20:31
能在对话框下面加一个这样的箭头吗(=゚ω゚)=
类似这样的
作者: summer依恋    时间: 2016-2-15 19:44
本帖最后由 summer依恋 于 2016-2-15 21:37 编辑

楼主帮忙看看,这什么鬼,没有框框,按说明把图片放img/twdWindowskin



作者: summer依恋    时间: 2016-3-4 18:06
本帖最后由 summer依恋 于 2016-3-5 11:58 编辑

自己弄错了,诡异、、

1fd960d9f2d3572c65113f858d13632763d0c384.jpg (86.4 KB, 下载次数: 38)

1fd960d9f2d3572c65113f858d13632763d0c384.jpg

77d1f0d3572c11dfdc221c7a642762d0f603c284.jpg (41.88 KB, 下载次数: 32)

77d1f0d3572c11dfdc221c7a642762d0f603c284.jpg

作者: trentswd    时间: 2016-3-4 19:57
summer依恋 发表于 2016-3-4 18:06
有个问题,打开对话框会出现:
开始设置好的事件,后来改了里面用到的某图片名字,并在事件里做了相应修改 ...

不是很理解你的意思……我先问一下
1 修改事件之后没有关闭当前游戏->保存工程->再次打开游戏再测试?
2 "关闭对话框js所有图片名字随便改,只要把用到的图片在数据库里重新设置就不会出错" 这句话完全不理解

最后
这个插件没有测试过中文文件名,我也不推荐用中文文件名
为了项目的通用性我也不推荐你用中文文件名
作者: summer依恋    时间: 2016-3-5 12:01
先说声抱歉,几次都是自己不会以为是bug - =
这次恐怕真要麻烦楼主了,打包安卓会出问题。但在电脑上一切正常
关闭js就一切正常,打开js后打包安卓能进标题画面,选择新游戏会提示

作者: trentswd    时间: 2016-3-5 15:35
summer依恋 发表于 2016-3-5 12:01
先说声抱歉,几次都是自己不会以为是bug - =
这次恐怕真要麻烦楼主了,打包安卓会出问题。但在电脑上一切正 ...

我在安卓上测试过
主要是你这问题光看截图也不知道是哪里的问题……
作者: summer依恋    时间: 2016-3-5 15:58
新建了个工程,只装了对话框js,测试一切正常,打包又出新错误

作者: 左珂    时间: 2016-3-5 16:28
用的时候出现一个问题,难道是我哪里设置错了?

就是在一个事件里,如果第一次出现文字时就设置了显示姓名框,那么这一次的姓名框会显示失败,姓名框闪烁一下消失。然后从第二次文字显示开始,之后的姓名框显示都是正常的。
作者: 左珂    时间: 2016-3-6 14:50

作者: gay07400    时间: 2016-3-7 16:26
感謝大大的腳本,這裡有個小疑問想請問一下 OuO
User Window Meta 的参数裡面設置 {"fuki": {"maxWidth": 720}} 只打一項修改可以成功
但修改兩項以上時 例如:{"fuki": {"maxWidth": 720}"portrait": {"distanceToBottom": 25}} 這樣打就會失敗
請問要修改多項設定時,要怎麼打指令比較好,希望大大能解惑。
作者: trentswd    时间: 2016-3-7 23:23
改了一下上面提到的姓名框的问题
作者: CFRoo    时间: 2016-3-9 15:02
请问,如何恢复成默认字体颜色.....不知道默认字体颜色的标号是多少
作者: king    时间: 2016-3-15 23:31
本帖最后由 king 于 2016-3-15 23:50 编辑

如何设置头像位置?
我用的默认素材WindowSkin,如何让头像位置居中呢?
而且用了这脚本,即使是默认对话,头像位置也是下方,默认效果是居中的
目前头像都是在下方,我修改下TWDP_BaseWindowEx这里参数设置,可是没什么效果呢……例如"fontSize": 24

作者: lucy94920    时间: 2016-5-26 23:18
被虐了一晚上还是没弄懂TAT
求问大大。。是不是如果要用自己的背景图片,就是通过改json文件来改显示的样式,然后在showmessage.js的Text Window Skin那几行写json文件的名字。。。。。

虽然没能看懂那个json文件orz
作者: lucy94920    时间: 2016-6-2 15:34
本帖最后由 lucy94920 于 2016-6-2 18:03 编辑

_(:з」∠)_楼主又是我。。。
琢磨了一下现在能做出这种效果了(没有头像图是故意的


然后又有几个小问题想请教一下
1. 原来的系统自带对话框(下方的)改完背景后要如何调第一行文字离上边框的距离和头像位置呢?
basewindowex里面有meta的参数,但是改了的话发现系统窗口的也变了,只改json里的可以么,但是json里加上portrait相关的参数似乎没用,而且padding相关的改了发现是对话框高度变了实际文字没变。。。
以及也去尝试了直接改这里的0,0。。但是不知道为什么没用.。。。
   Window_Message.prototype.drawMessageFace = function() {
                        this.drawFace($gameMessage.faceName(), $gameMessage.faceIndex(), 0, 0);
        };


3.想问一下有没有什么方法在剧情某些人上面使用不同的testwindowskin?
作者: trentswd    时间: 2016-6-3 01:45
lucy94920 发表于 2016-6-2 15:34
_(:з」∠)_楼主又是我。。。
琢磨了一下现在能做出这种效果了(没有头像图是故意的
[fold=图][/fold]

在不使用fuki的情况下,对话框高度是
上边距+可显示行数*行高+下边距
所以如果改上边距的话,对话框肯定会更高。这算法是mv默认的,所以需要你在作图的时候计算好这些东西。

头像应该是可以的呀,在ShowMessageEx的Text Window Meta里面写json就可以,直接在皮肤的json里面改也可以
{"portrait": {        "indent": 80,        "spacing": 80,        "distanceToBottom": 20      }}
用这个之后  效果


切换皮肤这个按理说我应该写插件命令,但是因为太懒了没写
目前可以直接修改这俩来
TWDP.SME.param.textWindowSkin
TWDP.SME.param.textWindowSkinNoneFuki
上面是fuki的皮肤,
下面是非fuki的皮肤
类似这样用

作者: 王翊尧    时间: 2016-6-10 22:09
楼主,看你的示例图,似乎你有RMMV封面人物的表情图啊(因为图中戈斯塔夫的表情有变),是哪里淘来的呢?
能否分享一下?
作者: THE鼠尾草    时间: 2016-6-14 13:45
萌新在这感谢楼主的分享,立刻去学着尝试下怎么使用
作者: THE鼠尾草    时间: 2016-6-19 20:20
楼主,我想问2个问题,首先自定义对话框可以做成椭圆形的吗?为什么我做成椭圆形后会有一个黑色矩形半透明的黑底在那里?第二个问题是,对话箭头怎么使用?
作者: ddhkandy    时间: 2016-7-13 19:19
怎么修改姓名框的文字大小和颜色??在问问,箭头什么时候能好?
作者: 天地入我怀    时间: 2016-7-21 10:31
请问我想让对话框的边距紧挨着字体应该怎么做到
作者: 天地入我怀    时间: 2016-7-21 10:51

求教对话框怎么缩短
作者: 柳岳枫    时间: 2016-7-29 21:16
本帖最后由 柳岳枫 于 2016-8-9 16:13 编辑

感谢发布!!
求问能更改文字显示速度吗
作者: everlose    时间: 2016-8-1 19:12
一个很严重的问题  启动这个插件后  文章的滚动显示就会有问题,并且#{BR}  无效  求解决
作者: yexiaohangege    时间: 2016-8-1 19:17
请问下可否实现空轨的对话框功能
作者: everlose    时间: 2016-8-3 18:52
一个很严重的问题 WINDOWS下没问题  部署打包安卓系统后 报错 "Cannot read property 'unitFontColor' of undefined"  
查实是 TWDP_BaseWindowEx.js 里的 "unitFontColor":"" 所致,  1楼代码注释  //金钱单位颜色,YEP兼容选项,一般不用  要怎么赋值到安卓下才不会报错?
测试 "rgba(0, 0, 0, 0.7)"  一样报错  请解答
作者: 雾影药师    时间: 2016-8-3 20:10
有点意思,教程很棒,容易上手
作者: gagashuobuai    时间: 2016-8-4 14:10
楼主,有头像时的fuki对话框的默认高度怎么修改呢?
我修改时只有"portrait"参数的有效,"fuki"无效
作者: gagashuobuai    时间: 2016-8-11 11:59
gagashuobuai 发表于 2016-8-4 14:10
楼主,有头像时的fuki对话框的默认高度怎么修改呢?
我修改时只有"portrait"参数的有效,"fuki"无效 ...

但是带Portrait的参数有关的只有最大宽度和最小宽度
作者: 天地入我怀    时间: 2016-9-10 15:32
天地入我怀 发表于 2016-7-21 10:51
求教对话框怎么缩短

好的!!
作者: 007dd007    时间: 2017-3-27 17:57
楼主,我把皮肤改了之后 名字默认的颜色不好看。怎么改姓名的颜色呀!
作者: 007dd007    时间: 2017-3-27 18:41
名字里的颜色在哪里改呀,好难看。我在插件里改没有用啊!

作者: 007dd007    时间: 2017-3-29 09:09
有个小问题,如果更换队伍顺序的话,那么目标就乱了。 虽然禁用更换队伍可以解决 但。。。
作者: 废剑    时间: 2017-6-26 16:08
马克{:2_249:}
作者: Wimeael    时间: 2018-1-26 18:52
请问这样的情况是……?按照图片修改了就是图1,而如果什么都没有改,碰到对话事件就是图2
而新建一个工程再导入,对话框也无法显示,仍然是系统最基础的

捕获.PNG (7.2 KB, 下载次数: 23)

图1

图1

捕获2.PNG (72 KB, 下载次数: 19)

图2

图2

作者: 2256538860    时间: 2018-2-27 14:47
非常感谢您
作者: Barbapapa    时间: 2018-4-2 19:15
楼主我爱你!!!
作者: wr282828    时间: 2018-11-8 02:01
请问 如何把人物图片显示在窗口的右边??



作者: 尘墨hodare    时间: 2018-12-5 17:05
007dd007 发表于 2017-3-27 18:41
名字里的颜色在哪里改呀,好难看。我在插件里改没有用啊!

同问,层主你后来解决了吗?




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