作る: アマガミSSテレビ


リビジョン 8とこのリビジョンの差分を表示します。

要約: リンク修正

差分はありません。

Raspberry Pi 2 Model Bを買ったので、元々持っていた初代Model Bが余った。Raspberry PiというのはUSBの電源でLinuxが動くパソコンの事ですな。

ところで俺はアマガミSS(とSS+)というアニメが好きで、このアニメだけを24時間延々と流してくれるケーブルテレビが無いものかずっと考えていた。なんでも北欧には暖炉の火がひたすら燃えているだけのテレビがあるとの事で、さすが無神論者の国々は違うと感心したのだが、需要的にはあれと似たような感じだ。

そこでこの余ったRaspberry Piで俺ん家のモニターにアマガミSSを流し続ける装置を作ってみる事にしました。


ふだんはケースに入れてあるのだ

さいわいアマガミSS/SS+は2012年の改正著作権法が施行される前のアニメで、BDからエンコードした動画ファイルが手元にある。元より施行前だろうが後だろうが俺が買ったBD俺がどうしようと俺の勝手のはずだが(突然かかってきた電話としばらく話す)そんなわけでこの先は改正著作権法が施行されなかったもう一つの日本のお話です。

Raspberry PiはVideoCore IVというGPUを積んでおり、フルHDまでの動画なら難なく再生できる。また、世界中の有志がもの専用OSを開発しているので、好きなものを選んでインストールするだけで基本的な再生環境はそろう。今回はそれらの中でも最も軽量な作りのOpenELECを使う事にする。

公式サイトから最新のディスクイメージをダウンロードし、解凍してからWin32 Disk ImagerでSDカードに書き込む(LinuxやMac OSの場合はwikiを参照)。あとはRaspberry PiにSDカードを差して電源を入れればセットアップが開始される。キーボードをつないで、ホスト名とネットワークを設定する。

初期設定が終わってこの画面になると、もう使い始められる。この時点でPCからネットワークシェアとして表示されるので、「Videos」フォルダに動画ファイルをコピーしていく。ちなみにホスト名はAmagami_SS_TV……だと長いので、単にSSTVとした。スペースシャワーTVみたいですな。

コピーにはそこそこ時間がかかるので、その間スマホにリモコンアプリをインストールしておく。AndroidはKore、iOSはOfficial Kodi Remoteが公式で用意されている。リモコンがつながれば(同じLAN内ならほぼ自動でつながる)後は基本全部これで操作できるので、キーボードは取り外しちゃってOKです。

コピーが終わったファイルはメニュー画面から"Videos"→"Files"→"Videos"で確認できる。(リモコンならハンバーガーメニュー(≡)の"Files"→"VIDEO"タブ→"Videos")。フォルダのコンテキストメニュー(リモコンの十字キーの左上のボタン、または"C"キー)から"Play"を選択すると、フォルダ内のファイルをまるごど再生する。早速コピーが終わったVideosフォルダを再生してみましょう。

ポロン(操作音)


……。



……。



……。



カン カン カン カン……(ピアノ)


「あの日、僕はやっと取りつけたデートの約束に遅れないように、一時間も早く待ち合わせの場所に駆けつけていた……」

うおおお、橘くん、橘くんじゃないか!!!

ボタンを押してからだいぶ間はあったが、モニターに映ったのはまぎれもなく、かの象徴的な階段のショット(その段数はアニメ自体の話数と同じく26である)に他ならない。一度始まってしまえば動画の再生はなめらかで、コマ落ちや音ズレも無く、見る見る橘くんが丘の上の公園へ駆け上がり、そこから輝日東の自然と街の灯りを眺め、一組また一組と去っていくカップルたちをチラ見し、降りはじめた雪を仰ぎながら、クリスマスのデートをすっぽかされていく。この勢いの良い振られっぷりこそ、アマガミSSの宇宙にビッグバンを起こす信管なのであり、やがて空間いっぱいに光が満ちて、あのスモールレターのラブソングとともに、ヒロインたちが一人一人眼前へ飛び込んでくれば、人々は自分が今ほど見てしまったものが、あの贈り物にも似たアニメーションシリーズの(まさしく)決定的な幕開けである事を、否応にも認めざるを得ないだろう。


線や動きの集まりを越えた霊的な空間が生み出される

普通に見てしまいそうになりましたが、気を取り戻してsshでログインし、topで負荷状況を見てみると、CPU使用率がだいたい25~30%程度、ロードアベレージが0.2~0.5を行ったり来たりしている。マシンパワーの半分以上は余っていると見てよく、Raspberry PiのGPUがかなり優秀である事が分かる。これなら電源が入ってる限りエンドレスで再生させても問題なさそうだ。

