らこらこブログ

唐揚げとアニメとプログラミングが大好きです

ビビッドレッド・オペレーションと私

f:id:laco0416:20151208231859j:plain

優勝が 世界を守る鍵


この記事は ビビッドレッド・オペレーション Advent Calendar 2015 12日目の記事です。 www.adventar.org

12月12日、1と2により構成された美しい日付、言い換えれば一色あかねちゃんと二葉あおいちゃんの友情記念の日とも言えます。記念すべきこの日に書かせていただけて光栄の極みです。

それはそうと書きながら検索して気づいたのですが、一色あかねちゃんは2013年のアニメ終了から約3年でいろいろあったようですね。世界を守った英雄であるあかねちゃんも資本主義には逆らえなかったのでしょうか。夜の仕事でも元気にやっていることを願うばかりです。

f:id:laco0416:20151208230948p:plain

追伸:あおいちゃんは綺麗なままでした

f:id:laco0416:20151208231202p:plain

本題

忘れがちですが、ビビッドレッド・オペレーションは2013年1月開始のアニメです。3月で本放送を終了し、以降は再放送や一挙放送などで配信されてきました。とはいえ、我々はビビッドレッド・オペレーションを忘れていなさすぎではないでしょうか。どう考えても2年半以上前のアニメに対する接し方ではないですし、我々のビビオペ愛は衰えることがありません。

何故か。

最大の要因はビビッドレッド・オペレーションという作品が時間を重ねても全く色あせない最高の作品であるというのは間違いないですが、忘れてはいけないのはこの存在でしょう。

そう、診断メーカーです。

shindanmaker.com

ビビッドレッド・オペレーション」を並べ替えるだけというこのシンプルな診断は、この記事を書いている現在で40,321人が診断しています。

思い返せば、本放送が終了し失意の中に居た我々のそばには常にこの診断メーカーがありました。

いつしか我々はこの行為を「ビビッドレッド・オペレーションする」、「ビビオペする」と呼称するようになりました(当社調べ)。

診断メーカーからbbopコマンドへ

しかし診断メーカーはブラウザを開く手間がある上、結果は日替わりなので1日1回しかビビッドレッド・オペレーションできませんでした。そこで私は自作のbot「メカらこ」にリプライを送るだけでビビオペできるようにすることを思いつき、記念すべきこのツイートが誕生しました。2014年2月22日のことです。

この日、この世界に《bbopコマンド》という概念が生まれました。このコマンドは瞬く間にタイムラインで叩かれまくりメカらこは一瞬で投稿規制に引っかかりました。その後5分間のクールタイムを設けるなどしてコマンド機能の改善を行いました。

メカらこのbbopコマンドの特徴はスコアの表示です。診断メーカーでは結果の文字列だけが返ってきますが、bbopコマンドではその一致率をスコアとして算出することによりビビオペのゲーム性が高まりました。

スコアの記録も行い、自己ベストやランキングシステムも存在しました。

今稼働中のメカらこは当時のシステムとは別に作りなおしたのでランキング機能などはなくなりましたが、bbopコマンドとスコア表示はずっと行っています。よかったら遊んであげてください。

よく言われるのはなぜ vvop ではないのかという話ですが、作者はこう言っています。

でもよく考えてみてください。bとvに入力しやすさの差がありますか?キーボード隣ですよ?私が推察するにこれは完全にうっかりミスですね。

少しプログラミングに寄った話

一番最初のbbopコマンドはC#で実装されました。コマンド部分だけを抜き出したのがこちら

gist.github.com

簡単ですね。

実はmikutter用のbbopプラグインも作ってたみたいです(本当に今の今まで忘れていた)

mikutter_bbop_plugin.rb · GitHub

そして現行のメカらこで使われているのがgolang実装のbbopコマンドです

gist.github.com

ビビオペするということ

診断メーカーにしろbbopコマンドにしろ、「ビビッドレッド・オペレーション」が完成するのは非常に低い確率です。おそらく数億分の1くらいの確率でしょう。だからこそ、我々は日々ビビオペし、いつか完成する日までビビッドレッド・オペレーションという作品のことを忘れずにいられるのではないでしょうか。

奇跡のタイトル、奇跡の作品。ビビッドレッド・オペレーションはそのタイトルがすでにビビッドレッド・オペレーションなのだということを今一度噛みしめることとしましょう。

私の2015年とビビッドレッド・オペレーション

最後に私の2015年とビビッドレッド・オペレーションについて振り返ってみます。

アニメ艦これからもうすぐ1年なんですね。あっという間です。ちなみに私はアニメ艦これが大好きです。艦これはやってません。

うん。

楽しそうで何より。

うん。

