文化祭のクラスの出し物で使うシステムを作った話

「謎解きの答え合わせをするプログラムを作ってくれる?」「おっけー」

文化祭の2週間弱前。こんな感じの軽い会話で文化祭のクラス企画で使うプログラムを担当することになりました。もともと仕事が少ない係に所属していたので、すぐ了承しました。

簡単な仕様を聞いておいたので、部活が情報工学部なのをいいことに部活中に家にある電源を入れてあるPCにリモートでアクセスして、その日のうちにわかっている範囲で作り終えました。家に帰ってから一段階終了したことと、用意した仕様書(ドキュメント)に仕様をまとめてほしいことをグループラインで伝えました。ここでリラックス。地獄の日々がやってくることなんて思いもせずに。

よみがえる恐怖

依頼を受けて早一週間がたってしまいました。おかしいですね、仕様書に少しも更新履歴がありません。あと一週間もしない内に文化祭です。

話が一旦それますが、実は私、中学3年生、高校受験が終わったころ、顧問の先生に動画の製作を頼まれたことがありました。内容は少し編集した写真を順に表示するというものでした。編集に時間がかかるかもしれませんが、行程は「写真を撮って編集し、動画編集ソフトでつなげる」というとてもシンプルなものになります。しかし、写真がそろったのは部活の練習が本番まで後数回という日。編集がどれくらいかかるか分からなかったので、もう恐怖でしたよ。なんで何日もそろわないんだよ~と思うと同時に教訓を得ました。「製作に他人の介入が必要な場合は、締め切りをとても早く伝えること。」これ、かなり大事です。

さて話は文化祭に戻ります。実は仕様書のことを伝えるときに、先ほど話した教訓をもとに、「早めに書いてくれると嬉しいな~」と軽くせかしておいたのですが。しかし結果は想像していた最悪の事態になってしまいました。同じ恐怖をまた味わいました。

 

作ったもの

愚痴はこれくらいにして今回開発したものの詳細を書いていきます。作ったものは「お化け屋敷内に設置された謎解きの答え合わせ及び受付記録」です。

OS/機材:学校支給のChromebook

実行形式:WebGL(unity)

使用言語:C#、GoogleAppsScript

完成したもの(URL)→https://sites.google.com/u/3/d/1Q891bd-vOJB_sNdOunlEEc9ztprDOvci/preview(文化祭で使用した謎がまとめられているGoogle siteに飛びます。下の方に本体のURLがあります)

↑一番右以外が開発環境。黒い仕切りの向こうではクラスメイトが準備に追われていました。

 

今回、必要台数の都合上学校支給のChromebookを使用することになっていましたが、実行ファイルをインストールできない設定になっていたためWebを使用しました。私はHTML等の技術がないため、WebGLをエクスポートできUI作成などに慣れているUnityを使用しました。機能に入退出記録を組み込むため、他の方の記事を参考にGoogleAppsScript経由でスプレッドシートに入退出ログを記録する仕組みにしました。スプレッドシートに記録する仕組みにしたおかげで、通路の外側に待機している驚かせ要員の人たちは人が入ってきたかどうか簡単に知ることができました。

スマホから見た入退出記録。校外にこの記事を公開するためプライバシー保護の加工済み

 

修正のため半日が潰れる

文化祭は2日間の日程でしたが、両日とも前日に夜ふかしして開発していました。その影響で当日朝の最終テストでは一部に不具合が存在しており、お昼すぎまでくらいバックヤードで修正作業に追われていました。一番大きいバグは「入力フィールドに全角文字が入力できない」でした。

←頑張った自分に買ったジュースを待機スペースで飲もうとしている図

 

学んだこと

・発注元は親切じゃない

・夜ふかしするとバグを量産することになる

・いくら突貫でもUIデザインは親切にしないとユーザーがボタンを連打する

 

最後に

このグラフは入退出ログをもとに1時間毎に分けて作成したものです。文化祭が始まった10~11時、夕方の時間帯に人数が多く昼に少ないことから、昼の時間帯はカフェテリア(食堂)や3年生の食品販売に人が集中していたことが予想できます。それ以外の時間帯ではほぼ人数が変動しなかったのはすごいと思います。実際廊下ではほとんどの時間列ができていました。