【UE4】無料アセットで簡易TPS作成! Part6


この連載では無料アセットを使って、キャラクターに武器を持たせて弾を発射できるようにしてみたいと思います!
TPS(サードパーソンシューティング)ゲームの基礎部分が出来上がる想定です。
とりあえずPIE上で疑似マルチみたいなもの(ダメージ判定等)が動く状態までを目標にしています。

初めての方は過去の記事も参考にしてください。 ⇒ 記事一覧

■環境

Unreal Engine 4.22.3

■今回の内容

自分に弾が当たらないようにする


■自分に当たらないようにする

修正となりますが、エイムオフセットを設定して上下等のエイムができるようになったことで、弾が自分に当たる可能性が出てきます。

修正する方法はいろいろあると思いますが、今回は以下の方針で修正しました。

・Bulletのコリジョン ⇒ Pawn(キャラクター)だけOverlapにする。
・BulletのHitイベント ⇒ Destroy Actorのみに変更(Apply Damageなくす)
・BulletにOverlapイベント追加 ⇒ 自キャラクターでなかったらダメージを与える

では実際にやってみましょう。
Bulletをブループリントエディタで開いて、ビューポートタブを選択して下さい。
コンポーネントタブでStatic Meshを選択して、コリジョンを以下の通り設定しましょう。

次はイベントグラフを開いて、Hitイベントを修正します。
以下の通り、Hit時にはDestroy Actorするのみの処理にしてください。

続けてStatic MeshのBegin Overlapイベントを作成します。

これで「On Component Begin Overlap」イベントが作成されるので、以下のように処理を作成してください。

BulletのOwnerとBulletがヒットした対象が同じならApply Damageの処理をしないようにしています。

最後にOwnerを設定するために、MyFPSCharacterのブループリントで以下の様に「self」ノードを追加してください。

ここまでできれば処理は完成です。
テストプレイすると自分自身には弾がすり抜け、他のキャラクターにはダメージを与えらるはずです。

■まとめ

たまたまバグが生まれたのをきっかけとしましたが、
イベント毎のコリジョンの設定はゲームを作成する上でよく使う技術かと思います。

さて、一旦この連載はここまでを区切りとします。
もちろんこれだけではTPSやFPSに必須の機能(クロスファイア、武器切り替え、段数制限、リロード、などなど・・)
は全然実装しきれていません。

あくまで初心者が実践を通して開発の雰囲気に慣れることを目的としているため、
この6回までの内容でもそれなりの密度はあるように考えています。

■リンク

Unreal Engine4 記事一覧まとめ

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

PAGE TOP