バーチャルYouTuberから見る、例のアレの存在と影響

f:id:tsuwatch:20180116233547p:plain

2017年末ごろからバーチャルYouTuberの勢いがとても強くなってきた。んで、ニコニコ動画の例のアレと呼ばれるカテゴリについてちょっと書いておこうと思う。

どういった要因があって、これほどまでに急激にバーチャルYouTuberが広まったのかは様々な人が調べているが*1*2

  • 複数のバーチャルYouTuberが同時多発的に登場
  • ニコニコ動画への転載

が主な要因とされている模様。自分は6月ごろにキズナアイを少し見てフーンというくらいで、ここまで伸びるとは思ってなかったので不覚。

はじめに少し述べておくと、今回個人的に何がおもしろかったかというと、例のアレが珍しくオリジナルコンテンツの盛り上がりにリアルタイムで"本意に"寄与してすごい!ということだ。

バーチャルYouTuberの隆盛

さて、バーチャルYouTuberに爆発的人気が出始めた。今話題になっているバーチャルYouTuberは、バーチャルYouTuber四天王(キズナアイ、ミライアカリ、輝夜月、電脳少女シロ、バーチャルのじゃロリ狐娘Youtuberおじさん)と呼ばれるコミュニティを形成し、コラボしたりする形で親しまれている。

やはりキズナアイは、パイオニアで1番の功労者である。他のバーチャルYouTuberは、それにあやかる形となっている。もちろん彼ら彼女らの実力なのだが。

いわばキズナアイが他のバーチャルYouTuberをプロデュースする(しあう)形になっている。

玉石混交に動画コンテンツがあるなか、おもしろいコンテンツをつくってもそこまで見てもらえずに終わってしまうことも多いだろう。より多くの人にコンテンツを観てもらうためには、必要なところに、どのように笑うか、笑い方とともに届ける、プロデュースしていく必要がある。

このいち早い連携が、急激な盛り上がりに貢献していることは十分考えられる。

例のアレとは

そしてバーチャルYouTuberはさておき例のアレの話になるのだが、とりあえず例のアレとはニコニコ大百科によるとこんな感じ。

dic.nicovideo.jp

人によって様々な解釈があるかもしれないが、自分はオリジナルの映像と音声を切り貼りして笑うMAD要素の強い、ちょっとバカにした感じの笑いがあるニコニコらしさが詰め込まれたカテゴリだと認識している。

ご存じの方も多いかと思うが、例えば、

  • 総統閣下シリーズ
  • 松岡修造
  • ドナルド・マクドナルド

などこれまでに様々な何かがネタにされてきている。

何かおもしろいコンテンツができあがると、それにならう形でN次創作がどんどん広がっていくというのが例のアレというカテゴリだ。

これによってオリジナルのどこの映像や音声を使うのか、などからコンテンツのフォーマットが決まり、笑いのフォーマット、コメントのフォーマットが決まってくる。どこで笑うのか、どこでどんなコメントをすればいいのかがどんどんどんどん蓄積されていっている。

コンテンツにおいて、何がおもしろくて、どこでどんな風に笑えばいいのかということは、とても重要なことの1つである。TVでテロップが出てくるのはどこで笑えばいいのかを教えるためである。

ある程度のフォーマットもわかっているので、当たりやすい(?)オトクなカテゴリとも言える。なんて言ったって「ホモと見る」だけでめちゃくちゃおもしろくなってしまう。ようは、オリジナルとなっているコンテンツをニコニコユーザーにとって楽しい形で受け入れやすいということだ。

例のアレはこのように、動画とどう向き合って、笑えばいいのかということがわかりやすい。そして、ニコニコ動画のなかでも連帯感が強く、文化をつくる原動力、中心的な役割をになっていると思っている。

何かコンテンツと例のアレ

こういうカテゴリでバーチャルYouTuberは取り上げられ、ニコニコ動画にかなりの盛り上がりを起こしている。

