【アニメ感想】リズと青い鳥

圧倒的なリアリティで描かれる苦しくて美しい少女の成長物語。

 
 
2015年と2016年にアニメ化もされた『響け!ユーフォニアム』の劇場版です。
時系列的にはTV版2期の後、3年生になった希美・みぞれの夏くらいまでが描かれています。
 
僕の中でユーフォは『王道のスポ根』作品という印象があるのですが、本作では大きな出来事は起こりません。
あくまで女子高生の日常を切り取っている、のですが『女子高生の日常』を見てここまでつらい気持ちになったことは初めてです。
 
主にみぞれの言動で(笑)。
 
TV版のみぞれは「口数の少ない不思議系キャラ」として描かれているので基本的にかわいく見れるんですよね。
でも本作ではキャラデザやBGM, SEが相まって、みぞれの不安定性がとてもリアリティを持っていて、ちょっと怖いと感じるシーンさえあります。
 
この印象はTV版のキャラデザでは出せなかったと思います。
 
 
そんな日常の中でのいつものやり取り、でもいつもとほんの少しだけ違う、その違いが希美とみぞれの関係性に徐々に影を落としていきます。
 
 
と、概要だけ書くとものすごく地味で暗い話のようにも見えるかもしれませんが、個人的には本作のエピソードはユーフォ屈指の成長物語だと思っています。
 
全て見終わった後にここまで清々しい気持ちになれる作品はそうはありません。
 
 
上映館がそこまで多くないのが残念ですが、是非見て欲しい映画です。
 
 
P.S.
京都アニメーション、というか山田監督は高校生の繊細な心情を描かせたら右に出る者はいないんじゃないかと思います。
世間的にはけいおん!の監督で通っていますが、個人的にはたまこラブストーリー、や聲の形、それに今作のような作品での演出が好きですね。
あと、京アニは『作画』が評価されていることが多いですが、聲の形あたりから『音』にも相当力を入れているように感じます。

【りゅうおうのおしごと!7巻感想】非現実的な舞台で描かれるリアルな心情

今話題の将棋界を舞台にしたライトノベルの第7巻です。



あらすじ

B級2組の8回戦を大悪手によって敗北した清滝鋼介は挽回の糸口を得ようと棋士室へ赴く。しかし『名人挑戦者』のプライドを纏った清滝の言動は現役の奨励会員にとって到底受け入れられるものではなかった。


「先生は俺達に命の対価として何を払えますか?」


自分が奨励会員だった時代には考えられない言葉に強い憤りを覚えると同時に、自分が『老害』となってしまったことを自覚し清滝は落胆する。
しかしその言葉の『熱』は消えかけていた清滝の心を再び燃え上がらせていく。


C級への降格がかかった最終試合の相手は順位戦無敗の神鍋歩夢。
清滝の棋士人生を賭した大一番が今始まる・・・!


弟子の八一や銀子から絶大な信頼を寄せられているものの、第1巻の幕開けを放尿シーンで飾るなどどちらかと言うとギャグ要員だった清滝鋼介九段がメインです。


『過去の栄光にすがり若者に疎んじられる』というのは棋士だけでなくどの業界でもある話だと思います。この状況を打開する方法は至ってシンプルです。『過去の栄光を捨て現実を受け入れた上で若者の教えを請う』に尽きます。


しかし、実際に実行に移すのは非常に困難です。
過去の栄光を捨てるのはある意味自分の人生を否定することですし、例え本人がそうできたとしても周りの若者が受け入れるとは限りません。

この状況を清滝がどう打開するかは本作を読んで頂きたいのですが、非常に将棋界らしい(と言っても将棋には疎いですが)エピソードだと感じました。


僕も含めた大部分の人にとって将棋界は非現実的な場所だと思います。
最近将棋界がよく報道されていますが、そこで活躍する棋士たちに敬意や畏怖の念を抱いても、共感や感情移入をできる人はそう多くないと思います。*1


そんな非現実的な場所や人を舞台にしているにも関わらず、この作品のキャラの心情には圧倒的なリアリティがあります。
読み終わると熱いと感じずにはいられません。