放課後のプレアデスビビッドレッド・オペレーションを見出していた。

監獄学園にビビッドレッド・オペレーションを見出していた。

まとめ

「末代まで語り継ぎたいアニメNo.1(当社調べ)」であるビビッドレッド・オペレーションを今後とも応援するとともに、 新しく生まれてくるアニメからもビビッドレッド・オペレーションを見いだせるよう日々精進していくことをここに誓います。

平成27年12月12日

petit milady 2nd Live


f:id:laco0416:20151206221117j:image

最高だった。
ありがとうpetit milady、ありがとうアントニオ剛志、ありがとうアゲマンドリル智秋。

  • 竹達彩奈さんダイエット成功おめでとう
  • 小山剛志さん雀荘オープンおめでとう
  • サヨナラ嘘ツキ、優勝!
  • God knows...は「よくない」(すき)
  • 100%サイダーガール、優勝!
  • Ma Chérie、最強……!
  • F♡P、最高!!!!
  • azurite、優勝!!!!!!!!!!
有明コロシアムでよかった。多分3000も届いたか怪しいけど採算取れるならこのくらいの箱でやってほしい。具体的には後ろの方でオタクが好き勝手に騒いでも全く影響しないくらいの広さでお願いしたい。100%サイダーガールが流れ出した時に三ツ矢サイダー🍻できて本当に良かった。

アニメOP/EDにおける男性アーティスト曲の波

なんか今期男性アーティストによるアニメOP/EDが多い気がしない? と思ったので2年間の男性アーティストによるOP/EDを並べてみる。

なお、一般の子供向けのアニメは一部外してあるし、名義がキャラ名だったりアニメ内のユニット名で男性声優が歌っているパターンも除外する。ただし宮野真守さんは男性アーティストとしてカウントする。

2014冬(2014/01~)

2014年冬はヒロインが少ない男メインのアニメが多く、それらのOP/EDは当然男性アーティストのものが多い。

2014春(2014/04~)

冬に比べると少ない。挙げた中にもいわゆる深夜アニメらしい深夜アニメは少ない。男が多いアニメだから男性アーティストという流れに変わりはない。

2014夏(2014/07~)

  • DRAMAtical Murder
  • Free! -Eternal Summer-
  • LOVE STAGE!!
  • Re:_ ハマトラ
  • アオハライド
  • 黒執事 Book of Circus
  • 残響のテロル
  • 戦国BASARA Judge End
  • 東京喰種-トーキョーグール-
  • 幕末Rock

2014年夏も男だらけのアニメが多かった。

2014秋(2014/10~)

多いが、一般向けというか、豚向けではないアニメがほとんどだ。

2015冬(2015/01~)

少ない。氷河期。

2015春(2015/04~)

このクールは血界戦線のOP/EDがとても話題になった。深夜帯の人気アニメでどちらも男性アーティスト、それも片方はBUMP OF CHICKENというのは異色であった。

2015夏(2015/07~)

数自体は多くないが、並ぶアニメ層が微妙に変わっている気がする。

2015秋(2015/10~)

やはり多い。ただ多いだけではなく、いわゆる豚向けのものが多いのが今期の特徴のようで、今までにない流れである。特にヘヴィーオブジェクト、落第騎士の英雄譚の2つは完全にラノベ原作のアニメでヒロインもかわいいのにもかかわらずよく踏み切ったなという感じである。酒井ミキオさんの完全優勝に乾杯。

考察

アニメオタクにはかわいい女の子の歌を聞かせておけばいい時代が終わりつつあるのかもしれない。

アニメにはそのアニメを最高に演出する主題歌が必要であり、かっこいいアニメにはやはりかっこいい曲が必要なんだけど、結局円盤や音源が売れないとつらいからオタクが好きそうな女性声優のユニットや女性アーティストの曲が採用されがちだったのはあると思う。 最近は以前に比べて作品中に登場するキャラクターが主題歌も歌うパターンが減ってきているようにも感じるし、男性アーティストでもちゃんと採算がとれるようになってきたのであればとても喜ばしく思う。

結論としては、オタクはもっとロックを聞いて騒いで暴れるべきだ。オタクも男性アーティストで高まれるんだぞというのを市場に示していこう。おしまい。

追記:反応

WebStormのTypeScript統合機能

JetBrains IDE Advent Calendar1日目の記事です。 主催しましたが思った以上に集まらなかったのでちょっと残念です。 埋めるのも大変なので登録してくれた分だけ見られたらいいかなという気持ち。

本稿ではWebStormのTypeScript統合機能についてまとめます。 結構前からサポートされてますが、バージョンアップと共に少しずつ強化されてるので、 どこまでできるようになっているのかを確認しようと思います。