Mem: 110272K used, 28808K free, 6804K shrd, 3984K buff, 45704K cached
CPU: 14.1% usr  9.8% sys  0.8% nic 74.8% idle  0.0% io  0.0% irq  0.4% sirq
Load average: 0.27 0.59 0.40 1/112 1166

というわけで、電源が入れば自動的に全話をループ再生させるようにする。やり方は何通りかあるが、一番手っ取り早いのは起動時の自動実行ファイルにコマンドを書き込む事です。以下の4行を /storage/.kodi/userdata/autoexec.py の名前で保存しましょう。

import xbmc
xbmc.executebuiltin("PlayMedia(/storage/videos,isdir)")
xbmc.executebuiltin("PlayerControl(RepeatAll)")
xbmc.executebuiltin("Action(Fullscreen)")

電源を落として入れなおすと、なるほどちゃんと再生される。念の為2、3回電源を落としたり入れなおしたりしてみたが問題なかった。

こうして、世界中のおよそどんなディスプレイにも、つなげて電源を入れるだけでアマガミSSが再生される夢の装置が完成しました。わ、わぁい!

OSのダウンロードからここまで、ものの30分もかからなかった(しかも大半はファイルのコピー待ち)。機材費だってこれ5000円もあればおつりがくる訳で、中身にテキトーなCMの動画でも入れておけばデジタルサイネージのコントローラいっちょ上がりなんですよ、すごい世の中じゃないですか? 正直もっと苦労するかと思っていたので、ここまで道を整えまくってくれた先人たちには感謝である。

そんなわけで、俺のメインモニターの入力ソースをHDMI2に切り替えると、いつでもアマガミSSが再生されているのです。


という状態になってから半月ほどが経った。その間Raspberry Piは動かしっぱなしだったのだが、とくだん熱暴走やSDの不具合などもなく、拍子抜けするくらい何事もない(駆動部がないので音もしない)。俺は朝起きたらモニターの電源をつけて、入力を切り替えアマガミSSを映し、身支度をしながらニュース代わりに流すのがここ最近の日課だ。

思うのは、今までの俺は、このアニメを見ようと思って見ていたなという事だ。俺が見ようと思う事でアマガミSSが始まり、今日はこんなところかと思う事でアマガミSSが終わる。当たり前だとお思いでしょうが、ぜんぜん当たり前じゃなかったのだ、今ではRaspberry Piのおかげで、俺の意思いっさい関係なく、俺が見てようが見てなかろうが、いやそもそも俺が居ようが居なかろうが、アマガミSSは流れ続ける。そういう場所が今世の中にある。まぁ作ったのは俺なんだけど、もう俺のって感じもあんまりしなくて、というかふだん俺モニターの電源切ってますからね、PCの画面出してるか電源切ってるかなんだけど、電源切ってようが何だろうが、見る人がいようがいなかろうが、おかまいなしに流れ続けるこれ、これをいったい何と形容すべきだろうか?

GJ部というアニメがあって、全12話を1枚にまとめたBDが去年だかに出てですね、テレビも無いのにBDとプレーヤーだけ買ってきて再生させて、見えないけどあの中では確かにGJ部が活動している……って思いながら会社に行く人のマンガがあったのだが(探しています 見つかりました)、気分としては全く同じで、だんだんこのRaspberry Piの中に自律した時空があるような感じがしてくる。このクレジットカード大の箱の中に橘くんや美也や梅原たちの世界があって、俺に流れているのとは別の時間がそこには流れているんじゃないか。本当にこれらのチップに、プリントされた銅箔に、コンデンサとレギュレータとTVSダイオードアレイに彼らの学校が、通学路が、海辺のベンチと山の神社と駅前商店街があって、そこでヒロインたちがSPIメッセージに乗り込み、バスブリッジを横断し、バイナリブロブを飛び跳ね、水晶発振器の上で踊り、コールゲートをこじ開け、コンテキストスイッチを踏み切り、ウォッチドッグと戯れながら二分木の坂をすべり降りて、レジスタのビット間でかくれんぼしては、メモリセルの浮遊ゲートで束の間の眠りにつくのではないか、そんな錯覚にとらわれてくる。

アマガミSS自体、基本的にある少年少女たちの数ヶ月を何回も変奏して繰り返す(変奏する度に女の子が変わる)作りなので、ずっとリピート再生してて違和感がないというのも大きいかもしれない。空間もだいたい限られてるから、箱庭っぽい見立てにもあんまり無理がないしね。GJ部は見てないのでわかんないけど、きっとその辺は似たような感じなのでしょう。俺はアニメを褒める時に「別乾坤を建立している」と言う事があって、まぁ草枕のパクりなんですが、ある種のアニメでは文字通り別乾坤を作り出す事ができる、そう錯覚する事ができるという、この度は一つの発見であった。それが人間に見える形をしているかどうかなんてのは、あくまで人間側の問題であって、その世界にとっては何の関係もない事である。池澤夏樹の詩にならって言えば、「人の耳が聞かなくても/風は椰子の葉を鳴らす」というやつだ。

