イベント
[Unite 2016]Unityの豊富な情報を活用し,スピード感ある開発を。「『昭和駄菓子屋物語2』開発物語。〜カジュアル放置ゲームでのUnityの使い方〜」聴講レポート
Unite 2016 Tokyo 公式サイト
Unityを選んだ理由は「豊富な情報量」「圧倒的なユーザー数」「適度なバージョンアップ」
昭和駄菓子屋物語2は,駄菓子屋に品物を仕入れ,お店を繁盛させていくという,いわゆる「放置型ゲーム」である。前作はUnity以外のゲームエンジンで開発されていたそうだが,続編の制作にあたってパブリッシャにエンジンの変更を交渉し,これが叶ってUnityでの開発がスタートした。
渡辺氏はUnityを選んだ理由として,「豊富な情報量」「圧倒的なユーザー数」「適度なバージョンアップ」という3点を挙げている。
●豊富な情報量
Unityはネット上に多くの情報が溢れているため,何か困ったことがあっても,検索すればすぐにヒントとなる事例を見つけることができる。ほかのエンジンと比較しても情報量の差は大きく,同社のような小規模メーカーだけでなく,インディーズ開発者などにとってもありがたいポイントであろう。
●圧倒的なユーザー数
開発を続けていると,エンジニアを増員したいタイミングが訪れる。そんなときに,Unityはユーザー数が多いため,エンジニアを見つけやすい。逆に自分達が,別のチームのヘルプに入るといったように助け合うこともできる。
●適度なバージョンアップ
VRを筆頭に新しい技術やハードが出てくる昨今だが,継続的にバージョンアップが行われているエンジンであれば,こうした新しい流れをいち早く取り入れられる。
実際に開発を進めていくうえでも,ゼロから制作すると面倒な部分がすでに用意されていることや,ゲームの調整が簡単なところがありがたかったのだという。
ご存じの人もいるだろうが,UnityではUIやサウンド関連,データのセーブやロードなどの開発が面倒な部分が用意されている。もちろん,最も使い勝手がいいのは自分達のプロジェクトのために制作したオリジナルエンジンなのだが,開発にスピード感が求められる中小メーカーでは現実的ではなく,Unityのような統合型エンジンが理にかなった選択肢になるとのこと。
ゲームの調整が簡単であるのも重要なポイントだ。これまでゲーム内のパラメータを調整する場合,ゲームデザイナーがバランスを想像しながら変更データを作り,エンジニアがこれを取り込み,結果を実機で確認するという段階を踏む必要があった。
しかし,UnityではゲームデザイナーがPC上でゲームを動かしつつ,パラメータを操作できるため,より少ない手間で具体的な調整が可能だ。チェック用の端末を用意しなくてもいいうえ,エンジニアの手を煩わせる必要もない。
渡辺氏は「ゲームのクオリティは,チェックを何回繰り返したかによって格段に変化する」と語っていたが,Unityであればチェックにかかる時間も手間も少なく済み,クオリティアップにも貢献するというわけだ。
Unityの機能を駆使して起動時間を短縮
開発を進めていると,困ったこともあったという。渡辺氏が最初に挙げたのが,実機環境における起動の遅さ。昭和駄菓子屋物語2の開発中は,アプリが起動するまでに1分近くかかっていたという。
よくよく調べてみると,起動に際して大量のスプライトにアクセスしていることが原因で,スプライトパッカーでスプライトを1枚のテクスチャにまとめたところ,格段に起動時間が短くなったそうだ。この方法だと,エンジニア側に手間が掛からないこともメリットとなる。
サウンドの重要度に合わせて,読み込みのタイミングを変更することも行ったという。重要なサウンドはアプリの起動時に読み込み,そうでないサウンドは初めて鳴らすときに読み込むようにしたところ,古い機種ほど起動時間が短縮されたとのこと。また,起動直後に読み込むシーンは最小構成とし,バックグラウンドでメインのシーンを読み込むのも効果的だったそうだ。
ただ,「こうしたテクニックは自分たちが発明したわけではない」と渡辺氏は強調する。トラブルが起きても,Unityならではの豊富な情報量が解決への糸口を示してくれたということである。
自作スクリプトでより高品質なUI配置を
開発の過程ではスクリプトを自作することもあり,高い効果を上げたという。その一つが「UI座標設定スクリプト」で,これは「エンジニアに手間を掛けずに,アーティストがUIの位置を調整できる」というものだ。
このスクリプトを開発するまで,UIオブジェクトの位置設定はアーティストではなくエンジニア頼みだったという。そのため,エンジニアのセンスによって出来に大きな差が生まれるうえ,微調整するたびにエンジニアを頼るしかなかった。
そこで開発されたのが,UI座標設定スクリプトだ。これにより,アーティストがPhotoshopでUIオブジェクトを配置すると,Photoshop側のスクリプトがその座標をテキストファイルとして出力する。エンジニアがUnity側のスクリプトでこれを読み込めば,アーティストの指定したとおりの座標にUIオブジェクトが配置されるという仕組みだ。
渡辺氏によると,Unityの強みは「Prefab(プレハブ)」だという。fps表示メーターやゲーム中の時間管理など,ゲームをまたいで使えそうなものはどんどんPrefab化していく(渡辺氏いわく「Prefabドリブンな開発」)ことで,モックアップ作りが早くなり,クオリティアップに多くの時間を掛けられるという効果があったそうだ。聴講者に対しても「ぜひPrefabを有効活用してほしい」と勧めていた。
Unityは入門者から中級者向けの情報が非常に多いことで知られているが,近年増加中の小規模開発チームにおいても,こうした集合知がいかに役立つものであるかが理解できる講演だった。
Unite 2016 Tokyo 公式サイト
- 関連タイトル:
もっと心にしみる育成ゲーム「昭和駄菓子屋物語2」
- 関連タイトル:
もっと心にしみる育成ゲーム「昭和駄菓子屋物語2」
- 関連タイトル:
Unity
- この記事のURL:
キーワード
(C)GAGEX Co.,Ltd. All rights reserved. Developed by 2D Fantasista.
(C)GAGEX Co.,Ltd. All rights reserved. Developed by 2D Fantasista.