もしも、あるいはそれ以外のこと

Unityを使ったゲーム作りや、ゲームについて考えたりしています。

Corgi EngineVer5.0のアップデートのメモ

私情でバタバタしており更新が滞ってました……。

そんななかCorgi Engineが5.0にバージョンアップしてました。

 
今回はいつものゲームづくりメモをお休みして、アップデートのチェックを行います。更新しても大丈夫かな?
その中でも(個人的に)影響のありそうなアップデートをチェックしてきます。
ざっと並べるとこんな感じでした。
  • エネミーのAIのアクションやシステムの追加
  • ボスの行動決定
  • 新しい武器システムの追加
  • 『非常に簡単にコンボベースの武器を作成する可能性を追加』(!!??
  • キャラクターの能力を追加(泳ぐ、飛ぶ、グライド?)
  • 武器の所有者がヒットした時に攻撃中断オプション
  • 武器を称している間、水平動作(反転)を防ぐオプション追加
  • ほか、バグや調整、画面フラッシュイベントの追加など
 

コンボベースの武器!?

 (注:このブログはコンボアクションゲームを作りたいという動機のもとに書かれています)

あれ、じゃあこのブログの存在意義がなくなるのでは……?
  
と、とりあえずチェックしましょうか……。
日本語翻訳をかけているので原文は公式のリリースノートを参照してください。
 

■エネミーのAI

  - 独自の使いやすいステートマシンを備えた新しい高度なAIシステムを追加しました。
複雑な行動、パターンを作成し、意思決定と行動を組み合わせて独自の敵を創造する。
 - 健康(注 Health:体力設定などのスクリプトかな?)、
ヒット、レイキャストターゲット検出、ワイドキャストターゲット検出、
エリアターゲット検出、距離ベースの決定、時間、接地の新しいAI決定を追加
- パトロール、エリア内のパトロール、ターゲットへの移動、
ジャンプ、撃墜、待機、飛行、武器の変更
 
サンプルとしてDemosのRetroから新しく増えたエネミーをチェックしてみます。

スライムベースの敵には円形の索敵範囲を持っており、そこに入ったプレイヤーを狙って撃ってきます。
また、やられた際にはその場にやられモーションを残して存在し続けるようです。
 
従来までのCorgi EngineはエネミーのAI関係は(アップデートで消されたためか)ドキュメントに存在するような高度なシステムが存在せず、基本的には歩いて、正面方向にレイキャストを飛ばし、ぶつかった敵に対して近づく、または射撃する、程度のものしか存在しませんでした。
制御はAI Brainスクリプト側から設定できるようです。

状態名と付随するアクションのスクリプトを設定して、設定したアクションから真になれば別の状態に遷移する、といったシンプルな設定ですね。
(GUI上で設定できない、またはカスタムして細かく設定しようとすると苦労するかも……)
索敵範囲などはスクリプト上で調整可能です。
 
それにしてもザコ敵なのに狙いが正確過ぎません?
 
ほかにもこのシステムを利用したAIがいくつか追加されました。
◆レトロゴースト

……どっかで見たことある挙動ですね?
 
◆レトロソードマン

届いてないよ……。
 
 

■ボスのAI

 
- Corgiエンジンで複雑なボスの動作の最初の例であるRetroRabbitのボスを追加します。
複数の破壊的な武器、フェイズ、ムーブメントを完成させる。

 

 
こちらはボスにした場合の活用例ですかね?

なにこの絶対殺すムーヴ。
 
興味深いのは各武器ごとにAIを設定して、同一キャラクターとして成立できることですね。
また、武器が破壊されると動きも変わるようです。

ジャンプしたり体当たりベースの攻撃に移ったりと破壊状態によって変化を付けられるなどの細かい挙動の設定も可能なようです。
これは面白い動きができそうですねー。
AI Brainの設定は以下のようになって複雑化してます。

そして各武器ごとをエネミー化して、並行して動作させている仕組みです(左手武器)。

■コンボ武器

自分の苦労は何だったんですか!!
と言いたい気持ちを抑えつつ、チェックしていきます。

わかりにくいですが、三連攻撃をしています。二回目はアニメーション反転しています。
コンボ武器を作成するにはAnimator側に専用のBool値を入れ(画像ではSword1~3)、ステートを追加します。
ComboWeaponプレハブを作るには、
  • ComboWeapon
    • MeleeWeapon
    • MeleeWeapon
    • MeleeWeapon
というふうに追加予定の攻撃武器をコンポーネントとして追加します。
各WeaponスクリプトのAnimation Parameters Names のStart Animation Parameterに攻撃用のBoolパラメータ名を入れ、Animatorと連動させれば使用できます。
……たしかにコンボ攻撃ですね。
 
まぁしかし、どのみち攻撃状態に合わせて武器を付け替えるシステムがないと空中攻撃と通常攻撃などを分けたりはできないので、現在進めている方針で問題ない気はします。
ComboWeaponスクリプトの仕組み自体はカスタムして使用したほうがスリムになりそうですね。
 
 ◇◆
 
ほか、追加されたキャラクターのアビリティ関係に関しては割愛します。
今回のアップデートでは今まで歩くだけや撃つだけだったエネミー関係に手を入れられており、かつ、組み込みも簡単そうなのでこれから活用できそうですね。
 
自分でも敵関係にもチャレンジする機会があったら、今回のアップデートの内容を反映させて記事を書こうと思います。
 
それではまた次回。