プラグインはデフォルトで有効

WebStorm 11.0.0 Help :: TypeScript Support

TypeScriptサポート機能は「JavaScript Support」プラグインと「Node.js」プラグインの2つに含まれており、TypeScriptで独立したプラグインはありません。つまりWebStormでJavaScriptを書いていれば何をしなくてもその恩恵を受けることができます。

コードアシスト機能

基本的なエディタ機能(メソッドやフィールドの補完、定義元へのジャンプ、リネームなど)はJavaScriptと同じように行なえます。 むしろTypeScriptは型情報があるぶん補完に関しては、プロジェクト中に存在する型定義ファイル(d.ts)を利用してくれるので、 より高い精度でサジェストしてくれます。

特筆すべきはJavaScriptの編集中にも型定義ファイルを内部で利用してくれることで、 ソースコード側に型情報がなくても変数名からそれらしい型定義を探してきて補完候補に含めてくれます。 そのため、TypeScriptでの開発でなくても型定義ファイルだけは利用したい人向けに d.tsファイルをWeb上からインストールする「JavaScript Libraries」機能があります。 プロジェクトごとに分かれた内部のスコープに導入されるので、開発中のプロジェクトに余計なファイルを含めることなく恩恵をうけられます。

f:id:laco0416:20151129232313p:plain

f:id:laco0416:20151129232349p:plain

トランスパイル

TypeScriptはAltJSでありブラウザやNode.js上でそのまま実行することができないので、 JavaScriptにトランスパイルしないといけません。

WebStorm 11.0.0 Help :: Transpiling TypeScript to JavaScript

WebStormにはFile Watcherという機能があり、ファイルの変更を監視して何かしらの処理を行うことができます。 TypeScriptのコンパイルに関するFile Watcherは最初から組み込まれており、.tsファイルを開くと有効にするかどうかを尋ねられますし、 設定画面からもすぐに有効にできます。 チェックボックスを有効にするだけでプロジェクト内の.tsファイルは自動でトランスパイルされるようになってとても便利です。 デフォルトではWebStorm側の設定でトランスパイルするようになっていますが、tsconfig.jsonという公式の設定ファイルを利用するように変更するのがオススメです。

私は以前まで、TypeScriptのトランスパイルはプロジェクト側が責任をもつべきだと考えており、 WebStormのようなIDE側で行うのは否定的でした。 しかしTypeScriptがtsconfig.jsonというコンパイル設定の外部化をサポートしたので、 tsconfig.jsonを参照しさえすればどのツールを使っても同じ結果が得られるようになりました。 そして最新のWebStormがtsconfig.jsonを使ってくれるようになったので、 今までgulpやgruntで監視タスクを書いていたのをWebStormのwatcherに任せようかと思い始めています。

f:id:laco0416:20151129233556p:plain

また、一番上のチェックボックスを有効にすればtsconfig.jsonのfilesに含まれるファイルだけを補完候補の抽出に使ってくれるようになります。

TSLint

TypeScriptのLintツールにtslintというものがあります。WebStormはTSLintからのメッセージをエディタ上に統合してくれます。

WebStorm 11.0.0 Help :: Using TSLint Code Quality Tool

プロジェクトにtslintをインストールした後、設定画面からTSLint連携を有効にします。

f:id:laco0416:20151129234529p:plain

Reactとの連携

最新のTypeScriptにはReactのJSXをTypeScript中で使えるようにするTSXという機能がついています。 TSXは.tsxファイル中で使用可能ですが、WebStormでも.tsxファイル中ではTSXを解釈してくれます。

WebStorm 11.0.0 Help :: Using ReactJS in JavaScript and TypeScript

まとめ

TypeScriptは動的型付け言語であるJavaScriptに型アノテーションをつけたものであり、実行時には型情報は消えてしまいます。 逆に言えば型情報は開発時に利用するだけに使われるものであり、それを活用するのがIDEです。 WebStormのTypeScriptサポートは非常に優秀で、バージョンアップへの追従も比較的早いです。

しかしAtomプラグインであるatom-typescriptはbasarat氏が開発していることもありWebStormよりもさらに強力な機能を備えています。 特筆すべきはLanguage Servicesの利用で、コードの補完やエラー出力の情報をプラグインではなくTypeScriptのコンパイラから受け取っているので、 「エディタ上ではエラーが出ていないのにコンパイルが通らない」ということがありません。 WebStormは内部の独自パーサによって解析しているのでエディタ上でエラーが出ていないのにコンパイルできなかったり、その逆がしばしば発生しているので、この点に関してはまだ課題があります。 ただしプラグインではなく最初から使えること、IDE本体が主要な機能のひとつとしてサポートしていることには大きな価値があると思います。