feature image

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

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

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

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

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

発端

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

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

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

実装の過程

まず死ににくいように

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

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

それっぽい動きにする

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

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

攻撃

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

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

結果

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

おしまい

mds_boy icon
この記事を書いた人
mds_boy

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

この記事をシェア

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

関連する記事

2020年5月15日
【新歓ゲーム制作特集 第2弾】Inverse製作秘話
Saltn icon Saltn
2019年5月16日
Party Kingdom
Double_oxygeN icon Double_oxygeN
2018年4月17日
春休みにゲームを作りました
uynet icon uynet
2018年3月17日
traPのゲーム制作ってどんな感じ?
Saltn icon Saltn
2020年5月19日
【新歓ゲーム制作特集 第6弾】個人でゲームを作る話
Facish icon Facish
2019年8月20日
Intuition―1分ギャルゲ
gotoh icon gotoh
記事一覧 タグ一覧 Google アナリティクスについて