お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
[Unite 2016]Unityの豊富な情報を活用し,スピード感ある開発を。「『昭和駄菓子屋物語2』開発物語。〜カジュアル放置ゲームでのUnityの使い方〜」聴講レポート
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2016/04/05 21:10

イベント

[Unite 2016]Unityの豊富な情報を活用し,スピード感ある開発を。「『昭和駄菓子屋物語2』開発物語。〜カジュアル放置ゲームでのUnityの使い方〜」聴講レポート

 2016年4月4日と5日,Unity開発者のためのカンファレンス「Unite 2016 Tokyo」が東京都内にて開催された。その2日目,「『昭和駄菓子屋物語2』開発物語。〜カジュアル放置ゲームでのUnityの使い方〜」と題した講演が行われ,小規模な開発チームにおけるUnityの活用法が語られた。

画像集 No.014のサムネイル画像 / [Unite 2016]Unityの豊富な情報を活用し,スピード感ある開発を。「『昭和駄菓子屋物語2』開発物語。〜カジュアル放置ゲームでのUnityの使い方〜」聴講レポート

Unite 2016 Tokyo 公式サイト



Unityを選んだ理由は「豊富な情報量」「圧倒的なユーザー数」「適度なバージョンアップ」


2Dファンタジスタ代表の渡辺雅央氏。同社は,スマートフォン向けのカジュアルゲームを手がける総勢5名の開発会社で,その内訳はゲームデザイナー1名,エンジニアとアーティストが各2名とのこと
画像集 No.015のサムネイル画像 / [Unite 2016]Unityの豊富な情報を活用し,スピード感ある開発を。「『昭和駄菓子屋物語2』開発物語。〜カジュアル放置ゲームでのUnityの使い方〜」聴講レポート
 この講演に登壇したのは,スマートフォン向けアプリ「もっと心にしみる育成ゲーム『昭和駄菓子屋物語2』」iOS/Android 以下,昭和駄菓子屋物語2)を開発した2Dファンタジスタの代表 渡辺雅央氏だ。同作におけるUnityの活用について,順を追って解説された。

 昭和駄菓子屋物語2は,駄菓子屋に品物を仕入れ,お店を繁盛させていくという,いわゆる「放置型ゲーム」である。前作はUnity以外のゲームエンジンで開発されていたそうだが,続編の制作にあたってパブリッシャにエンジンの変更を交渉し,これが叶ってUnityでの開発がスタートした。

画像集 No.011のサムネイル画像 / [Unite 2016]Unityの豊富な情報を活用し,スピード感ある開発を。「『昭和駄菓子屋物語2』開発物語。〜カジュアル放置ゲームでのUnityの使い方〜」聴講レポート
画像集 No.012のサムネイル画像 / [Unite 2016]Unityの豊富な情報を活用し,スピード感ある開発を。「『昭和駄菓子屋物語2』開発物語。〜カジュアル放置ゲームでのUnityの使い方〜」聴講レポート

 渡辺氏はUnityを選んだ理由として,「豊富な情報量」「圧倒的なユーザー数」「適度なバージョンアップ」という3点を挙げている。

画像集 No.013のサムネイル画像 / [Unite 2016]Unityの豊富な情報を活用し,スピード感ある開発を。「『昭和駄菓子屋物語2』開発物語。〜カジュアル放置ゲームでのUnityの使い方〜」聴講レポート

●豊富な情報量
 Unityはネット上に多くの情報が溢れているため,何か困ったことがあっても,検索すればすぐにヒントとなる事例を見つけることができる。ほかのエンジンと比較しても情報量の差は大きく,同社のような小規模メーカーだけでなく,インディーズ開発者などにとってもありがたいポイントであろう。

●圧倒的なユーザー数
 開発を続けていると,エンジニアを増員したいタイミングが訪れる。そんなときに,Unityはユーザー数が多いため,エンジニアを見つけやすい。逆に自分達が,別のチームのヘルプに入るといったように助け合うこともできる。