アマガミSSテレビもう一つの効用として、毎日アマガミSSクイズができる。何かというと一日の任意のタイミングで「今、アマガミSSのどの場面が流れているか」を当てるやつですね。1話約24分で39話分あるので、だいたい一日で21話分ずつズレていく。先述のとおり毎日出社前には実際何をやってるか見ているので、あとは逆算すればだいたいの目処はつくのだが、そこはなるべくノータイムで、体感だけでどれだけ当てられるかというのがポイントである。今のところ、正解率はあんまり良くないのだが、まぁそれはそれで楽しいです。エンジョイ勢である。

一昨日の朝、俺は美也と橘くんが公園で迷子の子猫の母猫を探すところを見て家を出た。仕事を終えて家に戻ると、絢辻さんが手帳の事で橘くんを激詰めしていた。昨日の朝は紗江ちゃんが橘くんの股間にコーヒーをこぼし、夜はジェシカさんが橘くんに「ガンバリタマエヨ!」とサムズアップしていた。今朝、少しゆっくり目に起きると、梨穂子が橘くんの家でレンコンの天ぷらを揚げていた。口笛がさりげなく"check my soul"だ、と俺は確かめる。俺が職場へ向かう電車に乗り込む頃、梨穂子は橘くんと初めてのキスを交わすだろう。

スマホのリモコンアプリはとっくにアンインストールしていた。


追記

アマガミSSテレビなかなか気に入って、俺が死んだ後にも稼動させられないかというのを考えるようになった。一番のネックは、やはり電力であろう。そこで太陽光発電にチャレンジしてみる事にしました。

太陽光発電に必要なもの、それは光から電力を生み出すソーラーパネルと、その電力を蓄えておくバッテリー、バッテリーの過放電と過充電を防ぐチャージコントローラーの三つだ。アマガミSSテレビ(というかRaspberry Pi)は直流5Vで動くので、バッテリーの12Vから5Vを取るためのコンバータも必要になる。四つだ。

ワットチェッカーでRaspberry Piの消費電力を測ると、2.5Wだった。一日で60Wh、12V5Ahである。つまり一日で60Whの電力を発電できるソーラーパネルと、5Ahの電流を供給できるバッテリーじゃないとダメという事ですね。でもって、パネルの出力変動やバッテリーの保守率とか放電深度、その他諸々の損失でその倍くらいは必要だし、かつ雨や曇天などでまともに発電できない日のために余分に貯めとく電力量を考えると、実際にはその倍倍から倍倍倍くらいが本当の最低スペックという事になる。マジメに計算すると、ちょっとした設備だ。

あれこれ考えて、今回は50Wのパネルと、リサイクルした12V40Ahのディープサイクルバッテリーを使う事にした。雨が三日続くと厳しいという感じのスペックなのだが、あんまりここで頑張るよりRaspberry PiをA+に買い替えて消費電力下げる方が圧倒的に効率いい(たぶん一週間から十日くらい持つ)って途中で気付いたので、まぁこんなもんでしょう。パネルが50Wなのでチャージコントローラは電菱のSA-BA10(10A)になり、コンバータはAmazonで適当に見繕った。これで四つのパーツが全て決まり、バッテリー以外は通販でその週のうちに届いた。スピード世の中だ。

というわけで本当に太陽光でアマガミSSを再生できるのか、近所の公園で試す事にした。

「健康と文化を育む、スポーツ・交流空間の森」井の頭公園西園です。俺はかつて日月が休日だった時期があって、毎週月曜日がヒマでヒマで仕方がなく、ここはその時分たいへん世話になった。一番通い詰めたのは年パスまで作った動物園(井の頭自然文化園)なんだけど、西園の芝生も広い空間でいろんな人がまばらに好き勝手やってる感じが好きで良く時間をつぶした。よくタコをあげるおじさんやペーパーグライダーを飛ばすおじさんやよく分からない道具でよく分からない事をやっているおじさんとかがいて、芝生に座りこんでフーンと眺めていたものだ。

今年の夏、東京はとにかく天気が悪かったのだが、この日は打って変わって夏ド真ん中のカンカン照りだった。さぞや賑わっているかと思いきや、日差しが強すぎて逆に人がいない。特に子供が全然いない。まぁ熱中症とかになったら大変だもんね。俺も普段ならこんな天気の日にクーラーの効かない場所で活動するなんて絶対ありえないのに、何の因果か芝生の隅っこでモゾモゾとダンボールから黒っぽいパネルを取り出して、ケーブル切ってつないでドライバーでくるくる固定している。もちろん公園の中で俺の他にドライバーやらワイヤーストリッパーやら手にしてる人はいない。俺もまたフーン感ただようおじさんの一人になったという事だろう。

