Apple Watch買った

9月に出たSeries 4の44mm,GPSモデルを買った.

ホーム画面は下の感じにしてる.(スクリーンショットで撮影)

中央のカレンダー表示は特に便利で,わざわざiPhoneを持ち上げなくとも次の予定が表示できる上に,直前になったら通知も受け取れる.

今までカレンダーは他人に共有する以外でちゃんと運用できていなかったけれど,こんなに簡単ならしっかり入力しようという気持ちになった.

その他,iPhoneに来た通知を確認できるのも本当に便利.

とはいえ,Apple Watchの大きな利点は計測の機能であると思った.

iPhoneのスクリーンタイム機能により,iPhoneを見ている時間や持ち上げた回数が正確にわかるようになったのもあり,どれくらい無駄にiPhoneを見ているのかわかるようになった.

また,心拍数の計測も便利だった.

その他計測として,外出をするとウォーキングを検知して記録をしてくれるのも便利だった.

距離や掛かった時間なども教えてくれる.

「推測するな計測せよ」という言葉があるけれど,それを普段の生活にも取り入れられるデバイスだなと感じた.

とはいえ,今までスマートウォッチどころか腕時計すら着けていなかったので,まだまだ慣れない部分もいっぱいある.

慣れてきたら,活用方法とかまとめていきたい.

Twitter見てない

ここ数ヶ月,Twitterをあまり見ていない.

忙しくなったというのもあるし,UserStreamの終了やTweetDeckが以前より重くなったのもあるのだけれど,それだけではない.

いつ見ても他人を批判する話で溢れていることに気がついた.

批判をすることでとにかく「自分は(他人とは違って)優れている」という一種のマウントを毎日目にする.

対象の人をミュートなりすれば良いと言われるかもしれないけれど,とにかく数が多く話題も毎日変わるのでTwitter自体を見ない方が早いなと思っている.

人との繋がりがあるのでやめるわけではないけれど,以前よりだいぶ見る時間は少なくなった.

それに,Twitterは短文や修正が効かないことから議論に向かないプラットフォームだと思う.

言いっ放しで終わることから,せめて自分だけでも他人を批判するようなことは言わず,明るい話題を提供していきたい.

そういうことで,この記事は明るい話題ではないのでTwitterには投稿しないことにする予定.

それと,Twitterをやっていないからといって元気ではないというわけではないのでそこは安心して欲しい.連絡もTwitterが一番早いと思う.

EBSのタグをアタッチされているインスタンスのものに同期させる

DBのスナップショットを手で作成するときや,CloudFormationでインスタンスを作成するときに,EBSにタグを付け忘れることがある.

そんなときのために,アタッチされているインスタンスに対して自動でタグを付けられるスクリプトを書いた.

import boto3
import os


def handler(event, context):
    synced_tag_keys = os.environ['SYNCED_TAG_KEYS'].split(',')

    client = boto3.client('ec2')

    ebs_messages = ''

    instance_tags_dict = get_instance_tags(client)

    response = client.describe_volumes()
    for volume in response['Volumes']:
        volume_id = volume['VolumeId']

        # アタッチされていないEBSボリュームは無視
        if not volume_id in instance_tags_dict:
            continue

        # ボリュームIDからインスタンスのTagsを取得
        instance_tags = instance_tags_dict[volume_id] 

        # ボリュームIDからボリュームのTagsを取得
        volume_tags = tags_array_to_dict(volume.get('Tags'))
        
        # 同期させたタグを通知するため覚える
        tags_to_notify = {}

        for synced_tag in synced_tag_keys:
            instance_tag_value = instance_tags.get(synced_tag)
            # 指定したタグがインスタンスに存在しない場合
            if instance_tag_value is None:
                continue

            # ボリュームにタグがない場合もしくはインスタンスのタグと違う場合,インスタンスのタグに合わせる
            if volume_tags.get(synced_tag) != instance_tag_value:
                create_tags(client, volume_id, synced_tag, instance_tag_value)
                tags_to_notify[synced_tag] = instance_tag_value

        if tags_to_notify != {}:
            ebs_messages += volume_id + '(' + str(instance_tags.get('Name')) + '): ' + str(tags_to_notify) + '\n'

    message = '(' + context.function_name + ') ' + '同期するタグ: ' + str(synced_tag_keys) + '\n'

    if ebs_messages != '':
        message += '以下にあるボリュームのタグを同期しました\n' + ebs_messages
    else:
        message += 'タグの同期が必要なボリュームはありません'

    print(message)


# volumeIdとTagsの辞書を紐づけた辞書を返す
def get_instance_tags(client):
    response = client.describe_instances()
    instance_tags = {}

    for res in response['Reservations']:
        for instance in res['Instances']:
            for mapping in instance['BlockDeviceMappings']:
                volume_id = mapping['Ebs']['VolumeId']
                tags_dict = tags_array_to_dict(instance.get('Tags'))
                instance_tags[volume_id] = tags_dict

    return instance_tags