●適度なバージョンアップ
 VRを筆頭に新しい技術やハードが出てくる昨今だが,継続的にバージョンアップが行われているエンジンであれば,こうした新しい流れをいち早く取り入れられる。

 実際に開発を進めていくうえでも,ゼロから制作すると面倒な部分がすでに用意されていることや,ゲームの調整が簡単なところがありがたかったのだという。
 ご存じの人もいるだろうが,UnityではUIやサウンド関連,データのセーブやロードなどの開発が面倒な部分が用意されている。もちろん,最も使い勝手がいいのは自分達のプロジェクトのために制作したオリジナルエンジンなのだが,開発にスピード感が求められる中小メーカーでは現実的ではなく,Unityのような統合型エンジンが理にかなった選択肢になるとのこと。

画像集 No.001のサムネイル画像 / [Unite 2016]Unityの豊富な情報を活用し,スピード感ある開発を。「『昭和駄菓子屋物語2』開発物語。〜カジュアル放置ゲームでのUnityの使い方〜」聴講レポート

 ゲームの調整が簡単であるのも重要なポイントだ。これまでゲーム内のパラメータを調整する場合,ゲームデザイナーがバランスを想像しながら変更データを作り,エンジニアがこれを取り込み,結果を実機で確認するという段階を踏む必要があった。
 しかし,UnityではゲームデザイナーがPC上でゲームを動かしつつ,パラメータを操作できるため,より少ない手間で具体的な調整が可能だ。チェック用の端末を用意しなくてもいいうえ,エンジニアの手を煩わせる必要もない。
 渡辺氏は「ゲームのクオリティは,チェックを何回繰り返したかによって格段に変化する」と語っていたが,Unityであればチェックにかかる時間も手間も少なく済み,クオリティアップにも貢献するというわけだ。

画像集 No.002のサムネイル画像 / [Unite 2016]Unityの豊富な情報を活用し,スピード感ある開発を。「『昭和駄菓子屋物語2』開発物語。〜カジュアル放置ゲームでのUnityの使い方〜」聴講レポート


Unityの機能を駆使して起動時間を短縮


 開発を進めていると,困ったこともあったという。渡辺氏が最初に挙げたのが,実機環境における起動の遅さ。昭和駄菓子屋物語2の開発中は,アプリが起動するまでに1分近くかかっていたという。
 よくよく調べてみると,起動に際して大量のスプライトにアクセスしていることが原因で,スプライトパッカーでスプライトを1枚のテクスチャにまとめたところ,格段に起動時間が短くなったそうだ。この方法だと,エンジニア側に手間が掛からないこともメリットとなる。

画像集 No.003のサムネイル画像 / [Unite 2016]Unityの豊富な情報を活用し,スピード感ある開発を。「『昭和駄菓子屋物語2』開発物語。〜カジュアル放置ゲームでのUnityの使い方〜」聴講レポート

 サウンドの重要度に合わせて,読み込みのタイミングを変更することも行ったという。重要なサウンドはアプリの起動時に読み込み,そうでないサウンドは初めて鳴らすときに読み込むようにしたところ,古い機種ほど起動時間が短縮されたとのこと。また,起動直後に読み込むシーンは最小構成とし,バックグラウンドでメインのシーンを読み込むのも効果的だったそうだ。
 ただ,「こうしたテクニックは自分たちが発明したわけではない」と渡辺氏は強調する。トラブルが起きても,Unityならではの豊富な情報量が解決への糸口を示してくれたということである。

どうしてもプラグインを作らなければならないこともあったそうだが,SNSへの投稿やローカル通知は求める仕様に合致するものがなかったために自作したとのこと
画像集 No.004のサムネイル画像 / [Unite 2016]Unityの豊富な情報を活用し,スピード感ある開発を。「『昭和駄菓子屋物語2』開発物語。〜カジュアル放置ゲームでのUnityの使い方〜」聴講レポート

