じ☆ve冰风 发表于 2024-11-21 23:45:15

【Fuki对话框】自定义窗口边框+Fuki对话框 v0.9.1

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

下载
0

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

下载
1

用法:
显示文章中:
显示文章里面使用以下控制符号
#{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 代码
{
      "fontSize": 28,//字体大小
      "padding": 18, //内容和窗口边框的边距
      "fontColor": "0", //字体颜色,"0"是默认颜色,可以使用#FFFFFF格式,也可以使用rgba(255,255,255,255)格式
      "unitFontColor": "", //金钱单位颜色,YEP兼容选项,一般不用
      "lineHeight": 36,//行高
      "textOutlined": true, //文字描边
      "textShadowed": false,//文字阴影,这俩不要一起用
      "outlineColor": "rgba(0, 0, 0, 0.5)", //文字描边颜色
      "shadowColor": "rgba(0,0,0,0.5)", //文字阴影颜色
      "shadowDistance": 1, //阴影和文字的距离
      "outlineWidth": 4, //描边的宽度
      "back": {//窗口背景选项
      "opacity": 192, //背景透明度
      "useTone": true//是否使用色调,也就是游戏系统里面的窗口颜色
      },
      "paddingDetail": {//边距详细,不需要就可以不管
      "top": 0,//上边距
      "left": 0,//下边距
      "right": 0,//左边距
      "bottom": 0,//右边距
      "withNameWindow": {//有人名框的情况下的边距
          "top": 0,
          "left": 0,
          "right": 0,
          "bottom": 0
      }
      },
      "fuki": {//使用fuki对话框情况下
      "maxWidth": 480,//最大宽度
      "maxWidthWithPortrait": 600,//有头像时候的最大宽度
      "minWidth": 80,//最小宽度
      "minWidthWithPortrait": 200,//有头像时候的最小宽度
      "maxLines": 4,//最大行数
      "minLines": 1,//最小行数
      "minLinesWidthPortrait": 3,//有头像时候的最小行数
      "arrowHeight": 0,//箭头高度,现在没有对话箭头,可以当作对话框和人物的额外间距使用
      "charaHeight": 50,//人物的默认高度
      "charaSpace": 15,//人物和对话框的间距
      "additionTopForPlacement": 0,//计算对话框大小的时候,上方的额外高度(比如你上面有装饰,加上这个防止装饰被放到屏幕外面)
      "additionLeftForPlacement": 0,//计算对话框大小的时候,左方的额外高度
      "additionRightForPlacement": 0,//计算对话框大小的时候,右方的额外高度
      "additionBottomForPlacement": 0//计算对话框大小的时候,下方的额外高度
      },
      "portrait": {//头像
      "indent": 20,//缩进
      "spacing": 20,//和文字的间距
      "distanceToBottom": 5//和下方的间距
      },
      "asNameWindow": {//如果此窗口是姓名框
      "offsetX": 0,//横向偏移
      "offsetY": 0,//纵向偏移
      "widthDelta": 0,//如果显示,给原来窗口增加的宽度,用于计算如何放置窗口
      "heightDelta": 0,//如果显示,给原来窗口增加的高度,用于计算如何放置窗口
      "openWhenDisplay": true,//显示是使用open动画
      "closeWhenDisappear": true//消失时使用close动画
      }
    };


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


参数介绍:
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

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


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

功能范例
如图
https://rpg.blue/data/attachment/forum/201512/20/231607gvtfkd1e1xxy5kaq.gif
自定换行和长文范例:
https://rpg.blue/data/attachment/forum/201512/21/222014mazgsv9kilzk73vv.gif

窗口背景格式
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"
https://rpg.blue/data/attachment/forum/201512/20/231758mwa2800w4f7ad52m.png
#{PM:文件名} 显示头像,同上,但是水平反转
#{N:姓名} 显示姓名框
#{PP}手动页面暂停

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

使用自定义皮肤:
我暂时没空写JSON的文档,就先放一个范例:
请注意这个图是天之痕里面扒来的,请不要在游戏中使用。
在img文件夹里面创建一个文件夹twdWindowskin,将json和png放进去。注意,json和png文档必须名字一样
然后在TWDP_ShowMessageEx.js的参数中,修改参数,如图
https://rpg.blue/data/attachment/forum/201512/20/230953sboppujswp9x3b0j.png
有兴趣可以配合代码看看json的格式,自己定义自己的窗口皮肤……(

下载
最新:
注意JSON文件也有更新
2
旧版本:
3

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

问题反馈
请回帖,附上F8控制台中的内容
            本帖来自P1论坛作者trentswd,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=387546若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
页: [1]
查看完整版本: 【Fuki对话框】自定义窗口边框+Fuki对话框 v0.9.1