3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Corgi Engineのはじめかた

Last updated at Posted at 2020-12-30

Corgi Engineを一週間使ってみたので、分かった範囲で書いていきたいと思います
Corgi Engine(https://assetstore.unity.com/packages/templates/systems/corgi-engine-2d-2-5d-platformer-26617?locale=ja-JP)

Corgi Engineは2Dのプラットフォーマーのテンプレートで昔のマリオみたいなゲームが作れます。アングリーバードみたいな物理演算ゴリゴリなのを作るのには向いてません

どういった風に自分のゲームに組み込むかですが、一週間使ってみてこんな感じがよさそうです

  1. Corgi Engineの機能を理解し、それに沿ったゲームデザインにしたゲーム→Corgi Engineをそのまま使う
  2. プロトタイプ、短期間で作るゲーム、少しだけカスタマイズが必要なゲーム→Corgi Engineをカスタマイズする
  3. 長期間かけて作るゲーム→Corgi Engineのソースコードを流用して自分で作る

なぜ、3はソースコードの流用がいいのかというと、大幅なカスタマイズをするとコードの整合性を保つのが難しいので、ブラックボックスをなるべくなくして扱える範囲でやった方がいいです

公式のドキュメントがあります。
https://corgi-engine-docs.moremountains.com/
英語ですが基本的な内容はあるので、わからなくなったらみると解決したりしなかったりします。Youtube動画もあります。なぜか音が小さいです
ここをみて解決しなかったら、Googleにきいたり、それでもわからなかったらCorgi Engineのソースコードをみましょう

#Corgi Engineで遊ぼう
まずは、遊んでみてどういったことができるかを知っておきましょう
Corgi Engine/ Common/ Scenes/ SplashScree.unity
このシーンを実行するとはじめから遊べます
Level_Selection.png
普通の2Dやドット絵、3Dのステージ、また機能を説明するために最低限の要素で構成されたMinimalステージもあります

操作方法は公式ドキュメントのここにかいてあります
https://corgi-engine-docs.moremountains.com/input.html

移動:W,A,S,D(W,Sは上向いたり、下向いたりする)
ジャンプ:Space
走る:Sift
ダッシュ:F
ショット:E

画像をはっつけときます
input-4.jpg

#キャラを作ってみる
正方形をプレイアブルキャラクターにしていきます
その前にシーンを用意します
CorgiEngine/ Demos/ Minimal/ MinimalLevel.unity
最低限のステージ(Level)が用意されているシーンです。GameManagersやLevelManagerなどがあらかじめ含まれています。実行するとこんな感じのです
MinimalLevel.png

これを複製して、変更していきましょう。まず、正方形(ツールバーからAssets>Create>Sprites>Square)をシーンに配置します
この正方形のGameObjectにAdd ComponentでCharacterを追加します。
Character.png
インスペクターにあるCharacterコンポーネントに"AutoBuild Player Character"とかいたボタンがあるので押すと自動的に必要なコンポーネントの追加やタグ、レイヤーが変更され、操作できるようになります。
追加されたコンポーネントをいじって簡単に挙動を変えれます。例えば、ジャンプの上限を5回に変更したときは、CharacterJumpコンポーネントのNumber Of Jumpsを5にするだけです

このままでも操作はできますが、ちゃんと管理できるようにLevelManagerに登録します。先ほど作成した正方形のゲームオブジェクトをPrefab化します。シーンに配置されているLevelManagerのPlayer PrefabsのSizeを1として、Element 0に正方形のPrefabを付けます
movie1.gif

足場を作る場合はCollider2Dをつけて、レイヤーをPlatforms、下から通れるようにしたいならOneWayPlatformsにします

他にも機能が用意されています。CorgiEnigine/Demosの中からその機能が使われているシーンを探して真似すればできます

#カスタマイズ
私はCorgi Engineのソースコードを直接いじってファイルの位置を変えたらプロジェクトが2回壊れたので直接いじらないようにしています。公式の動画でもその方がいいといってました

Corgi Engineのコードはプロパティとメソッドにほとんどprotectedやvirtualがついているので継承で書き換えられます
ただし、CharacterJumpやCharacterRunといったクラスを継承してキャラクターにアタッチしてもうまく動きません。CharacterJumpやCharacterRunなどはCharacterAbilityを継承しています。これらを他のクラスから取得するためにCharacterクラスにFindAbility()が定義されています。FindAbility()は指定したクラスとまったく同じクラスのコンポーネントしか取得しないので、子クラスのコンポーネントをつけていても取得できないため正常に動作しなくなります。アクション時に音やエフェクトを追加したいなら、Corgi Engineには独自のイベント機能があるのでそれを使ってアクション時に実行させることが可能です

#まとめ
Corgi Engineは楽しいのでぜひ使ってみてください

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?