銃の反動

・選んだ理由

FPSが好きでよく銃撃戦のゲームをプレイしていたからどのように処理されているのか気になったので調べようと思いました。

 

反動は、一般的にシューティングゲームで使われていて自身が銃を発砲したときなどに起こるものです。VALORANTやAPEXなどのFPSシューティングゲームで使われている。

 

このテーマではプログラミングができるようになったら自分でシューティングゲームを作ってみたいです。

 

目的を達成するために調べたことは、銃の反動はどのように動いてるのかと、反動の見せ方です。

画面を揺らすことで銃の反動を再現して、自身が発砲をしているときに起きる反動を表します。ボーンに加えることで再現。カメラを動かして自身は動かないようにするなど。

カメラを動かす処理

using UnityEngine;
using System.Collections;
public class WaveCamera : MonoBehaviour {
private Animator animator;
private Vector3 defaultPos;
[SerializeField] float wave;
// Use this for initialization
void Start () {
animator = transform.root.GetComponent <Animator> ();
defaultPos = transform.localPosition;
}
// Update is called once per frame
void Update () {
if (animator.GetBool ("Shot")) {
transform.localPosition = new Vector3 (transform.localPosition.x + Random.Range (-wave, wave), transform.localPosition.y + Random.Range(-wave, wave), transform.localPosition.z);
} else {
transform.localPosition = defaultPos;
}
}
}

 

まとめ

今回は自分の好きなゲームジャンルについてまとめました。銃の反動は普段からどうなているのかと気になっていたので知ることができてよかったです。反動の見せ方はほかにもたくさんあると思うので今後いろいろなゲームをプレイしたときに気になったら調べたいと思います。

 

 

こちらのリンクを参考にしました。

gametukurikata.com


gametukurikata.com