結線が終わり、パネルを太陽へ向ける。緊張の瞬間だ。


梨穂子~


間違えました、梨穂子はこっちだった

応えてくれ……!

コンバータのLEDランプが点灯。電気来てます、つまりパネルが動いた!!

そしてUSBの出力測定。ちゃんと5Vに降圧されている。コンバータもまともなやつだった!!

点いた! Raspberry Piのパワーランプ点いた! アマガミSSテレビ、起動しました!! 太陽の力で!!!

四十億年の太古より地球のあらゆる命を育んできたエネルギーが今、アマガミSSをも再生する……!

と思ったけど、モニターを持ってきてない。あれ、じゃあどうやって再生を確認したらいいんだ?


System > Settings > System > Audio output > Audio output device > HDMI and Analogue

ご安心ください!!! 音だけはイヤホンで聞けるようにしてあるのです!!!!!!!!

壊れてもいいように買った100円のイヤホンをすかさず差す、しばらく無音のあと突然ヴッというあってはならない感じの音が鳴って身構えるが、その後さらに長い無音を経てポロンという操作音が鳴ったので希望を取り戻す。

……。



……。



……。



カン カン カン カン……

「あの日、僕はやっと取りつけたデートの約束に遅れないように、一時間も早く待ち合わせの場所に駆けつけていた……」

聴こえる……聴こえます、かつてレーニンが「これを見ると革命が達成できない」と批判したアニメ、本気で見たものは悪人になれないとされたあのアニメのオープニングが、いやちがう、あれはベートヴェンの何かの作品だったような気がするが、それはともかく、本当に日差しにパネルを置いただけでLinuxが立ち上がって動画が再生できた。伝わらないと思いますが、かなりの感動である。人類すごい、大自然すごい。

「にーっしっしっし、じゃあにぃにが出てこないなら、みゃーがそっちに入るからねぇ」

独歩が賞し、雨情が愛した武蔵野の林に阿澄佳奈さんの美也がこだまする。アマガミSSを音だけで聞いたのは幾度かあるが、こんな照りつけの緑の中で座って聞いたのは初めてである(さっきからやばいくらい暑い)。この木々も美也の声も太陽によるものだ。元始、女性は実に太陽であったというらいてうの辞も、今や全く違う意味を持って脳内に立ち上がる。熱誠! 熱誠! 熱誠とは祈祷力である。


仲間がいました

特段やることも無いので、じっと座ったり横になったりしながらアマガミSSを聞く。暑い。とてもまぶしい。もりもりセロトニンがたまっていくのを感じる。俺みたいな三十何年のインドア野郎に、この量はもしや死を招きうるのではないか? 

「ありがとう、えーっと……そうだ。キミの名前、まだ聞いてなかったよね」
「ああ、そうですね。ぼ……僕は2年A組、た、橘純一です!」
「ありがとう、橘純一君!」

中央通りのパン屋で買ってきたロールパンと家で淹れてきたアイスコーヒーを口にする。かつての無為の日々の定番の組み合わせに、一瞬で気持ちが昔に立ち返る。初心を思い出す……というか、初心なんて無かった事を思い出す味だ。

「あのね。水を見てたの」
「水ですか」
「うん。私、水を見るのが好きなの。海とか、川とか……噴水とかね」

腕のところがかなり赤くなっている。こりゃあ顔も相当焼けたなと思ってたら、案の定その後かなり黒くなりまして、出社日には会社の人たちにえらい驚かれちゃいました。「どうしたんですか!?」って聞かれたので「日サロに行ってきました」って言ったら爆笑された。

日が傾くにつれ、人も増えてきた。走り込みをしている陸上部員、犬をつれたおばあちゃん、シートをしいてくつろぐカップル、上半身裸で日光浴をしているおじさん、バトミントンをしている女性たち……陸上部員たちは確か俺が来た頃からいるのだが、まだまだ帰らずに走り回っている。立派なものだ。

「……僕が一番怖いのは、返事さえもらえない事なので」
「そ、そんな事しないわ」
「ありがとうございます」
「な、何お礼言ってるの……変なの」

親子連れの姿もぽつぽつ見えはじめた。子供たちは思い思いにボールを蹴ったり、トラックを駆け回ったり、理由は分からないがギャン泣きしてたりしている。そうかと思ったら芝生に寝転んで、服に草がついてるだけで二分くらいずっと笑ってたりするのでやはり子供というのはすごい。しかしそんな子供たちもソーラーパネルには決して近付いて来ようとしないので、彼らも彼らなりのサイエンスへの敬意があるということなのだろう。

