UE4で1人称視点の3DSTGを作ってみる(第四回)

お久しぶりです、今回も進めていきましょう。
前回までの実装で『敵を配置して動かす』『敵に攻撃させる』『敵を倒す』といった部分を創っていきました。

今回はこれまでに比べるとやや地味ですが、『敵の出現処理』を創っていきましょう。要約すると『敵のスポーン処理』ということです。

今までは敵を直接レベルに配置して手動でパラメータなどを設定していましたが、これではレベルデザイナーさんに不親切ですよね?
(この記事は一人で書いているのであまり関係ないかもしれませんが、いると仮定しましょう)

簡単なスポーンシステムを実装することにより、レベルデザイナーさんなどをはじめ、様々な人がエネミーの配置をできるようになるハズです。

とりあえず今回作るスポーンシステムですが
『スポーン用のアクタを配置する』
『スポーン用アクタには各種パラメータを設定できるようにする』
『敵はスプラインの途中からもスポーンできるようにする』
『スポーンした時点での移動方向を指定できるようにする』
『敵が1体死ぬごとに次の敵をスポーンする』
という仕様で進めていきます。

続きを読む

UE4で1人称視点の3DSTGを作ってみる(第三回)

ではでは今回も進めていきます。

前回では敵のスプライン上での移動方向と移動速度の変化を創っていきましたが、今回は『敵の攻撃』を創っていきます。
いよいよゲームらしくなってきましたね。

ひとまず今回作る敵の攻撃は
『一定の周期で攻撃モードに入る』
『攻撃モード中はプレイヤー方向を向き続ける』
『攻撃モード中は一定の間隔で弾を撃つ』
『弾はまっすぐ飛ぶ』
という仕様で進めていきます。

続きを読む

UE4で1人称視点の3DSTGを作ってみる(第二回)

引き続き進めていきます。
前回は空中を浮遊する敵をとりあえず動かすところまでやっていきました。
今回はもう少しゲームっぽく進めるために『敵へのダメージ処理』『ダメージ時の敵の挙動』を作っていきます。

とりあえず今回の目標としては
『弾がヒットすると体力が減る』
『体力が減るたびに移動速度が上がる』
『体力が減るとランダムで移動方向が変わる』
という風に敵が動作するようにします。

続きを読む

UE4で1人称視点の3DSTGを作ってみる(第一回)

お久しぶりです。
さて、突然ですが今回からは数回にかけて簡単な3DSTGのようなものを作っていこうと思います。
とりあえず初回である今回は『空中を浮遊する敵』を作るところからやっていきます。

使用するUE4のバージョンは4.23.1です。
(最新ではないですが、現時点で最新バージョンの4.24でも問題なくこの手順で実装できます)

続きを読む

UE4のナビメッシュで簡単な優先順位をつける

UnrealEngine4にはいろいろと便利な機能が備わっています。
そのうちの一つが『ナビメッシュ』です。

これがあることによって、UE4におけるAI実装はかなり敷居が低くなっています。

ただ、ナビメッシュを使ったAIを実装しているとどうしてもぶち当たる壁があります。
それこそが『移動の優先順位』です。

例えば、『地点Aから地点Bに向かって人間を歩かせたい』というとき、
①直進するだけでBに着くがダメージ床だらけの道
②迂回する必要があるが安全にBに着く普通の道
の二つの選択肢がナビメッシュ上のAIに与えられた場合、
何の設定も行っていないと速攻で①のルートを選びます。

理由は簡単で、ナビメッシュ上のAIは目的地に向かって最短のルートを進もうとするからです。
ただし、これだと違和感バリバリですよね。
普通の人間が安全な道があるのに、危険な道を進みだすのはおかしいですもんね。

このような状態を防ぐための機能がUE4には最初から備わっています。
それこそが『Nav Modifier Volume』です。

『Nav Modifier Volume』を利用することによって、
簡単な移動の優先順位をつけることができます。

続きを読む