私はいかにして無理難題に突っ込み、失敗したか

やぁ。アドカレ公開日まで残り6分-100分のfolosuruだ。今回は私が夏休みに挑戦して失敗した無理難題の話をしよう。

最終日前夜同様、限界状態で書いてるので悪文です

発端

当初、9月の半ばに行われる文化祭でプロジェクターを活用した何かを作りたいと考え、その辺にいたオタク他数名をかき集めて参加申請をした。内容は案内表示とかかな、そう考えていたその時、天啓が舞い降りた。

「インタラクティブな分岐アリの映像作品」その思い付きが私を苦しめることとなった。

概要

スマートフォンに表示されて行くストーリーを、プロジェクターで投影した映像を隠すことで進行を変化させる、というのが主な流れだった。ぶっちゃけインタラクティブライブのパクリ

もっと具体的に言うと、手元のスマートフォンで読むストーリーは「この先の分かれ道、右左どっちに進む?」といった、観客に判断を求める地点で停止する。そして、そこから先はプロジェクターに表示されたスクリーンで投影された2つの選択肢から好きな方を隠すことで選び、多い方にストーリーが進む、といった具合だ。

残り1ヵ月で全部書け!

かくして、あまりに課題山積みで壮大なプロジェクトが、学校のオタク共4人くらいで始まってしまった。私の担当は企画設計演出脚本運用、つまり全てである。

最初に手を付けたのはプロジェクターの表示を隠している事の検知だ。そもそもこれができないとお話にならないから。当初は秋月で輝度センサでも買えば何とかなるだろうと思っていただ、電子工作経験者ゼロの段階でセンサをポチる勇気はなかった。そこで、学校に有り余っていたChromeBookを拝借、そのWebカメラで明るさの検知をする運びとなった。

開発はChromeBookで動かす関係上HTML/CSS/TypeScriptでほぼ全てを作成した。ここで恐ろしいのは、TypeScriptに触るのはこれが生まれて初めてということである。電子工作は忌避したくせにTypeScriptはやるのか……。幸いにもJavascriptは触ったことあるので致命傷ではなかったが、これが開発の遅れを招いたのは言うまでもない。

その後、ストーリーの表示はgdgdしながらも最低限動くものが出来上がって来た。しかし、この時にカレンダーを見ると8/23くらいであった。のこり1週間と少しである。

頼む!!!働いてくれ!!

私以外の参加メンバーには仲良しでカメラオタクのSと、スマブラが趣味のH、、話を聞いてきて参加したFがいた。まあSは素材写真を出す、と言っていたのでまあいいし、HはHで忙しいらしい。残りのたよりの綱はFだ。 彼は「授業でPythonはやったことある」といていたほどの者である、さすが新課程の教育は違うなと感心したのはぬか喜びだった。彼はChromeBook以外持っていない。 まともな画像編集も、コードのデプロイもままならないChromeBookである。「vscode.devとかgithub.devがあるだろ!」と思ったそこのあなた、甘い。 Githubのアカウント作成、エディタ操作、全てを教えきるにかかる労力はいかほどの物だろうか。そして彼は24h365dで暇なタイプの人間ではなかった。

もうめちゃくちゃだ。頼れる人間はいない。素材作成を依頼すれば3時間後にGoogle検索の上から3番目の画像が返される始末である。教育はどうなってんだ

このあたりから残り2週弱、血反吐を吐きながら文字通りに日夜キーボードを叩いて行った。

2学期

始業式、少しの授業の後、校内は文化祭準備に包まれた。その中で私は、持参したPCにひたすらPHPとCSSを書き殴る1匹の猿になっていた。一種の無敵感さえ出て来た。今ならこの猿はシェイクスピアさえ書ける、そう思ったのも束の間。 ある事に気が付いてしまった。ストーリー何も書いてない。私の担当に演出と脚本があるのをすっかり忘れていた。 放課後、そこには死んだ顔で名前のモチーフの花を調べ、ストーリーをLibreOffice Writerに書き込む猿がいたという。

ここで、さらにインフラの問題が発生した。WebSocketで同期をしたいが、このサイトz-n-a-k.netはApache+PHPという古臭い構成で動いている。つまり、WebSocketが入る隙が無い。 つまり、ws.z-n-a-k.netみたいな適当なサブドメインを作成して通信する必要が出て来た。さらに敵が現れた。CORS制約である。A.z-n-a-k.netがのページがB.z-n-a-k.netのリソースを取得するにはヘッダーを追加しないといけない。 こうして、学校内では一切インフラのテストができなかった。

前夜

正直記憶がない。misskey.systemsには発狂した記録が残っているはずだ。

記憶のある順に整理していくと、昼間にFくんがJSONフォーマットにまとめるよう指示した企画リストが全角交じりだったので修正したのが深夜12時、その後昼に書いたストーリーをJSONに書きおこすためにHSPスクリプトを書き、変換したのが深夜2時。その先の記憶は残っていない。深夜4時の時計を見たのを最後に、次に目を覚ましたのは朝8時だった。(普通に遅刻が危うい。)

その後、プロジェクトファイルをTSのトランスパイル前後の区別もつけずに全部サーバーに放り込んで登校した。これが最後の修正チャンスだった。登校して、ChromeBookに書いていたプログラムのURLを貼り付け、しかし動かない。 コンソールに現れたのは次の文字列だった。


そう、最後に現れたのは自身の書いたハードコードされたURLであった。お手上げである。

教訓

今回得られた教訓とダメージはあまりにも大きかった。教訓としては以下のとおりである。

メンタリティ面で支えてくれたSくん、企画のために奔走してくれたM先生への感謝と、最後に総まとめで終わりにしようと思う。

全部1人がやるのは、ダメ!!!!!