1477 文字
7 分

【開発記】マサオのジャンピングレース

制作ゲームについて#

先週、初めてUnityで3Dのゲームを制作しました。

共同制作をしたSOrowさんのシリーズキャラクター、マサオくんを主役としたアクションミニゲームです。

シンプルな操作で5~10分で遊べますので、よかったらプレイしてみてください。

オンラインランキングへの登録お待ちしてます!(’◇‘)ゞ

  • 【DL版】
マサオのジャンピングレース:無料ゲーム配信中! [ふりーむ!]
「マサオのジャンピングレース」:今度のマサオは3Dだ! 思考と反射の限界まで跳び続けよう!
マサオのジャンピングレース:無料ゲーム配信中! [ふりーむ!] favicon www.freem.ne.jp
マサオのジャンピングレース:無料ゲーム配信中! [ふりーむ!]
  • 【ブラウザ版】
マサオのジャンピングレース
(2019/05/06更新) ・オンラインランキングが10人以上登録できなかった不具合を修正 ・操作方法を一部変更 ・二位と三位のクリア時間が入れ替わっている問題を修正 黄緑モヒカンことマサオ君が突如出現した謎のマサオ達と共に華麗にスカイジャンピング! 誰よりも早くゴールを目指して駆け抜けよう! 全レベルクリア後に解放されるエンドレスモードでは、 オンラインランキングによる熱い戦いが待ってるぜ!
マサオのジャンピングレース favicon unityroom.com
マサオのジャンピングレース

Unityで作ってみた感触#

率直なことを言えば、なかなか苦労しました。

これまでは3D座標の考え方がまるでなかったので、最初はVector3クラス自体が「なんぞこれ」といった感じ。

また、慣れないうちはMonoBehaviourを継承した各オブジェクトが持つUpdateメソッドが毎フレーム呼ばれるという仕様が、組み方を間違えると逆に求めている動作の障害になったり……。

これまで使ってきたツールなら簡単にぱぱっと出来ることが、Unityだと妙な回り道をしないとさくっと出来なかったり……。

ただ、逆にUnityであれば超簡単に出来ることも多々あり、マルチプラットフォームである点や便利なライブラリを活用出来る点など、Unityならではの恩恵と勝手の違いをじっくりと感じた開発でした。

苦労した点#

データの管理方法#

これまではツール側に標準でDB機能がついていたので、データ管理などは特に迷うことがなかったのですが、Unityにはそもそもそういうものが存在しない。

使い捨てだけどシーンをまたいだ情報を保存したい時に、いちいちPlayerPrefabとか使いたくないなあとかStaticクラスでもいけるけど視覚的に設定したいなあと思い、調べてみたらScriptableObjectなる便利な機能があったので解決。

シングルトンとの組み合わせは非常に便利でした。

ピクチャの状態変更#

これまで使ってきたツールであれば、移動や透明度の変更などがコマンドで手軽に出来たのですが、Unityではアニメーションを活用する形になります。

ただ、最初はアニメーションの作り方もよくわからなかったので、ピクチャを透明度0から255(Unityの場合は0~1.0)に60fかけて表示したいだけなんだけどなあ、さくっとできないかなあ……なんて不満を持ってました。

セーブロード#

そんなものはUnityにはなーい! 自分で作るのじゃ!

でもPlayerPrefabを使えば簡単なデータはセーブ・ロード出来るし、今回はそれでいっか~、なんて思っていたのですが、テスターさんがUnity経験者だったため、ハイスコアを改ざん出来てしまうという問題を教えてくれました。

/(^o^)\ナンテコッタイ

仕方がなくJSONと暗号化を用いてきちんとセーブデータを作成するようにしました。

PlayerPrefabに重要な情報は保存しちゃダメ、ゼッタイ。

画面を真っ暗にする#

ひじょーに難しかった。

ライトの向きや強さだけを考えればよい訳ではなく、skyboxの設定やオブジェクトのシェーダーにも深い関わりがあり、調べた通りにやっても真っ暗にはならなかったり影響を受けないオブジェクトが存在したりして、オープニングの冒頭部分だけで無駄に時間かかってたりします。

今回はskyboxをスクリプト側で変更したりあたかも照らされた風にオブジェクトをアクティブにしたりしてわりと強引に演出しています。

しかしオープニングはオブジェクト生成やカメラワークなど、Unityならではの演出が出来たので作っててとても楽しかったです。

お気に入り!

楽だった点#

差分管理#

パッケージ出力で更新点だけを簡単に差分出力出来るので、共同制作者間のデータ受け渡しは非常にスムーズに出来ました。

Prefabという概念#

変更を一括適用出来るというのはやはり作業負荷を大きく減らしますね。

ListやLinqが使える#

C#サイコー!ヽ( ´ー`)ノ

VisualStudioで簡単にデバッグできる#

VisualStudioサイコー!ヽ( ´ー`)ノ

※Microsoftの回し者ではないです

今後について#

今回は3Dで作ったものの、今後も3Dで作るかどうかは微妙なところですね。

3Dでもっとしっかりした物を作ろうとした場合、素材不足になるのは目に見えているので……。

また、Unityというツール自体が、足りないもの、自分で作ると大変な部分を有料Assetにて補っていくことで個人でもクオリティの高いものを作れるツール、という印象があるので、もしやるなら有料Assetを購入する必要があるかなと。

でないと超膨大な時間を浪費することになってしまいそう。

でもそこまでいくともうフリーゲームではないよなあという思いもあり、どのツールでどのぐらいの規模のゲームをどこまでコストかけてやるか、という点においてはものすごーく思案中です。

でもまあ今回は3Dで作れて楽しかったです。

モデルデータを作ってくれたSOrowさんにはいつもながら感謝です。

そしてプレイしてくださった方々にも毎度感謝です。

未プレイの方はよかったらプレイしてみてください。

それでは。