LoginSignup
11
1

More than 3 years have passed since last update.

[UE4]FirstPersonShooterゲームを作るときのtips集

Last updated at Posted at 2019-12-19

よし、FPS作るぞ!

・この記事ではUnreal Engine4を使ってFPS(FirstPersonShooter)を作るときに参考になるかもしれないtips集をお届けしたいと思います。

この記事はUnreal Engine 4 Advent Calender 2019その2の20日目の記事です。
https://qiita.com/advent-calendar/2019/ue4_deux

NearClipPlane

・FPSを作ったことがある方、または作ろうとした方が一度は目にするこの現象
NCP_10.png
カメラから近い場所をクリップしてしまう現象です。実はこれProject Settingsから緩和することが可能です。

NCP_Settings.png

試しにNear Clip Plane5にしてみましょう。(初期値は10)

NCP_5.png
クリッピングされなくなりました!素晴らしい!

WeaponCollision vs Wall

MeshIntoWall.png
FPSゲーでよく見るこの現象、なるだけで僕はがっかりしてしまいます。いくつかの直し方があるので直してみましょう。

CapsuleCollisionのRadiusを大きくする
CapsuleCollision.png
デフォルトが34ですが、それを80くらいにしてみました。

CapsuleCollision_80.png
埋まらなくなりました!ですが、この方法は継承されているCapsule Collisionの大きさを変えているので場合によっては破綻する恐れがあります。(Capsule Collisioinで敵からの当たり判定などをとっている時などはまた別のCapsule Collisionを用意し当たり判定を取った方がいいです)

腕メッシュを前後に移動

Component.png

これはCameraの下に腕のメッシュがある場合の解法になります。

Tick01.png
銃メッシュのBarrel Socket(銃の先端)から画面の真ん中までLine Traceを飛ばし、ヒットしたらBarrelSocket-ImpactPointしたのをLength(長さ)にします。そのLengthを元にMap Range Clampedをし腕メッシュの位置を前後に移動させ埋まらなくさせています。こんな感じになります。

IKやらなんやらでごちゃごちゃやる方法もありますが、それだけで一本記事が書けちゃうくらい長いのでそれは後ほど

ADS

ADS(AimDownSight)です。tipsというよりかは実装例になります
Component.png
武器のクラスにCameraを追加します。関数を作成します。
ADSFunc.png
基本的にはSet View Target With Blend関数でどうにでもなります。New View TargetのActorが新しいCameraになります。CameraをComponentに含むクラスであれば問題なくCameraの遷移が行われます。この関数をプレイヤーのクラスで呼び出すことでADSが可能になります。

銃の発射処理

・セミオート
Semiauto.png
単純に銃クラスのFire関数を実行するだけ

・フルオート
Fullauto.png
銃クラスのFireをSet Timer by Function Nameで実行するだけ

・3点バースト
3-Bursh.png
Fire関数を実行し、delayを挟むだけ

以上!

気が向いたらまだまだ追加するかも。現在進行形でFPSを製作中ですので何か面白いネタがあったら追加で書きます

明日はregonnさんの[Pythonと機械学習をUE4で使ってみる]です。楽しみですね!

11
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
1