2019弹幕墙使用手册
修订日期:2019 12 22 版本:v 1.0.7
目录
2019弹幕墙使用手册** 1**
快速入门** 2**
@h 帮助指令(帮助指令)** 3**
@c 弹幕颜色(弹幕指令)** 4**
@f 字体样式(弹幕指令)** 5**
@t 矩阵变换(弹幕指令)** 6**
@a 动画特效(弹幕指令)** 7**
@s 高级弹幕(弹幕指令)** 9**
@b 背景颜色(全局指令)** 12**
写在最后** 13**
##
快速入门
什么?普通的白色弹幕太low了?试试发一条高级弹幕震撼全场吧!!!
弹幕墙语句结构是这样的:弹幕部分 + 指令部分
不过,不用担心,指令部分不是必要的,所以就算不会弹幕墙指令也可以发弹幕,不过是普通白色弹幕哦。
让我们以一个最简单的例子开始:
哈哈我是皮皮弹幕 @f 80 2 @a 15
弹幕部分 指令部分
弹幕部分就不多说了,就是你要发弹幕呗,这里说一些细节,弹幕仅支持部分emoji表情,请尽量避免使用英文双引号(")与反斜杠(\)。
本文档中弹幕例子使用蓝色底纹标出,指令格式使用橙色底纹标出,指令参数解释使用绿色底纹标出。
接下来是指令部分,指令部分是由一个或多个指令和指令参数组成,所有的指令前面都带有@符号,指令参数必须跟在对应指令的后面,并用空格( )分割,弹幕指令可以叠加使用,而帮助指令和全局指令只能单独使用。
对于大家输入习惯不同,指令和指令参数之间也可以使用多个空格或换行符(回车)分割,但是我们不建议你这么做。
对啦,弹幕墙除了炫酷的弹幕效果之外,我们还准备了几个特别的小彩蛋,彩蛋的触发条件是输入特定的关键字,不需要任何指令。
不过在这里我们不能剧透哦!
@h 帮助指令(帮助指令)
如果你想看看弹幕墙一共有哪些指令,或者想查看某一项指令的详细用法及例子,那么你可以使用@h指令,该指令只能单独拿出来使用。
@h 你要查看指令 你要查看的指令 …
@h common common …
如果你不传任何参数,像这样:
@h
那么我们将返回弹幕墙全部指令的简略信息。
如果你想看看 @f 指令具体用法及例子,你可以这样:
@h f
如果你想同时查看@f和@s的具体用法及例子,你可以这样:
@h f s
注意,因为微信公共号,最多只能向用户回复1059个字符,所以你最多只能一次性查看两条指令的文档。
@c 弹幕颜色(弹幕指令)
@c指令,是颜色(color)的意思,允许你的弹幕使用不同的颜色,@c指令有四个参数,对应rgba色彩模式的四个参数。
@c 红色值 绿色值 蓝色值 透明度
@c red green blue alpha
参数解释:
红色值(red):rgb颜色的红色混合值 范围:0~255 默认:255
绿色值(green):rgb颜色的绿色混合值 范围:0~255 默认:255
蓝色值(blue):rgb颜色的蓝色混合值 范围:0~255 默认:255
透明度(alpha):alpha透明度 范围:0~255 默认:255
发不同颜色的弹幕,你需要这样写:
我是一条红色弹幕 @c 255 0 0
我是一条蓝色弹幕 @c 0 0
注意上面的蓝色弹幕,理论上蓝色应该是0 0 255,因为这些颜色属性的默认值都是255,所以最后一位参数可以被省略掉。
当然你也可以发透明的弹幕,像这样:
我是半透明的绿色弹幕 @c 0 255 0 100
第四位参数控制弹幕的透明度,255是完全不透明,0是完全透明,中间的值即为半透明。
@f 字体样式(弹幕指令)
@f 指令是文字(font)的意思,它允许你使用不同的文字大小和字体,@f 指令有两个参数,分别控制文字大小(字号)和字体。
@f 文字大小 字体
@f size family
参数解释:
文字大小(size):弹幕文字大小 范围:0~100(不包括0) 默认:40
字体(family):字体 范围:1:默认的黑体 2:楷体 默认:1
通常情况下,弹幕的字号为40,如果你想发一个小字或大字的弹幕,你可以这样:
我的字很小哦 @f 10
我的字很大哦 @f 80
当然你可以使用不同的字体,遗憾的是我们目前仅支持两种字体,1:默认的黑体,2:楷体,例子:
我是个楷体的弹幕 @f 40 2
对啦别忘了,弹幕指令是可以叠加的:
我是一个大号红色楷体的弹幕 @c 255 0 0 @f 50 2
@t 矩阵变换(弹幕指令)
@t是变换(transform)的意思,这个指令利用一个变换矩阵对弹幕坐标进行矩阵乘法运算,我就知道这么说你肯定听不懂,简单来讲就是从旋转、缩放、扭曲这三个方面让弹幕发生形变。
@t 旋转角度 x轴缩放比例 y轴缩放比例 x轴扭曲程度 y轴扭曲程度
@t angle scaleX scaleY skewX skewY
参数解释:
旋转角度(angle):旋转角度 范围:任意数字 默认:0
x轴缩放比例(scaleX):水平方向缩放 范围:0~2(不包括0) 默认:1
y轴缩放比例(scaleY):垂直方向缩放 范围:0~2(不包括0) 默认:1
x轴扭曲程度(skewX):水平方向扭曲 范围:-50~50 默认:0
y轴扭曲程度(skewY):垂直方向扭曲 范围:-50~50 默认:0
你想让你的弹幕旋转30度,你可以这样:
我偷偷转了30度 @t 30
如果你想让你的弹幕在x、y轴方向上都放大到1.5倍,这样:
我膨胀了 @t 0 1.5 1.5
当然也可以缩小到0.5倍:
我缩小了 @t 0 0.5 0.5
让你的弹幕发生扭曲,这样看起来像是3D的一样,试试这样:
我被扭曲了 @t 0 1 1 20 5
@a 动画特效(弹幕指令)
下面要介绍的@a指令就稍稍有点复杂,@a 是动画(animate)的意思,也就是说,它控制与动画有关的属性,它有两个属性,动画持续时间(span)和缓动曲线(easing)。
@a 持续时间 缓动曲线
@a span easing
参数解释:
持续时间(span):动画的持续时间,这个值越小动画越快 范围:0~50(不包括0) 默认:10
缓动曲线(easing):动画缓动效果 默认:n(无效果)
缓动曲线 = 曲线形状 + 效果
曲线形状:t:二次方曲线 c:三次方曲线 q:四次方曲线 f:五次方曲线 z:指数函数曲线 e:弹簧振子曲线 b:单次弹簧曲线 j:物理弹跳曲线
效果:i:缓入 o:缓出 io:缓入缓出
例子:ci:三次曲线缓入动画 fio:五次曲线缓入缓出动画
动画持续时间肯定很好理解,持续时间越长,动画速度越慢,反之则越快。
我的速度超级快 @a 5
我怕是个蜗牛 @a 40
缓动曲线就比较高级了,它控制动画的速度时间曲线,它有两部分(曲线形状、效果)拼接而成,注意,这里仅仅是单纯的拼接,不能用空格或换行符分割。
我带有四次函数缓出动画 @a 10 qo
我刚去夜店蹦过迪 @a 8 ji
我带有指数函数缓入缓出动画 @a 10 zio
我很Q弹 @a 20 eio
试试与其他指令叠加吧:
吼吼吼吼 @c 200 10 @f 80 2 @t 180 1.2 1.2 2 @a 15 bio
(紫色 80号字体 楷体 旋转180度 xy轴方向各放大1.2倍 x轴方向扭曲2度 持续时间15 回弹效果)
@s 高级弹幕(弹幕指令)
如果你想发全场最炫酷的弹幕,那你必须要好好看这里了,@s是超级(super)的意思,控制高级弹幕效果,它有4个参数,允许你使用组合高级动画、控制高级弹幕出现位置以及在屏幕上停留的时间,是弹幕墙最复杂、最精致的部分。
@s 动画样式 弹幕出现的x坐标 弹幕出现的y坐标 弹幕的持续时间
@s animate positionX positionY delay
参数解释:
动画样式(animate):动画样式,允许多个动画互相叠加,但是飞入动画和缩放动画只能使用一个,没有顺序 默认:n(无动画)
t:从顶部飞入 r:从右侧飞入 b:从底部飞入 l:从左侧飞入 c:从中心飞入 o:从0到当前值的透明度动画 s:从0到当前值的缩放动画 y:从100到当前值的缩放动画 m:从0到当前值的旋转动画 k:从0到当前扭曲值的形变动画 z:从当前值到255的透明度动画 y:反向缩放动画 h:反向旋转动画 g:反向扭曲动画
例子1:rks 例子2:coym
弹幕出现的x坐标(positionX):弹幕出现的x坐标,屏幕的左下角为原点,单位屏幕宽度的百分比,r为随机值 范围:0~100 默认:r
弹幕出现的y坐标(positionY):弹幕出现的y坐标,屏幕的左下角为原点,单位屏幕高度的百分比,r为随机值 范围:0~100 默认:r
弹幕的持续时间(delay):弹幕在屏幕上的持续时间 范围:0~8(不包括0) 默认:3
动画样式参数,可以自定义组合动画,有多个动画样式字母拼接而成,注意,这里也是单纯的拼接,不能使用空格分割符,每个字母代表不同的动画,可以组合使用,但是不能重复组合,飞入动画(t,r,b,l,c)只能使用其中的一个,不能使用多个飞入动画,缩放动画(s,y)、旋转动画(m,h)、扭曲动画(k,g)也是同理。
我从顶部飞入放大到随机的位置 @s ts
我从中心飞入到随机位置同时现形 @s co
通常情况,高级动画经常搭配@t指令一同使用,当然你也可以混合使用其他弹幕指令:
我旋转升天 @s mbs @t 3600 2 2
(底部飞入 旋转3600度放大到2倍)
这里要注意,因为我们采用笛卡尔坐标系,也就是说随着旋转角度的增加,物体做逆时针旋转,上面的例子是做逆时针旋转动画。
我扭曲了 @s ko @t 0 1 1 -30 -30
(透明度从0到255的动画 xy轴扭曲到-30的动画)
下面来说,第二和第三参数,这两个参数指定,弹幕在屏幕上出现的位置,这是一个百分数,指的是屏幕宽度与高度的百分比位置,这里采用笛卡尔坐标系,即屏幕左下角为原点(0,0),这里可以使用'r'来代表随机。
我飞入到屏幕的正中心 @s l 50 50
我出现在屏幕的顶部 @s n r 80
第四个参数就更好理解了,弹幕的高级动画结束后多少秒消失。
我很持久 @s o r r 8
昙花一现 @s o r r 0.5
到这里全部的弹幕指令就讲完了,我们试试他们一起组合的效果:
厉害了我的哥 @c 255 100 50 @a 20 qio @t 60 @s tso 50 60 5
Hoooooooooooo @c 255 255 @a 6 cio @t 0 1 1.2 5
弹幕可以 存在 空格 的 @t 725 1 1 5 5 @s kmoc 50 50 6 @a 15 fio @f 55
@b 背景颜色(全局指令)
@b指令是背景(background)的意思,它是一个全局指令,它可以修改弹幕墙背景颜色,但是@b目前处于实验状态,因为我们担心随意修改背景颜色,会导致部分弹幕与背景颜色相近而无法分辨,它与@c指令一样差不多,它有三个参数,红值、绿值、蓝值,注意@b指令只能单独使用。
@c 红色值 绿色值 蓝色值
@c red green blue
参数解释:
红色值(red):rgb颜色的红色混合值 范围:0~255 默认:255
绿色值(green):rgb颜色的绿色混合值 范围:0~255 默认:255
蓝色值(blue):rgb颜色的蓝色混合值 范围:0~255 默认:255
尝试修改弹幕墙背景颜色,请尽量避免使用与在场弹幕过于相近的颜色。
弹幕墙背景颜色不支持透明度。
修改弹幕墙背景颜色的例子:
@b 155 200 100
写在最后
非常感谢大家对弹幕墙项目的支持和帮助,预祝大连工业大学集成测控技术研究所2019年会圆满成功!
弹幕墙开发人员列表(首字母排序):
集成测控技术研究所MOS小组-秦浩轩(前端)
集成测控技术研究所MOS小组-熊新强(后端)
特别感谢以下同学参与测试(首字母排序):
集成测控技术研究所MOS小组-李思岐
集成测控技术研究所MOS小组-良研俊
集成测控技术研究所MOS小组-隋学良
特别感谢以下同学审阅文档(首字母排序):
集成测控技术研究所ZERO小组-周新皓