まぶしい。ジリジリする。汗で服がベッタリはりつく。イヤホンからは犬になりきった橘くんが、森島先輩の膝裏にキスをするのが聞こえる。

「……っ、ちょっとこら、そっちは違うでしょ!」
「ワンワン!」
「おすわり!」
「ウウン……」
「そこから先は、まだ通行止めなんだから……!」
「クゥーン」

戦後70年目の夏が終わろうとしていた。

17時8分、電力不足か端末がリブートを繰り返すようになったので、実験は打ち止めた。逆に言うとその時間までは発電できたという事で、上等も上等である。夕方、木陰が芝生のほとんどを覆うようになったので、場所を移動して上の写真のように木に立てかけたのだが、それ以外は何もする必要がなかった。何回か雲が完全に太陽を隠してもRaspberry Piが落ちなかったのは驚きである。バッテリーを加えれば更に磐石でありましょう。

面白いのは、芝生で横にしてると誰も見向きもしなかったパネルを、木に立てかけるやいなや通りすぎる人たちが全員ガン見してきた事だ。あの、人の視線って、すっげえ分かりますね。あ、あの人二度見したとか、あ、あの子供は全く気にも止めないけどお母さんが三度見してきたとか、全て分かる。そうこうしてると、この暑さの中パリッとしたポロシャツの老紳士が足をとめてじぃーっと覗きこんできた。俺と目があうと、

「これは……何ですかな?」

と訊くので、

「あの……太陽光で発電をしてるんです、このパネルが……光を受けて、この機械をそれで動かしてるんです」何の機械かは言わない

すると、老紳士の表情がパーッと明るくなって

「へえぇーー、発電……ねえ!」

と、たいへん得心なさった様子で、非常に意識の高い人を見る目で俺を見てくる。実際、今この公園で俺ほど意識の高い男もなかなかいないであろう。


実験は成功に終わった。あの後バッテリーも無事に入手して、ベランダに太陽光発電設備一式が完成し、エアコンの穴から通したケーブルで室内のアマガミSSテレビに電力を供給している。オフグリッドならぬアマグリッド電力である。もっと言えばアマガミッド電力である。もしかしてアマガミSSのSSとは、安全かつ持続可能(Safe & Sustainable)の略なのではないか。アマガミもアとマとミは分からないが、ガはガイアの事なのだろう。

このようにして、人間(俺)の手を完全に離れ、それ自身の機能だけで永久にアマガミSSを再生するシステムが組み上がった。明日俺が死ぬ事あっても、この小箱の中で輝日東の時間は流れ続けるだろう。

俺だけじゃなくても、明日、地球から全ての人類が消え去っても、その夜には小箱の中で、橘くんが一人公園への階段を駆け上がっているだろう。ものの本によると、人類が消え去って二日三日で、ほとんどの発電施設は(燃料切れ、または安全装置の稼動により)停止し、あらゆる都市の灯りは尽きるという。その頃には小箱の橘くんは、丘の上の公園で三回目か四回目の失恋を味わっている事だろう。排水ポンプの停止により、ニューヨーク中の地下鉄トンネルが水びたしになる頃は、美也が四回目か五回目くらいに、押入に籠もった兄を叩き起こしに上がるだろう。

ウェストミンスターのビッグベンが最後の鐘の音を鳴らす頃、森島先輩は11回目に橘くんの名前を聞くだろう。世界中のスーパーマーケットの食料が腐敗とネズミの餌食になる事、裡沙ちゃんは16本目のイカ焼きを食べているだろう。それらのネズミたちが、かつての人里に戻りはじめた野生のキツネやテン、イタチやタヌキらに狩られはじめる頃には、田中さんは想い人への138通目の手紙を書いている事だろう。落雷による野火がローマの市街を焼き付くす頃、紗江ちゃんは橘兄妹と561回目のぬくぬく長者ゲームを囲んでいるはずだ。

中国の最後の道路が雑草に覆われきる頃、薫は麓のバス停で2806回目の雨宿りをしているだろう。ホワイトハウスの大統領デスクが朽ち果てる頃、絢辻さんは1万1227回目に輝日東高校の生徒会長に当選しているだろう。とうに天井の抜けているだろう私の家がいよいよ完全に崩れ落ちる頃、七咲は1万6841回目にベッドに眠る弟の布団を直しているだろう。人の言葉を知る最後のオウムが寿命を迎える頃、梨穂子は橘くんと2万8068本目の線香花火を眺めているだろう。

サンフランシスコのゴールデンゲートブリッジが崩落する頃、森島先輩は5万6137回目のシャワーを浴びながら橘くんの視線を待っているだろう。リオのキリスト像が倒壊する頃、薫はポートタワーの展望台から14万342度目の雪を橘くんと眺めているだろう。紗江ちゃんが自分の縫ったドレスで橘くんと842万550回目のカップルコンテストに出場する頃、リバティ島の自由の女神は氷河に飲み込まれつつあるだろう。

