美少女をランダムウォークで生成し続けた

Posted on

make.girls.moeは、ブラウザ上のニューラルネットワークを使って美少女を生成してくれるサービスです。すこし内部に立ち入ると、このネットワークは、162次元の実数ベクトルを受け取って、128×128の「美少女」の画像を返すことに気がつきます。今回は、そのベクトルの「ゼロ点(全要素がゼロ)」からちょっとずつランダムに動かしながら生成し続けた、40人の「美少女」の動画を作りました。

github repo


make.girls.moeで10回ぐらい「美少女ガチャ」を回してみると、いわゆる「絵を描く」という行為とはすこし雰囲気が違うと感じました。

それを言葉で説明するのはまぁ置いておくとして、「機械が美少女を生成する行為」と「人間が絵を描く行為」が違うとして、機械ででしか出来ないことはなんだろうか、と考えてみました。

このニューラルネットワークの上では、「美少女」は162次元のベクトルです。

ベクトルであるということは、ある「美少女」AとBが与えられた時に、それらを使っていろいろな演算が出来るということです。例えば、C = αA + (1-α)Bとすれば、美少女AとBをα:1-αで「混ぜ」た新しい美少女Cができますね1。これはαを変数として見ると美少女AとBの間に直線を引いて、その間にいる無数の「美少女」を「生成」する、あるいは美少女を「連続的に変化させる2」式ですが、直線じゃなくても、色々な曲線を引いて、その間にある美少女を「連続的に変化」させて「生成」することもできるでしょう。

でも、「美少女を混ぜる」ことだったら人間でも出来ます。「ベクトル空間上の美少女」を混ぜるための方法が直線だけではなくたくさんあるのと同じように、例えば「髪は涼風青葉だけど目と口は八神コウ」とか。「数学的に混ぜている」わけではありませんが、描こうと思えば色々な「混ぜ方」で描けそうな気がします。ですから、「人間は出来ないけど、機械なら出来る」という感じはあんまりしません。

じゃあ、こんなのはどうでしょう。遠くはなれた他の点だけでなく、ベクトル空間では、ある点のすぐ近くに、無数の他の点が存在します。美少女の世界で言えば、ある美少女の近くに、無数の、よく似た、しかし相異なる3「美少女」が存在すると言うことになるでしょう。これも、一見人間とよく似ている気がします。以前、犬吠埼樹ちゃんを50人描いた事がありましたが、同じ樹ちゃんではあるものの、描かれた樹ちゃんは間違いなく全員異なる姿をしていました。なんか近い感じがします。

しかし、ランダムウォークはどうでしょうか。ランダムウォークは、ある点のすぐ近くの点に、きまぐれな散歩のようにどんどん移動する運動です。

一次元空間と二次元空間では、ランダムウォークには再帰性があって、「いつかは元居た所に帰ってくる」らしいです。まぁ、「いつか」だから、「一億年後」かもしれないけど。これは、全然意味は違いますが、人間のやっていることに近い感じがします。様々な試行錯誤をして異なる美少女の絵を描きながらも、「樹ちゃん」という目標はあり、そこの近くをぐるぐる行ったり来たりしている。そんな感じがしました。

でも、三次元以上のランダムウォークには、再帰性はないそうなのです。運が良ければ元のところに戻ってくるかもしれないけど、普通はもう二度と戻ってきません。そして、その行き先は、まったくのランダム。これは人間には、たぶん難しい。オリジナルのキャラクターを描くとしても、何回も試行錯誤しながら描いてる最中に「こっちがよさそう」と思いながらなんとなく方向転換をしていくわけで、まったくのランダムな方角へ進みながら、よく似た、でもまったく別の絵を描き続けることは、たぶん難しい。でもコンピュータなら簡単です

というわけで、冒頭の動画では全く同じところから出発した、40人の「美少女」を並べました。


@0枚目

これがmake.girls.moeが定義する「美少女」の「ゼロ点」です。なんとなく「無個性」な感じするかな。そうそう、162次元中、いわゆる「属性」34次元で、残りは「ノイズ」らしいよ。個性は、ノイズ。

それぞれの美少女はすぐに異なる美少女へ「変化」していきますが、そこでとどまることなく、常に変化をし続けていきます。

@36000枚目

@60000枚目

@72000枚目

まぁ、雲みたいな感じかな。じっと眺めていると同じだけど、気がつくと変わってる。


FAQ

有用性は?

知るか。

新規性は?

お前が新しいと思った所があればあるし、なければない。

ところで「新規性のある美少女」は、居るとすればこのニューラルネットワークの中と外、どっちに居ると思いますか。