このシリーズの面白さを改めて認識した巻でした。


今月から放送しているアニメも毎週楽しみです。
www.ryuoh-anime.com



追伸
銀子かわいいんだけど6巻の引きを考えると精神状態が心配になったのは僕だけじゃないはず笑

*1:少なくとも将棋に疎い僕はそうです。将棋が好きな人はまた違うのかもしれませんが。。。

2017年で最も「たーのしー!」かった日は?

今年も残すところわずかですね。

今年も多くのアニメが放送されましたが、2017年最も話題を集めたのは「けものフレンズ」ではないでしょうか?
kemono-friends.jp

本作で特徴的なセリフの1つに「たーのしー!」があります。
そこでけものフレンズに関するツイートから2017年で最も「たーのしー!」かった日を求めてみたいと思います*1






1.Twitter APIキー・トークンの取得

ツイートを取得するにはTwitter APIキーとトークンを取得する必要があります。APIキー・トークン・ツイート取得までは下記の記事を参考にさせて頂きました。
www.randpy.tokyo

#使用するライブラリをダウンロード
library(rtweet)
library(dplyr)
library(ggplot2)
library(tidyverse)
library(scales)

#APPNAME, CONSUMERKEY, CONSUMERSECRETは前もって取得しておきます
APPNAME <- "xxxxxxxxxx"
CONSUMERKEY <- "xxxxxxxxxx"
CONSUMERSECRET <- "xxxxxxxxxx"

#トークンを取得
twitter_token <- create_token(
        app <- APPNAME,
        consumer_key <- CONSUMERKEY,
        consumer_secret <- CONSUMERSECRET)


これでツイート取得する準備は整いました。当初はsearch_tweets関数でハッシュタグ「#けものフレンズ」を含むツイートを全て取得しようと思っていたのですが、helpのdescriptionによると

ONLY RETURNS DATA FROM THE PAST 6-9 DAYS.

とのことで最高で6-9日までしか遡れないようです。*2

そこで、公式アカウント(@kemo_anime)のツイートを取得し、そのリツイートやいいねの数を見ることにします。


2.ツイート取得・前処理

#get_timeline関数を使用
#user:ユーザー名
#n:取得したいツイート数
#home:ユーザーのツイートを取得する場合はF
#token:token_createで取得したオブジェクト

tl <- get_timeline(user = "kemo_anime", n = 3200, home = F, token = twitter_token)
dim(tl)
[1] 2575   42

2575ツイートを取得できました*3。42変数の中にツイート日、文章、いいねの数などが含まれています。
アカウント名からてっきりアニメ専用アカウントかと思っていましたが、ツイート日が格納された変数(created_at)を見ると最初のツイートは2015年2月(アプリ時代?)でした。


以下解析のために前処理としてデータを整形します。

#リツイートを除外
tl <- tl[tl$is_retweet == F, ]
#APIで取得するとグリニッジ標準時なので日本時間に変更
tl$created_at <- as.POSIXlt(tl$created_at, tz = "Japan")
#アニメの影響を見たいので期間を2017年1月1日以降に
tl <- tl[tl$created_at > "2017-01-01 02:00:00", ]
#日ごとにまとめる
tl$day <- as.POSIXct(substring(tl$created_at, 1, 10))
tw_per_day <- table(tl$day) %>% as.data.frame()




3.ツイート解析

下図は公式アカウントの1日あたりツイート数のヒストグラムです。
この1年で公式アカウントからは570ツイートあり、1日あたりのツイート数は1〜9件ということが分かります*4

#合計ツイート数を算出
sum(tw_per_day$Freq)
[1] 570

#1日あたりツイート数の概要
summary(tw_per_day$Freq)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  1.000   1.000   2.000   2.317   3.000   9.000 

#ヒストグラムのプロット
ggplot(tw_per_day, aes(x = Freq)) + 
        ggtitle("けものフレンズ公式アカウント ツイート数/日") + 
        theme(plot.title = element_text(family = "HiraginoSans-W3", 
                                        hjust = 0.5), 
              axis.title = element_text(family = "HiraginoSans-W3", 
                                        size = 10)) +
        geom_histogram(bins = 9, binwidth = 1) + 
        scale_x_continuous(breaks = 1:9, labels = 1:9) + 
        xlab("ツイート数/日") + ylab("頻度")

