ニコニコ動画のスクリプト

ニコニコ動画では、動画再生時に実行されるスクリプトを動画の投稿者が書くことができます。この言語は「ニコスクリプト」とか「ニワン語」などと呼ばれるようです。
ニコニコ動画まとめwikiを見ると仕様がだいたいわかります。

webで知ったwikiに載ってない機能など

関数定義 def

def(format, )

  • def_kari に似ていますが、関数名を文字列ではなくそのまま指定するのと、引数に名前をつけられるところが異なります。
  • ex. "I'm Jon(8)."が表示されます。
0::/def(say(name,age), dt("I'm " + name + '(' + age + ').'))
0::/say('Jon',8)
  • 関数を再帰させるにはdef_kariでは駄目で、defを使う、っぽい。ex. "123456789"が表示されます。
0::/str=""
0::/def(fn(n),if(n<10,then:str+=n;fn(n+1)))
0::/fn(1)
0::/dt(str)
ループ while_kari

while_kari(評価式, )

  • 評価式が真の間を実行します。いわゆるwhile文です。
  • ex. "123456789"が表示されます。
0::/str=''
0::/i=0; while_kari(++i<10, str+=i)
0::/dt(str)
代入 :=
  • ローカル変数を定義します。def, def_kari で定義した関数がローカル変数のスコープになるようです。
  • 代入 = を関数内で使用した場合、変数が外側のスコープで定義されていた場合はその変数に代入、未定義の場合はローカル変数として定義されるようです。
drawShape 制限数

けっこう厳しいです。

スクリプトで何を作るか、について

一人でやるゲームを作っても、他の人のコメントがただのノイズになってしまい、ニコニコ動画を使う意味があまりありません。通常の動画にちょこっとお楽しみ機能としてつける程度ならありでしょうが。タイムラグがあっても成り立つ多人数参加型のなにかを考える必要があるでしょう。