(dev)juginon-blog

勉強したこと、趣味のこと。

【くどすぎる解説】深さ優先探索・幅優先探索【python】

こんにちは!お久しぶりです、毎月月末になると「あっ、ブログそろそろ更新しないと…」と思いギリギリで更新しているじゅぎのんです。

最近(4月から)AtCoderを始め、現在もう少しで茶色に到達できそうな僕です。

就活を始めるまでにはある程度の色に、アルゴリズムについては一通り大丈夫と言えるようになりたい!

AtCoder強者の友人達にいろいろと教えてもらいながら頑張っています(友人たち本当にありがとう)。

友人達の解説はすごくわかりやすいのに、ネットで調べるとあまりにも意味不明な解説とコードが多い(自分の読解力が足りなさすぎる)ので、

今回から【くどすぎる解説】シリーズということで完全に自分のための備忘録として復習がてらいろんなアルゴリズムのコードをクッソくどい解説文を入れながら書いていきたいと思います。

使用言語はpythonです。おそらく強者から見ると「なんでそこそんなコードで実装してんの」とか思われるかもしれないですが自分の備忘録なので指摘するなら優しくしてください(心が弱いので)。

第一回の解説は深さ優先探索幅優先探索です。

深さ優先探索

DFSですね。くどすぎると言っても深さ優先探索がどんなものかはさすがに知っているので割愛します。深さを優先して探索するやつです。

具体的な問題だと、AtCoder Typical Contest 001 A - 深さ優先探索

atcoder.jp

ですね。これ解説付きなのでこれ見ろよって話なんですが(ていうかこっちの方が多分わかりやすい)。

入力

4 5
s####
....#
#####
#...g

"4"が縦の長さ、"5"が横の長さ。"s"はスタートで、"g"はゴール。"#"は壁で進むことができず、"."は道で進むことができます。道を通ってsからgまで行くことができれば"Yes"を返し、gまでたどり着けない場合は"No"を返します。

回答と解説

import sys
sys.setrecursionlimit(10 ** 9)
HW = input().split()
H,W = int(HW[0]), int(HW[1])
S = [input() for _ in range(H)]
 
reached = [[False] * W for i in range(H)]
 
def search(x,y):
    #迷路の外か壁の場合は何もしない
    if(x < 0 or H <= x or y < 0 or W <= y or S[x][y] == "#"):
        return
    #以前に到達していたら何もしない
    if(reached[x][y]):
        return
    
    #到達した
    reached[x][y] = True
    
    #4方向を試す
    search(x+1,y)
    search(x-1,y)
    search(x,y+1)
    search(x,y-1)

for i in range(H):
    for j in range(W):
        if(S[i][j] == "s"):
            StartX = i
            StartY = j
        if(S[i][j] == "g"):
            GoalX = i
            GoalY = j
 
search(StartX,StartY)
if(reached[GoalX][GoalY] == True):
    print("Yes")
else:
    print("No")

まず

import sys
sys.setrecursionlimit(10 ** 9)

これですね。深さ優先探索をするときは再帰を使うんですが、なんかpythonだと再帰の回数が多くなるとエラーがでてしまうようで、それを回避するためにこのコードを入れています。sys.setrecursionlimit()再帰回数の上限を変更することができます。まあとりあえず10の9乗にしとけば大丈夫だろ…ってやったら通りました。ここの数字は特に何も考えてません。

HW = input().split()
H,W = int(HW[0]), int(HW[1])
S = [input() for _ in range(H)]

reached = [[False] * W for i in range(H)]

入力です。"H"を縦、"W"を横の長さ。Sは二次元配列でH行読み込んでます。 reachedは探索を終えたか終えていないかをboolでいれておく二次元配列。

一旦関数の def search(x,y): を飛ばして、実行順で進んでいきます。

for i in range(H):
    for j in range(W):
        if(S[i][j] == "s"):
            StartX = i
            StartY = j
        if(S[i][j] == "g"):
            GoalX = i
            GoalY = j

ここは単純にスタートの位置とゴールの位置を見つけるためのコードです。"i"が行、"j"が列で、二次元配列Sに"s"があればStartX,Yにi,jを入れる。同様に"g"があればGoalX.Yにi,jを入れる。

search(StartX,StartY) ここでsearch関数が呼び出され、先ほど飛ばした部分に入ります。

def search(x,y):
    #迷路の外か壁の場合は何もしない
    if(x < 0 or H <= x or y < 0 or W <= y or S[x][y] == "#"):
        return

xにはStartXが、yにはStartYが入ってきます。コメントに書いてありますがここのif文は迷路の外か壁かを判定しています。

  • 「迷路の外」… x < 0 or H <= x or y < 0 or W <= y
  • 「壁」… S[x][y] == "#"

ですね。ここで自分でもは?ってなったのが、xは縦軸、yは横軸となっている部分です。自分で実装してて意味わからなくなるのほんとバカなんですが、x軸は横でy軸が縦だから H <= y or W <= x じゃね?って思ってしまったんですが、さきほどのStartX,Yを見ると

"i"が行、"j"が列で、二次元配列Sに"s"があればStartX,Yにi,jを入れる。

としているのでxが縦でyが横で合っていますね。縦横とxyを合わせたい場合はStartXにj,StartYにiを入れるのがいいのかも(それだとこっちのコードがは?ってなってしまいそうですが)。

続きます。

 #以前に到達していたら何もしない
    if(reached[x][y]):
        return

 #到達した
    reached[x][y] = True

コメントの通りですね。reachedは探索を終えたか終えていないかをboolでいれておく二次元配列なので、一番最初は全部Falseです。探索を行った部分は後ろのコードでTrueになるので、以前に到達していたらreturnされて終わりです。

#4方向を試す
    search(x+1,y)
    search(x-1,y)
    search(x,y+1)
    search(x,y-1)

4方向を試します。ここでやっていることは、例えば"s"が2行目3列目にあったとすると、

  • 3行目3列目を探す
  • 1行目3列目を探す
  • 2行目4列目を探す
  • 2行目2列目を探す

ですね。ここの順番は特に関係ありません(今回の問題は)。再帰なのでここで4つのルートに分岐して、また分岐した先で4つのルートに分岐して…と続きます。

ただ、再帰元の場所は少なくともすでに探索済みなので、reachedにTrueが入っておりなにも起こらないので、実質3つの分岐ということになります。

これで関数部分終了。最後に、

if(reached[GoalX][GoalY] == True):
    print("Yes")
else:
    print("No")

"g"が書いてあった部分がTrueになっていれば、探索し終わった=そこまで進むことができるということになり、"Yes"を返す。もしFalseだったら"No"を返す。

簡単ですね。さすがに書いてて「くどすぎるだろ…」と思いました。まだまだくどくいきます。

幅優先探索

BFSですね。くどすぎると言っても幅優先探索がどんなものかはさすがに知っているので割愛します。同じ階層を優先して探索するやつです。

具体的な問題だと、AtCoder Beginner Contest 168 D - ..(Double Dots)が最近で幅優先を使いました。

atcoder.jp

入力

4 4
1 2
2 3
3 4
4 2

一行目の左側の"4"が部屋の数、右側の"4"が通路の数。二行目以降は通路が繋ぐ部屋を指します。

つまり、この入力だと

f:id:ogijunchang:20200530204135p:plain

こうなりますね。そして、部屋1以外のすべての部屋から、最短で部屋1に行く時、通るべき部屋の番号を各部屋に道しるべとして置きます。

つまり、上の入力例でいうと、

  • 部屋2から1に行く時 : 直接1に行けるから、"1"を置く。
  • 部屋3から1に行く時 : 3 -> 2 -> 1と行くのが最短なので、"2"を置く。
  • 部屋4から1に行く時 : 4 -> 2 -> 1と行くのが最短なので、"2"を置く。

よって、出力は

Yes
1
2
2

となります(1にたどり着ける場合はYesを出力)。

回答と解説

N, M = map(int, input().split())
link = [[] for i in range(N)]
for i in range(M):
    A, B = map(int, input().split())
    link[A-1].append(B-1)
    link[B-1].append(A-1)
visited = [False for i in range(N)]
result = [0] * N
Q = [0]
visited[0] = True
#Qに要素がなくなるまで
while Q:
    #一番上の要素をpop
    v = Q.pop(0)
    for i in link[v]:
        if visited[i] == False:
            visited[i] = True
            result[i] = v
            Q.append(i)
print("Yes")
for i in range(1, N):
    print(result[i] + 1)
N, M = map(int, input().split())