f:id:aiuchi0703:20171231204616p:plain

いいね数とリツイート数をプロットしてみます。

day_df <- data.frame(day = rev(unique(tl$day)), 
                     favorite_count = tapply(tl$favorite_count, tl$day, sum), 
                     retweet_count = tapply(tl$retweet_count, tl$day, sum))

#ggplot用に整形
day_plot <- tidyr::gather(day_df, key = "group", value = "value", 
                           c("favorite_count", "retweet_count"))

#プロット
ggplot(data = day_plot, aes(x = day, y = value, colour = group)) + 
        ggtitle("けものフレンズ公式アカウント いいね数・リツイート数") + 
        theme(plot.title = element_text(family = "HiraginoSans-W3", 
                                        hjust = 0.5), 
              axis.title = element_blank(),
              axis.text.x = element_text(family = "HiraginoSans-W3", 
                                         size = 8), 
              legend.text = element_text(family = "HiraginoSans-W3")) +
        geom_line() + 
        scale_x_datetime(breaks = as.POSIXct(paste("2017-", 1:12, "-01", sep = "")), 
                         labels = paste(1:12, "月", sep = "")) +
        scale_y_continuous(labels = comma) + 
        scale_colour_discrete(name = element_blank(), labels = c("いいね", "リツイート"))

#いいねとリツイートの相関係数を算出
cor(day_df$favorite_count, day_df$retweet_count) %>% round(digits = 2)
[1] 0.93


f:id:aiuchi0703:20171231205214p:plain

いいね数とリツート数は強い相関があること(相関係数:0.93)、どちらも日によって数に大きな差があることが分かります。
多少荒っぽいかもしれませんが、以降は単純のためにいいね・リツイート数の合計したものを基準にします。

#いいねとリツイートを合算
day_df$fav_rt <- day_df$favorite_count + day_df$retweet_count

#プロット
ggplot(data = day_df, aes(x = day, y = fav_rt, group = 1)) + 
        ggtitle("けものフレンズ公式アカウント いいね+リツイート数") + 
        theme(plot.title = element_text(family = "HiraginoSans-W3", 
                                        hjust = 0.5), 
              axis.title = element_blank(),
              axis.text.x = element_text(family = "HiraginoSans-W3", 
                                         size = 8), 
              legend.text = element_text(family = "HiraginoSans-W3")) +
        geom_line() + 
        scale_x_datetime(breaks = as.POSIXct(paste("2017-", 1:12, "-01", sep = "")), 
                         labels = paste(1:12, "月", sep = "")) +
        scale_y_continuous(labels = comma)

#いいね+リツート数の多い日トップ5を算出
day_df$Freq <- tw_per_day$Freq
head(day_df[order(day_df$fav_rt, decreasing = T), -1], 5)

           favorite_count retweet_count fav_rt Freq
2017-03-29          65440         61601 127041    4
2017-12-25          76554         49895 126449    3
2017-07-21          45296         53329  98625    3
2017-04-24          33692         48750  82442    2
2017-04-27          36986         42759  79745    4

僅差ではありますが最も「いいね+リツイート数」が多いのは3月29日でした。ただし、3月29日のツイート数は4、2位の12月25日のツイート数は3ですので、1ツイートあたりの平均では12月25日がトップになります。
トップ5のうち放送期間中(1〜3月)のツイートが1件しかないのも興味深いです。

f:id:aiuchi0703:20171231205548p:plain


それでは、3月29日や12月25日にどのようなツイートがされたのか見ていきます。

tl$fav_ret <- tl$favorite_count + tl$retweet_count

#いいね+リツイート数の多いツイートトップ5を表示
tweets <- data.frame(tl[, c("favorite_count", "retweet_count", "fav_ret", "text")], 
row.names = as.character(tl$created_at))

head(tweets[order(tweets$fav_ret, decreasing = T), -4], 5)
                    favorite_count retweet_count fav_ret