こちらはヒューマンエラーの類だが,「シーンファイルの競合」にも困ったという。複数のスタッフが並行して同じシーンファイルを修正してしまい,片方の作業がすべてパーになるという開発者としてはお馴染みの事態だ。理論上,「同時に編集しない」といったルールを作れば対応できるが,人間は何をするか分からない。Unity5.3から実装されたマルチシーンを活用し,さらにシーンを分割するなどすれば,こうした事故は避けられるのではないかと,渡辺氏は語る
画像集 No.005のサムネイル画像 / [Unite 2016]Unityの豊富な情報を活用し,スピード感ある開発を。「『昭和駄菓子屋物語2』開発物語。〜カジュアル放置ゲームでのUnityの使い方〜」聴講レポート
画像集 No.006のサムネイル画像 / [Unite 2016]Unityの豊富な情報を活用し,スピード感ある開発を。「『昭和駄菓子屋物語2』開発物語。〜カジュアル放置ゲームでのUnityの使い方〜」聴講レポート


自作スクリプトでより高品質なUI配置を


 開発の過程ではスクリプトを自作することもあり,高い効果を上げたという。その一つが「UI座標設定スクリプト」で,これは「エンジニアに手間を掛けずに,アーティストがUIの位置を調整できる」というものだ。
 このスクリプトを開発するまで,UIオブジェクトの位置設定はアーティストではなくエンジニア頼みだったという。そのため,エンジニアのセンスによって出来に大きな差が生まれるうえ,微調整するたびにエンジニアを頼るしかなかった。

画像集 No.007のサムネイル画像 / [Unite 2016]Unityの豊富な情報を活用し,スピード感ある開発を。「『昭和駄菓子屋物語2』開発物語。〜カジュアル放置ゲームでのUnityの使い方〜」聴講レポート

 そこで開発されたのが,UI座標設定スクリプトだ。これにより,アーティストがPhotoshopでUIオブジェクトを配置すると,Photoshop側のスクリプトがその座標をテキストファイルとして出力する。エンジニアがUnity側のスクリプトでこれを読み込めば,アーティストの指定したとおりの座標にUIオブジェクトが配置されるという仕組みだ。

画像集 No.008のサムネイル画像 / [Unite 2016]Unityの豊富な情報を活用し,スピード感ある開発を。「『昭和駄菓子屋物語2』開発物語。〜カジュアル放置ゲームでのUnityの使い方〜」聴講レポート
画像集 No.009のサムネイル画像 / [Unite 2016]Unityの豊富な情報を活用し,スピード感ある開発を。「『昭和駄菓子屋物語2』開発物語。〜カジュアル放置ゲームでのUnityの使い方〜」聴講レポート

 渡辺氏によると,Unityの強みは「Prefab(プレハブ)」だという。fps表示メーターやゲーム中の時間管理など,ゲームをまたいで使えそうなものはどんどんPrefab化していく(渡辺氏いわく「Prefabドリブンな開発」)ことで,モックアップ作りが早くなり,クオリティアップに多くの時間を掛けられるという効果があったそうだ。聴講者に対しても「ぜひPrefabを有効活用してほしい」と勧めていた。

画像集 No.010のサムネイル画像 / [Unite 2016]Unityの豊富な情報を活用し,スピード感ある開発を。「『昭和駄菓子屋物語2』開発物語。〜カジュアル放置ゲームでのUnityの使い方〜」聴講レポート

 Unityは入門者から中級者向けの情報が非常に多いことで知られているが,近年増加中の小規模開発チームにおいても,こうした集合知がいかに役立つものであるかが理解できる講演だった。

Unite 2016 Tokyo 公式サイト

  • 関連タイトル:

    もっと心にしみる育成ゲーム「昭和駄菓子屋物語2」

  • 関連タイトル:

    もっと心にしみる育成ゲーム「昭和駄菓子屋物語2」

  • 関連タイトル:

    Unity

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:11月21日〜11月22日