功能说明
- 过了这么久,终于也是把支持3.0模型的live2d搞出来了,此版本使用了guansss大佬写的pixi-live2d-display作为框架,支持了全部模型的同时,也对后端模型的列表文件结构和以前的文本文件进行了些修改,总之就是增强了模型的角色表现力,让老婆们更加生动(味大,无需多盐)
基础配置
- 如果嫌繁琐的配置麻烦,这次依然有最简单的使用方案,直接将下面的html代码粘入你的网页
<script src="https://fastly.jsdelivr.net/gh/lrplrplrp/live2d@master/loads.js"></script>
当当,老婆出现,不过先别急着发癫,不单独进行一下“调教”怎么能叫自己的老婆呢,你也不想某天老婆突然变成控制台的一串串红色error吧,所以,强烈建议你看完下面的部分,至少将仓库fork一份出来。
深入配置
- 首先,fork以下仓库到自己的仓库,fork的步骤我不在赘述,真的不会可以参考我的上一篇教程博客美化:live2d看板娘使用指南
https://github.com/lrplrplrp/live2d
https://github.com/lrplrplrp/live2d_api
- live2d是看板娘的逻辑部分,live2d_api是模型和文本部分
live2d
- 这部分需要修改的和以前大差不差,我懒得截图了,直接上链接吧首先是将loads.js的第二行live2d_path后面的地址改为你的live2d的仓库地址,地址格式我也不在赘述,不懂请参考博客美化:live2d看板娘使用指南,然后是第三行改为你的live2d_api的仓库地址,最后将waifu-tips.js的218行的主页判断条件改掉,至此,基本配置已经完成,已经不用担心看板娘消失了,要求比较低的小伙伴到这就可以结束了,如果你还需要更加“深入”的配置,请继续往下看。
- waifu-tips.js的4行到8行是画布大小,模型材质ID以及github主页的配置,我都做了备注,可以根据个人情况进行修改
live2d_api
- model_list.json进行的改动比较大,相比以前,这里除了存放模型的地址还附带了其他配置
{
"url":"./model/genshin/BCSZ1.1/BCSZ1.1.model3.json",
"tipsUrl":"./model/genshin/BCSZ1.1/waifu-tips-BCSZ.json",
"config":{
"x":0,
"y":0,
"scaleX":2,
"scaleY":2
}
}
- 其中url是模型的地址,为必填项,无默认值,tipUrl与config可以缺省,tipUrl的默认值是live2d下的waifu-tips.jsonconfig默认偏移是0,缩放是1,注意,如果配置了config,请不要缺省config中的参数,config中x,y是模型相对画布的偏移,但注意单位不是px是以画布中心点为原点的直角坐标系,修改尽量尝试使用0.几的小数。
- waifu-tips.json
- 此文件不做改动,但需要以此文件为模板创建新的模型文本文件
举个栗子
{
"selector": "#waifu-tool .fa-paper-plane",
"interaction":{
"text": ["要不要来玩飞机大战?", "这个按钮上写着「不要点击」。", "怎么,你想来和我玩个游戏?", "听说这样可以蹦迪!"],
"motion":"Start"
}
}
- 相比之前的文本配置,新的文本配置用interaction代替了text并包含了以前的文本,而motion就是模型播放的动作,动作名称可以在模型的入口文件中找到,同时,这个位置也可以填写表情,同时配置动作和表情时,将会只播放动作。表情配置如下:
- waifu-tips-草神.json
{
"selector": "#waifu-tool .fa-comment",
"interaction":{
"text": ["猜猜我要说些什么?", "我从青蛙王子那里听到了不少人生经验。"],
"expression":1
}
}
- 表情可以使用索引,索引按照入口文件中的顺序从0开始,播放时间为默认四秒,还没在文件中开放配置
- 除此之外,表情和动作也可以单独设置文本,这样在触发表情和动作时就会播放设置好的表情或动作文本,不过这种设置的优先级最低,会被其他文本覆盖
"expression":{
"黑.exp3.json":"这样不太明智...",
"脸红.exp3.json":"我早就不满足于当一个听众了,一直都想出去看看。你冒险经验这么丰富,当我的向导好不好啊?你之后所有的故事,我都想亲身感受。",
"姿势1.exp3.json":"果然要亲眼去看,才能感受到世界的美。"
}
"motion":{
"Tap早上好":"早,嗯?怎么一副无精打采的样子,没有睡好吗?哎呀,昨晚是去做什么坏事了么?",
"Tap中午好":"嗯~伤脑筋,中午吃些什么呢?油豆腐吃腻了,想吃点清淡的。话说好久没见到社奉行家的小姑娘了,我们不如就去吃她做的点心吧。",
"Tap晚上好":"今夜的月光如此清亮,不做些什么真是浪费。随我一同去月下漫步吧,不许拒绝。",
"Start":"我是鸣神大社的宫司,此番造访,自是为了确认你的一举一动,此为大社诏令..呵,不用那么紧张,场面话罢了,这样才有正当理由休沐嘛。快,去做些有趣的事让我看看吧。",
"Tap无聊":"",
"Tap不变":"所谓的永恒,就是不再失去已拥有之物,但从别的角度说,也放弃了得到更多的可能,不过世事总是如此,没人能够得到全部。"
}
- 剩下的就是新的时间文本
{
"date": "12/20-12/31",
"interaction":{
"text": "这几天是<span>圣诞节</span>,主人肯定又去剁手买买买了~"
}
}, {
"time": "5:00-7:00",
"interaction":{
"text": ["早上好!一日之计在于晨,美好的一天就要开始了。","早啊,叫醒你的是理想还是闹钟呢。"]
}
}
- 新的时间文本可以使用日期段,时间段,固定日期,固定时间,或者其中日期和时间的任意组合,不过当前并不会在整点或整分触发,最小单位为分钟,不能在固定的几秒触发,毕竟感觉也没这个必要。
- 好了,配置到此结束,快在html中引用你的看板娘地址看看配置的如何吧,之后如果有问题我也会随缘更新的,大家多多fork多多star。
参考链接
- https://github.com/stevenjoezhang/live2d-widget
- https://github.com/fghrsh/live2d_api
- https://github.com/guansss/pixi-live2d-display
- https://github.com/Akilarlxh/live2d_api