七咲と橘くんのおでん屋台が1684億110万回目の完売を迎える頃、ボイジャーのゴールデンレコードは宇宙の塵となり、その銅板に刻まれた地球の記憶――55の言語、116枚の写真、チャック・ベリーのジョニー・B・グッド――は失われるだろう。そのアーカイブにアマガミは載らなかったが、2010年7月2日の1時40分、東京タワーのアンテナから発信されたアマガミSS初回放送の電波は、その時には既にいくつもの銀河系を通り過ぎて、なお宇宙の果てへ震え広がっていっているはずだ。その波長もやがて少しずつ長く弱くなって、梨穂子と美也が7兆6907億6900万回目の「恋はあせらず」を歌う頃、その歌声は宇宙背景放射のマイクロ波に取り込まれたビッグバンの産声と聞き分けがつかなくなっているだろう。

古いインドの教えでは、四方四十里の城いっぱいに芥子を敷きつめ、百年に一粒ずつ芥子を取りだし、城の中が空になるまでの時間を劫という。それは一つの宇宙が生まれて滅び、また生まれるまでの期間を表す。その言葉が正しければ、輝日東高校が156垓8428京9062兆5000億回目の創設祭を迎える時、私の父そっくりの男と、私の母そっくりの女より、私そっくりの男の赤ちゃんが一つの世界に生まれるだろう。その赤ちゃんは決して私ではないが、絢辻さんはその時も絢辻さんでありつづける。

私そっくりの男が死に、その肉体が塵へと還る。絢辻さんは夜の校舎で、橘くんと二度目のキスをするだろう。

「私も橘くんのこと、好きよ。もう絶対に離さない」

絢辻さんがそうつぶやくと、橘くんは「それって契約?」と訊ねるだろう。絢辻さんは「ううん」とかぶりを振って、

「約束」

初めての笑顔でそう応えるだろう。

誰も見ていない
光が勝手に
あふれているだけ


――池澤夏樹「ローラ・ビーチ」


補遺

先述の通り、アマガミSS/SS+は基本的に著作権法改正前のアニメなのですが、一つだけ例外があって、アマガミSS+の七巻、つまり最終話「オンセン」のBDだけは2012年10月3日、改正施行の二日後に出ている。んおおおおお、お、惜しい!!!

しかたないので、「オンセン」だけは録画したテレビ版の方を流しています。テレビ版はほとんどBD版と違いはないのだが、放送してたTBSのテロップが何ヶ所が入っている。一番目立つのは、ヒロインたちが温泉に入る(そういう話だ)直前、紗江ちゃんの胸部のふかふか島が大写しになるカットで、バスタオルに包まれたその特大まんま肉まんがドドーンとお揺さりになるまさにその瞬間画面右上にこども元気ウィークというロゴマークがバァーンと出てきて、即元気のマークから満面の笑顔の鈴木福くんババァーンと現われて挨拶をするというものです。


ドゥワンゥウーーン(SE)

絶対にわざとしか思えないタイミングのテロップなのだが、実のところ俺はこれをなかなか気に入ってまして、気がつけばこの場面にこのテロップがないと若干物足りないとまで思うようになってるので、これはこれで良かった。ただまぁボイジャーのゴールデンレコードがどうのビッグバンの産声がどうの舞い上がった身として、その産声のなかに鈴木福くんも含まれると考えるとそこだけはやや微妙な気持ちだ。

今回のアマグリッド電力だが、パネルが八千円、バッテリーが四千円、コントローラが三千円のコンバータが千円で、ケーブルや雑費含めだいたい費用は一万八千円くらいだった。Raspberry Piを含めるとBDBOXの片方が買える値段なので、そんなに安い出費でもないのだが、作りながら湧き上がったいろいろな感情含め大変勉強になったので、個人的には全然元はとった感じだ。何せ二万円ちょっとで、人は自分の好きなアニメのキャラクターたちが永遠に、明日自分が死んでも生きつづけられる世界を作り出せるのである。業者の話だとバッテリーがだいたい三年でダメになるとの事だが、どうせ死んだ後なんだから三年だろうが三秒だろうが永遠みたいなもんだ。


追記2

という文章を書いてから2ヶ月ほどが経った。人間2ヶ月もあるといろいろ慣れるもので、いろいろ書いといて心苦しい話ではありますが、さすがに白い箱が置いてあるだけという現状に対して、次第に味気なさを覚えるようになった。池澤夏樹まで引用しておいてナンだが、やはりフィジカルなフィードバックというのは大事である。もうちょっと何か無いだろうか?