2017-12-25 00:00:21          68438         45488  113926
2017-07-21 15:01:22          42581         51385   93966
2017-04-07 17:00:24          30064         44505   74569
2017-04-24 10:05:39          26132         38002   64134
2017-03-29 02:18:57          35350         25957   61307

ツイート単位で最もいいね+リツイート数が大きいのは12月25日の「ようこそジャパリパーク」のクリスマスver.を告知するツイートです。
3月29日のツイートは最終回直後のものですね。




4.まとめ

  1. 2017年で最も「たーのしー!」かった日は3月29日。
  2. 最もいいね+リツイートされたのはOPのクリスマスver.告知のツイート。
  3. 放送終了後も根強い人気がある。




放送終了後も人気があるのは分かっていましたが、こうして可視化してみるとよりはっきりしますね。
放送から1年近く経った現在でも万単位でいいねやリツイートされるのは凄まじいです。。。
こんなデータを見ると思わず言いたくなります。


すっごーい! と(笑)



2018年も面白いアニメに出会えますように。

*1:RによるTwitterテキストマイニング、ggplot2で時系列データを描く練習を兼ねて

*2:このゆらぎは何だろう。あと公式の7日間制限との差は。。。

*3:2017年12月31日17:00時点

*4:実データでここまできれいな階段状のヒストグラムは初めて見ました

JupyterでRを使おうとしたら詰まった話

すでに分かりやすい説明がいくつもありますが、自分の環境では詰まったのでまとめてみる。


環境
・OS:MacOS Sierra(10.12.6)
・R:3.4.2
・Jupyter:4.3.0
 ※pyenvでanaconda3-5.0.1をインストールして使用


参考
qiita.com


ターミナルでRを立ち上げ以下のコマンドを入力すれば良い、はずなのですが自分の場合は1行につき1回詰まりました。。。

> install.packages(c('repr', 'IRdisplay', 'evaluate', 'crayon', 'pbdZMQ', 'devtools', 'uuid', 'digest'))
> devtools::install_github('IRkernel/IRkernel')
> IRkernel::installspec()