def tags_array_to_dict(tags_array):
    if tags_array is None:
        return {}

    tags_dict = {}

    for tag in tags_array:
        tags_dict[tag['Key']] = tag['Value']

    return tags_dict


def create_tags(client, volume_id, tag_key, tag_value):
    client.create_tags(
        Resources=[
            volume_id,
        ],
        Tags=[{
            'Key': tag_key,
            'Value': tag_value,
        }]
    )

EBSボリュームのidからアタッチされているインスタンスを検索して,環境変数SYNCED_TAG_KEYSで指定したタグを同期させる.

Lambdaでの実行を想定しているので,CloudWatch などで定期実行すれば,自動的に同期することができる.

動画を埋め込みまくると重い

VTuberの紹介記事を書くために,動画を貼り付けまくっていたらとにかく重くて自分でも開きたくないページになってしまった.

どれだけ動画を埋め込んだのか正確には数えていないけれど,60個以上は埋め込まれていたと思う.

というわけで埋め込みではなくタイトルリンクに全て直してみた.

文章の見通しも良くなったと思う.

埋め込みをやるとサムネイルが表示される上にその場で再生できるのは便利だけれど,とにかく重くなる上に見通しも悪くなるので多く貼り付けるのはやめることにする.

そんな動画埋め込みをタイトルリンクに変更した記事はこちらから.

core.cohalz.co

VTuber界の巨匠「エイレーン」について可能な限りまとめた

エイレーンをご存知だろうか?

ミライアカリヨメミ夏実萌恵といったチャンネル登録者10万人超えを連発している人気VTuberのプロデューサーであり,本人もYouTuberであるキャラクターである.

エイレーン本人について何も知らない人は下の動画を見ると雰囲気がわかりやすいと思う.

カラダを賭けてギャンブルしてみた!!!【いやらしい結果に…】【四人将棋】 - YouTube www.youtube.com

何故VTuberではなくYouTuberと呼んでいるかというと,本人が「2次元YouTuber」を名乗っているためである.

YouTuberとしての活動を開始したのが2014年の3月からと非常に早く,キズナアイが活動開始した2016年の12月から比べても歴史があるYouTuberである.

つまり,「バーチャルYouTuber」という言葉が生まれる前のYouTuberということになる.

ボイスロイドを使っている上,モーションキャプチャなどは使わずに動きを付けているため,VTuberとは扱われないことが一般的である.

とは言うもののVTuber業界に大きな影響を与えてきた存在なのは間違いない.

今回はそんなエイレーンについて,できる限りの紹介とまとめを行っていく.

ミライアカリ以前

現在ミライアカリのチャンネルとなっているものは以前はエイレーンのチャンネルで,そこで活動を行っていた.

www.youtube.com

動画の古い順にソートするとエイレーンの動画が数多く残っている.

それらの動画を振り返りながら,ミライアカリまでの歴史を振り返っていく.

最初は動画を翻訳していて紹介していた

エイレーンは活動当初は海外の動画を翻訳して紹介するというスタイルを取っており,今とは全く雰囲気が異なっていた.

現在残っている最古の動画は『アメリカの360ユーザーがPS4を買う理由 │ Now I know why Americans are Buying PS4』という動画になっている.

アメリカの360ユーザーがPS4を買う理由 │ Now I know why Americans are Buying PS4 - YouTube

キャラの動きやも少なく,動画紹介がメインのために本人が喋ることもあまり多くないという状態であった.

キャラクターが増えていく

しばらくして,動画のスタイルが変わることになる.エイレーン以外のキャラクターが出るようになり,アニメ調のコメディ動画を作るYouTuberとなっていく.

ベノ

初めに増えたのは「ベノ」という名前のキャラクターで,2014年6月からエイレーンの妹として動画に登場し始める. 長い茶髪でフードを被っているキャラクターである.

初登場の動画は今は削除されて見れないため,この動画が最古の動画となっている.

【姉妹コント】 マリオはなんでキノコで大きくなるのよ? 【エイレーン・ベノのアニメ コメディー】 - YouTube

初めはエイレーンに対しての突っ込みをするキャラクターだった.

しかし回を重ねることで暴走を始め,ベノがボケてエイレーンがツッコミをすることも多くなっている.

例として,下の動画ではベノが騒動を起こしてエイレーンが追いかけるという典型的なギャグアニメのような動画となっている.

IF POKEMON GO WAS REAL!!! - YouTube

また,下ネタ発言がとにかく多く,最近ではエイレーンファミリーの中で一番の危険人物という立ち位置になっている.

