見出し画像

零戦で空中戦をしたい 演出と飾り付け

  ゲームはどこをどう動かすか決まれば半分出来たような物で、後は接触したら何をさせるかはScriptで指示を教えればできる。Unityで使うScriptはネット上にあるし、AIチャットを使えば検索する時間も短縮してくれる。ゲームに使用するキャラクターや小物、自然環境などはAssetStoreから無料の物をインストールをすれば出来る事はできる。だから大切な事は演出と飾り付けだと言われている。零戦で空中戦をしたい目的は5機撃墜でエースと呼ばれるほどに空中戦は難しく走りながら針の穴に糸を通すくらいだと搭乗員は言っている。それを表現するのはカメラワークだと思っている。空中3次元立体を見せるために常に敵機を追いかけるサブカメラと視点固定のメインカメラを用意した。そして零戦と一緒に動くようにする。敵機から見た零戦も考えcinemacineで実験したが高速で移動するオブジェクトの調整が難しいので断念した。
 敵機を常に追いかけるScriptをSubCameraに付ける。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SmoothLook : MonoBehaviour
{
     public Transform _targetTransform;
     public float _speed = 0.1f;

    void Update()
    {
        transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(_targetTransform.position - transform.position), _speed);
    }
}

空のGameObjectにCameraを切り替えるScriptを付ける

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraController : MonoBehaviour
{
    public Camera mainCamera;
    public Camera subCamera;
    // 「bool」は「true」か「false」の二択の情報を扱うことができます(ポイント)
    private bool mainCameraON = true;

    void Start()
    {
        mainCamera.enabled = true;
        subCamera.enabled = false;
    }

    void Update()
    {
        // (重要ポイント)「&&」は論理関係の「かつ」を意味する。
        // 「A && B」は「A かつ B」(条件AとBの両方が揃った時という意味)
        // 「==」は「左右が等しい」という意味

        // もしも「Cボタン」を押した時、「かつ」、「mainCameraON」のステータスが「true」の時(条件)
        if (Input.GetKeyDown(KeyCode.C) && mainCameraON == true)
        {
            mainCamera.enabled = false;
            subCamera.enabled = true;

            mainCameraON = false;

            // もしも「Cボタン」を押した時、「かつ」、「mainCameraON」のステータスが「false」の時(条件)
        }
        else if (Input.GetKeyDown(KeyCode.C) && mainCameraON == false)
        {
            mainCamera.enabled = true;
            subCamera.enabled = false;

            mainCameraON = true;
        }
    }
}

これでC Keyを押せばCameraが切り替わる

 Effect

 演出効果のEffectは3DではParticle(粒子)と呼ばれる。一つ一つの小さい粒子の元を数多く集めて遠くから見たらまとまって動かせば炎や煙などに見える。複数のParticleを組み合わせれば爆発にも見える。Asset Storeに無料の物があるがパターンが決まっている。簡単なものは勉強しなくても自分で作れる。空のGameObjectにParticleSystemをアタッチ、Renderを開きMaterialを決める。次にShapeを開いて形を決める。後は数字の調整だけで作れる。本格的なParticleを作りたかったらUnityにはVFX Graphがあるが勉強とセンスが求められる。

Renderを開く

 エンジン音は5KPlayerと言う動画をダウンロードできるソフトに音だけ抜き取る機能があるので実際のエンジンを使用した。


夢は100万の大軍を動かすゲームを作ることです。それまでには時間がかかりますが応援お願いします!