第12回オープンソーステクノロジー勉強会行ってきた

25日にGREE Labsと国際大学グローコムが開催している勉強会に参加してきました。
内容はFlexでしたが、参加者の方はPHPerの方が多かったように思いました。

ニコスクリプト言語の実装と進化 〜ActionScript 上での言語処理系実装〜(ドワンゴ藤田さん)

ニコスクリプトとは

普通のコメントとは違う、動画投稿者が投稿できる特殊なコメントがあります。このコメントは、他のコメントが増えてきても消えることはありません。
このコメントで利用できるのがニコスクリプトです。
ニコスクリプトを使うことで、動画にいくつかのエフェクトのようなものを追加できます。

  • @窓 ・・・ 画面の一部分を窓で覗くようにする機能。上下を書くと動かせます。
  • @投票 ・・・ 動画に投票ができる機能。
  • @クイズ ・・・ クイズを出す機能です。
  • @玉 ・・・ 動画上に玉を表示します。
  • @置き換え ・・・ 入力された特定の文字の置換をします。
  • @ジャンプ ・・・ 動画終了時に、他の動画にジャンプします。
ニワスクリプトとは

元ニワン語です。
ニコスクリプトは実行される前に、ニワスクリプトに変換されます。
ニワスクリプトJavaScriptをベースにしたもので、ニコスクリプトより複雑な処理を書くことができます。
実装できてない部分が多いそうなので、今後いろいろ追加していきたいそうです。

ニコニコ動画のモジュール構成

上位レイヤー
ニコニコ動画プレイヤー本体 ・・・ 動画再生機能、コメント再生機能など
│ScriptPlayer ・・・ スクリプトを実行して描画処理などを行う
│NicoScript ・・・ ニコスクリプトをニワスクリプトに変換
│Iroha ・・・ パーサとコンパイラなどの言語処理系
│NSPlayer ・・・ シークができる言語処理系をIrohaに提供
下位レイヤー
NSPlayerの実行が重かったので、何回かバージョンアップをして改良を加えています(詳しくは動画を)。

今後と質問の返答
  • クロージャとかクラス定義とか実用的な言語機能を追加したい
  • NiwaScriptをAVM2(AS2のバーチャルマシン)のバイトコードコンパイルしてパフォーマンス向上を目指す
  • GCしてないので繰り返すと落ちる
  • 上記の処理は全部ASで実行している


初プレゼンということで、緊張していらしたようですが、面白い内容とキャラでした。
質問の途中で出てきた「感覚でプログラムを書いている」発言には会場がどよめいていました。
懇親会は途中からnipotan niteに行ってしまったので、お話ができなくて残念でした。

D


Flexについていろいろ(GREE衣笠さん)

今からFlexで作る人向けの内容でしたので、参考になったところのみ。


このあたりから会場の無線につながりました。Ustの突込みが厳しかったのが印象的でした。
今回紹介されたライブラリは知らなかったので、今後の開発に是非取り入れていきたいです。

D


その他

  • スクリーンの位置が低いので、下4分の1が見えない→Ustで
  • 無線が最初つながらなかった → 接続台数制限のせい?
  • id:cojiさんの撮影してからニコニコ動画にアップする処理速度が速い
  • 懇親会の後にGREEの新オフィスの見学をさせてもらった→広くてきれい