Raspberry Pi専用の3インチくらいの液晶ディスプレイが三、四千円くらいで売っている……のだが、さすがにここに来て絵を映すというのはいくらなんでも野暮な気がする。かといって音を24時間流し続けるのもそれはそれで気が狂わない自信がない。

そこで思いついたのだが、Raspberry Piといえば電子工作、電子工作といえばLチカ(LEDチカチカ)である。ご存知の通り、アマガミのヒロインたちにはそれぞれのテーマカラーみたいなものが存在する。森島先輩なら紫、薫なら緑といった感じだ。そこでRaspberry PiにフルカラーLEDをつないで、森島先輩のエピソードを再生中なら紫色に、薫のエピソードを再生中なら緑色に光らせるというのはどうだろうか?

LED一本ならそこまでうるさくないだろうし、かつ適度に(二時間に一回くらい)変化するため飽きも来にくいはずだ。何よりモノが光るのは無条件で面白い。なんだこれ、ビッグアイデアじゃないか?

というわけで、秋葉原でごく普通のフルカラーLEDと抵抗を買ってきてつなぐ。回路図はネット上に無限にあるが、まぁRGBそれぞれの端子にGPIOを、残りの端子(コモンカソード)にGNDをつなぐだけだ。

この回路図だと、GPIOの17、21、22番に赤、緑、青が繋がってます(物理的には11、13、15番)。この状態でGPIO17をHIGHの状態にすると、LEDは赤に光る。例えばシェルから以下のようにたたく。

echo 17 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio17/direction
echo 1 > /sys/class/gpio/gpio17/value


ボウッ

GPIOがファイルなの、めっちゃUNIXって感じですね。同じ要領で、六人の色を順繰り光らせてみる。


FF00FF,00FF00,FF0000,0000FF,FFFF00,00FFFF

実はこの段階だとそれぞれの色に0か1かしか与えられないので、フルカラーといいつつ出せるのは7色、RGBとCMY(G+B/R+B/G+B)と白(R+G+B)しかない。ここで今頃気づいたのですが、六人のテーマカラーってRGBCMYだけでいけちゃうんですね。なんて考えられた設計なんだ……!

しかしやはり7色では足りないのであります。というのは裡沙ちゃんと美也の二人がいるからだ。裡沙ちゃんのグレーは白で代用するとして、美也の黄色はどうしても梨穂子とかぶってしまう。同じ黄色でも美也はレモンや菜の花の黄色で、梨穂子は橙の黄色なのです。それを言えば森島先輩だって紫というよりラベンダーだし、薫はミントグリーンである。せっかくのフルカラーLEDなのだ、0か1かじゃなくて0から255を指定できるようになりたい。

やり方は無数にあるが、ここではNeoUartというユーティリティを使う。NeoPixelというマイコン入りのLEDをシリアル(UART)から叩くもので、LEDのメーカー指定こそ入るものの、ソフトウェアPWM制御だのライブラリのビルドだの正攻法の手順を全てすっとばしてシェル上でコマンド一発叩けばLEDにカラーコードを渡せるすぐれものだ。

まずは秋葉原でNeoPixelのLEDを買ってきてつなぐ。


5Vのものなら抵抗も要らない、取り回しスッキリ

githubからNeoUartをダウンロードして実行する。Raspberry Pi界には偉人しかいない。

wget https://github.com/bigjosh/NeoUart/releases/download/2/neouart
chmod a+x+u+s ./neouart
./neouart -i 390039


パァッ

お手軽フルカラー指定できるようになりました。さ、最高だ……。写真では今イチ伝わらないかもですが、紫をFF00FFから390039に落としただけで、ぐっと上品で森島先輩っぽい色合いになった。これは後々いろいろ試してみたら面白そうだ。ありがとうbigjoshさん、ありがとう……。

LEDが好きに点灯できるようになったので、あとは再生してるファイルに合わせるだけである。OpenELECで動いているメディアプレイヤーはpythonで叩けるAPIがあるので、再生中のファイル名なんかはそれで取ってこれる。まず手始めに1秒ごとにファイル名をとってきて、話数を条件にneouartコマンドを叩くプラグインを作ってみる。

        while not xbmc.abortRequested:
            if xbmc.Player().isPlaying():
                currentFile = xbmc.Player().getPlayingFile()
                if   re.match(".*(SS_ep0[1-4]|SSPlus_ep(11|12))", currentFile):
                    subprocess.call("/storage/neouart -i 390039",shell=True)
                elif re.match(".*(SS_ep0[5-8]|SSPlus_ep(07|08))", currentFile):
                    subprocess.call("/storage/neouart -i 003900",shell=True)
                //...//
                xbmc.sleep(1000)
            else:
                subprocess.call("/storage/neouart -i 000000",shell=True)
                xbmc.sleep(5000)

