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小组-周新皓