例えばこういうの

そして、バーチャルYouTuberの伸びに貢献しているのではないかとよく言われている。

ただこれまで例のアレは、性質上、ニコニコ動画だけで、過去のコンテンツで遊んだり笑うだけで、あまりオリジナルコンテンツにリアルタイムで意図した良い影響を及ぼしてきにくかったように思える。syamu_gamesは引退しているし、直近ではXXハンターもニコニコへの転載をキッカケに一気に拡散したが、ほとんど炎上のようなものだった。(コマンドーチャージマン研!などは多少そうかもしれない)

しかし!今回の例のアレは珍しく見事に、リアルタイムでニコニコ動画ユーザーに、オリジナルコンテンツのバーチャルYouTuberを普通に"プロデュースされた。例のアレが動員力を発揮し、オリジナルコンテンツ提供者にとって純粋に嬉しい良い形となったのではないだろうか。これもひとえにキズナアイが野獣先輩の読み間違いでやらかしてくれたおかげなのかもしれない…!

さいごに

エイレーンから新プロジェクトが誕生し、

こういった動き、いわゆる淫夢営業と呼ばれていることもまで出始めたようであったが、反発は少なくなかったようだ。

また、バーチャルのじゃロリ狐娘Youtuberおじさんが「ニコニコでは受け入れられないのでアップしてませんでした」と言っている*3のだが、これはあながち間違った認識ではないと思っている。カメラの前で顔出しして喋ってる動画で成功しているのは、時代を先取りしすぎた顔出しのパイオニア、今なら人気YouTuberになりえたかもしれない男、藤崎瑞希*4くらいしか知らないというのは言い過ぎかもしれないが、こういった類の動画しか自分は知らない。

実際にキズナアイがニコニコ動画で活動していた時期があった*5のだが、バーチャルYouTuberブームがまだ来ていなかったとは言え、投稿された動画にももう一歩伸びが見られていない。

今回ニコニコでも伸びたのは、YouTubeで伸び、例のアレが一旦受け皿となったからこそ、ニコニコでも受け入れられたのかもしれない。

また、ニコニコ動画は例のアレしか良いところがないと言われるが、それはなかば当たり前といえば当たり前かもしれず、ここだけはニコニコのヘビーユーザーを中心にして、幅広いユーザーにとって楽しみやすい、親しみのある、歴史を重ねてきたコンテンツに溢れていると思うからだ。今はもうあまり見られなくなったが、過去にあった釣り動画の賜物でもあるのかもしれない。

突然とんでもないコンテンツやフォーマットが出回ったり、いつも驚きと新鮮さと笑いをもらえるのが例のアレ。 今後、例のアレからどんなコンテンツや文化が生まれるのか?さらに勢力を伸ばし、影響力がより大きくなるのだろうか?これからもいちユーザーとして非常に楽しみである

electron-packagerでasar圧縮する時はFlashなどのバイナリファイルを含めてはならない

表題どおりです.electron-packagerでasar圧縮する時にバイナリファイルも圧縮すると,asar内でそのファイルを読み込むことができない.

--asar.unpackオプションで指定して,圧縮しないようにする必要がある.

Unable to use Pepper Flash plugin in packaged app (MacOS X) · Issue #114 · electron-userland/electron-packager · GitHub

なので,

https://github.com/tsuwatch/nicomentron/blob/94c0106f720c0725f18059ace024f509b55e4770/package.json#L8

こんな感じ.指定するとアプリ内ファイルのapp.asarが生成されるディレクトリと同じディレクトリに app.asar.unpackedというディレクトリができ,そこに指定した圧縮されていないファイルが置かれる.

なので,

https://github.com/tsuwatch/nicomentron/blob/v0.5.0/src/main.js#L24

ディレクトリを指定するときに,app.asarの部分をapp.asar.unpackedにしたりして読み込む.

