CorgiEngine-1-とりあえず使ってみる


60$するツールアセット。

凝ったゲームを作りたかったんですが、一からつくると個人ではどうにも。

なんとなく、アセットを使うのは避けてたんですが、あるんなら使った方が良いかなと思い立って、購入しました。

60$ですが、見合った価値は十分にありそうです。というか安いくらい。


簡単に2D、2.5Dゲームが作れることは間違いなさそうですが、Unityの基本操作も理解していないと使うのは難しそうです。

スクリプトを書く手間は格段に減りますが、全くの初心者が簡単に扱えるというわけではないかと。ドキュメントも英語しか見つかりませんし。

Unity初心者でも英語が読めるなら公式のドキュメントとにらめっこすれば何とかいけるかもしれません。

それと、色々とスクリプトを書く必要はでてきそうなので、C#の知識もそれなりに必要になりそうです。シーンの解放に関わる処理なんかも自分で書いてます。拡張はしやすくなっていますが、逆に言えば、拡張前提で書かれているというのもあるかも。自分好みにしようとしたら避けられないところな気もしますが。


早速使ってみます

公式のドキュメントを見ながら使ってみます。英語早く読めるようになりたいな。

まずは簡単なシーンをとりあえず作ってみます。

次のページを参考にしました。

This page covers all the gameobjects you need in your scene for the engine to work.

インポートしたアセット内の「Common-Prefab」フォルダ内に、入力に使うUIやゲームの管理をするオブジェクトのプレハブが作ってあるみたいなので、これを使ってみます。

プレハブ概要

Common-Prefabsフォルダ以下


LevelManagersフォルダ内

GameManagerオブジェクト

GameManagerコンポーネントとSoundManagerコンポーネントがついている。今回はいじくってません。


GUIフォルダ内

UIcameraオブジェクト

UIの色々が入ってるプレハブ。

十字キーとアナログスティックが選べます。

今回は、バーチャルパッドが小さかったのでサイズをでかくしました。普通のuGUIと同じように設定できます。

入力用のコンポーネントがついていることを除けば、uGUIそのままです。スプライトを変えるだけで、自分好みにできそうです。

端末がスマホだと自動でバーチャルパッドが画面上に表示されたりします。
UnityのSwitchPlatformからAndroid、iOSを選んでモバイル環境にすると自動で表示されるはずです。

使ったスクリプト概要

LevelManager

空のゲームオブジェクトにつける。

インスペクタ―の設定

PlayerPrefabsに操作するキャラクターを入れます。

AutoAttributePlayerIdにチェックを入れる。このPlayerIDでバーチャルパッドからの入力を受け取るキャラクターを設定したりできるみたいです。

とりあえず、Demoにあったスペースコーギー君を入れておきました。

CheckPointsのDebugSpawnにCheckPointコンポーネントを付けたオブジェクトをセットします。ここからキャラクターが出てくるみたいです。

このオブジェクトは空のオブジェクトにCheckPointを付けただけです。


他にもいろいろ項目はありましたけど、追々見ていきます。


CameraController

そのままカメラにつける。projectionはorthographicの方が良い?

カメラとプレイヤーの距離とかいろいろいじれそうなインスペクタ―でしたが、とりあえず何もしないでおきます。


CheckPoint

キャラクターの出現する位置。LevelManagerでも触れましたが、空のオブジェクトにつけるだけです。


地面とキャラクターは、Unityプロジェクトで作る通りに作ります。今回はDEMO内のプレハブを使いましたが、DEMO内のアセットは公開するアプリには使っちゃいけない? ようなことが書いてある気がします。

いざ始動!

なんかすり抜ける……orz

ドキュメントを見てみます。

This page explains how the Corgi Engine handles collisions.

どうにも、物理エンジン関連がコーギーエンジン独特の物になっている? Unityの物理エンジンであるphysics2dを上書きみたいなことをしているんじゃないかと。

コーギーエンジンで使うキャラクターには「CorgiController」というコンポーネントを付けますが、これが独自の衝突判定を持っている、ということだと思います。多分。

調べてみたところ、platformMaskとかいうのが。これがレイヤーで衝突判定をする機能にあたるのだろうと。(platformって乗り場って意味もあるのかな?)


地面にあたるオブジェクトに衝突するレイヤーを与えれば良いはず。

そんなわけで地面オブジェクトのレイヤーにplatformをセットしました。

レイヤーはコーギーエンジンをインポートすると自動で追加されていました。
GOOD!!

面倒だなーとも思ったんですが、どうにもこのPlatform設定では、下からの衝突判定はすり抜けたりも出来るようで。下からジャンプして乗れるけど上からは落ちないという判定も簡単にできるみたいです。

つまり、衝突判定を細かく設定できそうです。

スクリプトを書かずに複雑な処理ができる。
そう、CorgiEngineならね。


そういうわけで

ざっと使ってみたけど、やっぱりいい感じです。

正直まだ分かってませんが、覚える時間を割いても十分な対価があるのではないかと。

やっぱりたくさん売れてるだけありますね。レビュー数500超えてますし。