最初の行の入力。Nは部屋の数、Mは道の数。

link = [[] for i in range(N)]

この配列はすぐ下で解説します。

for i in range(M):
    A, B = map(int, input().split())
    link[A-1].append(B-1)
    link[B-1].append(A-1)

ここでは入力と操作を一度に行っています。

M行を1行ずつfor文で読み込んでいきながら、入力の左の数字と右の数字をそれぞれA,Bにいれます。

先ほど作成したlink配列の、A-1番に要素B-1を、B-1番に要素A-1をいれています。

つまりどういうことかというと、道によって繋がっている部屋を添字番号によって管理しているということです(説明が下手)。

上の入力例では、link配列はこのようになります。

link = [[1],[0],[1,3],[1,2]]

  • 部屋1(0番)は部屋2(1番)とのみ繋がっているので、link[0]には1が入る
  • 部屋2(1番)は部屋1(0番)とのみ繋がっているので、link[1]には0が入る
  • 部屋3(2番)は部屋2(1番)と部屋4(3番)に繋がっているので、link[2]には1と3が入る
  • 部屋4(3番)は部屋2(1番)と部屋3(2番)に繋がっているので、link[3]には1と2が入る

といった感じです。番号が-1になっているのは単純に配列の添字が0から始まるからです。

visited = [False for i in range(N)]
result = [0] * N

visitedは深さ優先探索の時と同じように、すでに探索し終わった場所をboolで保存しておく配列です。

resultは今回の出力(各部屋に置く道しるべの数)を保存しておく配列です。問題が変わればこの部分も変わります。

Q = [0]
visited[0] = True

ここから幅優先探索のスタートです。まず、QはFIFOの動作をするいわゆる「キュー」で、探索する添字番号を指します。最初は0番(部屋1)からなので、Qに0をいれます。

visitedは先ほど言ったようにすでに探索した場所の情報を保存するもの。現在0番(部屋1)を探索したので、visited[0]にTrueをいれます。

#Qに要素がなくなるまで
while Q:
    #一番上の要素をpop
    v = Q.pop(0)

if文に配列を入れると、配列に要素がある場合はtrueを返すことを利用してQに要素がなくなるまでのループとして while Q を使用します。

pop(x)を使うと、xにある要素をpopすることができます。キューなので、先頭の要素を出し、vに代入します。ここでは、Q=0しか入っていないので0がvに代入されます。

 for i in link[v]:
        if visited[i] == False:
            visited[i] = True
            result[i] = v
            Q.append(i)

v=0の状態で、for文に入ります。link[0]には、部屋1(番号0)に繋がっている部屋の番号([1])が入っているはずです。よって、iには1が入ります。

次に、探索を行ったか判定します。今回はvisited[0]以外はFalseになっているはずなので、if文の中に入ります。

visited[i] = True で探索済みとマーク。

result[i] = v とすることで、「部屋番号iから直接繋がっている部屋番号はv」という情報をいれることができます。つまり、「部屋2(1番)から直接繋がっているのは部屋1(0番)」ということになります。

Q.append(i) で、現在空になっているQ(キュー)にi(1)をappendします。こうすることで、今度は部屋2(1番)から直接繋がっている部屋を探索することができます。

ここまでくるとわかると思いますが、「直接繋がっている部屋」ごとに探索が行われているということは、各階層ごとに探索が行われるということです。

各階層ごとに探索ができるということは、探索する部屋の深さを知ることができるということです。こんな感じに書けば階層がわかります。

result = [-1] * N
result[0] = 0
#Qに要素がなくなるまで
while Q:
    #一番上の要素をpop
    v = Q.pop(0)
    for i in link[v]:
        if result[i] == -1:
            result[i] = result[v] + 1
            Q.append(i)

サイズNの配列すべてに-1をいれたものをresultとし、先ほどのvisitedと同じ役目を果たすようにします。

もし探索されていない(-1)だったら、そこにresult[v]+1を入れることで、先ほど探索された階層+1が現在の階層のノードに入ることになり、深さを調べることができます。

print("Yes")
for i in range(1, N):
    print(result[i] + 1)

そして、最後に結果を出力します。問題文には「どの2部屋間も、通路をいくつか通って行き来できます」とあるので、道しるべが置けない部屋というのは存在しないので必ずYesを出力します。

最後に道しるべをいれたresult配列をprintすることで回答できます。

おわりに

いかがだったでしょうか。(というかここまで読んでくれる人はいるんでしょうか) 文字で起こすとやっぱり自分で理解できていない部分をもう一回確認できるのでとてもいいですね。これからもちょくちょくくどすぎる解説シリーズを更新してみようかなと思います。明日のABC頑張るぞ!

React Native v0.62.2でGoogle AdMobを設定する

Qiitaにも同様の内容の記事を載せています。LGTMヨロシク

qiita.com

AdMob難しすぎだろ問題

3月末くらいに、じゃあ次のタスクはということで渡されたのが「React Nativeで作成しているアプリにバナー広告を出したい」というものでした。とっても実務的ですね。

これを参考に進めてくれと言われ渡されたページを読んでも 何も理解できない 。大抵こういう全く触ったこともないものに触れる時は何も理解できなくて最初の数時間は本当につらいんですよね。。

React Nativeあるあるだと思うんですが、とりあえず新しい課題ができたら「React Native ○○」でググって特になにも出てこずに結局わからない。

今回は幸いいくつかの手段で実装している記事が存在したので、そちらを参考にしながら進めていました。

しかし、如何せんメジャーバージョンが未だリリースされていないReact Native。

バージョン0.5xと0.6xで全然挙動が違ったり、エラーコードがえぐい量きたりもう大変です。そろそろメジャーアップデートきてくれない…?

最初にv0.59.1で実装を進めており、iOSの方は無事表示することができました。

やったー!と思ったのもつかの間、長らくシミュレーターを起動していなかったAndroidを起動させようとするも、つかない。

エラーメッセージをとりあえず全部超スゴイ先輩に見せると、

Android studioのgradleのバージョンが上がってしまい、依存関係がおかしくなって起動しなくなっている。 ここから一個ずつ依存関係をみていくのは時間がかかるから、新しいReact Nativeのプロジェクトを作り直して設定とかコンポーネントを全部写した方がいい

と言われてしまいました。

そんなこんなで広告を追加しようとしたらReact Nativeのバージョンをあげることになっていたんですが、0.59.1から最新の0.62.2にあげるのにどれだけ苦労したか。永遠に現れる真っ赤な画面をため息つきながら直していく作業は全然楽しくなかったです。

なんとか中身を写し終えて、iPhoneAndroid両方で起動が確認できてから、いざAdMobに取り掛かる。

が、しかし…!

最初と同じ方法でやっても実装できず。ここで完全にやる気がなくなって他のことをやり始めました。(それが先週)

そして週を跨いだ今日、やる気が戻ってきてもう一回みてみるか…とちょいちょいっとやってみたら無事実装できました。

その方法がこれだ!!

React NativeにGoogle AdMobを導入する際、情報が古かったり同様の方法でやってもうまくいかないことが多かったので、詳細に導入方法をまとめてみます。

Google AdMobを利用する際には現時点で2つ方法があります。

  • react-native-admobを利用する方法
  • react-native-firebaseを利用する方法

今回はreact-native-admobを利用する方法について説明します。

導入した環境

React Native 0.62.2(2020年4月時点最新)

iOS 13.3 CocoaPods

Android 6.0

実装した広告: バナー広告

iOS

react-native-admobのREADMEと同様に進んでいきます。

  • npm or yarnでreact-native-admobをインストール

npm i --save react-native-admob@next もしくは yarn add react-native-admob@nextでインストールします。

今回はyarnを使いました(npmの方だとうまくいかない時があったので)

Google AdMob公式を参考に進んでいきます。

事前にAdMobアカウントを作成・アプリ登録を済ませたあと、対象のアプリケーションにMobile Ads SDKをインポートします。

pod 'Google-Mobile-Ads-SDK

iosファイルの中にあるPodfileに書き込み、

pod install --repo-update

  • Info.plistの更新

iosファイルの中にあるInfo.plistに GADApplicationIdentifier キーとAdMobアプリIDの文字列値を追加します。

<key>GADApplicationIdentifier</key>
<string>ca-app-pub- 
3940256099942544~1458002511</string>
  • AppDelegate.mの変更
//新しく追加するコード
@import GoogleMobileAds;

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
       didFinishLaunchingWithOptions: (NSDictionary *)launchOptions {
       //新しく追加するコード
       [[GADMobileAds sharedInstance] startWithCompletionHandler:nil];
       return YES;
   }