(→別の紹介

  1. 本当に「混ぜた」ことになっているかはわかりませんが、そもそも「美少女の演算」ってよくわかんないですし []
  2. ネットワークの定義見てないしそもそも比喩的な意味でしかないけど、数学的にもback propergationしないといけないからネットワーク全体を関数として見た時にも連続だよ…ね…? []
  3. 厳密に単射かどうかはわかりません []

#クソポンチ絵forまんがタイムきらら を集合知で描いてる話、あと架空のまんがタイムきらら

Posted on

open-dokidokivisual.com is dead.

         ,, _ 
       /     ` 、 
      /  (_ノL_)  ヽ 
      /   ´・  ・`  l クソポンチ絵は死んだんだ 
     (l     し    l)いくら呼んでも帰っては来ないんだ 
     l    __   l   もうあの時間は終わって、
      > 、 _      ィ     君も人生と向き合う時なんだ
     /      ̄   ヽ    
     / |         iヽ 
    |\|         |/| 
    | ||/\/\/\/| | 

open-dokidokivisual.com

きららのクソポンチ絵で社会貢献!

2020までに”きららシンギュラリティ“達成へ

公式ハッシュタグ

#クソポンチ絵forまんがタイムきらら

あと一応、初期の属人性があった頃のモーメント

昔の

過去→

現在→そして子供たちに残したい未来の「きらら」へ

今期のきららアニメ面白い

今期のきららアニメ、「甘くて白い綿の花」めっちゃ面白くないですか?南北戦争時代のアメリカ南部のプランテーションで働く黒人奴隷のおんなのこ4人が主人公という設定はかなり攻めてるなと感じましたけど、「あぁ、奴隷にだって『日常』はあったんだよな」という当たり前のことを思い出させてくれて、それがまた儚くて、キラキラしてて。学校で学ぶ歴史とはまた少し違った当時のリアルな生活と、その中での「まんがタイムきらら」が織り交ぜられていて、時間を行き来しているような、そんな気持ちになります。

主人公の女の子たちの一人の子が持っている幽霊のぬいぐるみは「うらら」のマツコさんよりも輪を掛けて可愛くないし喋れもしない本当のぬいぐるみなのですが、話数を重ねるにつれ持ち主の子と大事な友情を育んでいることが分かるので、可愛いなと感じるようになってきました。わたしにも見えない友達が居るので、すごく共感します。誰にも見えなくても、大切な友達は大切な友達なんですよね。

コミックス版の煽りは「褐色多めでお送りします!」なだけあって「褐色フェチ」成分が多くてすこしセクシャルな感じはするのですが、まぁそれも「きらら」のいち側面に収まる範囲なので、わたしは許容できています。実のところ、ヌードデッサンの題材にさせてもらっています。リアルとアニメのバランスがいいですし、現実の裸はちょっと苦手なので重宝しています。

ぞいぞいぞい!

今日も一日がんばるぞい!

日曜日は物足りないぞい!

働いたら働いたぶん
本当の自分になれるんだぞい!

一年間遊んでみた

Posted on

おひさしぶりです。明日から4月ですね…(◞‸◟ )。

この1年間、入ったばっかりの大学院を即休学して1年間ひたすら遊んでたので、今日はその話を書きます。

なんで休学したの?

人生に疲れたからです。

もともと高校の時は引きこもって大して学校行ってないような生活だったものですから、浪人のために予備校に入ってから大学を卒業するまでずっと学校に行ってたら、気が休まらなくて疲れてしまったみたいで。未踏もやったし「家族」という物語には失望したし、転学部もしたし。フルタイムのインターンとかもしました。いろいろあったなぁ(遠い目)。

去年の3月ぐらいにはいくつかのストレスが重なって限界に達してかなり精神的に参ってしまったので、休学することにしました。

大学院に深く入り込んでから休学しようとすると、色々休学をためらわせる要素が出てきそうだなぁ1、という読みもありました。正直もう限界だと思ったというのが一番大きいのですが。

休学するには一ヶ月ほど前に連絡して書類を出す必要がありますが、とくに面倒くさい審査とかはなくてほぼ100%受理されるようでした。休学する理由は「経済的理由」にしておくと、診断書みたいな書類が必要ないので一番ラクなようです。

方針

よく休学して「海外に語学留学に…」とか「被災地のボランティアに…」とか「世界一周で人間的成長を…」とか圧倒的成長するのが望ましいみたいな話がありますが、そういう事は一切考えず、とにかくなるがまま、何をしても、何をしなくてもいい、ぐらいの気楽な感じで過ごしました。

休学はいいぞ

休学するメリットを挙げていくぞ!オラオラ!

疲れが取れる

4月〜6月ぐらいはほとんどずっと寝てました。

休学する前はプールに行くと30分もすると疲れ果てて泳げなくなってしまったのですが、3ヶ月ずっと寝てたら(筋肉はいくらか落ちているはずなのに)2時間ぐらいずっと泳げるようになりました。体力は大事ですが、休息もとても大事です。

死にたさが少しは和らぐ

休学する前は毎日死について検討していたのですが、いまはそうでもありません。

いまでも人類は滅びるべきだと思うし今すぐにでも核爆弾で人間の住んでいるところが全部蒸発して欲しいのですが、”衝動的に”死について検討することは減りました。

好きな時に好きな所へ行ける(体力が許せば)

休学すると何も予定はありませんから、「あー明日から伊勢神宮とか行こうかな〜」とか思えば簡単に行けますし、気が変わって「よーしじゃこのまま紀伊半島一周するか~」と思ったら一周できちゃいます。気楽なもんです。

もちろん何もしなくてもいい

一日中寝ていてもいいし、一日中ぼんやりしていてもオッケーです。寝るのは楽しいことなんだって知りませんでした。

好きなことが増える

休学してから半年ぐらいたったころ、友達が「一緒に絵を描かない?」って誘ってくれたのをきっかけに、絵をはじめました。

学校教育で「美術」「芸術」があったころは、絵は大嫌いで、二度と描きたくないと思ってたのですが、実際描いてみるとたーのしー!

描きはじめの頃の記事はこちら:同じキャラクタを50回ぐらい描いてみよう

最近描いたのはこんな感じ:

 

 

 

写真も取るのが楽しくなってきました。こんな感じ:

 

 

 

絵や写真の他にも友達の書いた小説とかもあるので、もしよろしければ友達とやってるサイト「妖精⊸ロケット」のほうも見てみてください!

休学しててつらいこともあるぞ

概ね楽しかったんですが、つらいこともありました。

大学院の研究室がなくなった

東京大学大学院 情報理工学系研究科 コンピュータ科学専攻 蓮尾研究室という所に居たのですが、4月から東京大学から異動して他の大学院大学に移ることになってしまい、席が無くなってしまいました。

東京大学をやめて異動先の大学院をもう一度受験するか?東京大学大学院内の他の研究室に移るか?という選択肢が提示されたので他の研究室に移ることにしたのですが、教員にアポとってたくさん会ったりしないといけなくて正直結構疲れましたし、心の健康もすこし悪化しました。つらい。

学部の時も「理学部天文学科に内定していたが、履修をミスして内定が取り消しになった」という事があって、内定が決まっていたのに取り消しになってしまったイベントも二度目なので正直ちょっとうんざりしたのが正直な感想かな。

仕事は多少してました

完全にニートやってたわけじゃなくて、仕事も少ししてました。

データセンターの立ち上げをした

Link-Uっていう会社のサービスをホストするためのサーバ群を、それまでの他社VPSからNTTのデータセンターラックを間借りした自社データセンターに移すことになったので、その立ち上げに参加しました。管理もやってます2。「ラックってどっちが前なんだ!?」とかそういうレベルから始めたのですが、なんとかなりました。大変だったけど、楽しくもあったかな。Manga-ONEという漫画アプリの配信とかに使われてるらしい。

アプリもちょっと書いた

HTML5の漫画ビューワー 3とか書きました。どこかの漫画サイトで複数使われてるよ

今後の抱負

今後の抱負ですが、

夜と土日は必ず休む

っていうのを目指したいですね…(休息は本当に大事だ)

  1. 教員に嫌な顔されるとか、人と一緒に研究してるから休学できないとか、就職活動がどうのとか []
  2. さすがに一人ではなくて複数人でやってるよ []
  3. 対外向けにはGPLv3 []

同じキャラクタを50回ぐらい描いてみよう

Posted on

お久しぶりです。モバミちゃんの記事を書いた後、すこし精神のバランスを崩してしまって、4月から入ったばかりの大学院を1年休学することにしました。半年ほどずっと一進一退を繰り返していたのですが、近頃やっとそこそこの元気が出てきたので、絵や写真、イラストをつくる姉妹サイト「妖精⊸ロケット」を始めたりしています。来年の3月ぐらいには、またこの事について触れたいです。


さて、絵を(また)描きたくなったので、描いてみることにしました。でも、昔描いていた時はポケモンを描いていたので、人間ははじめてで、まったく自信がありません。

もちろん下手でもよいのですが、あんまりにも下手な絵を描いて、何を描いたのかが伝わらずに、単に「下手だなぁ」って思われて終わるのも、なんかやだな…何を描いたか伝わる程度には上手くなりたいな…みたいな気持ちもあります。

そこで、好きなキャラクターを50回同じ構図で描いて練習してみることにしました。「結城友奈は勇者である」から、犬吠埼樹ちゃんです。

40165251

本当は一番好きなキャラクタは風先輩で、一緒に香川県うどん屋巡りしたいなーと毎晩夢に見るくらいですが、今回は髪が描きやすそうという基準で妹の樹ちゃんにしました。樹ちゃんも好き。

この樹ちゃんの、真正面顔を50回ほど描くことにしました。なんでそんな修行僧みたいな事を…と思うかもしれませんが、それなりに合理的な理由があります:

  • まず、好きなキャラクタだったら50回描いてもきっと苦痛じゃないだろうからです。それに、50回同じキャラを描いて、最初と最後を比較して上手くなってるのを見たら、嬉しくなりそうじゃないですか?
  • 既存のキャラクターなら「答え」がります。もちろん「答え」そっくりに描く必要なんてないのですが、それでも、比較する「お手本」があるのは心強いです。
  • 真正面顔にはとても良い性質があります。それは「左右対称だ」ということです。描く側にはこの性質を満たすように描くのはかなりつらいのですが、描かれた絵の出来の良さを自分の主観を排して調べるには便利な性質です。

実は100回描こうとしたのですが、50回ぐらいで頭打ちになってきて(それ以上描いても苦痛では無さそうだったけれど)もっと色々な絵が描きたくなったのでそこで止めました。


というわけでとりあえず手元にあったスケッチブックにガンガン描いていきます。

scan-001scan-002

ジャバ。

手元に三菱の色鉛筆(12色セット)があったので、それを使って色も塗ってみました。最初肌はどうすればいいのか良くわからなかったので、とりあえず髪と目だけ。樹ちゃんは肌白いし肌塗らなくてもそれっぽくなるのでは?…とも少し思ってたのですが、今見るとやっぱり流石に白すぎますね。

前髪の線や、目の輪郭、肩の線、どれも難しいです。前髪は気がつくと単なるギザギザになって髪っぽくなくなっちゃいます。とはいえ、難しいのもまた楽しい。

いろいろな道具で遊ぶ

昔描いていたときよりは多少財布に余裕があるので、色々な道具を買って遊んで試してみました。「初心者なんだから道具にこだわって形から入らないで描けよ」とか言われそうですが、いろいろな道具を使ってみることも一種の遊びです。正直、全部買っても大した金額にはなりません。

世界堂みたいな画材屋さんに行くと本当に沢山道具が置いてあって見ているだけでも楽しいですよ。

シャープペンシル

普段いつもシャーペンで(式とか)書いているので、最初はシャープペンシルを試していたのですが、細かい線を引こうとするとやっぱり0.5mmは太いかな…と感じたので、昔は誰が使うんだと思っていた0.3mmシャープペンシルに手を出しました。

最初は「オレンズ」っていう、折れにくいように常に芯の回りにアルミの筒が付いているやつを買ってみたのですが、スケッチブックが凹んでしまって使いづらかったです。スケッチブックの紙がへこむと、凹みに挟まった黒鉛が消しゴムで消せなくなりますし、後で色鉛筆で彩色する時に色が乗らなくなったりしてしまいます(それをあえて使う表現ももちろんアリです)。

PILOT S3っていう普通のに変えた所、オレンズに比べて確かに折れやすいのですが、折れるのってだいたい筆圧が強すぎるせいなので、弱く描けば大丈夫です。弱く書けば、紙も凹まなくなります。

ロットリングは大学受験の時にお世話になっていたシャーペンで、製図用です。しっかりと線を引くには良いのですが、全部金属製なだけあって正直重く、イラストだとちょっと難しいかなと感じました。なお、0.35mm用って書いてあるんですが、0.3mmの芯で使えます。

鉛筆

途中から並行でやってたデッサンには鉛筆が必要なので、鉛筆も買いました。いままで鉛筆というと、「100均で売ってるゴミ」か「それ以外」ぐらいの区別しかついてなかったのですが(例えば三菱9800TOMBOW8900の区別は付いていなかった)、文房具売場をよく見ると一本50円ぐらいの鉛筆から150円を越えるものまで色々あることに気がつきます。画材屋算に行くと世界中の鉛筆が置いてあります…。

ためしに何本か安いのから高いのまで買ってみると、描いていて全く違います!文字を書いてるだけだと気が付かないんですが、絵を描くと全然違います。そこに気づけただけでも、なんだか嬉しかったです。

全体的な傾向としては、安い鉛筆は面を塗る時に粉っぽいのが出てきて均一に塗れなくなったり、線を引いていても引っかかりがあったりするのですが、高い鉛筆にはそれがなくて、均一に塗れます。高い鉛筆同士、安い鉛筆同士でも違いがあることは何となく分かるのですが、今のところ「書き味」とか曖昧な言葉ででしか表現できないです。

今のところ、わたしが一番お気に入りなのはステッドラーのLumograph。その辺の文房具屋さんでも置いてある中では、一番高いやつです…。他のと比べると、ちょっと硬めで、そこが好き。

練り消し

練り消し、匂いが付いてるようなやつじゃなくて、デッサン用のやつ一回使ってみたかったんですよ!!

形を変えながら細かい所が消せたり、塗った後に押し付けてグラデーション作ったり、普通の消しゴムより出来ることの幅が広くて、新鮮な感覚が嬉しかったです。

最初に描いた絵(再掲)

scan-001scan-002

25回目ぐらいの絵

img049 img050

あんまり安定しないんですけど、それなりに見れる物が上がってきたような気がする(気がする)

50回目ぐらいの絵

scan-50 scan-57

主線を赤くするとなんだかPOPで可愛いなぁと思ったので主線が赤になりました。なかなか可愛く描けてる気がします。左右の目はほぼ1ミリの誤差もなく同じ大きさに出来るようになりました。ふわっとした感じで色をぬると、どうしてもスキャナで撮った時に白っぽくなってしまう…。

機械学習を使って採点してもらう

さらに、この最後の絵が「客観的」に女の子のイラストに見えるかどうか、機械学習に採点してもらいました。

Illustration2vecは、danbooruのデータを使って、画像からタグの予想をしてくれるので、これを使います。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-11-13-10-42-53

1girl, solo, smile, sketch…バッチリですね!no humansが気になるけど

illutrasion2vecは結構容赦なく採点してくるので、1girlタグが出た時は嬉しかったです。

今日は満開祭り2です

そして今日はこの樹ちゃんの出て来るアニメ「結城友奈は勇者である」のライブイベント満開祭り2ですね。わたしも行きます。人生ではじめてのアニメライブイベントです!リアル竹内くん、居るかなぁ。

まさか続編とはなー。もう「世界の秘密」を視聴者にも、そしてキャラクターたちにも全部明かしちゃったのに、どうやって続編作るのかが楽しみです。

その他、描く時に参考にしたサイト

消灯で完全にブラック企業と化した電通UC

Posted on

電通過労自死事件から、私たちが学ぶべきものは何か~政府の「働き方改革」を問う~(嶋崎量) – 個人 – Yahoo!ニュース




 

美少女モバゲーのPVがすごいのでお前ら見なさい

Posted on

お久しぶりです。久々にグッとくるアニメがあって紹介したくなったので書きます。

前期のアニメ「ハッカドール THE あにめ〜しょん」で一人で相当頑張ってた「げそいくお」さんが殆どの部分1を担当した、「美少女モバゲー」というスマホ用美少女ゲームポータルのPVです。そう、PVです。

(サービス終了につき削除されたので、https://www.youtube.com/watch?v=NSaYGRd-i5kから転載)

この手のPVは殆ど見ないのですが、ハッカドール7話の元ネタという事で見てみました。

20160224_9

ちなみに、ハッカドール7話「KUROBAKO」ではこのアニメのテレビ版の制作を”捗らせ”にハッカドール1号が向かうのですが、苦労してなんとか締め切りに合わせた結果、こうなってしまいます…(◞‸◟ )

20160224_10

「困った時は全部おまかせ!モバミちゃん!」

美少女ゲームポータルの「時間軸方向に普遍的な」PV

さて、このPVは美少女ゲームポータルの宣伝用のビデオです。普通に考えると、

  • かわいい美少女が
  • たくさんいるよ!

という所を宣伝する事になります。すると、普通はこうなります:

20160224_01

遊べるゲームの可愛い美少女キャラクターやタイトル名を具体的にたくさん載せてこれでもか!これでもか!お前はこのキャラどうや?あのキャラはどうや?という感じです。ソシャゲーのCMとかエロゲーのOPとかもそういった所があります。エロゲーOPでは名前が、ソシャゲのCMだとさらにCVがついてることが多いですね。

【神撃のバハムート】CM 「その手の中」篇

20160224_2
20160224_3

これはこれで具体的にユーザーに「商品のスペック」を提示できるので、悪くはありません。一方で、こういった表現は露骨な「美少女カタログ」のように見えてきて正直すこし「引く」のが否定できないと2、「オタクの嫁は三ヶ月で変わる」という言葉で代表されるような現代の個々のコンテンツの猛烈な消費速度の下ではすぐ陳腐化してしまう事が避けられません。

では「モバミちゃんPV」はどうか。美少女モバゲーの「たくさんの美少女ゲームで遊べるよ!」というセールスポイントを、主人公であるモバミちゃんが、スマホから飛び出した美少女たちと一緒に元気に遊びまくることで余すこと無く表現しきっているのです!

20160224_4
20160224_5
20160224_6
20160224_7

色々な職業や属性の、「記号化」された美少女たちが入れ替わり立ち代わり出てくることで、華やかさや賑やかさと同時に、時間軸方向の普遍性を獲得しています。言い方を変えると、このPVは2014年に公開されたもので、今公開されているゲームはたぶん当時とは異なるでしょう。もしその当時のラインナップのキャラクタをそのままPVで使っていたら、そのPVは今見ると「古いな」と思えるものになっているかもしれません。でも、この「モバミちゃんPV」では「アイドル」「獣耳さん」「メイド」「ギタリスト」といったもう少し抽象的なレベルに持ち上げることで、今見ても遜色ないPVになっています。

「一緒に遊ぶ」爽やか部活体験!

20160224_11
20160224_12

さらに、このPVの主人公である「モバミちゃん」がその美少女達と同じ格好をして一緒に遊ぶことで、「美少女カタログ」「美少女動物園」のような「消費するオタク⇔消費される美少女」という非対称性な視線を意識させることなく、一緒に仲良く遊ぶさわやかで楽しい映像に仕上がっています。入れ替わり立ち代わり美少女が現れては消える演出も、楽しそうに一緒に遊ぶモバミちゃんと「高鳴るハートがある限り何度も挑戦でしょ!」「今日は わたしも知らないわたし Say Hello!」「なりたい自分になろう」という前向きな歌詞があれば、「カタログ」というよりは「モバミちゃんの部活体験」とでも表現できそうな趣の物語を感じさせてワクワクしてしまいます。

モバミちゃんの笑顔が若干顔に張り付いてる感じに見えるのはすこし気になりますが、とてもいい映像です。いやはや、良いもの見せてもらいました。世の中はどこに凄いアニメが転がってるのか分からないですね。

「動きもすごい躍動感があって爽やか」とか「中盤はコマ送りで見る価値あり」とか他にも言いたいことがあるけど、文章にしても伝わらないから、お前ら今すぐ見なさい

ハッカドール1号もご出演しています

20160224_8

あのアニメ見た後だと「何させられるんだ…何を…」みたいな感想にしかならないね…

  1. 監督・アニメーションキャラクターデザイン・コンテ・演出・作画監督・原画・デザインワーク・デジタルペイント []
  2. わたしが異性愛者の男性ではないからそう感じる可能性は否定できないですが‥ []

「※希望はありません」の誕生を観察してみよう

Posted on
がっこうぐらし!のOPのフレーズ「ここには夢がちゃんとある」の時に起こる弾幕、「※希望はありません」がどういうふうに生まれてきたのか、観察してみました。

ニコニコ動画の弾幕は歌詞の内容を元にした「空耳」であることが多く、歌詞には直接出てこないフレーズであるこの弾幕は面白い存在だと思います。

これは今日やったハッカソンでやったことのまとめで、使ったソースコードとデータ一式はこちらにあります

方法

  • 配信開始から一週間分の過去ログを集める
  • 「夢」「希望」(わかば*ガールば「鳴」)の少なくとも一方が含まれるコメントを抽出
  • 正規化されたレーベンシュタイン距離を使って適当にクラスタリング
    • 似ているコメント同士でも1000コメント以上離れたコメントは別グループに分け、グループ同士をエッジで接続しました。
    • 書かれているコメントを真似して書くコメントと、独立に思いついて偶然にたコメントを区別するためです。
  • 時系列にまとめて図に書く
    • デカいグループ(結果として「※希望はありません」になる)を真ん中に書く
    • そのグループに近い順に周辺に配置する

結果

1話

観察

  • かなり初期(No3326)に「※希望はありません」が出現
    • ほぼ同時期に「夢はあるけど希望はない」「※希望はない」も出現
  • 「※希望はありません」は最初からヒットした訳ではなく、一回目はそのままフォロワが無く消滅。
    • 2万コメント後に復活して細々続き、4日目にしてなぜか大ヒット。
    • 一旦少なくなるタイミングもある
      • コメントは1000件のキューであることを考えると、待ち行列的な混雑の揺らぎみたいなものだと考えていいのだろうか?
  • 初期は「夢がちゃんとある(〜とは言ってない)」のような従来的な歌詞に基づいたコメントが多い
    • その後も継続的に出現するが、「※希望はありません」と比べると相対的に弱くなる
  • 「※ただし希望は無い」などの派生系コメントは本家のヒット後に出現
    • しかしフォロワーはなく消え、暫くたつとまた似たような「※(希望と救いは)ないです」みたいなのが発生してくる。たぶん独立に何度も発生してる。
    • おなじ「まんがタイムきらら」作品が元ネタの「夢もキボーもありゃしない」系コメントも独立に散発的に出現している

なぜ4日目に大ヒットしたのか?

よく見ると4日目、07/12はGoogleTrendでの最大ピークと一致している。

SNSを見て検索して大量に流入したバズ志向の新規視聴者がこの弾幕でお祭り的に盛り上がろうとしたのが 大ヒットの原因であるという憶測はできるが、これだけでは証拠が弱すぎる。単なる偶然かもしれない。

2話

  • 一話の流行を受けて「※希望はありません」は最初から大人気

おまけ

「わかば*ガール」1話

わかば*ガールの今季一番アレな弾幕「TNP鳴らして」も調べました。

  • こちらです

  • 初期は「GONG鳴らして」、ないし素直に「ピンポン鳴らして」
  • 猛烈に書かれている瞬間があるが、よく見ると連投回避のためにちょっと文字変えてるのが固まってる
    • 実はクソ下品な弾幕書いてるのは極一部の人間だけだった説
    • 弾幕へ面白おかしく反応するコメントが「※」に比べて目立つのも気になる

ニコニコ動画のタグネットワークをリアルタイムに可視化する

Posted on

巨大なグラフ1を階層的に纏め上げてくれるLouvain Method(Blondel, et al. [2008])というアルゴリズムの論文と、これをリアルタイム可視化に用いている(Praneenararat et al.[2011])論文を発見して、面白そうだなぁと思ったので(小学生並みの感想)、ニコニコデータセットに適応してやってみました。

明日、日曜日(4/26)に「ニコニコ超会議」内の「ニコつく」でサークルの一つとして展示します。I19です。

デモサイトはこちら

(2018/04/24: メモリの圧がキツいので終了しました)

ネットワーク・クラスタリング

ニコニコ動画へのタグって、ふつう「アニメ, 遊戯王, この虫野郎」みたいな感じで相互に関連するタグが付けられますよね。

このタグ同士の関連をネットワークとして可視化したら、ニコニコ動画の中でどんな概念同士がリンクしてるのかなー、とか、詳しくないジャンル2でどんなワードが流行っているのかなー、とかが一目で把握できそうです。

というわけで、今回はタグを頂点、辺を 「同じ動画に付けられている回数(共起回数)」としたグラフ(ネットワーク図)を作り、可視化してみました。

20140424_02

それだけ?って感じかもしれませんが、実はグラフをそのまま表示しただけでは頂点も辺も数が多すぎて人間には解釈不能な「Hair-ball graph(髪の毛もじゃもじゃグラフ)」になってしまいます。たとえば、ノードが1万4000のグラフを可視化した結果がこんな感じだそうです

20150425_01

うーむ、とてもじゃないけど、人間には読めない図です。今回は15万タグを対象としたので、この10倍ほどの頂点とエッジがあります。

この問題に対処するために、可視化する前にタグを階層的にまとめるクラスタリングを行います。たとえば、「ぽいぽい教」や「金剛」タグをまとめて「艦隊これくしょん」クラスタを作り、さらに「艦隊これくしょん」と「ご注文はうさぎですか?」や「きんいろモザイク」とまとめて「アニメ」クラスタを作るわけです。その状態で可視化を行えば、先ほどの図のように「ゲーム」「音楽」「アニメ」みたいなざっくりとした関係の図が出来上がります。

もちろん、その纏めた「アニメ」クラスターの中身もダブルクリックすれば見ることができます。ニコニコデータセットはそこまで最近のデータはないので、例として2011年データから「IS(インフィニットストラトス)」のクラスタを持ってきました。

20150424_03

わたし自身はこのアニメを見てないのであまり詳しくないのですが、一時期エースコンバットとのMADが流行っていたのと、(キャラ名)党っていうタグでお気に入りのキャラクタを示す文化があるのがわかります。

今回の売りは、この集計を「その場」で行っていることです。従来でもさいころ [2013], tasukuchan [2009]など可視化は行われているのですが、基本的には「事前に」集計しておいて、それを可視化しています。しかし今回のシステムでは、表示するたびに毎回、15万ノード+200万エッジの大規模なグラフを、クラスタリングしつつその場で可視化してしまいます。かかる時間はさくらのVPS2Gのような非力なマシン1台でも2秒以下です。

今回これをやった本心としては「データの分析をして知識をマイニングしたい!」とかよりは「この超高速なクラスタリングアルゴリズムを使ってみたかった」という感じなので、実際にこのソフトウェアから有益な知識が得られるかどうかは微妙です。客観的評価とかもとくにしてないし、まぁそのへんはご愛嬌。

タグネットワークで時間旅行

今回のシステムのもう一つの売りは、高速性を活かしてインタラクティブに集計期間を変更して好きな時期のデータをその場で可視化できることです。

上のバーを左右に動かすことで、時間を行き来しながらネットワークの様子を可視化できます3

初音ミクの居ない頃のニコニコ動画

たとえば、初音ミクはニコニコ動画文化を象徴するものだと言っていいと思うのですが、できた当時の2007年すぐには初音ミクはありません。なので、2007年の最初期のデータで可視化すると初音ミクがなかったころのニコニコ動画が見えます。

20150424_04

最近はもう見なくなったものもちらほらありますが4、今でも人気な作品も多いですね。「涼宮ハルヒの憂鬱」はアニメなのにアニメクラスタに入っていませんが、このような人気な作品はそれ自体が大きなコミュニティを形成しているので、独立して一個のクラスタになることがよくあります。また「ヘタリア」みたいな腐女子向け作品がちょくちょく独立してますが、腐女子向け作品は「アニメ」「ゲーム」タグと同時につかない動画が多いのが原因みたいです。

2011年3月

時間を行き来しながら見ると、時事ニュースによるその時の流行タグも自然と浮上してきます。たとえば、2011年4月の画面を見てみましょう。

20150424_05

右下のほうに「東北地方太平洋沖地震」とありますね。一ヶ月弱前にあった地震を扱った動画がたくさん投稿されていたことがわかります。ちなみに中はほとんど政治的な動画で、みんな大好き「あいさつの魔法。」は「エンターテインメント」の中に入ってます。ただいマンボウ。

20150424_06

 

昔の流行の思い出に浸るもよし、新規ジャンル開拓に使うもよし、まぁなんか暇つぶしにご活用ください。

「超大規模なグラフをその場で可視化して仮説発見に役立てる」というのはPraneenararat et al.[2011]. が元ネタです。彼らはバイオインフォマティクスで日々生まれる膨大なデータを素早く可視化するために使っていますが、これをニコニコ動画に適応したらどうなるかなーと考えた所、こんな感じになりました。

ソースコード

ソースコードはこちらに置いてあります。

結果を再現するためのプログラムが全部置いてあるので、あなたも自分のサーバで動かすことができます。データはNIIのサイトからダウンロードしてきてください。

また、クラスタリングアルゴリズムであるLouvain Methodの実装はゼロから書き起こした物を使っています。元の実装よりも少し制限がキツい(エッジの重みがintのみ)いのですが、その分だけ頑張って高速化して、だいたい3倍ぐらい速いです。

現状の問題点

  • 多くのタグを一度にまとめてしまって、部分的に一部のクラスタ以下がHair-ballになって破綻することが稀によくあります。
  • 実装がマルチスレッドになってないので本当に何人も同時にアクセスするとサーバが沈黙します。優しくしてあげてください。

  • !データがいまいち古い!
    ドワンゴ氏〜〜〜〜
    最新のデータくだされ〜〜〜〜〜〜〜〜〜

他のデータでもやってみたい?

もしも、「ニコニコデータセットじゃなくてウチのデータセットでもやってみたいんだけど…」という方が居た場合はご相談ください。本当に有益な情報をマイニングしようとするとここから更に何段階か努力しないといけないとおもいますが…。

  1. 頂点と辺からなる方 []
  2. わたしは鉄道とか全くわからない []
  3. 集計に使う長さは約二週間分 []
  4. ひぐらしのなく頃にとかね… []

JSによるcrypt関数の実装

Posted on

だいぶ前にJSで実装したcrypt関数を紹介します。crypt関数はパスワードを暗号化するための関数です。

char *crypt(const char *key, const char *salt);

Perlではビルトインで使えます。実際に使ってみるとこんな感じです。keyは8文字(8 bytes)まで、saltには2文字(2 bytes)までしか使えません。

% perl -e "print(crypt('Hello', 'wl'))"
 wlCoUbJ6h11vY

saltとkey、どちらが変わっても出力結果が変わります。パスワード認証をするときはユーザーのパスワードをそのまま保存するのではなく、このような関数でハッシュにしてから保存しなさいというのはよく言われていますが、さらにその際にユーザーの入力をそのままハッシュに掛けるとハッシュ表が盗まれた時にレインボー攻撃と呼ばれる攻撃ができてしまうので、keyにユーザーごとに異なるsalt(塩)も加えてからハッシュにかける…というのが典型的な使い方です(受け売りです)。

2chのトリップはこのcrypt関数を使っており、この(ledyba.org)サイトに設置してあったCGI「2chトリップ生成システム」をCGIからJSへ移植するために必要になったので書いたというわけです。

Apacheから流行りのnginxに移行したのですが、nginxではCGIを動かすのがかなり面倒臭くなっており、JSで書きなおすのが一番楽そうだったのでそうしました。Public DomainのcryptのCでの実装があったので、それをほぼそのまま移植しています。

ただし、暗号は理論だけでなく実装も注意深く行う必要があり、たとえばキーによって処理時間が変わるような実装だとその差を使ったタイミング攻撃ができたりします。 この実装は私が適当に作ったものなので、2chのトリップのようなどうでもいいアプリならともかく、実際に暗号に用いる場合はもっと有名で枯れた実装を使うのをお勧めします。