まず1行目を入力すると

 警告メッセージ: 
 doTryCatch(return(expr), name, parentenv, handler): 
   共有ライブラリ '/Library/Frameworks/R.framework/Resources/modules//R_X11.so' を読み込めません: 
  dlopen(/Library/Frameworks/R.framework/Resources/modules//R_X11.so, 6): Library not loaded: /opt/X11/lib/libSM.6.dylib
  Referenced from: /Library/Frameworks/R.framework/Resources/modules//R_X11.so
  Reason: image not found 


どうやらX11がないと怒られているようです。
調べてみると以前のmacOSではX11が標準で入っていたようですが、現在は別途インストールする必要があるようです。
macos - Can't load X11 in R after OS X Yosemite upgrade - Stack Overflow
Mac 用の X11 について - Apple サポート


アップル公式サイトからダウンロードサイトへ移動してインストールします。


f:id:aiuchi0703:20171225001626p:plain


インストールすると「/opt/X11/lib/libSM.6.dylib」が生成され無事にパッケージのインストールはできました。
次に2行目のコマンドですが

> devtools::install_github('IRkernel/IRkernel')
Skipping install of 'IRkernel' from a github remote, the SHA1 (dfa7f4ef) has not changed since last install.
  Use `force = TRUE` to force installation


`force = TRUE`と言われたのでとりあえずその通りに実行してみます。

> devtools::install_github('IRkernel/IRkernel', force = T)
Downloading GitHub repo IRkernel/IRkernel@master
(中略)
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (IRkernel)
 警告メッセージ: 
GitHub repo contains submodules, may not function as expected!


警告メッセージは出たものの、一応インストールはできたようなので先に進んでみます。

> IRkernel::installspec()
 IRkernel::installspec() でエラー: 
  jupyter-client has to be installed but “jupyter kernelspec --version” exited with code 127.

エラー文を検索してみてもよく分からない。。。


で、2時間くらい悩んだのですが、これは完全に私の不注意でした。
最初に書いたようにpyenvのanacondaでjupyterをインストールしていたのですが、実行環境がanacondaじゃなかった(笑)

anaconda環境でRを立ち上げて上記コマンドを実行し、ターミナルに戻って

$ jupyter notebook


これで新規ファイル作成時にRを選択できるようになりました。


f:id:aiuchi0703:20171225005925p:plain:w150

Airmailで自動的にBCC送信

AirmailOS XiOSメーラーです*1

f:id:aiuchi0703:20171207223954p:plain

App Storeより

 

今までは何となくoutlookを使っていたのですが、シンプルで見やすいUI(Mac標準のメーラーよりMacっぽい感じがします)とカスタマイズ性に惹かれて乗り換えてみました。

outlookでは「送信の際に自動で自分(任意のアドレス)をBCCに追加する」設定が簡単にできたのですが、同様の設定で少し詰まったので書き留めておこうと思います。

 

ネットでは該当しそうなページを見つけられなかったので、Airmailの公式HPにあるチャットで質問してみました(私の英語力でも通じた)。

f:id:aiuchi0703:20171207220833p:plain

Preferences > Accounts > [Account] まではいいとして「Composer」なんてあったかなあと思い確認してみてもそれっぽいタブはありません。

 

f:id:aiuchi0703:20171207221527p:plain

 

結論から言うと日本語表示での「エディタ」が「Composer」でした。

 

んー、これはさすがに「コンポーザー」か「構成」と訳すべきではないでしょうかね。どうりで自力では見つけられなかったはずだ。。。

 

「エディタ」タブの「送信済みメール」で「自動BCC」を選択し、その横に自分のアドレスを記載すると、自動で自分にBCCできるようになりました。

 

 

めでたし、めでたし。

 

 

*1:無料のbeta版と有料版がありますが機能の差はほとんどないようです。私もbeta版を利用していますが機能面で不満を感じたことはありません

【ラノベ感想】ぼくたちのリメイク 3巻

眩しすぎる才能は無自覚に他人の才能を殺すという話
 
 
ぼくたちのリメイク3巻読了。
以下ネタバレしかないので未読の人はご注意ください。
 
ぼくたちのリメイク3 共通ルート終了のお知らせ (MF文庫J)

ぼくたちのリメイク3 共通ルート終了のお知らせ (MF文庫J)

 

 

 
 
 
 
 
 
ストーリー
 2巻の最後で貫之から「家の問題」を打ち明けられた恭也。貫之の退学を回避するため、恭也はチーム・きたやまのメンバーで同人ゲーム制作を開始する。
シナリオ:貫之、原画:シノアキ、主題歌・音楽:ナナコ、ディレクター:恭也という各々の得意分野を担当し、さらには1・2巻でコネのできた先輩・友人をフル活用することでゲームは無事完成。評判もよく貫之の学生生活を工面するだけの利益を出すこともできたが、貫之は以下の言葉を残して大学を去ってしまう。
 
「超えられない壁ってやつだよ。何をどうしても、こいつの思考には追いつけない。(中略)救われたと思うのと同時に、俺はどうしようもない敗北感と絶望を味わっていたんだ。」(238-239頁)
 
憧れのクリエイターを殺してしまったことに動転する恭也。気づくと2017年、そこには恭也と結婚したシノアキと娘がいた。
 
あらすじはこんな感じだけど、この巻のテーマと言うと1行目になるかなと。
 
おそらくトゥルーエンドを迎えるためにはシナリオ部分をギリギリまで貫之にまかせるという選択が必要だったのだと思う。1巻・2巻でもトラブルに対して「ゲーム会社勤務」という恭也の経験はプラスに働いていたが、3巻ではまさにゲーム製作ということで、恭也の手腕が惜しみなく発揮される。
 
 
問題はその手腕が発揮され過ぎてしまったことにあるだろう。
 
 
ただし、この3巻を普通に読むと(周りのキャラクターが恭也の能力を受け入れているためか)1巻・2巻のような恭也の「万能感・有能感」は感じにくくなっている。
しかし、注意深く読むと恭也は相当にレベルの高いやり取りでディレクションをとっている。 時間がない中で人に物を頼むとき「現状を正しく認識してもらう」ことができれば十分及第点だと思うが、恭也はクリエイターのモチベーションを考慮して、嘘じゃないギリギリのラインの言葉をチョイスしている。
 
ゲーム会社の社員としてプロのクリエイターと接するならこれがベストなやり取りなのだろう。しかし、今回相手にしているのはプロではなく、情熱にあふれてはいるが、自分の才能の扱い方に不慣れな若者たちだ。恭也の能力はどうしても大きく写ってしまう。
 
その影響を最も受けてしまうのがシナリオ担当でかつ問題の渦中にいた貫之なのは自然なことだろう。
現実でも、優秀で現状を正しく認識できる人が自分と相手の実力差に絶望して道半ばで諦めてしまうのはよくある話だ。
 
 
これ本当にもったいないんだよなー。
本人にとっては傷にしかならないし、素晴らしい才能が世に出ないことになるので得する人は誰もいない。
しかも、他人を絶望させるほどの才能を持っている人に限って無自覚なことも多い(もちろん自覚しているからと言ってどうこうできる問題ではないが)。。。
 
 
サブタイと主人公・作者のバックグラウンドから、こういうメタ的な展開になるのはある程度予測はできたけど、タイムリープ前より未来にいくとは思わなかった。
とにかく4巻に期待!
 
 
P.S.シノアキと結婚できて娘までいるなら、僕ならそのルートで確定させるだろうな笑

【アニメ感想】メアリと魔女の花

米林宏昌監督のスタジオジブリ退職後の第一作目。
と通ぶってはみましたが、『思い出のマーニー』や『借りぐらしのアリエッティ』は見ていないので、初の米林監督作品です。
www.maryflower.jp



結論
子供と一緒に見られる良質な映画!


あらすじ

無邪気で不器用な少女メアリは、森で7年に1度しか咲かない不思議な花“夜間飛行”を見つける。この花は、魔女の国から盗み出された禁断の花だった。一夜限りの不思議な力を得たメアリは、魔法大学“エンドア”への入学を許されるが、あるうそをついたことから大事件に発展してしまい……。
公式サイトより


以下ネタバレ感想























良かった点は、何と言っても背景美術!
画を見ているだけで楽しい気持ちになります。

気になった点はとしては、(公式サイトなどで直接は触れられていませんが)「変わる・変化」がこの作品のテーマになっていることです。
これはメアリの「(自分の赤髪を)変えられるものなら変えたい」、ピーターの「変わるなら大人に」というセリフや、本作の魔法界では『変身魔法』が最上位の魔法と位置付けられていることからも読み取れます。

魔法モノの作品で『変身』が難易度の高い魔法と位置付けられているのは、この作品くらいしか思い浮かびません。

前期アニメの『リトルウィッチアカデミア』で変身は劣等生とされるアッコが唯一使える魔法でしたし、本作と同じくイギリスが舞台の『ハリー・ポッター』シリーズでもそのような描写はありません。
tv.littlewitchacademia.jp
www.amazon.co.jp



とすれば、メアリを始めとする登場人物の心情の「変化」も丁寧に描かれている、と言えば確かに雑ではないのですが、個人的にはもう少し突っ込んで欲しかったなという印象があります。
この点については、メアリのキャラクター設定に原因があるのではないかと思います。


メアリは好奇心旺盛で誰とでもハキハキと話しますし、失敗は多いですが悪意はなく、きちんと反省もできる少女として導入部分から描かれています。
そのため、今回の「大事件」によって「変化・成長」したという印象が弱くなっている気がするんですよね。。。


もし最初に「引っ込み思案で人と話すのも精一杯」という感じで描かれた上で、同じラストを迎えていたら、「変化」がよりありありと感じ取れたかもしれません。

ただ、明らかに子供(親子)をターゲットとした作品で、そういう主人公が受けるかはまた別問題ですし、「冒険活劇」として見れば気になりません。

結論としては見るかどうか迷ってるなら見ることをお勧めできる作品です!



余談
小さい映画館ということもあって、僕以外全員親子連れでした。
子供と一緒にアニメ映画を見に行きたくなりました。
子供向け作品見て婚期に焦りを感じる、そんな3連休最終日でした。