回顧—B 站第二屆彈幕大賽

2015年的夏天,B站第二屆彈幕大賽如火如荼地進行著…

不諳世事的我因荷爾蒙的刺激,報完名後就一頭栽進位作中了。

當時的我幾乎從未接觸過代碼這種東西,卻想著拿個名次…

於是呢…我只好東搬搬西搬搬,好不容易湊了個像樣的開頭,如下:

正當我享受在「敲代碼比做視頻在時間效率上高太多了」的時候,卻被一個 mad 給打臉了,而且還是用彈幕做的mad——【純彈幕靜止MAD】真物的花紋

當時看到這個 mad 之後內心是極度複雜的,自己的無力,時間上的局限,且作為一個 mader 到最後還被 mad 打臉,最終還是放棄了…突然想起寫一篇關於彈幕大賽的文章也是源於島娘發給我的那個網址…裡面的題目也讓我有一種當年比賽時候的無力感…

這也是我第一次品味到什麼叫無力回天…當時比賽大概也就不到一個月的時間,我一個初心者竟然一心想往高質量的彈幕視頻靠攏…

不過還是非常感謝當時麵湯湯麵君對我的耐心答覆,沒有他我可能 3% 的進度都達不到。

核心代碼如下

魔改的全屏自適應代碼:

/*全屏推奨モード*/nnif ( Global._get("5sWind")){}ntelsent{$.root.addEventListener("enterFrame",function(){ntvar lastWidth=0;ntvar lastHeight=0;ntvar adjustSize=function(){nttvar scale=Math.min($.width/950,$.height/528);nt var x=($.width-(950*scale))/2;nt var y=($.height-(528*scale))/2;nt $.root.scaleX=scale;$.root.scaleY=scale;nt $.root.x=x;$.root.y=y;n};nnif ( $.width!=lastWidth||$.height!=lastHeight){ntadjustSize();ntlastWidth=$.width;n lastHeight=$.height;n }});nnGlobal._set( "5sWind",true);}n

使用矢量圖轉代碼軟體自動生成的代碼:

/*「貴方と初めて會った日のことは、よく覚えている」*/nnfunction font(txt,X,Y,Yst,Vsize){n var i=0;n interval(function(){n ti++;n tSub=txt.substring(i-1,i);n tvar c=$.createComment(n ttSub,{x:X+i*Vsize,n ttcolor:0xffffff,n ttfontsize:Vsize,n ttlifeTime:10-i*0.2,motionGroup:[{n ttty:{fromValue:Utils.rand(Yst,Y),toValue:Y,lifeTime:0.5},n tttalpha:{fromValue:0,toValue:1,lifeTime:0.5}},n ttt{alpha:{fromValue:1,toValue:1,lifeTime:3}},n ttt{alpha:{fromValue:1,toValue:0,lifeTime:1}}n ttt]n tt});n tt},22,22);}nnfont("貴方と初めて會った日のことは、よく覚えている",220,280,20,30);nfont("和你初次相遇的那一天 我記憶猶新",300,330,400,30);n

東抄抄西抄抄修改後的狂拽酷炫吊炸天的特效代碼:

/*Giftia Loading*/nnvar bar=$.createShape({x:345,y:324/2+160,lifeTime:3});nvar i=0;interval(function(){i+=3;nbar.graphics.lineStyle(1, 0x66CCFF, 1, false, "vertical","none", "miter", 1);nbar.graphics.drawRect(i,0,i,15);nbar.graphics.endFill();},30,75);nn/*_(:3」∠)_*/nnvar c = $.createComment("Giftia Loading...",{nx:345,y:284,nlifeTime:3,nfontsize:20,ncolor:0xffffff,nalpha:1,nnmotion:{n alpha:{fromValue:1,toValue:0,lifeTime:1,repeat:3}n}});nn/*Effect*/nvar p=0;interval(function(){np++;nvar circle=$.createShape({y:500,lifeTime:1,motionGroup:[{nx:{fromValue:2350/2,toValue:Utils.rand(0,-1920),lifeTime:3},ny:{fromValue:658/2,toValue:Utils.rand(400,200),lifeTime:3},nalpha:{fromValue:0,toValue:0.8,lifeTime:6}}]n });n circle.filters=[$.createGlowFilter(0xcc99ff,2,16,16,2,1,false,false)];n circle.graphics.beginFill(0xcc99ff);n circle.graphics.drawCircle(0,0,Utils.rand(1,20));n circle.graphics.endFill();n },20,90);n

不得不說,藉此契機讓我認識到了一個比做視頻來的時間效率要更高的東西——代碼。

第一次接觸到它的時候,我完全感受不到時間的流逝,彷彿一分鐘變成了一秒鐘,一小時變成了一刻鐘…

不過,之後很長一段時間因為三次元繁忙的緣故,無暇顧及這個夥伴了。

今時今日,我已經用某公司的二面證明了自己,在代碼方面算不上大神,但起碼,不是小菜雞。

原代碼發佈於 2015-8-5 at Qzone

最後立個 flag:D-Contest 2017 下個月就要截稿了…這個夏天,我一定會產出來的!


推薦閱讀:

如何看待b站AutumnPiano假彈?
如果B站如A站管理者奈奈所說拒不向法庭提供UP主信息等相關證據,會有怎樣的下場?
如何評論bilibili夏日繪板osu派人騙號事件?
怎樣看待2017年bilibili萌戰活動中fgo角色瑪修和羅曼獲得雙王?

TAG:弹幕 | 代码 | 哔哩哔哩 |