Unityアセット活用術〜「マシマシ∞チョモランマ」開発より〜 

こんにちは。Japanリージョンゲーム事業本部 技術・編成部 エンジニアのえびポンです。主に内製新規アプリ開発に従事しています。

今回は、昨年3月末にリリースした弊社内製タイトル「マシマシ∞チョモランマ」の制作事例や、プロトタイプ制作の積み上げを通じて得た、Unity における Asset Store の アセットの活用を中心に紹介していきます。

 

Unity と Asset Store

以前の記事でも Unity についての紹介がありましたが、Unity はマルチプラットフォームに対応したゲームエンジン(ゲーム開発環境)です。

数あるゲームエンジンの中でも、Unity が持っている大きな特徴が、Asset Store です。

Asset Store では、クリエイターが自由に使える3Dモデル、テクスチャ、スクリプト、そしてエディタ拡張などが、無償/有償で入手することができます。個人が制作したアセットもAsset Store を通じて販売できることから、高品質のアセットが数多く登録されています。

Asset Store から入手したアセットをうまく利用することで、手早く開発を進めることができます。

 

「マシマシ∞チョモランマ」とは…

弊社のネイティブアプリ開発力の積み上げを目的に、Unity を用いて約3ヶ月弱という短期間で開発し、2014年3月にリリースした課金なしのゲームです。

どんぶりを回転させながら、タップで具材を盛りつけ、カロリーの高いラーメンを作り上げるという、穏やかじゃない!と言われそうなゲーム内容です。

App Store / Google Play にて配信中ですので、ご興味を持たれた方は是非プレイしてみてください!

 

ここからは、「マシマシ∞チョモランマ(以下、マシマシ)」に用いられているアセットを紹介していこうと思います。

 

NGUI

https://www.assetstore.unity3d.com/jp/#!/content/2413

著名なGUI作成のためのアセットです。2014年11月、Unity 4.6 がリリースされ、公式のGUI作成ツール「uGUI」が利用可能となりましたが、「マシマシ」開発当時は、Unity におけるUI作成のデファクトスタンダードでした。

「マシマシ」の開発途中においては、気付いた不具合が数日後のバージョンアップで改善されていた…ということや、公式サイトのフォーラムで不具合報告を行い、修正していただいた…など、何かと小回りが効いています。

現在でも高頻度の機能追加やバグフィクスが行われているので、「uGUI」登場後にも、十分に選択肢として挙げることのできる、重要アセットです。

 

HOTween

https://www.assetstore.unity3d.com/jp/#!/content/3311

GameObjectをアニメーションさせながら移動したい、拡縮したいというときに用いるアセット(Tweener)としては、 iTween が代表的かと思いますが、「マシマシ」では HOTween を Tweener として用いました。

iTween と比較して、HOTween は以下のような特徴を持っています

 ・ アニメーションのパラメータの指定が、メソッドチェーン
  ・iTween は Hashtable で指定するので、パラメータ名を間違えやすい
 ・コールバックにラムダ式を使用できる
 ・Sequence という仕組みを利用して、複合的なアニメーションを作成できる

また、iTween と比較してパフォーマンスが良いことを謳っています。他にも、LeanTween や、NGUI 付属の Tweener など、特色のある Tweener が各種ありますので、比較検討してみてください。

 

FingerGestures

https://www.assetstore.unity3d.com/jp/#!/content/1044

UIのボタンに対する単純なタップ判定などは、NGUIに任せることができますが、ドラッグ、ピンチ、ジェスチャー等は独自に実装しようとすると結構大変です。 FingerGestures は、ユーザの入力操作周りのハンドルを簡単に、かつ細かいパラメータ(ドラッグやピンチと判定する時間、距離など…)を設定することができます。

特に設定なしにマウス操作も同時にハンドリングしてくれるので、エディタ上でのデバッグもオケオケオッケー!です。

 

Easy Save 2

https://www.assetstore.unity3d.com/jp/#!/content/768

端末ローカルにセーブデータを保存する場合に有用なアセットです。

様々なデータ型や、配列のセーブ&ロードに対応しており、保存データの暗号化も可能なので、面倒なシリアライズ / デシリアライズのような実装の手間を省くことが出来ます。


ここまで、ゲームの種類に関係なく汎用的に使えるアセットを紹介してきましたが、マシマシならではの変わり種?アセットを紹介します。

 

SAColliderBuilder

https://www.assetstore.unity3d.com/jp/#!/content/15058

「マシマシ」では、具材の形状によって当たり判定を変えることで、ゲームにリズムを付けています。(チャーシューだと平らなので安定、タマゴだとコロコロ…など)

ゲームの特性上、非常に多くのオブジェクト同士の衝突判定を行わければならない都合、メッシュコライダを用いることができません。

そこで、Box、Capsule、Sphereなどのプリミティブコライダを組み合わせることで、計算量を抑えた衝突判定を行うようにしています。

 

しかし、コライダを手付けしていくのは、だるだるブルーな作業です。特にコイツ…。

※伊勢海老です。

※伊勢海老です。

そんなとき、SAColliderBuilder というアセットが便利です。モデルのメッシュ形状に合わせてコライダを自動生成してくれます。

 

モデルに SAColliderBuilder スクリプトをアタッチして、分割数などのパラメータを設定して、「Process」を押すと…

 

 

 

 

 

らぶゆ〜!

 

ここから部位毎に Shape Type を変更したり、位置を微調整することも可能です。

※実は「マシマシ」の開発途中にリリースされたアセットのため、実際のコライダはもっと単純なものを、手で付けています。省力化が図れますよ!ということで紹介させていただきました。

 

プロトタイプ開発に使える?お役立ちアセット

この私が所属する内製新規アプリ開発チームも、数々のスクラップ&ビルドを繰り返してまいりましたが、プロトタイプ開発で用いたお役立ちアセットを、一言コメントとともに紹介していきます。

 

Cartoon FX Pack シリーズ / FX Mega Pack

https://www.assetstore.unity3d.com/jp/#!/content/4010
https://www.assetstore.unity3d.com/jp/#!/content/8933

Shurikenのパーティクル集です。アーティストの方にオリジナルのパーティクルを作っていただく際のベースに用いたりもしました。プロトタイプレベルであればそのまま使っても支障ないくらいバリエーションに富んでいます。

 

Mecanim HeroMale 90 Animations

https://www.assetstore.unity3d.com/jp/#!/content/10813

歩く、攻撃する、ダメージを受ける…など、Mechanimを使って3Dモデルを動かす際に使えるモーション集です。かなりアグレッシブな動きなので、かわいいモデルに適用するとシュールなことになります。

 

Jelly Sprites / Jelly Mesh

https://www.assetstore.unity3d.com/jp/#!/content/13327
https://www.assetstore.unity3d.com/jp/#!/content/15685

ぷるっぷるな質感を表現することができます。Spriteが2D用、Meshが3D用です。サンプルを見ているだけでも癒されます。

 

おわりに

「マシマシ」の制作と、プロトタイプ制作を通じて利用したアセットについて、ざっくりと紹介してきました。この他にも、開発においては様々なアセットを利用させていただいております。アセットを評価しているWebサイトや、書籍も各種ありますので、参考にしながら、効率的で熱いUnity開発を進めていきたいですね!ユニカツ!ユニカツ!