注:本项目针对制作者比较有用
比如(Live2D Spine AE)支持透明序列图导出的制作者更加有效
对于用户只需了解即可 不用仔细研究 看个乐就好
最近很多用户出现使用壁纸引擎 视频壁纸出现视频首尾帧卡1帧的情况
以此为媒介 想出了一个返璞归真的点子
就是用帧序列的方式实现动态无线循环 解决最后一帧卡顿的情况
在壁纸引擎最新版本更新中提到 支持路径调用
../materials/视频.mp4
既然支持此功能 那相应的玩法封印也会随之解开
先说原理:
1.在没支持路径调用之前
壁纸引擎的加载方式 (图层→效果→代码)
这和html页面加载极其相似 (html→css→js)
这就导致了大量图片先加载
尤其是一张壁纸里多视频的情况 首次启动导致GPU偏高或吃满的情况
因为加载代码在最后执行 没法通过代码的方式直接屏蔽图层慢慢打开
而是一股脑的一次性打开再关闭他
2.当支持路径调用后
所有图层文件可以作为空处理
文件未默认作为缓存 后续调取使用
原理(图层0→代码调用→加载显示相应图层)
最终支持两套玩法:
1.帧序列图(把视频拆分成一张一张的图片 以每秒播放多少张来处理 不但解决首尾帧卡顿还大大降低性能损耗 你本地只运行一组代码和一张图片)
尤其对那些第三方编辑器(Live2D Spine AE)支持序列图导出透明图层的制作者 简直心花怒放的一项功能
也是为此必须要开源几套项目 才能顺利进行
2.多视频处理(即便一张壁纸里有100张1000站10000张都不会导致任何卡顿)
无意中解锁新玩法:( 序列帧玩法 支持开场动画)
举个例子
1. 1-300帧是开场动画
2. 301-1000是无限循环内容
3. 当1-1000帧播放完后
4.无线循环301-1000
经过测试 可行有效(返璞归真 还能解锁新玩法 也是服了)
细说实现:
多视频处理不必多说 用过代码调用路径文件即可
但帧序列图不同 需要视频转换为帧序列 还要进行壁纸引擎格式转换 缺少哪一步都不可
为此开源了 三套项目
1. 视频拆分序列图

网络上太多转换工具(但不是限时长 就是使用次数)
给我气的 自己开发一个
支持导出图片格式 秒数 帧率 开始结束时间 质量 和 输出命名
(输出命名主要防止一张壁纸转换多个项目导致的命名冲突问题)
2. 格式转换.tex

壁纸引擎项目调取图层格式并不是只调用图片 他需要二次转换才能用


主要转换文件为:
../materials/img.png(原图)
../materials/img.tex-json(纹理转换 / 编译参数)
../materials/img.tex(编译纹理缓存)
../materials/img.json(材质 / Shader 渲染配置)
../models/img.json(模型 / 入口索引)
其中以下为图中两个文件名为木偶动画数据
(可以理解为Spine导出项目的json 不被作为转换对象)
../models/img_puppet.json
../models/img2_puppet.mdl
通过此项目转换内容后 可以复制粘贴到壁纸引擎中直接调用
3. PSD,纹理图集 拆分
(此项目与以上路径调用无关 另外延伸作品)




此项目主要负责 四大功能
1.PSD图层导出(包括文件夹 隐藏图层 和 滤镜 支持紧凑打包和原位裁剪)
2.纹理图集拆分(拼凑好的图集进行单张拆分)
3.纹理图集平分(拼凑好的图集进行平均拆分 支持面基 数量 位置等选项)
4.纹理贴图合并(把单张拆分合并成拼凑好的图集)
本项目多数(Live2D Spine PS)都是自带的功能
但出于某种限制条件 比如ps以这种形式导出需要写脚本 而且导出速度很慢 为节省时间开发了这东西
这对纯手动制作 壁纸引擎场景类壁纸的用户非常有必要
(比如我 此项目就是刚需 减少了我很多拼图的时间)
4.关于路径代码调用
可访问Wallpaper Engine官方教学文案获取
Wallpaper Engine 官方设计文案-动态创建图层
engine.registerAsset() //函数动态创建图层