ニコ生のコメントサーバーに接続したりするためのライブラリ作った

ニコ生のコメントサーバに接続したりするためのライブラリをJavaScriptで書きました.npmで利用できます.

github.com

ニコ生デスクトップクライアント(GitHub - tsuwatch/nicomentron: Desktop client for ニコニコ生放送(live.nicovideo.jp) made of Electron)を作っていて、その副産物です。とにかくニコ生デスクトップクライアントを作るために作ってるので、ガッと実装していて色々怪しいところもあったり、ドキュメントもまだ書いてないんですが、そのうちちゃんとやります。

現状こんな感じで使える。

import nicolive from 'nicolive-api'

nicolive.login('foo@bar.com', 'xxx').then(client => {
  client.connectLive('lvxxxx').then(manager => {
    manager.viewer.connection.on('comment', (comment => {
      console.log(comment.text);
    }));
    manager.viewer.connection.on('ejected', () => {
      console.log('追い出されました');
      manager.disconnect();
    });
  });

  client.connectAlert().then(viewer => {
    viewer.connection.on('handshaked', () => {
      console.log('handshaked');
    });
    viewer.connection.on('notify', (info => {
      console.log(info.contentId);
    }));
  });
});

使えるAPI

  • 生放送情報取得
  • コミュニティ、チャンネル情報取得
  • ユーザー情報取得
  • ニコ生アラート

コメントサーバーの仕様について

全部屋に接続して、全部屋のコメントを取得します。

ウェブ上にある情報やOSSなどを見てコメントサーバについて少し解説すると(もちろんあってるかかどうかはわからない)、まず、メッセージサーバ群が存在します( https://github.com/tsuwatch/nicolive-api/blob/56d8e36b2800d909dcb5e71cd107b2e0aac5e692/src/MessageServer.js#L2-L23

) こんな感じで、ドメイン名とポート群があり、ここから対象の放送のメッセージサーバを探索します。

getplayerstatus というAPIが存在するので、そこから自分が接続しているサーバを確認します。メッセージサーバは順番を持っていて、他の部屋のメッセージサーバは、自分が接続したメッセージサーバの前後に存在している。例えば立ち見Aに接続した場合、アリーナサーバは1つ前のドメイン名とポート番号に存在している。接続するにはスレッド番号も必要なので、自分が今接続しているスレッド番号に-1すれば良い。こういう感じで前後のメッセージサーバを探索していける。

スレッド番号は、放送が開始された段階でまとめて部屋分確保されるので、単純にプラスマイナスすれば良い。コミュニティレベルに応じて、そのコミュニティが可能な部屋数の最大までスレッドが確保されている。チャンネルも固定で500人×6部屋の3000人分確保されている。しかし問題なのが、自動増席システムです。チャンネルは、満員になると自動的に席が追加されます(立ち見席と表記される)。この席はもちろん、一番うしろのメッセージサーバの次のメッセージサーバであることはわかるんですが、スレッド番号が特定できません。なぜなら一気に確保していませんし、裏では常に他の放送のスレッドを確保しているからです(おそらく)。

なので、立ち見席には対応できていません。立ち見席に接続した場合は、立ち見席しか取得できないようになっています。世のコメビュはなぜか対応できているやつもあるっぽいんですが、謎です。教えてください。

そういえば、ニコニコ生放送は新配信に移行するようです。新配信では満員という概念がなくなるようで、自動増席がバンバンされるということですね。現状確認したところ、コミュニティレベルに応じてスレッドを一気に確保するというシステムは現状変わっていないようなので、それ以降に自動増席がされるようです。

こんな感じです。みなさん、これで最強のコメントビューアが作れますね。

参考

【7/13更新】新配信番組のタイムシフト画質を改善|ニコニコインフォ

ニコ生の公式とチャンネルのコメントサーバの仕様について | ニコラボ

GitHub - honishi/Hakumai: niconama comment viewer alternative for mac os x.