feature image

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

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

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

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

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

発端

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

できたものはこんな感じです↓
f478489a-78b1-4429-bd69-179249de5168-1

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

実装の過程

まず死ににくいように

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

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

それっぽい動きにする

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

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

攻撃

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

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

結果

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

おしまい

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

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

この記事をシェア

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

関連する記事

2023年11月21日
School Breakin' Tag -新感覚おにごっこ-
s9 icon s9
2023年9月3日
タイピング&アクション『TypeTheCode』作りました
wal icon wal
2023年4月25日
【驚愕】作曲4年目だった男が大学3年間ゲームサウンドに関わった末路...【ゲームサウンドのお仕事について】
tenya icon tenya
2021年8月12日
CPCTFを支えたWebshell
mazrean icon mazrean
2023年4月25日
15時間でゲームを作った #Oxygenator
Komichi icon Komichi
2022年9月26日
競プロしかシラン人間が web アプリ QK Judge を作った話
tqk icon tqk
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記