アプリ制作事例:『び少女』~Monaca Educationでノベルゲーム開発


島田商業 び少女 は Google Playで入手できます

アシアル情報教育研究所・所長の岡本です。

ノベルゲーム『び少女』を開発した、静岡県立島田商業高等学校 情報ビジネス科 3年の山内 柔磨(やまうち とうま)さんに、ノベルゲーム開発について取材を行いました。

なお、山内さんは『静岡産業技術専門学校 みらい情報科』に進学予定とのことです。専門学校HTML5作品アワードへのエントリー、お待ちしております。

また、静岡県立島田商業高等学校では毎年プレゼン発表を行っており、資料が『slideshare』で閲覧できますので、あわせてご参照ください。

島田商業 9班 び少女

岡本:「ノベルゲームと言えば、やはり恋愛のジャンルは欠かせませんね。このアプリは、静岡県・牧之原市の寄り道スポットを知ることができる恋愛ノベルゲームなのですね。ターゲットは、静岡県在住の自転車利用者?」
山内:「自動車です。」
岡本:「失礼しました。以前、島田商業様の作品で、自転車で静岡を旅するアプリがあったので混ざりました。なぜ牧之原市にしたのですか。」
山内:「はい、メンバーの1人が牧之原市に住んでいるからです。早速ですが、あらすじを申し上げます。」

新社会人として牧之原に研修に来たあなた。「本当に何もないところだなぁ」
うっかり口からこぼれたその言葉。その時、背後からかかる優しい声。
驚き振り返るとそこには真緑色の奇抜な髪をした女が立っていた。
美少女…いや、色々な意味でび少女な彼女は一言こう言った。
「ついておいで…。」

彼女と巡る牧之原。牧之原を知れば知るほど惹かれてくあなた。
2人の物語が今、始まる….!

※ゲーム中では本社が島根ということになっていますが、これは、静岡空港が島根と空路で結ばれているためだそうです。

山内:「ゲームプレイ時間は約1時間となっています。ゲーム操作は基本的に画面タップのみ、たまに選択する場面があり、選択によりシナリオが変化することがあります。シナリオは2つのエンディングを用意しています。」
岡本:「ありがとうございます。まだ5分しかプレイしていないのですが、1時間でクリアできるなら、頑張ります。ところで、牧之原の写真が素材として使われていることを確認していますが、これは実際に撮影に行かれたのですか?」
山内:「サービスエリアの管理会社さんや、公園を管理する市役所の方に連絡を取って照会の許可や画像の提供をしていただきました。また、自分たちで撮影した画像や、クラスメイト・先生に撮ってもらった写真も入れております。」
岡本:「なるほど、ありがとうございます。次に、ゲーム開発に利用したソフトについて教えてください。」
山内:「ティラノスクリプトで開発しているのですが、うちのチームではティラノスタジオを使ってみたり、エディタにVisual Studio CodeやMeryを使ったりもしました。それと、画像編集にGIMP使ったり、音の加工にMP3Gainなどを使いました。」
岡本:「Visual Studio Codeを使うと何かメリットが?」
山内:「ティラノスクリプト用の拡張を入れるとシンタックスハイライトが行われたりします。それが便利だったのでVisual Studio Codeにしました。」
岡本:「なるほど。音声素材の扱いで困ったことはありますか?」
山内:「他のチームが困っていたので手助けしたのですが、.ogg(オッグボルビス)や.m4a形式のフォーマットを採用してiPhoneで音が鳴らないケースがあり、mp3に変換してあげました。mp3なら、殆どの端末で動かせます。」
岡本:「音の素材は自分たちで作成したのですか?」
山内:「フリーのBGMサイトだったりを活用しました。」
岡本:「ありがとうございます。次は開発体制について教えてください。」
山内:「プログラミング、データ、デザイン(シナリオ・イラスト)で分けました。」
岡本:「デザイン担当がシナリオも担当するのはタスク量が多そうですね。山内さんの担当はデザインですか?」
山内:「いえ、プログラミング担当です。」
岡本:「ティラノスクリプトのプログラミングは大変でしたか?」
山内:「素のJavaScriptでノベルゲームを作ることに比べたら、ティラノスクリプトでのゲーム作成は簡単だと思います。」
岡本:「次に、プロジェクトの企画や工数について教えてください。工数は10ヶ月で、他のチームと同じようですが、企画はすんなり、牧之原市を題材にすることで決まったのですか?」
山内:「はい、牧之原市の寄り道スポットを知ってもらおうと思いました。また、単に紹介するアプリではダウンロードされないと思ったので、ノベルゲーム形式にして、人の目に付きやすいようにしようと考えました。」
岡本:「ありがとうございます、工数について確認させてください。頂いた資料によると、プログラミングのフェーズが長いですね。」

※ 「Qiita」は今回のアプリ制作とは直接関係の無いタスクになります。

山内:「シナリオが出来上がらないとプログラミングは終わらないため、6~8月の間は実装の準備を進めていただけで、本格的に実装を進めたのは後半の11月からでした。前半はデータ集めや許諾を取るための連絡など、色々とプログラミング以外で行うことが沢山あり、それと平行して進めていました。」
岡本:「今後、ノベルゲーム開発を行うチームにアドバイスをお願いします。」
山内:「4つあります。」

企画と役割分担について