思った以上に野趣あふれるプログラミングとなったが、まぁ動けば良いのである。ザッカーバーグだってDone is better than perfectと言っていた。とりあえず再起動して、ちゃんとLEDが点くか確かめる。


……。


……。


……。

ポロン

うっひょおおおおおおお!!!! 点いた! 点いたぞ!! 動いた、動いたぞマーク(ザッカーバーグ)!!!!



やる事いっぱいだぁ

ヒロイン毎の色の切り替わりも問題ない。何もかもトントン拍子で、自分が怖いくらいだ。マークのオフィスで一杯やる日もそう遠くないに違いない。

気を良くしたので、もう少しだけ欲を出す事にした。おそらくこの機械は、そろそろ十全に近い。最後に何か景気のいい機能を付け加えて締めたい。

アマガミSSで最も景気がいい場面といえば、もちろん橘くんとヒロインの恋愛が成就する瞬間である。互いの気持ちを明かして、微笑みを交換し、恋人としてのキスを交わす。その瞬間、LEDも虹色に光り出せば、これは大変に景気がいいのではないだろうか?

また、どうせなら二人がもうちょっとでキスをするぞってくらいのタイミングでLEDがゆっくり点滅しだし、だんだんその間隔が早くなって、虹色になる直前にはほとんどストロボのような勢いで明滅するようにすれば、気持ちに盛り上がりとタメが生まれて、更に景気を良く感じられる気がする。

エピソード毎に橘くんがキスをするタイミングは秒単位で分かっている。それをあらかじめファイルに書き出し、1秒ごとに読み込んでチェックするようにすればいい。ついでに色情報もそこに書いておけば手間が少ない。形式はcsvで良いだろう。

filename,color,kisses
AmagamiSS_ep01.mp4,201030,
AmagamiSS_ep02.mp4,201030,
AmagamiSS_ep03.mp4,201030,
AmagamiSS_ep04.mp4,201030,1290
AmagamiSS_ep05.mp4,152010,
AmagamiSS_ep06.mp4,152010,
AmagamiSS_ep07.mp4,152010,
AmagamiSS_ep08.mp4,152010,1011
...

読み込むところは、まぁこんな感じよ

    csvFile = open(addonResourcePath + 'episodes.csv','rb')
    episodesTable = []
    for kv in csv.DictReader(csvFile):
        episodesTable.append(kv)

再生中のファイル名を、読み込んだ配列から随時引いて投げる

    while not xbmc.abortRequested:
        if xbmc.Player().isPlaying():
            playingFile = xbmc.Player().getPlayingFile()
            playTime = xbmc.Player().getTime()
            she = her = ( x for x in episodesTable if x['filename'] in playingFile ).next()

もしこの回にキスをするなら、キスをする時間から逆算して、3分前にLEDの点滅をはじめる(1000ミリ秒間隔)。
徐々に間隔を早めていき、ジャストタイミングで虹を出す。

            blink = ''
            if she['kisses']:
                leftTime = int(she['kisses']) - playTime
                if 180 >= leftTime > 120:
                    blink = 1000
                elif 120 >= leftTime > 60:
                    blink = 500
                //...//
                elif 0 >= leftTime > -5:
                    blink = 'rainbow'
            light(her['color'],blink)

結果がこちらです。GIFアニメが多いので良い回線で見てくれ。


恥ずかしいから、私が消したの


もう、嫌われちゃったかと思って……


はるかって呼んで

いつまでも「先輩」じゃいや。呼んでくれたら、もう泣かないから……

はるか……

……よくできました

好きだよ。ずっとずっと一緒にいたい

私も好きよ。……大好き!

――キスして。そのまま、離さないで……

いかかでしょうか!?!? 俺、正直これ自分で撮りながら自分で笑っちゃったんですが(だからちょっと揺れてる)、この景気の良さ、みなさんにも伝わってますでしょうか? 控えめに言って、これ、めちゃめちゃ良いものではないでしょうか?!?!?

大興奮してる俺をよそに一通り虹を出し終わると、LEDはスッと元の色に戻った。ここにきて私はアマガミSSテレビが、いよいよその完成を見た事を知ったのである。


この文章を書いてる間にも、俺の机の上にはアマガミSSテレビが動いており、2時間に1回くらいの割合で虹色に光っている。休憩を取る目安にもなるし、何よりとても心が暖かくなる。橘くん、やったな……! という祝福の気持ちになる。ちょっと眠りが浅くなったような気がするが、じき慣れるだろう。

今回つくったプラグインのソースコードはgithubに置いてある。俺はプログラミングは本職じゃないので、いろいろヘボいところがあると思うが、そこは読者諸賢の寛大なフォークとプルリクエストを心より希いたい。とりあえずgithubでamagamissと検索すると俺のやつしか出てこないので、そこは若干してやったりである。

5話のレビューは近々更新します。