下の動画ではとあるゲームのBGMを替え歌で下ネタを言いまくるという場面がある.(7:40頃閲覧注意)

TENTACLES ARE ATTACKING ME!!! [Animated] - YouTube

上の場面をフルでアップした動画も昔はあったのだが,あまりにも内容がひどく通報されたため,現在動画を視聴することはできない.

萌恵

ベノと同じく2014年6月から登場をした.

初登場はこの動画である.

[アニメ娘のおもしろTOP5 「コーラを煮てみた」 萌恵の流行TODAY + サメに襲われてみたサッカー侍PORTAL銃を作った、など - YouTube

英語しか話せないキャラクターで,アンドロイドという設定がある.

高性能アンドロイドという立ち位置で,エイレーンやベノに対する突っ込み役として登場することが多い.

萌恵が登場している動画は大掛かりなコメディになっていることも多く,クオリティが高い.

ただし,萌恵は2017年5月に投稿されたこの動画を境に一切の出演が無くなってしまう.

【勝ったら100万】お金の為に死ぬまで殴り合ってみた!!!【自作アニメ】 - YouTube

他のキャラクターは2018年も出演する中,何故出てこないのか心配する声も多かった.

しかし2018年7月にVTuber化を行い復活することとなった.

www.youtube.com

ベイレーン

2016年5月から登場した.

初登場はこの動画で,ナルトに関して不可解な点を突っ込む動画になっている.

ナルトがアホだお - YouTube

この他にも社会に物申す動画を投稿している他,エイレーンとコメディを繰り広げることもある.

エイレーンファミリーの長女にあたり,三姉妹の中では一番の常識人としての立ち位置になっている.

しかし,行動が過激で,BANを恐れない発言も数多く残している.

また他のキャラクターとは違い,立ち絵がSD絵しか存在しないのも特徴である.

なお,エイレーンや他キャラクターのSD絵はベイレーンが登場したタイミングに合わせて追加されている.

2018年の4/1にVTuber化するという発表があった.

www.youtube.com

萌実

2017年3月から登場した.

これはパンツじゃないもん!!! - YouTube

萌恵の妹にあたるキャラクターで,初めて声優が付いたキャラクターになる.

1人でゲーム実況をする動画を投稿している他,エイレーンとのコメディ動画に出演することもある.

基本的に常識人でエイレーンファミリー3人に対してツッコミを入れることが多い.

2017年の8月にチャンネルが分離し,萌実メインのシリーズが始まるようになる.

2018年の1月にヨメミと共通のチャンネルとなる.

www.youtube.com

その他歴史

キャラクターの紹介の次は,2014年から2017年の流れを動画紹介しつつ振り返ってみる.

2014年

3月: エイレーンのチャンネルが開設される.

6月: ベノ・萌恵が登場する.

7月: 英語版のエイレーンチャンネルが開設される.

9月: チャンネル登録者が1000人を突破し,感謝とともに今までの人生を振り返る動画を作成する.

どうしてYOUTUBEを見ますか? 【Draw My Life】【人生を書いてみた♪】 - YouTube

11月: キャラクターに動きが付くようになる. しかし,仕事の関係により,この動画を最後に動画投稿がストップする.

【朗報】英語チャンネルでまさかの… 【エボラちゃん】【登録者1000人記念・Emote】 - YouTube

2016年

3月: 動画投稿を再開する. なお,動画を投稿していない間にもチャンネル登録者が増え続け,登録者は一万人を突破していた.

私が一年間動画を放置した真実 【謝罪】 - YouTube

5月: ベイレーンが登場する.

エレン先生を題材にコメディ動画を作成する.

エレンベイカー先生の英語教室♪ (いやらしい結末に・・・)【自作アニメ】 - YouTube

9月: 英語チャンネルの登録者が一万人を超え,記念動画を作成する.

TENTACLES ARE ATTACKING ME!!! [Animated] - YouTube

10月: エイレーンがPPAPを歌う.

PPAP VS アニメ娘 !!! (PIKOTARO ピコ太郎パロディー) - YouTube

11月: 僕だけがいない街のパロディとして自作アニメを投稿する.

【自作アニメ】 僕だけがNTRされない街 !!!【僕だけがいない街 パロディー】【雛月ルート】 - YouTube

2017年

1月: チャンネルがYouTubeに削除される.

EILENE is DEAD - YouTube has killed my channel - YouTube

2月: チャンネルが復活する.

YouTubeに殺されてました!!!【アカウント復活】 - YouTube

3月: Minecraftを題材に声優とアニメを作成する.

【アニメ】マインクラフトをリアルにしてみた!!!【自作アニメ】【とんでもない結末が】 - YouTube

なおこの声優は萌実の声優と同一で,萌実に声がついたのはこの動画がきっかけである.

4月: チャンネル登録者10万人記念の動画を出す.

ありがとう♡ - YouTube

6月: 新企画のために手伝ってくれる人を募集する.

【悲報】助けて… - YouTube

8月20日: 新企画がスタートすることを告知する. また,このタイミングで萌実が別チャンネルとして分離し,活動するようになる.

エイレーンから重大発表です!!!【アニメ】 - YouTube

8月25日: エイレーンとして最後の動画投稿をする.

【アニメ】ゲームの世界に異世界転生してみた!!! - YouTube

その後,エイレーンのチャンネルはミライアカリのチャンネルとなる

ミライアカリとエイレーンの関係

以上ミライアカリになるまでの流れを紹介した.

ここからはミライアカリとエイレーンがどのように関わってきたのかをまとめる.

10/24: 新企画としてミライアカリプロジェクトが発表される.

【重要!】新企画スタートします!!!【+チャンネル名が変わります】 - YouTube

10/25: トレイラームービーが公開される.

10/27: ミライアカリとしての初の動画が投稿される.

【自己紹介】ねぇ…聞いて欲しいの…【MiraiAkariProject#001】 - YouTube

動画を見ると,トレイラームービーでは「シナリオ: エイレーン」とあり,自己紹介動画の最初ではエイレーンが「ストーリー編を作っています」と「日常編は関われませんが」とある.

そのため,本来はミライアカリを中心にしたストーリーのアニメが予定されていたのかもしれない.

日常編に関われないと言ったものの,サポート役の相方としてエイレーンはしばらく動画に出続けていた.

例えばこの動画ではVR Chatについて解説をする役をしている.

【速報】次元の壁を越えた!in VRChat【MiraiAkariProject#010】 - YouTube

しかし12月のこのMHWベータの動画を最後にミライアカリの動画には出演しなくなった

【MHWベータ版】モンハンワールドの世界で大暴れしてきた! - YouTube

またこのタイミングでエイレーン時代の動画が半数近く非公開になった

非公開になったのは権利的に危ない動画ばかりである.

生放送に関しても同じ時期からエイレーンのことを話さないようになっている.

ミライアカリの生放送はクリスマスと大晦日の後定期的に行われている.

しかし生放送の中でエイレーンに言及したのは,確認できる限り大晦日の年越し生放送にて投げ銭のコメントを読んだことが最後である.(1:29:13頃)

【大晦日生放送】ミライアカリの2.5次元から配信中! - YouTube

他には5月のTORIKAGO解禁生放送に呼ばれた際,同じゲストのマフィア梶田からの質問に答えた程度である.(10:12頃)

【ミライアカリ×マフィア梶田初共演】『TORIKAGO』情報解禁特番(ダイジェスト編)【トリカゴ スクラップマーチ】 - YouTube

といったように受け答えはするものの,エイレーンの名前を出すことは一切なくなってしまった

ミライアカリを運営しているのはDUOであることが公表されたのもあり,現在は「エイレーンが関わっている」という感じではなくなっている.

株式会社DUO

10/27にはミライアカリ一周年記念のイベントがあるが,このイベントでエイレーンの名前を聞くことはあるのだろうか,気になるところである.

ミライアカリ | Mi:Live2018

活動を続けた萌実チャンネル

2017年の8月に専用のチャンネルができた萌実は,ミライアカリの活動開始前後でも動画投稿を続けていた.

最初はゲーム実況動画が多く,特にPUBGやMinecraftの動画は人気がある

掘る?嫁と〇〇はじめよっ!♥ 【Minecraft #1】 - YouTube

【PUBG】初心者にドン勝するまで帰れないミッションを与えた結果 - YouTube

11月になると,萌実の実況動画の他に,エイレーンとの企業案件動画が作られるようになった.

ハダカになるの!? エイレーンと!? - YouTube

ミライアカリのチャンネルに出なくなった代わりに,エイレーンはこのチャンネルで企業案件動画を中心に活動を開始するようになる.

その他にもエイレーンが以前投稿していたコラージュ動画の企画が復活するなど,「萌実とエイレーン」という雰囲気が強くなってきた.

子作り❤してみた!!! #2【エイレーンのコラージュ♪】 - YouTube

過去のエイレーンに近い内容が投稿されるようになり,着々とファンを増やしていった.

とはいえ萌実に力を入れないという訳ではなく,12/25には萌実がジングルベルの替え歌を歌う動画が公開され,注目を浴びた.

【新曲】ジングル・ウェディング・ベル - 萌実 - YouTube

そして2017年の末には,チャンネル登録者が5万人を突破した.

ヨメミが活動開始する

そんな中,12/24にエイレーンのTwitterアカウントが更新された.

シルエットから萌実がVTuber化されると予想されていたが,実際はよく似たヨメミというキャラクターが活動を開始した.

バーチャル彼女「ヨメミ」【第一話】 - YouTube

萌実の代わりとなり人気を獲得する

ヨメミが登場し,チャンネルの名前も「萌実 & ヨメミ - Eilene」となった.

萌実のチャンネルで活動を開始した理由はこの動画で語られていて,投稿頻度の向上が目的であった.

世界初「バーチャル彼女」YouTuber 始動! - YouTube

そんなタイミングで,萌実の投稿頻度が下がるかもしれないというツイートがあった.

そのため,チャンネルを心配する声もあった.

しかし,ヨメミはミライアカリとのコラボを機に知名度を上げることとなった.

ミライアカリとデスマッチ【負けたらまさかの罰ゲーム♥】 - YouTube

ミライアカリをぶっ倒すぞおおおッ!!!【ヨメミのPUBG】 - YouTube

海外からのファンを獲得する

それに加え,ヨメミ初のフォートナイト動画が投稿される.

この動画では字幕がすべて英語という特徴がある.

【Fortnite】私がフォートナイト最強だアアアアッ!!! #1 - YouTube

海外で人気のゲームということで追加したらしいが,実際効果はあったようでこのタイミングから海外の人気も高くなっていった

字幕を付けているのはエイレーンではないということも特徴だった.

字幕を付けているのは元々でYouTubeの字幕を作成していたグループで,そのグループが作ったDiscordを公式化させ,その人達に字幕の編集を手伝ってもらったという話がある.

ちなみにこの翻訳グループは「Nyan Hello Subs」と呼ばれ,ミライアカリの動画に字幕をつけていることもある.

また,同じ4月にヨメミはビリビリ動画へ進出することになる.

ビリビリ進出にあたって特別な動画を公開している.

https://www.bilibili.com/video/av21439090/

また,他の動画も転載ではなく中国語の字幕付きで投稿されている.

調べてみると,元々ビリビリ動画にはVTuberの動画を翻訳し転載する非公式のチームがいたらしい.

そのチームを公式化させ,翻訳動画を作ってもらっているということらしい.

动态首页-哔哩哔哩

急な進出としての因果関係は不明だが,このツイートの後にビリビリ動画へ進出するようになったという背景がある.

エイレーンは英語と中国語を話せるということもあり,こういった海外の層からもファンを増やし続けることに成功しているということはアドバンテージとなっている.

企業案件と共演

なお,ヨメミが活動開始後,萌実の出番は企業案件動画のみとなった.

それに合わせエイレーンも企業案件の動画にのみ最初は登場していた.

そのためヨメミの動画に登場することは無かったが,最近になって登場することが増えてきた.

一番最初に登場した動画はこれで,ヨメミはエイレーンとは呼ばず「偉い方」と呼んでいる.

【重大発表】ヨメミが日本一の○○に入る!? - YouTube

その後ベノがヨメミと共演する動画が出た.

世界一『ヤバいヤツ』がヨメミをハズカしめる動画!!! - YouTube

そしてヨメミがエイレーンと共演する動画も出た.

ヨメミ初のリアルイベント開催!!【超恥ずかしい罰ゲームも♥】 - YouTube

上2つの動画はどちらも企業案件だったが,ベノもエイレーンもヨメミに甘いというのが分かる動画で,昔からのファンを中心に非常に反応があった.

なお,ヨメミの初期の動画から,テロップが非常に甘いという事が話題になっていたが,共演によりテロップだけでなく実際の接し方も甘いということがここでわかった.

また,9月には東京ゲームショウのブースで動画が流れることもあったが,これがヨメミと萌実の初共演となった.

【TGS】東京ゲームショウのビデオメッセージ公開!! - ニコニコ動画

ヨメミの3D化とエイレーン

8月にヨメミは3D化を行った.

3Dになった後はエイレーンが頻繁にヨメミの動画に現れ始める

ヨメミはホログラムで現実に投影しているという設定もあり,3D化後,エイレーンはリアルの人形として動画に出てくるようになった.

【実験】ドライアイス爆弾でエイレーンさん爆発…!!【検証】 - YouTube

ドッキリ動画では,仕掛け人としてヨメミを泣かせるなど非常に影響力の高い登場の仕方となった.

【ドッキリ】500万円ヨメミさんに投げ銭したらガチ泣き【神展開】 - YouTube

なお,このドッキリ動画については下の記事で詳しくブログに書いている.

ヨメミのドッキリ動画はVTuber界に対するアンチテーゼとなるのか - Re:cohalz

ベイレーンがVTuber化

ベイレーンのVTuberかについても触れておく.

ベイレーンは4/1に突如VTuber化をし,動画を投稿し始める.

ベイレーン復活祭だお!!!!【Vチューバ―?】 - YouTube

エイレーンからもツイートで紹介を受けている.

また,本人のTwitterアカウントも開設される.

アカウント後本人のツイートが話題となった.

とにかく周りのものに対しdisが始まったのである.

同じVTuberのYUAに対してブラックジョークを発し,界隈を騒然とさせたこともある.

エイレーンとベイレーンを同一視する人も多かった印象だが,4月の動画でエイレーンと分離するという発言を行ったのもありそう思う人も少なくなったように感じる.

萌恵復活

7月には萌恵が夏実萌恵という名前でVTuber化をし,復活した.

以前の萌恵との関係性は不明だが,ヨメミのことを妹と呼んでいることから公式としては夏実萌恵とヨメミが姉妹であるということらしい.

これはエイレーンが海外のクリエイターと協力して動画を作っているプロジェクトである.

このComdostという人はVTuberのファンアートも描いている人で,昔からエイレーンのファンだったらしい.

「comdost」のプロフィール [pixiv]

なお,エイレーン自体は夏実萌恵の動画に出演したことはない.

その人とツテがあったのかわからないが,チャンネル登録者100万人超えのYouTuberであるMisty ChronexiaBijuu Mikeなどとコラボをすることもあった.

I'm a VIRTUAL YOUTUBER now?!?! The Trap Challenge (Feat. Natsumi Moe) - YouTube

I BECOME A VIRTUAL YOUTUBER! with Natsume Moe (English Virtual YouTuber) - YouTube

そのため,夏実萌恵は海外を中心に確実にファンを獲得し続けている.

とはいえ動画では日本語字幕があるため英語がわからなくとも楽しめるようになっている.

夏実萌恵に関しても過去にブログに書いたことがある.

英語ネイティブのVTuberという可能性 - Re:cohalz

他のVTuberに与えた影響

以上,エイレーンと周りのキャラクターにに関する紹介を行った.

次はエイレーンが他のVTuberに与えた影響をまとめていく.

エイレーンに影響され動画投稿を始め,VTuber化する

ハネたんというVTuber化もしたキャラクターがいる.

このキャラクターが動画投稿を始めるきっかけはエイレーンと言っている.

エイレーンとも交流があり,エイレーンの動画にゲスト出演したこともある.

この動画の2:55頃に出演している.

IF POKEMON GO WAS REAL!!! - YouTube

そんなハネたんがVTuberデビューを果たした際のツイートはエイレーンにもリツイートされている.

VTuberが曲をリミックス

エイレーンはかつてエボラちゃんというキャラに歌わせた動画が昔あったのだが,それをひまりというVTuberがリミックスをしたこともある.

月ノ美兎の宣伝をし,配信中にビビらせてしまう

エイレーンが急に月ノ美兎の宣伝をしたことがある.

それを月ノ美兎が配信中に把握し,ビビってしまうということがあった.

エイレーンにツイートされてクソ雑魚化する委員長 - ニコニコ動画

普段ツイート自体しないエイレーンがなぜ突然宣伝を初めたかは不明だが,前にヨメミの動画を紹介してもらったお礼という説がある.

もしくはその後にあったコラボ動画の前振りだったという説もある.

月ノ美兎×ヨメミついにコラボ!!【にじさんじ】 - YouTube

生放送に現れ,場がざわつく

最近あったことでは,VTuberの配信に突如現れコメントを残すことがあった.(10:20頃から)

【新人Vtuber】10分で分かるマール#1【エイレーンさん登場!?】 - YouTube

この他にも何人かのVTuberの配信で挨拶をしているらしく,製作中の動画の企画とのことだった.

コメントだけではエイレーンなのかヨメミなのか判別はつかないが,放送主のツイートを見るとエイレーンであると後から判明したらしいというのがわかる.

また,過去にはヨメミがのらきゃっとの放送に遊びに行ったこともある.

そしてエイレーンの3D化へ

そんなエイレーンが活動を開始してからから4年半が経ち,ついに2Dキャラクターではなく3Dとして活動を開始するようになった.

【重大発表】エイレーンが3D化しました!!!【ヨメミとドッキリ用】 - YouTube

また,エイレーンチャンネルが活動を開始するようになったとも同時に告知された.

www.youtube.com

しかし,この3Dモデルは一体何のために作られていたのだろうか?

モデラーであるDigitrevx氏のツイートを見に行くと進捗が公開されている.

また,ファンディングサイトによる本人の投稿から2017年9月には既に完成していたらしいことがわかる.

そのため,本来はミライアカリのチャンネルで使う予定だったのかもしれない.

【重大発表】エイレーンが3D化しました!!!【ヨメミとドッキリ用】 - YouTube

5月に投稿された動画で3Dモデルに言及している.

【新VTuber】世界一ヤバい『バーチャル YouTuber』が誕生したいそうです!!! - YouTube

何故このタイミングかというと,同じ5月にDigitrevx氏がDiscordにてエイレーンの3Dモデル画像を公開したことがあり,一部で話題になっていたからという話もある.

この時点では使う気はまだなかったのかもしれないが,ヨメミが3D化をした後の企画の反応の良さから自身を動かすことに気持ちが変わったのかもしれない.

リンク集

以上エイレーンの歴史と関連する動画を紹介した.

エイレーンに関係するリンク集を最後に載せておく.

  • エイレーンのPatreon
    • ヨメミと過去のエイレーンに関する壁紙等が置いてある
    • 上で挙げたベノやエボラちゃんの音源もここに置かれている

www.patreon.com

  • 萌恵のPatreon
    • 萌恵の設定や動画内で出てきた画像が置かれている
    • 3D化に関する情報や萌恵以外のスケッチなどもある

www.patreon.com

  • エイレーンのEnty
    • 著作権的に没になった動画・企画や3Dエイレーンの画像などが置かれている

enty.jp

  • エイレーン公式Discord
    • リンク https://discord.gg/PCFxgzY
    • 交流兼翻訳の公式サーバ
    • 過去にはDigitrevxやエイレーン本人が登場したこともある

まとめ

以上,エイレーンに関して自分が知っている情報のリンクをまとめてみた.

エイレーンは今後も色んなことをやっていく予定で,これからも注目していきたいと思っている.

また,グッズも出るようである.

echance.jp

この記事を見て少しでもエイレーンファミリーに興味を持ってくれる人が増えたら嬉しい.

アニメ版イングレスを見た

Netflixで全話配信されていたので一気に最終話まで見た.

ネタバレにならない程度の感想などを書いていく.

Ingress: The Animation | Netflix

結論

思っていた以上に良かったし,安心して人に勧められるような内容だった.

Ingressプレイヤーから見て

Ingressの世界観を保ったまま,新しくストーリーが始まったという感じの内容.

既存のプレイヤーは5話からが特に面白いと感じるかもしれない.

Ingressのストーリーの流れを知っていると楽しめる部分も散りばめられており,

本来のストーリーが気になる人は公式の小説やSNS上に上がっているストーリーの日本語訳サイトである「LYCAEUM NET INGRESS」を見るといいかもしれない.

イングレス ザ・ナイアンティック・プロジェクト

イングレス ザ・ナイアンティック・プロジェクト

ingress.lycaeum.net

とはいえこれらを知らなくても全く問題はないストーリーにはなっている.

プレイしたことのない人は用語解説がある3話まで見ると雰囲気がわかりやすいと思う.

気になった点

Ingressプレイヤーなら知っているとあるキャラが登場する場面があるが,その部分に関して説明不足だったように思う.

もう少し本来のストーリーを知っているとわかる内容なのかもしれないが少なくとも自分はわからなかった.

アニメとして

アクション要素だけでもかなり見ごたえあると思った.

センシティブと呼ばれるいわゆる能力者が多く登場し戦いを繰り広げるので,意外とアニメにピッタリなんだなと思った.

映像も当然綺麗な青や緑が映えていてとても良かった.

おわりに

少しずつ見ていくつもりが先が気になり一気に見てしまった.

そういえば,次期バージョンでIngress Primeは来月にローンチされる予定ということで,アニメも面白くなってきたタイミングに合わさるのかもしれない.

楽しみになってきた.

www.netflix.com

Lambdaで動くupdate_nameをGoで書いてみた

Go言語の練習ついでに作ってみた.リポジトリは以下.

GitHub - cohalz/update_name: update_name by Go Lambda

仕様

  • CloudWatch Eventから毎分のスケジュールを設定する.
  • 変更ルールとAPIキー情報を入力として渡してLambdaを実行する.
    • トリガーのタイプ(前方一致か後方一致か),トリガーとなるワード,変更後の名前にトリガーを含むか,リプライの内容(%sの部分に変更後の名前が埋め込まれる)を設定できる.
    • 1つのLambdaに対しAPIキーの違うイベントを複数Lambda渡すだけでマルチユーザでの利用が可能.
  • 入力例
{
    "rules": [
        {
            "triggerType": "suffix",
            "triggerword": "はる"
        },
        {
            "triggerType": "prefix",
            "triggerWord": "@cohalz update_name ",
            "omitTriggerWord": true,
            "replyFormat": "%sになりました"
        }
    ],
    "credential": {
        "accessToken": "",
        "accessTokenSecret": "",
        "consumerKey": "",
        "consumerSecret": ""
    }

ここからは実装についての話をする.

UserStream無しでupdate_nameを実現するために

8月にUserStreamが終了し,リアルタイムで反応をすることが出来なくなった.

そのため,UserStreamでないAPIを使って出来る限り早い反応を返すようにしなければならない.

Twitter APIのRate Limitは15分に15回までの制限が掛けられている.

参考: Rate Limiting — Twitter Developers

つまりは1分に1回のペースで動かすということになる.

幸いにも,CloudWatch Eventはトリガーとして毎分が選べるため採用することにした.

取得するツイートが被らないようにするために

毎分取得するとして前回取得したツイートと被らないようにする必要がある.

被ってしまうとTLの流速が遅いときなどは毎回反応してしまうという事が起きてしまう.

それを防ぐ方法がパラメータで用意されている.

GET statuses/user_timeline — Twitter Developers

パラメータにsince_idとしてツイートのidを追加することで,そのツイートid以降のツイートのみを取得することができる.

そのため,取得するツイート数の最大値であるcountパラメータを200にしつつ,since_idを設定することにより最大限TLが重複なく拾えるようになる.

当然,1分に200以上のツイートが流れている場合は反応できない可能性があるので注意が必要.

Lambdaから前回の状態を取得する

では,状態を持たないLambdaでどうやってsince_idを保存・取得するかということについてはLambdaの環境変数に書き込むという方法を取った.

外部のシステムに依存しないKVSとして簡単に利用することができるが,いくつか制限があるため,利用する際は気をつけないといけない. 例としては,

  • キーの名前や保存容量に気を付ける
    • 特に容量は合計で4KBまでなので大量にデータを保存しておく事はできない.
    • 公式のドキュメントに制限が書いてある. docs.aws.amazon.com
  • IAMに権限の追加が必要
    • lambda:UpdateFunctionConfiguration の権限が追加で必要になる.
  • 環境変数をアップデートする際,自分で定義した環境変数のみをすべて渡す必要がある
    • Lambdaの環境変数はシステム側で用意された環境変数が含まれている.
    • 自分で定義した環境変数のみを渡すために,自分で定義する環境変数はprefixを決めておくと扱いやすくなる.
  • ライブラリの名前空間が衝突する
    • 今回は"github.com/aws/aws-lambda-go/lambda""github.com/aws/aws-sdk-go/service/lambda"が同じlambdaという名前になるためリネームが必要.

ここまで説明した環境変数に書き込む部分の実装例がこちら.

import (
    "log"
    "os"
    "strconv"
    "strings"

    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    lambda_sdk "github.com/aws/aws-sdk-go/service/lambda"
)

func setSinceIDToEnv(functionName string, screenName string, sinceID int64) {
    sinceIDStr := strconv.FormatInt(sinceID, 10)

    sess := session.Must(session.NewSession())

    svc := lambda_sdk.New(
        sess,
        aws.NewConfig().WithRegion("ap-northeast-1"),
    )

    m := make(map[string]*string)

    envs := os.Environ()

    // 自分で定義した環境変数のみをkey-value形式のmapに保存
    for _, env := range envs {
        if !strings.HasPrefix(env, "sinceID_") {
            continue
        }
        envKeyValue := strings.SplitN(env, "=", 2)
        m[envKeyValue[0]] = &envKeyValue[1]
    }

    m["sinceID_"+screenName] = &sinceIDStr

    env := &lambda_sdk.Environment{
        Variables: m,
    }

    input := &lambda_sdk.UpdateFunctionConfigurationInput{
        FunctionName: &functionName,
        Environment:  env,
    }

    _, err := svc.UpdateFunctionConfiguration(input)

    if err != nil {
        log.Fatal(err)
    }

}

名前変更部分について

update_nameの要である名前変更についてもすぐに実装ができたわけではなかった.

ChimeraCoder/anacondaというライブラリを使うことにしたのだけれど,名前を変更するエンドポイントに対する関数が実装されていなかった.

もう少し探してみると,Pull Requestはあるが余計な機能追加によりコンフリクトが起きていて放置されていたという状態だということがわかった.

そのため,その機能のみに絞って自分がPRを送ってみることにした.

github.com

送ったあとに気がついたのだが,このライブラリはしばらくメンテされていない状態だった.

他のPRも放置されていてマージされる気配もないので,今はforkした自分のリポジトリから使うようにしている.

[追記] マージされていた.

その他

ローカルで実行確認をするために,SAMでテンプレートを書いた.

ローカルではfunctionNameがtestという名前になる他に,環境変数の保存ができない気がしたためにローカルでは実行していない.

SAMのデプロイ・テストにはMakefileを用意するのがやはり便利だと感じた.

余談

前回update_nameを作ったのは三年半ほど前のことで,何故か今あまり書いていないRubyだったのもありメンテナンスできていなかった.

今回の機会にそれがGoとLambdaでメンテナンスしやすい形に変更できたので良かった.

Goでなにか書いてみるのは初めてだったけど,VS Codeの拡張もあり意外とスムーズに実装できた.

今後おもちゃを作ってみるときはGoで書いてみようと思う.

github.com