Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Corgi Engineのはじめかた

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は楽しいのでぜひ使ってみてください

asa_
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away