2018年9月19日 | ブログ記事

ゲームの敵の動きを実装した話

mds_boy

こんにちは、17のmds_boyです。

現在制作中のSkyHighFightというゲームで敵(CPU)の動きを実装したので、それについて書いてみようと思います。

その前にSkyHighFightについて簡単に紹介すると、空中を飛びながら戦う四人対戦のアクションゲームで、場外に出たり体力が無くなってやられないようにするゲームです。Unityで作っています。
(↓のgifを見た方が早いかも)

発端

今まではプレイヤー2~4人で遊んでいたのですが、1人でも遊べるようにしたいということで敵(CPU)を実装することになりました。
色々あって時間があんまり取れなかったので、楽な実装でそれっぽく動くことを目指しました。

できたものはこんな感じです↓
cpu

色々と怪しいですが、まあ一応は戦えている気がします。

実装の過程

まず死ににくいように

出現させるところまではあらかじめできていました。
が、動かないとそのまま落下して死んでしまいます。
というわけで、まずは高度が低くなったときにランダムでジャンプしたり上昇するようにしました。自然死は減りました。
それと、ゲームの性質上攻撃を食らって端っこに行くと不利なので、端にいるときは中央付近に戻ってくるようにしました。

これで良い感じのサンドバッグができました。

それっぽい動きにする

端にいるとき以外動かないのはどうなの?ということでランダムで左右に動くようにしました。
このとき、動くか動かないかでランダムにするとちょこちょこ動きになってしまうので、ランダムで動く状態にして、一度そうしたら動き続け、ランダムで動く状態から通常の状態に戻すみたいな感じでやりました。
(場外に行きそうなときは戻します)
ジャンプ・上昇も上がりすぎない程度にランダムでするようにしました。

これでちょっと生きてる感じがするようになります。

攻撃

次に攻撃です。
SkyHighFightには攻撃が通常攻撃と強攻撃が四方向あります。
本当は連続攻撃とかあるんですが今回はそこまでやってません。あくまでそれっぽくなので。

まず他のプレイヤーの座標を持っておきます。
それで適当なプレイヤーを攻撃しにいくようにしようかな~と最初は考えたんですが、横はともかく高さを合わせるのちょっと難しくない?ということで、とりあえず距離が近いプレイヤーに攻撃することにしました。
距離が近いプレイヤーがいたら、自分の位置からみた他のプレイヤーの方向に合わせた攻撃をするような感じで実装しました。
キャラクターはFalcoとMagieの二人がいるんですが、Magieの強攻撃は遠距離主体なので取る距離を二倍くらいにしてます。

結果

ここまででちょっと試してみたのが上のgifです。
軽めの実装で割とちゃんと動いたので良かったねとなりました。
もっとちゃんと動くようにするのは大変そうですが…

おしまい

この記事を書いた人
mds_boy

ゲーム制作や競技プログラミングをしています

この記事をシェア

このエントリーをはてなブックマークに追加

関連する記事

2018年9月24日
夏休みブログリレー エンディング
Yosotsu
2018年9月23日
ゲームを作るものを作っています
Sigma1023
2018年9月22日
数理計算の講義を活かして震度計を作った話
RLook
2018年9月20日
私のinit.vimを紹介します(+おまけ)
xecua
2018年9月18日
楽して絵っぽいものを作る
Kejun
2018年9月17日
ロシアでSNS規制されたお話
Aniie

活動の紹介

カテゴリ

タグ