ゲーム制作についてよく調べて具体的な作業内容と作業時間についてグループ全体で共有しておいたほうが良いです。また、すべての作業を細かく役割分担して新しい作業が発生した場合誰が担当するのか決めておきましょう。役割を分担する際はイラストとシナリオは違う人が担当するようにしましょう。役割分担は慎重に行い、作業量が同じくらいになるようにしましょう。特にシナリオとプログラミングは余裕をもって作業量を見積もると作業量が思ってたより多いという事態を避けることができます。基本的にシナリオが完成しないとプログラミングができないのでそれを見越して計画を立てましょう。

制作について

ノベルゲームはシナリオをプログラムに書き写すだけでなく、演出をつける作業があります。(例:背景画像、BGM、効果音、立ち絵、アニメーションなど)その演出を誰が考えるのか、演出をプログラミングするときに必要なフリー素材は誰が集めてくるのかを決めておいたほうが良いと思います。フリー素材収集はプログラミング担当以外の人がやることをおすすめします。(フリー素材探しで作業が進まなくなるため)フリー素材を使用する際はライセンスや利用規約に沿って使用するようにしましょう。

シナリオ担当へ

シナリオを書き始める前にプログラミング担当の人とシナリオの書き方について話し合っておきましょう。シナリオをプログラムに移す際、以下の画像のように#やタグをつける(ティラノスクリプトの場合)といった作業が発生するため、それを考慮してシナリオを書くとプログラミング作業が楽になります。

想像よりも作業量が多くなります。進行が遅い場合は早めにゲームの規模を小さくしましょう。(ゲームプレイ時間を30分以内で作ると余裕を持って作ることができると思います。)どの作業よりも優先度が高いのでシナリオ作業のみを行うようにすると良いと思います。

プログラミング担当へ

様々なツールや言語があるのでよく調べて選びましょう。コードを書いた経験が少ない場合はティラノビルダーのようなコードで書かないソフトが良いと思います。ただし、こういったソフトは自由度が低くコードで書いて直すことが難しいため、できるだけコードで書いたほうが自由度が高く詳しい人も助けやすいです。困ったらすぐに調べることをおすすめします。それでもわからない場合は詳しい人に相談しましょう。理想を追い求めてこだわりすぎると時間がかかるので注意しましょう。素材のファイル名はきちんと考えて決めましょう。後で使用するときにどこのサイトからダウンロードしてきたかやどこの場面で使用しているものかがわからなくなります。

岡本:「貴重なアドバイス、ありがとうございます。やはり素材となるデータやシナリオが必要なゲーム開発においては、進行管理が重要ですね。」
山内:「僕もGoogle Keepなどでタスク管理していたのですが、全員のメンバーの進捗管理となると、マネージャー的な役割の人が欲しかったですね。」
岡本:「シナリオができないとプログラミングが着手できない、というのは切実ですね。次回、ゲーム開発する機会があったら、やはりシナリオから着手すべきですか?」
山内:「そこなのですが、シナリオ自体も1時間ものではなく30分など、もっと短くても良かったのではないかと考えています。そうすればシナリオ作成のタスクをもう少し早く終わらせて、プログラミングなどの工程を進められたのではないかと。」
岡本:「ちなみに、ゲームとしての面白さを担保しつつ、もっと短くするとしたら、どこまで短縮できそうですか?」
山内:「10~15分の単発のゲームも世の中には沢山あるので、それでも面白くは作れると思います。」
岡本:「なるほどです。」
山内:「あとはティラノスクリプト固有の話ですが、スクリプトで『#』を使うので、それを踏まえた上でシナリオを書き起こしておくとプログラミング担当としては作業がしやすいです。」
岡本:「後工程を考慮して素材を用意するのは大事ですね。次に、ノベルゲームを作って良かったことについて教えてください。」
山内:「まず経験として、アプリを企画からリリースまで自分たちで作るという経験を積めました。今まできちんとしたアプリを作ったことがなかったため、アプリ制作の工程を一通り学ぶことができました。また、自分できちんとしたゲームを作ろうとしたことがなかったので初めてゲームを作るという経験を積めました。ゲームを作ることでゲーム以外のシステムやアプリを作るときとは少し違った視点や考え方を学ぶことができました。」
岡本:「経験を通じて成長できたと感じる面は、如何でしょうか?」
山内:「技術面では、今回開発で主に使用した言語はティラノスクリプトでしたがHTML、CSS、JavaScriptも使用しているため、これらの言語への理解を深めることができたと感じました。また、長期間の開発は初めてだったため作業の進捗管理をして計画的に作業を進める習慣を身につけることができたと感じました。コミュニケーション面では、周りの人の相談に乗ることでシステムエンジニアに必要な相手の悩みを聞き取り解決する力を磨くことができたと感じました。」
岡本:「ノベルゲーム開発の第二弾をするとしたらどうしたいですか?」
山内:「今特に作りたいノベルゲームは無いですが、イラストとシナリオを兼任したメンバーがとても大変だったので、担当は分けます。」
岡本:「ありがとうございます。最後にMonaca Educationに関する要望をお願いします。」
山内:「開発ページからビルドの設定やビルドを行うページへ移動することができないので開発ページから直接移動できたら良いと思います。」
岡本:「ごめんなさい、2022年度版のUI改善でメニューからビルドを消したのは私です…プログラミング入門のタイミングではビルドを行わないので後ろに下げてしまいました。申し訳ないのですが、ダッシュボードから辿ってください。ビルドしてストアに出すのは大変でしたか?」
山内:「キーストアの設定やGoogle PlayストアへのApp Bundleの提出で苦労しました。」
岡本:「ありがとうございます。ストア登録の仕様はストア側が毎年変わるので、Education版ではサポートを行っておらず、申し訳ございません。無事に、リリースできて良かったです。」

島田商業 び少女 は Google Playで入手できます