@end

自分の場合、すでに何行かコードが書いてありましたが、 @implementation AppDelegate の直上に @import GoogleMobileAds; を入れ、

UIViewController *rootViewController = [UIViewController new];
//ここに新しく追加
[[GADMobileAds sharedInstance] startWithCompletionHandler:nil];
rootViewController.view = rootView;

このように追加しました。

import { AdMobBanner } from 'react-native-admob'; とし、下のように配置しました。

render() {
   return (
   <AdMobBanner
      adSize="fullBanner"
      adUnitID="AdMobでアプリを登録した時に表示されるAppID"
      testDevices={[AdMobBanner.simulatorId]}
      onAdFailedToLoad={(error) => console.error(error)}
    />
...

iOS-Admob.png

このようにテスト広告が表示されれば成功です。

Android

  • npm or yarnでreact-native-admobをインストール

iOSと同様にインストールします。

android/build.gradleの中に

allprojects {
    repositories {
        google()
    }
}

があることを確認して、今度はandroid/app/build.gradleの中に以下のコードを追加します。

dependencies {
    //追加
    implementation 'com.google.android.gms:play-services-ads:19.1.0'
}

次に、android/src/main/AndroidManifest.xmlに以下のようにコードを追加します。

<manifest>
<application>
    <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
    <!-- 追加 -->
    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
</application>
</manifest>

GoogleMobileAds公式ページにはまだ下に手順が書かれていますが、追加するのはここまでです。

  • react-native-admob/android/build.gradleのSDKバージョンを固定する

上記の方法でアプリをビルドしてみたものの失敗したので、解決策を探していたところこの方法で解決できました。

node_modules/react-native-admob/android/build.gradleを見ると、以下のように記述されていると思います。

...
dependencies {
    implementation 'com.facebook.react:react-native:+'
    implementation 'com.google.android.gms:play-services-ads:+'
}

こちらの下の段、admobのSDKが更新された影響で古いAPIと互換性が無いことでビルドが失敗していたようです。(参考)

現在の最新のadmobのSDKバージョンは19.1.0のようなので、以下のように書き直します。

implementation 'com.google.android.gms:play-services-ads:19.1.0'

iOSと同様の方法で配置します。

Android-admob.png

このように表示されれば成功です!

おわりに

ぱっと見そこまで複雑ではありませんが、自分はなぜか2週間くらい広告を表示させるのに手間取ってしまいました…

npmでreact-native-admobをインストールしたときに同時に古いバージョンのReactがインストールされてしまったり、podfileに記述することでライブラリをインストールしようとして失敗したり。

React Nativeで実装している記事が少なく、かつバージョンが変わるのがとても早いため、今回は備忘録としてまとめました。

現時点で最新のReact Nativeで導入する今回の記事が少しでもお役に立てれば幸いです。

電通大を卒業して電通大院に進学します

お久しぶりです、一応一月に一記事は更新しておきたいと思っているじゅぎのんです。

世間はコロナウイルスで色々と騒がしいですが、それと共に卒業シーズンでもあります。

前回の記事の後、無事卒論の修正が終わり、発表を無事終わらせることができ、卒業が確定しました。

ゴミみたいな同期の話は一旦おいておき、ひとまず電通大をストレートで卒業できることが決まり、とても嬉しい気持ちです。せっかくなので、2016年の入学から卒業までの4年間を学年ごとに大まかに振り返ってみようかなと思います。

2016年 学域1年生

学期毎GPA 前期: 2.5294 後期: 2.0870

某都立高校を卒業して入学。漠然とプログラミングの勉強がしたいと思いながらも特に授業以外のことをやることはなかった。

というかむしろ授業でそういうことするから自分では勉強しなくていいでしょ、という感じ。

入学前から陸上競技部に顔を出していた。入学してから新しいことしたいと思ってストリートダンス同好会に入ってみた。

1年生はとにかく授業が忙しすぎて他のことをやる余裕がなかった(今思うと一番余裕があったのでは?と思うが、当時はそう思っていた)。

入学祝いは一瞬でなくなり、アルバイトを始めるも最初の職場は1ヶ月で挫折。そこから秋まで派遣で食いつないでいた。

金がないと余裕がなくなり、余裕がないと成績が下がる。理系にあるまじき数学のできなさで後期は良と可を量産していた。

2017年 学域2年生 I類

学期毎GPA 前期: 2.0000 後期: 2.6957

1年生の成績でなんとかI類に進類することが決まり、ひとまずIII類に行かなくて大丈夫になったこと、自分の勉強したいことが学べそうで一安心した。

特に1年生のころと変わらないスケジュールを過ごしていた。授業をテキトーにうけて、バイトをするか部活に行ってた。

前期で遂に学期GPAが2.0000になってしまい、このままいくとさすがに成績がやばいことになると思い後期は割と授業を真面目に聞いて頑張った。

前期の授業であった「プログラミング通論」「複素関数論」「確率論」ここらへんは本当にちゃんとやっておけばよかったと後悔している。

プログラミングのことについては相変わらず特になにもしていない状態。部活が楽しい、ストダンも楽しい、バイトが大変(1年生の頃の借金返済もしていたため)。

プログラミングを使うような課題は友達にかなり質問しながら進めていた。あの時の友達、ありがとう。

2018年 学域3年生 I類メディア情報学

学期毎GPA 前期: 2.6250 後期: 2.6842

3年生になって専門的な科目が多くなってきて、勉強に対する意欲も上がり始める。

アルバイトも二年目に突入し、特に大変な思いをすることがなくなった(身体的には大変だった)。

3年生までの成績で大学院の推薦が決まると聞いて、3年生頑張ればワンチャンあるのでは?と思い3年生は勉強比較的頑張ったと思う。

ストダンにはあまり行かなくなり、陸上部に集中するようになる。おかげで陸上部では関東インカレに出場して賞をとれた。

後期の「ソフトウェア工学」でアルバイトを辞めてインターンを始めることを決意、その数週間でインターンの面接に行きインターン先を決定。

プログラミングを真剣にやり出したのは実質ここから。

2019年 学域4年生 I類メディア情報学

学期毎GPA 前期: 3.0000 後期: 0.0000

4年生のGPAはほとんど関係ないので数字をみてもわからないと思うけど。

研究やプログラミングに関してはブログで書いた通りなので4年生は特に書くことはないかな。プリパラとアイカツにどハマりした。プリッカソンで技術力がすごい人に出会った。

2020年 電通大院 情報学専攻

そして大学院に入学します。最近就活のことを考えて震えて眠ることの多い夜です。

就活のためにポートフォリオを作ったり、資格の勉強をしていたり、いろいろなことを同時並行でやろうとしていて切羽詰まっているような感覚がします。

たしかに就活を始めるまでの1年間は短いかもしれないけど、毎日ちまちまやっておけば1年あれば確実に力はつけられるんじゃないかと思っています。

自分の許容量以上のことは無理をしてやらないで、でもできることは全部やる、そんな1年間にしたいなと思います。

f:id:ogijunchang:20200321214846j:plain
できるできるできる!

研究室同期への怒り

f:id:ogijunchang:20200202011512j:plain
それがあなたの研究に対する姿勢なんですの?

こんばんは、卒論提出を1週間前、卒研発表を2週間前に控えているじゅぎのんです。

さて、そんな切羽詰まっている状況でこんな物騒なタイトルのブログを書いているのは何故なのかというと、どうしても同研究室に所属している同期への怒り(というかここまでくると呆れ)が抑えられない状況であり、そんな怒りの感情をどこかに残しておかないときっと卒論提出・卒研発表後の幸福感でその怒りが消えてしまうのではないかという危惧があったためです。

今感じてる感情を忘れないことでいずれ訪れる修論発表の自分への戒めとして、そして同期はこういうやつしかいないんだという自分への鼓舞をするためにこの記事を書いています。

怒りの原因

僕が同研究室に所属している同期(以下、同期)に対して怒りの感情を抱いている原因はなんなのかというと、研究に対するモチベーションの低さとか、大学生のくせに考えが甘すぎることとかですかね…正直いろいろと複合された怒りなので原因を一言にまとめるのはすごく難しいので、順を追って経緯を説明します。

研究室配属直後

研究室配属が決定して、最初に呼ばれたのは研究室の歓迎パーティみたいなイベントでした。そこで初めて同期と会って直接話をしました。

とは言っても配属された同期3名(自分含めず)のうち2名は同じ学年で講義を受けてきたので、いくつかの授業で一緒に受けることがあり顔は知ってるけど話したことはない、と言った感じでした。残りの1名は過年次生で、本来は3枠の研究室に過年次枠として追加で入ってきました。

話した感じは全員比較的フレンドリーで、特にコミュニケーションに困るということはありませんでした。連絡先を交換して、これからよろしくねーという感じだったと思います。そのときは「コミュニケーションが取れないような人じゃなくてよかったな」と思っていました。

4年生に上がる前の春休みにキックオフミーティングという名前の少し研究室のことやプログラミングの勉強をする配属生だけのミーティングがあったのですが、僕は部活の合宿があったため数回休んでいました。なので配属されてから少しの間は僕が少し遅れるような感じで始まった気がします。

中間発表まで

4年生が始まって、さあ研究が始まるぞ、とはなりません。正直4年生に上がってばかりの時期は研究する前提となる基礎知識がなさすぎるため、その勉強に時間を費やします。他にも興味のある論文を読んで、それを発表するというようなことはやっていました。

僕も中間発表までは他の同期と同じく、なかなか研究のテーマがまとまらず、ぼんやりと「認知系の研究がしたいな」くらいしか考えておらず、やはり部活のシーズン真っ最中ということで部活にかなり力を入れていたような気がします(とはいえ骨折で走れはしなかったんですが)。

中間発表が大会の翌日ということを6,7月ごろに知り、「これは他の同期と同じような進捗だとまずい、発表練習は少なくとも発表日の前の週にできるようにしなければ」という焦りを感じながら、7月ごろに本当に大まかなテーマを決め、その先行研究を読み始めました。

中間発表は実験の結果がなくても今後の研究予定を少し大げさにいうことでとりあえずしのぐことはできます。同期は全員実験することなく、研究予定を無難にまとめて発表となりました。

終わってからはとりあえず終わったね、これから頑張らないといけないね、という話をしたと思います。実際、研究予定的には切羽詰まっている状況で、本格的に研究に取り組まないといけないという不安と焦りを感じ始めていました。

お正月まで

中間発表が9月末にあり、そこからすぐに文化祭があり、文化祭後はもう実験しないと、という感じの予定になってきます。

そこからだんだんと同期に不穏な動きが見られるようになります。

まず、ゼミを欠席する回数が多過ぎる。僕の研究室は週2日(4年後期)で3種類のゼミで、他の研究室に比べると断然少ない方です。

ゼミの種類は

  • 人工知能や認知インタフェースなどの研究室が主に行なっている研究の基礎知識を学ぶテキストゼミ

  • 1週間でプログラミング関連でやったことや作ったものを公開(任意)するプログラミングゼミ

  • 進捗報告と論文発表を1週ごと、交互に行う論文・進捗ゼミ

の3種類です。

すべてのゼミにおいて同期は確実に5回以上は休んでいると思います。それも理由がバイトだったり体調不良(笑)だったり。

ここで言いたいのは、ゼミの日にバイト入れんなや

なんというか、僕と他の同期とでゼミの重要度が違うみたいなんですよね。僕は授業(研究室)が第一、それから部活、インターンという感じだと思っているのですが、多分同期は研究がかなり下位の優先度になっている気がします。

体調不良も何週間も続けてだったり、明らかに行きたくないから休んでるだろ、という言動も見られました。

例えば、ゼミの前日に某大型テーマパークに行っていて、明日私論文紹介しないといけないんだけど全然つくってない〜〜(笑)とかいうクソほどにもどうでもいいLINEを送りつけられた挙句、次の日に「熱出ちゃった笑 ごめんゼミ休む!」ですよ??普通にイライラしますよね??

そして、その欠席連絡を全体に向けてしない。僕はこれがどうしても許せません。

よく体育系が上下関係が厳しい云々で批判されることが多いですが、僕は体育会系の部活に所属していてよかったと思っています。それは一人の大人として、他人に対するルールやマナー、礼儀を身をもって学ぶことができるからです。

欠席連絡なんてSlackに「すみません、◯◯なので今日のゼミは休みます」と送るだけでいいんです。それでみんな納得するのに、なぜか同期は送りません。その代わりに閉ざされた同期内のLINEで「ごめんやっぱ今日休む!」と言ってくるんですよ?

なんでこっちが間接的に休みの連絡しなきゃいけねえんだよ。こっちはちゃんと来てんだからお前自分で言えよ。

これって体育会系の部活にいるいないとかそういう問題じゃないですよね? 同期がいないだけで論文ゼミは予定が狂うんだぞ? その埋め合わせはどうするんだよ?

加えてとてもモヤモヤするのは、論文ゼミで発表を欠席によってスキップしようとすることです。

論文ゼミは先ほども言ったように2週に一回のペースで論文紹介と進捗報告を交互に行います。そのため、例えば進捗の次の週(論文紹介)に休めば、次の週はもう一度進捗報告するだけでよい、というシステムになっていました。

僕はこれがどうしても許せなかった。きちんとゼミに参加する人は論文紹介のスライドを作って、制限時間に合わせて原稿を作る作業をしてるんですよ? 休む人が休む理由関係なしにスキップってずるくないですか?

先生もそこに関しては同じことを感じていたようで、スキップに関して異議を唱え、自分も便乗してスキップは不可能になりました(翌週は休んだ担当になる)。

ただ僕以外の先輩や同期は特になにも思っていない、別にどっちでもいいですという感じでした。僕がおかしいんでしょうか?

そしてゼミについては最後に、任意の発表を一回もしないことです。

プログラミングゼミはやることが決まっておらず、M1は論文ゼミの投票システムの作成を全員でしていたり、M2の先輩はPythonの高速化するコードの紹介とかをしていました。

僕はもともと少しバックエンドの勉強をしたいと思っていたので、Node.jsの勉強をした成果を発表したりだとか、新しく作ったツールを紹介したりだとか、毎週ではないですが発表はしていました。

なんですが、同期は現時点で1回も発表をしていません

5月ごろから一回もですよ?? なんというか意識が低いどころの問題じゃないというか、ちょっとくらいやらないとな、と思ったりしないんでしょうか? 他の発表ヘラヘラ笑いながら聞いてて何も思わないんでしょうか??

というような感じで、同期に対するほんの少しのイライラが募るようになってきます。

そして12月になり、もう実験をそろそろ始めないと終わらないような時期に差し掛かります。僕はなんとか研究予定を決定して、1月から実験開始します、というところまで進捗をしました。

この頃から同期はほとんど進捗報告に来ないようになってしまい、B4は自分だけでゼミということも少なくなかったと思います。

年明けから今日まで

年明け、僕はとてつもなく不安に襲われます。年末に言った予定が絶対に終わらない、下方修正するしかない。不安に苛まれながらも卒論の背景と関連研究だけ書いて、どうしよう…と考えていました。

孤独が辛すぎて、年明けにあけおめ、と同期にLINEしました。返ってきたのは3名中2名で、どちらも研究やばいよー、と言っていました。そのときにどれだけやばいのかはわかりませんでしたが、僕よりも圧倒的にやばかったということを後から知ることになります。

学校の授業が始まる時期と同時に、僕は先生に相談に行って研究の下方修正(というか若干目的の変更)をしました。そのシステムを1週間以内に実装して今からでも実験すればまだ間に合う、というかなりギリギリのラインでした。

そのとき、僕は先生に「全然関係ないんですが、他の同期はどんな進捗ですか?」と聞きました。

「ん? 知らない。」と言われました。

年明け最初の進捗報告、僕はなんとか実験システムを作成し、実験をしますという宣言と1ヶ月死ぬ気で頑張ります、というように発表しました。同期は2人来ませんでした。

次の進捗はまた同期が2人休み、その次の週にも2人休みました。この辺りで僕のフラストレーションが最高潮に達するLINEの投稿がされます。

f:id:ogijunchang:20200202005925j:plain

これ、甘え以外のなにものでもないと思うんですよね。

これって要するに「みんなの前で今まで研究しなかったことに対して恥をかきたくないけど、都合よく卒業はしたいから、先生と個別で相談するわ!」

ってことですよね? 僕はどうしてもこういう人が許せない。頑張ってる人が学校にたくさん、身近にいるのにその人に対してなんの敬意も感じられない。

これを見たときに、教授という仕事も大変だな、と思いました。僕なら即卒業は来年ね、と最後通告をすると思うんですが、そういうことをすると教授の監督責任がないとして先生の評判が落ちるそうです。

こいつと一緒に大学院で一緒に勉強したくない。一緒に卒業したくない。本気でそう思ってます。

ちなみにおとといの進捗報告も、この投稿をしたやつは来ませんでした。

他の同期は、まだ結果が出ていない・これから実験を行う・卒論は1mmも書いていないという状況です。この忙しい時期に実験に手伝わされるM1やM2の先輩、先生、とてもいたたまれないです。

卒論の提出はあと一週間を切り、卒研発表は二週間を切りました。僕は卒論の第一稿を提出して、修正したものを月曜日中に再提出します。

僕と、同期が、卒業審査合格として一緒の評価を受けることがどうしても嫌だ。修論もこんな思いはしたくないな・・・

総括

という僕の研究室に対する愚痴でした。イライラしてることは同期には隠しているけど、もしこの記事がバレたとしたら思いっきりブチギレてやりたいですね。

といっても僕がすごく研究できるというわけではありません。もっと勉強します。

2019年の反省、2020年の抱負

こんばんは、今年も残り少なくなりました、じゅぎのんです。

研究でまあまあ忙しい冬休みを過ごしていますが、今年も終わりということで今年の反省と来年の抱負を記しておきます。

2019年やったこと

今年のはじめに、2019年の抱負の記事を残していました。

ogijunchang.hatenablog.com

さて、ここで書いていた目標は無事達成できたのでしょうか。

陸上競技

陸上競技は今年も僕の生活のかなり高い割合を占めていました。今年は主将を務めたことで今までとは一味違う一年になりました。

目標では、「楽しい部活を目指す」、「競技にも手を抜かない」と言っていました。

楽しい部活を目指すという面では、間違いなく去年よりも今年の方が楽しい部活が作れたと思っています(主観ですが)。

しかし、残念ながら今年も退部者を出してしまいました。退部の理由に関しては退部者個人の問題でしたが、やっぱり退部者を出したくないと思っていたので自分の中ではとてもショックで、どうにかできないんだろうかと色々悩みました…

退部する人って相談してくれないんですよね。退部する人は大体負のスパイラルに巻き込まれて学校生活もまともに送れない人がいがちなので、退部後の生活が少しでもよくなるように祈るしかないですね。

新歓(風邪引いたけど)、入部式、夏合宿、各種大会、文化祭、納会まで突っ走りましたがどれも楽しかったです。途中結構切羽詰まってイライラすることもありましたが、無事に乗り越えられたのはみんながいたおかげだなと思っていますよ。本当です

競技にも手を抜かないという目標は残念ながら達成できたとは言えませんね…

理由はもちろん腰椎分離症です。

ogijunchang.hatenablog.com

春季に怪我をすると本当にすべてが終わりになることが身にしみてわかりました。

それでも秋シーズンでは少しだけPBを出すことができたり、狙っていた大会で去年と変わらない順位が取れたことは不幸中の幸い、怪我までの努力のおかげだったと思います。

プログラミング

インターン先で少しでも使える人材になりたい、というのが今年の目標でした。

使える人材になったのかと言われると自分ではどう言ったらいいのかわからないですが、間違いなく一年前よりかはプログラミングができるようになったと実感しています。

一年で2つの自社アプリ開発に携わったり、外からの仕事のお手伝いをしたり、イベントにも複数参加することができました。

会社の上司からはすごい成長したと褒められましたが、実際のところまだまだな感じはします(まあ週2勤務だから仕方ないというのもありますが)。

1年前に採用されたインターンに加え、実は先月新しいインターンにも採用されました。大企業のとあるプロジェクトの機能開発のお手伝いという感じです。

プログラミングに関しては初学者から経験者にレベルアップはできたと思っています。

また、もう一つの目標にしていたプログラミング関係のイベントに参加するというのも達成できました。

プリッカソンはプリティーシリーズ好きと関われるとてもいい場でした。次回は参加したいと思っています!卒論が終わった後なら!

趣味

オタクですね。実績はこんな感じです。

  • 参加ライブ

    • Pripara Friendship Tour 2019 プロミス!リズム!パラダイス! 6公演
    • プリパラ&キラッとプリ☆チャン AUTUMN LIVE TOUR 2019 〜キラッと!アイドルはじめる時間だよ!〜 2公演
    • プリパラ&キラッとプリ☆チャン Winter Live 2019 2公演 計10公演
  • 参加イベント

    • プリズム☆ジャンプ 25(同人誌即売会
    • アイカツスターズ!感謝祭「We are STARS」ライブ配信視聴
    • KING OF PRISM -Shiny Seven Stars- 第Ⅰ章~第Ⅳ章 映画館視聴
    • スター☆トゥインクルプリキュア 星のうたに想いをこめて 映画館視聴
    • 劇場版プリパラ み~んなありがとう♪5周年記念上映会(オールナイト上映) 映画館視聴
    • プリ☆チャンコラボカフェ・POFコラボカフェ・ノンシュガーカフェ・プリパラ5周年コラボカフェなど
  • 四ツ星学園S4の制服を買った(小声)

いっぱいお金使いましたねー、でも世のオタクからしたら大したことないんでしょうね。

去年のプリパラWinter2018でどハマりしたプリティーシリーズ、1年たっても沼に浸かり続けています。ここまでハマったコンテンツって今までないので、よほどいいコンテンツなんでしょうね!

f:id:ogijunchang:20191231220708j:plain
研究室のオタクグッズ

グッズもいろいろ増えました。

2020年やりたいこと

研究

間違いなく一番最初にくるイベントはこれですね。卒論。

2月7日に原稿の締め切り、2月14日に卒研発表です。2ヶ月後は間違いなく修羅場です。

3ヶ月後にこの記事を見てあのときはな〜〜って早くなりたいです。もうお正月も気が休まらない…

ただ、卒論を書き上げても僕は電通大院に進学するので、研究が終わることはありません。正直学部での研究テーマが微妙すぎてできるならやり直したいと思っています…

ということで、M1で新しい研究テーマをちゃんと決めたいなと思います。先輩には気を抜いてると一瞬で1年終わると言われたので、気を抜きたくないですね(フラグ)

陸上競技

来年も陸上競技は僕の中で一番大きい柱にしておきたいと思っています。

5月の記録会で十種競技関東インカレ3部標準突破、そして9月の27大学対校戦にて十種競技で優勝を目標に掲げています。

そんなにうまく話が進まないのはわかっていますが、できなくはない目標だと思うので期待を持ちながら練習しようという感じです。

やっぱり今やらなきゃいけないのは棒高跳で、やっとのことで定期的な練習環境が整ったので苦手意識を克服して記録大幅アップを狙います。

今までの院生らしく、院生は黙って記録と金を出す。そんな存在になりたい。そのためにも卒論をやっている途中も冬季練には手を抜かない。これ大事。

プログラミング

フロントエンドに関してはかなり慣れてきたので、また次のレベルに行きたい(高度な仕事を任されたい)というのと、バックエンドも徐々に勉強していきたいという二つのモチベーションがあります。

そしてM1という学年は就活をしなければならない学年でもあるので、まずプログラミングに関する大きな目標として

基本情報技術者試験に合格

を必ず達成したいということと、納得できる会社に就職を決める・そのための勉強を頑張ることを目標にしたいと思っています。

就職に関しては今かなり迷っているところです。できることなら大企業にいきたいけど、それが本当にいい選択なのかわかりません…教えてエロい人

趣味

今年はプリティーシリーズ全般を追いかけ、アイカツシリーズにも手を出したという感じでした。

来年もプリティーシリーズを追いかけ続けることにかわりはありませんが、 新しいコンテンツを追いかけたい とも思っています。

新しいコンテンツとは何か具体的には決めていないんですが、

i☆RisRun Girls, Run!のライブに行ってみたいな〜とか、芹澤優ちゃん個人を追いかけてみたいな〜とか、完全に新しいアイドルを見つけて追いかけたいな〜とか、握手会とかの接近イベにも行ってみたいな〜〜とか思っています。

断言すると、 今年よりももっとお金をつぎ込みたい。

自分の好きなことにお金をかけるの楽しスギィ!!また、オタク趣味で知り合いをさらに増やしたいとも思っています。同期でオタクイベに一緒に行ける人が欲しいな〜〜。

総括

さて、こんな感じで今年も終わり、もうまもなく2020年が始まります。

2020年は東京五輪があったり、プリチャン3期があったり(?)、アイカツの新シリーズがありそうだったり、いろいろ世の中も動きそうですね!

成長したい、という今年の目標はそのままに、またさらに進化したじゅぎのんを来年末に見せられるように、来年も頑張っていきたいです!!

来年も仲良くしてくださいね!!では!!

f:id:ogijunchang:20191231223943j:plain
明日からね!

みれぃ・あんな推しによるプリパラ&キラッとプリ☆チャン Winter Live 2019レポ

プリパラ&キラッとプリ☆チャン Winter Live 2019に参加してきました

こんにちは、じゅぎのんです。プリティーシリーズをこよなく愛する皆さまはすでに知っての通り、昨日の12/15に幕張メッセイベントホールにて「プリパラ&キラッとプリ☆チャン Winter Live 2019」がありましたね!

avex.jp

私も昼夜両公演しっかりと参加させていただきました。今回はアドベントカレンダーの16日目ということで、昨日のライブの超個人的レポを書きたいと思います。(アドベントカレンダー初参加です)

僕がプリパラを見始めたのが去年の8月頃で、11月にアイパラまで完走、そこで「み〜んなでキラッとプリティーライブ2018」の存在を知ります。一気にシリーズを完走した余韻に浸りながら、もうこれは行く以外の選択肢なくない??ということでちょうど去年のウィンターライブにプリティーシリーズのライブに初参加しました。

ogijunchang.hatenablog.com

もうこれが去年の話かと思うと時が流れるのが一瞬すぎて引いてしまうんですが、1年経ってみれぃへの愛、そしてプリ☆チャンのあんなへの愛が深まったことで、今年のウィンターライブも最高に楽しめました。

f:id:ogijunchang:20191216211104j:plain
注意:みれぃ・あんな推しです

物販列長すぎ

去年の会場は同じ幕張メッセでしたが、国際展示場の2ホールで1ホール物販・イベントコーナー、1ホールライブ会場という間取りでした。

今年の会場は幕張メッセイベントホールということで、会場がドーム型のホールでした。そのため物販は外に並ぶことになり、長蛇の列ができていました(多分去年はこんな人数いなかったと思うけど)。

僕が会場についたのは11時頃で、すでに350mくらいの列ができていました。

f:id:ogijunchang:20191216151912j:plain

ここまで長い列並んだの初めてでしたね…並んでいる間に目当ての髪ピタかわいいシールが完売して割と絶望しました。

公演開始が13時で、明らかに物販列がそれまでに捌ける気配はせず、途中前の数人が会場と同時に列を抜けていきました。まぁなんとかなるやろ…って思ってたけど抜け出すに抜け出せない位置まで来た時には開演五分前になっており、割とガチで焦りました。

開演と同時に会場に滑り込み、ランガちゃんが歌い始める瞬間に着席できました(着替える余裕すらなかった)。

物販は余裕を持って並びましょう(戒め)。

プリッカソンのフラスタ!!

僕は特になにも関わることはできなかったんですが、プリッカソンのフラスタ企画にほんの少しだけ支援させていただき、こんな素晴らしいフラスタを作っていただけました!!

f:id:ogijunchang:20191216210629j:plain

真ん中のQRコードを読み取るとキラッとボタンが現れて、押された回数をカウントしてくれる機能がついているんですが

昼の部の時点で4万回、夜の部終了後10万回を超えていてビビりました。

フラスタをゆっくりみることはできませんでしたが、こうやって少しでも関わったものが演者さんにも見ていただけると嬉しいですね。

次回もしあるんだとしたら少しだけでも関わってみたいな…

昼夜ライブレポ

昼公演はアリーナA1、夜公演はスタンドJブロック(正面から見て右横側)にいました。

やっぱりアリーナの方が演者と接近できて楽しかったですが、スタンドでなければ見れなかった部分もあったので、両方大満足でした。

Run Girls, Run! でスタート

1曲目は現OPのキラリスト・ジュエリストですね。モニターではアニメOP映像が流れてエモエモです。ギンガムチェックの3人がかわいい。特にもっちー

去年のレポではランガの3人のこと全然知らないって言っていたんですが、知らないとかありえないですよね??

知らない人は今すぐこれをみてください。

anime.dmkt-sp.jp

2曲目は昼公演で「Go! Up! スターダム!」、夜公演で「ダイヤモンドスマイル」でした。両曲とも良曲、ガン上がりできます。ハイセーノ!ハ-イハ-イ!ハイハイハイ!

夜公演は周りも結構盛り上がっていましたが、昼公演は周りが控えめでしたね。僕も控えめになってしまいました。ごめんもっちー

初のトンサマ、安定のパンゴハンメンルイ

3曲目はドレッシングフラワーの「トンでもSUMMER ADVENTURE」でした。トンサマは今までのライブで一回も聴いたことがなかったので、超感動しましたね。

そもそもらぁら役の茜屋日海夏さんが去年のウィンター以降いなかったので(東京公演は)、らぁらが居てくれるだけでもうすでに感動でした。

ウィンターライブスタートです!と言ってからの「夏が来たぞい」はプリパラみがありますね。プリパラチームのスタートにふさわしい曲でした。

そして4曲目に「パンゴハンメンルイ」で有名なマイドリームの「ハートフル ドリーム」でした。プリ曲で一番盛り上がるんじゃないでしょうかこの曲。

昼公演はランガちゃんのところ控えめにいった分元気余っていたんですが、夜公演最初からぶっ飛ばしたせいでここで割と消耗してます。

今回はステージが二つ用意されていて、トンサマまでは前ステージで、マイドリームは後ろステージから登場しました。

昼は前ステージにかなり近かったため後ろ姿しか見えない&かなり遠いというお預けをくらってしまいましたね…夜公演はその分全体が見渡せてよかった。

ノンシュガー登場

5曲目はノンシュガー登場。昼は「かりすま〜とGIRL☆Yeah! ノンシュガーver.」、夜は「スパイシー♪ホット*ケーキ!!!」のshort ver.でした。

さすがノンシュガーですね。ここからトロッコが使われて、サイド・真ん中の通路にもノンシュガーが来てくれました。僕はノンシュガーの中ではちり役の大森日雅さんが好きなんですが、左側には来てくれなかった…泣

田中美海さんと目が合いました(異論は認めません)

みれぃ登場で泣いた

6曲目はみれぃの「ぷりっとぱ〜ふぇくと short ver.(昼)」と「TRIal HEART 〜恋の違反チケット〜 shrot ver.(夜)」。

僕はプリパラの84話を見た頃からずっとみれぃ推しで、ガァルマゲドンやしゅうか+ガァララのエモエピソードを踏まえてもなお僕はプリパラ84話が一番大好きなんですが、そんなみれぃのぷりっとぱ〜ふぇくとが再び聞けました(号泣)。

ぷりっとぱ〜ふぇくとが聴けるだけでも十分泣けるのに、そこにセリコが努力は裏切らない!みれぃは神アイドルになるぷり!!(泣いててよく覚えてない)みたいなこと間奏で被せるのずるくないですか??i☆Risはやっぱりライブ中の余裕が違う。

夜のTRIal HEART 〜恋の違反チケット〜も十分にエモエモだったんですが、みなさんセリコがメガネをかけていることに気づいたでしょうか。僕は気づいた瞬間に悟ってしまいました。ーーーあ、今日のセリコは本気だ、と。

なぜそう思ったのかというと、セリコのメガネに対する思いを知っていたからです。

ameblo.jp

芹澤さんは昔からメガネがあまり好きではないらしく、最近のラジオでも「目がちっちゃく見えてメガネはあんまり好きじゃない」と言っていました。

ここぞというときにメガネをかけてくれた、芹澤さんのみれぃへの役作りの本気度が伺えますね。好きです。

昼がぷりっと、夜がトライアルハートという組み合わせは去年のウィンターと同じでしたね。僕はどっちも好きですが、やっぱりフルが聞きたかった____。

一番聞きたかったぱぴぷぺ☆POLICE!

7曲目はらぁのんのBrand New Dreamer(昼)、そして去年からずっと聴きたいと思っていたぱぴぷぺ☆POLICE(夜)が聴けました。

両曲ともライブで聴いたのは初めてだったかな?個人的にぱぴぷぺ☆POLICEとそらみドレッシングのRealize!をライブで聴くまでは死ねないと思っていたので、あとはRealize!を聴ければ成仏できます。

ぱぴぷぺ☆POLICEは個人的にメイキングドラマが一番好きですね。

f:id:ogijunchang:20191216195042j:plain
次こそ逮捕だー!

次こそ逮捕だー!のらぁらも、ぶ〜〜んのドロシーも全力逮捕ー!のみかんもかわいいです。ダンスの手首くるくるしながらあっちこっちいくところも好き。あと最後の上半身くねくねするところも。言い出したら止まらないわ

プリ☆チャンメドレー!

8~11曲まではプリチャン曲になります。一気にどうぞ。

8曲目 ワン・ツー・スウィーツ(昼) TOKIMEKI ハート・ジュエル♪ short ver.(夜)

9曲目 キラリ覚醒☆リインカーネーション(昼) 夢色エナジー(夜)

10曲目 乙女アテンションプリーズ(昼) SUPER CUTIE SUPER GIRL(夜)

11曲目 じゃんけんキラッと!プリ☆チャン

ここらへんは予想通りな構成で来ましたね。昼はキラッツ1年目のソロ曲+乙女アテンション、夜は2年目ソロ曲+SCSG。

個人的にはキラリ覚醒☆リインカーネーションはアニメで聴いた時はそこまでグッとはこなかったんですが、ライブで聴いたらすごかったですね。あっちゃんの歌声いい。すてき

じゃんけんキラッと!プリ☆チャンは周りでも割と振り付けやってる人いて笑った。最後ちゃんとじゃんけんできたらよかったのに。

ひびき様ァァァふわりィィィ

12曲目はひびき様のターン。嘘つきはTomorrowの始まり(昼)、純・アモーレ・愛(夜)です。

ひびき様さすがすぎます。ツアーから始まって今回のライブも安定してかっこいい。染め上げてみせよう、僕の色に!のあとに聞こえるウワァァァって歓声がなぜか他のキャラのライブの歓声と違う風に聞こえるのはなんでなんでしょうね。強すぎる。

13曲目はふわりのコノウタトマレイヒ。何気にこの曲って合いの手あるから盛り上がるんですよね。間奏でしっかりと動物になりきる女児達かわいいですぅ〜〜(煽

まさかのコスモ新曲

君100%人生で現れたコスモさん、ライブに参加するのはいつぶりなんでしょう。トロッコがアリーナ中央で止まり、「こんなところで終わっちゃったらどうしようもないよねぇ〜!?」オオッ!?「なんと今日は、本邦初公開の新曲がありま〜す!」

ということで15曲目は「Burn Cosmic Liberty」(新曲)。かなりかっこいい感じのイントロかと思いきや、途中で盆踊りみたいな曲調にかわり、ふたたびかっこいいメロディーに戻る不思議な曲でした。「コズミック!コズマックス!」の合いの手も一回聴いてしまえば簡単に入れられるので強い曲ですね。

(この曲音源化いつするんだろう……。)

プリチャン曲の暴力

16曲目 Play Sound☆

17曲目 シアワ星かわいい賛歌

18曲目 スペース!スパイス!スペクタクル!

19曲目 My Secret heArtbeats

20曲目 ヒロインズドラマ

特筆すべきはまりあちゃんですね。オータムライブでは東京公演にまりあ役の茜屋日海夏さんがこれなかったのでまりあちゃんが見れたのは今回が初でした。

ロッコで間近まで来てかわいいシール貼っていただきました。森羅万象がかわいく見えますね。

思うんですが、「一富士二鷹三かわいい」「五臓六腑に超かわいい」って歌詞考えた人頭いかれてますよね(褒め言葉)。かわいいがしみわたります。

メルティックのソロ曲は何と言ってもやっぱりあんなのヒロインズドラマなんですよね。

もちろんめるめるのソロもすっごく楽しげで盛りあがれるし、さらのソロも歌唱力がありすぎて圧巻なわけですが、ヒロインズドラマなんだよなぁ。

ヒロインズドラマの2番の歌詞、

ひとつ宣言 飽きっぽい誰かも 今に見てて あまさずにオーディエンス バキュン!バキュン! そう、恋に落としちゃうもの

一番のジュエル いただくのはわたくしよ だって絶星のVENUS クギヅケ… Oh マイ・ショウタイム!

この曲にはあんなの自信が詰まってますね。たしかにこんな曲を歌える自信を持っていながら少しの失敗を許せるのかと言われると無理なんだろうなぁと。

あんなもみれぃと同じく努力家なんですよね。やっぱり努力してる女の子って素敵。えもと結婚していいよ。

セリコの自信たっぷりな演技も最高です。あと衣装が超素敵。

ガァルマゲドン登場

ヒロインズドラマが終わると、なにやら笑い声が。あ〜〜〜この笑い声聴いてるだけで幸せになる。はい、ガァルマゲドンです。

21曲目のアメイジングキャッスルは昼夜両方でした。今回は尺の関係なのかガァルマゲは一曲しかやってくれなかった…でもあの登場の仕方は新鮮でよかったですね。

次回はし〜くれっと!ラタトゥイユ神曲!ももう一回聴きたいな〜〜〜。

ノンシュガー+マイドリ+ドレシは最強

22曲目 シュガーレスxフレンド

23曲目 Believe MY DREAM!

24曲目 CHANGE! MY WORLD(昼)、Get Over Dress-code(夜)

Believe MY DREAM!のイントロで泣かない人いるんですかね。

ノンシュガー単体でアニメ化、お願いします。

ビリマイからのGODで涙腺崩壊した人多数でしょう。この流れはツアーとかでもあったような。泣かせにくるセトリほんまずるい。

ノンシュガーもマイドリもめちゃくちゃ大御所感出てますよね。ドレシに並ぶ強者感がすごい。

しゅうか様のガァララに送るメッセージ

25曲目 Miss.プリオネア(昼)、メイクマニー・メイクドリーム(夜)

夜公演は先ほども言った通りサイドで見ていたんですが、ほんとうによかった。なぜなら、モニターに映るアニメ映像がエモエモのエモすぎたから。

しゅうかはトロッコで真ん中を突っ切っていたのでAブロックにいた人は後ろにあるモニターをあまり見れていなかったのではないでしょうか。

間奏に流れるガァララとの出会い・裏切り・仲直りまでのMADを見ただけでも泣けるのに、そこにしゅうかが「友達は、いっちば〜んかけがえのないものよ」っていうんですよ!?泣くしかないじゃないですか・・・・・・

しかも会場にガァララがいるというその事実。かーー、泣ける

がぁらふぁら登場

26曲目 リンリン♪がぁらふぁらんど

ガァララ役黒沢ともよさんもコスモ役山本希望さんと同じくかなり久しぶりの出演だったため、この曲もライブで初めて聴きました。

夜公演で気づいたんですが、なんかしゅうかへのスポットライトが消える時に控えてたがぁらふぁらがなんか抱き合ってんすよ。何やってんすか????

イヤモニが付いているとはいえ、あの曲を歌えるのってほんとにすごいです。前にカラオケで歌った時音程つられて意味わかんないことになったので、聴いていてほんとにすごいなぁという感想しか出ませんでした。

満を辞してだいあも登場

ライブ中、ちょくちょくライブの様子を見ていただいあが、あのプリチャン史上最もエモいアニメ映像の後に出現。

27曲目 フレンドパスワード

だいあの色は何色なんだろう、となりかなり多くの人が白色にしていましたね。サイリウムを複数本持っている人は虹色っぽくしていました。

佐々木李子さんの歌唱力も半端ではないですね。開演前緊張して目玉焼きつぶしていたみたいですが。

たしかにいっちばん最初だけ声が震えている感じはしましたが、そこからは圧巻でした。(というか楽屋で目玉焼き作れるの…?)

最後はメルティックでシメ

28曲目 寝ても覚めてもDREAMIN'GIRL(昼) COMETIC SILHOUETTE(夜)

29曲目 La La Meltic StAr

最後メルティックいいっすねぇ!!!やっぱりあんなちゃんなんですよ!!寝ても覚めてもはチーム曲の中でもあんなをイメージした曲だと思っていて、歌詞も「さぁピークはまだこれから だから暇なし 勘でAll or nothing」とか、やっぱりあんなちゃんの努力家なところが垣間見えます。

コメティックもいいですよね。プリチャン1stシーズンで泣けるポイントがあるとしたらやっぱりここでしょう。

海外に行ってもずっと自分のことを想ってくれていた、って考えるとすごくエモいです。お土産はそのもの自体が嬉しいんじゃなくて、旅行先で自分のことを考えてくれることが嬉しいってやつです。(違うか)

La La Meltic StArもすごく好きです。11日に発売したCDがやっぱり神だと思うんですよね。ちなみにセリコは曲最後の「世界中をドキドキで満たす 誰かの瞳に映り込む」の部分で、あんなが目を閉じながら後ろにいるさらめると場所交換するところが好きらしいです。俺も好きだよ。

そしてラスト

30曲目 Make it!

31曲目 Crew-Sing! Friend-Ship

最後はやっぱりMake itなんですねー。正直プリチャン3期が決定ということでプリチャンを推していくなら、ここはキラッとスタートでもよかった気はします。

ラストをプリパラツアー曲にするのもうーん、って感じはします(でも結局楽しい)

演者さんはメインステージだけでなく後ろのステージ、トロッコの上で全員出てきてくれました。ここで夜公演のときにしゅうかとガァララが抱き合っているのを見てしまって死にました。よかったやん・・・・・・・(泣)

総括

7000字を超えて長々と書いてきましたが、ライブとっても楽しかったです。

プリチャン3期決定、そしてプリティーオールフレンズにそらみドレッシング参加おめでとうございます。

次回のライブ予告がなかったのが個人的にかなりショックでした(今までは毎回次回予告があったので)が、坂道オタクにそれをいったら「それが普通だから(怒)」って言われました。

次回を楽しみに待っています、何卒______!

今回はやっぱり萌黄えもがいなかったのが痛かったですね。

容赦無くキラッツ曲をやっている部分もありましたが、やっぱりソロ曲が少なくなるのは悲しい。

次のライブは超豪華なメンバーになるといいんだもん!

カレイドスターに見る、夢を目指す意味

皆さんはカレイドスターというアニメをご存知でしょうか。カレイドスターは2003年にテレビ東京にて放送されていた夕方アニメです。

16年前の作品ということで知っている人は多くないと思いますが、めちゃくちゃ感動してしまったのでその魅力を少しでも皆さんに伝えたいと思いブログを書いています。

カレイドスターとは?

美少女戦士セーラームーン』、『おジャ魔女どれみ』などを手がけた佐藤順一によるオリジナル作品。日本ではあまり馴染みのないサーカス(参考にしたのはシルク・ドゥ・ソレイユ)を舞台にしている。(Wikipedia)

カレイドスター - Wikipedia

カレイドショー」という現実にはないサーカスのスターを目指して日本からアメリカに来た主人公苗木野そらが、カレイドスターになるまでのサクセスストーリーです。

anime.dmkt-sp.jp

4クールアニメですが2クールで1部と2部に別れており、前半では現カレイドスターでそらの憧れであるレイラ・ハミルトンに並ぶカレイドスターを目指すストーリー、後半ではその後のそらについてのストーリーとなっています。

f:id:ogijunchang:20191202150647j:plain
苗木野そら(下)とレイラ・ハミルトン(上)

プリティーリズムシリーズやアイカツ!シリーズではスターアイドルになることを目標として、特にプリティーリズム オーロラドリームやレインボーライブ、アイカツスターズ!などはスポ根要素が比較的多いストーリーでしたが、カレイドスターはそれを上回るスポ根アニメです。絵柄からはうかがい知れないパワーを持ったアニメでした。

なぜおすすめなのか

このアニメを特におすすめしたいユーザーは、プロになるつもりはないけど力を注いでいるものがある人です。

僕のように一つのスポーツを年単位で続けていたり、趣味の範囲を超えて頑張っている物事がある人におすすめしたいです。

それが何故なのかというと、

  • 物事を極めるということにはどれほどの覚悟が必要なのか?

  • 何故自分はそこまで頑張っているのか?

を改めて考えるきっかけになると思ったからです。

例えば僕は、小学5年生から陸上競技をはじめて現在12年目くらいになります。

それでも現在の進路希望はエンジニアであり、陸上と深い関係はありません。

もちろん大学を卒業してもクラブチームに所属することもできますが、陸上競技で飯を食っていこうと思ったことは一度もありません。

では、なぜ僕は陸上競技を続けているのでしょうか?それは陸上が好きだからです。

厳密にいうと、陸上競技で自己記録を更新することで過去の自分を超える体験が直接的に経験でき、他のものに代えがたい喜びを得ることができるからです。

皆さんの中にもきっと、そういった続ける理由を改めて考えるまでもなく継続している好きなこと、やりたいことがあると思います。

カレイドスター」では苗木野そらと自分、カレイドショーと陸上競技を自然に比較して、今まで見てきた中でも類を見ないほど感情移入のできるストーリーであったため、僕はおすすめしたいと思いました。

第一部 (1話〜26話)で思うこと

子供のころに両親と見に行ったカレイドショーに憧れていたそらは、中学卒業後単身でカレイドショーのあるアメリカに行きます。

慣れない外国、到着直後荷物の盗難というアクシデントに得意のアクロバットで対応するそら。そこである男に目をつけられます。

トラブル続きで採用試験に遅刻してしまい、面接を受けることなく不合格になってしまうも、トラブルの時に遭遇した男の指示でなんといきなりステージにあがることに。

いきなりの本番に戸惑うそら。

「やってやれない事はない。やらずに出来たら超ラッキー!やるとなったらやるしかない!ない!ない!」というそらのモットーで、ぎこちないながらもなんとか本番のショーを成功させます。

1話のストーリーはだいたいこんな感じです。

プリティーリズム オーロラドリームを見ている人は「え、それ春音あいらとジュンのこと??」となるかもしれません。

オーロラドリームを視聴したことのある方はもうこれでわかるでしょう。今すぐdアニメストアカレイドスターと検索してください。

まず僕が感心したのは、憧れを現実にするために自ら行動し憧れの世界に飛び込む勇気をそらが持っていることです。

どんな職業に就きたい、どんな夢を叶えたい、どんな人になりたい、そういった目標なり夢は多くの人が持っていると思いますが、それに対してみなさんは行動できていますか?

僕が陸上を始めたのは小学校の先生(恩師)の誘いが最初でした。

実際、その先生の助言や行動がなければ僕は陸上競技をやっていなかったかもしれません。

中学卒業と同時にわざわざ言葉の通じないアメリカに飛ぶのは相当の覚悟があったことでしょう。

作中でも語られていますが、サーカスの専門学校はそらの世界では日本に全然ないとのこと。

調べてみたところ、現実の日本にはサーカスの専門学校は一つしかないみたいです。

なぜそこまでの覚悟を持てたのか?それは序盤でわかります。是非直接みて確かめてみてください。

f:id:ogijunchang:20191202160148j:plain
結構つらい過去があります

そんな怒涛のぶっつけ本番があったあと、カレイドショーのオーナーであった謎の男ことカロスによりそらの入団が決定します。

しかし、その入団はハッピーエンドではなく、これからそらに襲いかかる試練の幕開けだったのです…というところですかね。

同期からの妬み・僻み、大先輩・他サーカスとの友好関係のもつれ、サーカス存続の危機など、つらいことがそらに多く降りかかります。

それをどう乗り越えるのか、是非実際に見て欲しいです。

そんなそらの成長と、自分の今までの過去とが合わさって本当に泣けます。

第二部 (29話〜51話)で思うこと

第一部で一つの目標を達成するそら、そして第二部ではそらの本当の夢はなんなのか、というテーマに入ります。

ここで詳細に書くことはできませんが、プロとしての世界に入るそらは、

「他人と争って役を勝ち取らなければいけないこと」「それによって傷つく人がいること」「それを知ってもなお進まなければいけないこと」がどれほど重いことなのかを痛感します。

f:id:ogijunchang:20191202160240j:plain
結構厄介な男たちもいます

おそらくここが趣味とプロとを分ける境目なのではないかと僕は思います。

「好きなだけではこの世界生きていけないよ!」みたいなこと現実でもよくいうと思いますが、本当にそうなんだろうか?という疑問がテーマになっています。

信頼してくれる先輩や同期、期待してくれる友達や家族、その期待に裏切ることはできない自分、でも裏切ることになってしまう自分の本当の気持ち。

どうすることが自分にとっての一番いい選択なのか?答えはカレイドスターにあります。

f:id:ogijunchang:20191202155525j:plain

夢を目指す意味

ここまでしっかりとオタク語りしてきましたが、いかがでしょうか。カレイドスターが少しでも面白そう、と思っていただけるとありがたいです。

夢というのは生きていく上で大きなモチベーションになると思います。

叶わない夢だとしても、その夢に向かって努力することに意味はあると思いますし、成功失敗関係なく努力したことは次に繋がります。

僕はまだ二十数年しか生きていないのでこんなこという身ではないですが。

僕はカレイドスターを見ることで夢に対するモチベーションがガン上がりしました。

みなさんも、是非カレイドスターを見て夢を追いかけるきっかけにしてはいかがでしょうか。