見出し画像

Unityで飛行戦を動かそう。

こんにちは、今日はUnityで飛行戦を動かしてみたいと思います。

そしてこれが今日やる飛行戦が飛んでいる様子です。

動画では、プロペラが回っていましたがこのページではとりあえず飛行戦を飛ばすところまでで、プロペラは回しません。

それでは作っていきたいと思います。

あ、ちなみにUnityを持ってない人はUnityのインストール方法があるのでこれを参考にUnityを入れてみてください。

Unityに飛行戦をインポートしよう!

まず最初にGitHubから飛行戦をダウンロードできるようにしましたのでそこから飛行戦をダウンロードして下さい。

ちなみにこれは僕がBlenderという3DCGソフトで作った飛行戦のモデルです。

この飛行戦は自由に使ってください。

GitHub 飛行戦のURL

次はUnity Hubを立ち上げます。

そして、プロジェクトというところを押します。

画像1

プロジェクトを押すと下の画像のような画面が出ます。

画像2

そして右上にある新規作成を押します。

新規作成を押すと下の画像のようなページが開きます。

画像3

このようなページに開いたら、プロジェクト名を打っていきます。

プロジェクト名は適当でいいですがテンプレート3Dにしてください。

ちなみに私のプロジェクト名「飛行戦を動かそう」にしました。

出来たら、右下作成を押します。

そうするとUnityが立ち上がります。

ここから、Unity飛行戦のモデルインポートしていきます。

インポートの仕方は簡単です。

まず、先ほどダウンロードした飛行戦をUnityAssetsにドロップします。

画像4

そうするとUnityのAssetsに飛行戦のモデルが追加されます。

画像5

次に、UnityAssetsに追加された飛行戦モデルを次は左のHierarchyにドロップします。

画像6

そうすると3D画面に飛行戦のモデルが出ます。

画像7

ここまで出来たらとりあえずUnityに飛行戦を入れるのは完了です。

それでは次行きましょう。

FPS視点で作ってみよう!

先の動画のように、FPS視点で動作させていきます。

では、やっていきましょう

まず、Main Camera飛行戦操縦席移動させます。

Main Cameraは、クリックすると出てくる矢印をドラッグすることでオブジェクトを動かすことができます。

これを使ってMain Cameraを移動させていきます。

Main Cameraを下の画像のように移動しましょう。

画像8

次に飛行戦の親オブジェクトMain Cameraにします。

Unity画面の左側にあるHierarchyで操作します。

画像9

hikouki2というオブジェクトMain Cameraにドラッグします。

パソコンでファイルフォルダ移動する方法と似ていますね。画像10

これで、Main Cameraが親になり、飛行機の動きに合わせて視点も動くようになります。

FPSっぽくなりましたね。

飛行戦を動かしてみよう!

まず最初にScriptMain Cameraに追加します。

Main Cameraをクリックして、右側に表示されるInspectorのAdd Componentをクリックします。
そうすると、下の画像のようなものが出ます。

画像11

リスト下側にあるNew scriptをクリックします。

名前はなんでもいいのですが、僕の場合はSteeringにしました。

名前を付けたら、下にCreate and addというのがありますのでそれをクリックします。

AssetsScriptが追加されるので、ScriptダブルクリックしてVisual studioを立ち上げます。

ここから、C#で飛行戦を動かすコードを書いていきます。

まず最初に、Wキーを押したら前進するようにプログラムを書きます。

プログラムがこれです↓↓↓

画像12

void Update()1フレームごとに呼び出されるメソッドです。

次はifです。ifもしという意味ですね。

そして、ifの隣にある()は条件です。

()の中に条件を入れたりします。例えば、if(変数 == 2)はもし 変数等しかったらという意味です。

なのでここで書いた条件if (Input.GetKey(KeyCode.W))「もしWキーが押された場合」という意味になります。

if文の中に書いた、transform.Translate(0, 0, 1);座標Zを1つ増やすという意味です。

簡単なプログラムなので、上の画像を見ながら試してみてください。

書き終えたら、プログラム保存してUnity画面に戻り、画面上にある再生ボタンをクリックします。

画像13

画面がGame画面に切り替わります。

止めたい場合はもう一回再生ボタンを押すと止まります。

これでWを押して前に進むか確認してください。

前に進んだら成功です。

飛びましたか?でもなにもない世界で飛んでも寂しいので、背景を加えてみましょう。

島を出してみよう!

島も、僕が作った島です。

まず、僕のGitHubに島のオブジェクトファイルがありますので
そこからダウンロードしてください。リンクも張っておきます。

GitHub島のobj  

ダウンロードしたら、先ほどの飛行機のインポートの仕方と同じようにAssetsにドロップします。

画像19

そうするとAssetsにMapが追加されます。

このようなものです。             

画像16

そして、Assetsに追加されたNew Terrain3D画面ドロップします。

そうるすと、3D画面に島が出ます。

画像17

島の上を飛んでみましょう。飛べましたか?

次は、Wを離したら飛行戦が止まるようにしたいと思います。

先程と同じようにVisualStudioを開き、次のようなコードを追加してください。

画像19

先程と違うところは、if文の条件が「Input.GetKeyUp」になっているところですね。
これはwキーがUpしたら、つまりキーから指が離れたらという条件になります。

それでは次行きましょう。

FPSのようにエイムを作ってみよう!

マウスに合わせて動くエイムを作ってみます。

次のようなプログラムを書いてみましょう。

画像18

このプログラムではfloat変数であるhorizonatalSpeedverticalSpeedでマウスポインタの速さを制御して、エイムのような動作を実現しています。

float h = horizonatalSpeed * Input.GetAxis("Mouse X");
float v = verticalSpeed * Input.GetAxis("Mouse Y");
マウスが動いたことを判定しています。

transform.Rotate(v, h, 0);
は、マウスの動きに合わせて画面を移動させます。

書き終わったら保存してUnityに戻りスタートさせてください。

マウスに合わせて画面が動きましたか?

動いたら成功です。

あとはマウスポインターが邪魔なひとは、
void Start()の中に、

Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;

入れるとGame実行の時にマウスポインターが非表示になります。

これで飛行戦を動かしてみようの講座は終わりです。

次は、この飛行戦のプロペラを回していきたいと思います。
あと、飛行戦の動きもプロペラに合わせて加速と減速も入れていきたいと思います。
あとは、重力も入れていきたいと思います。

わからないところがあったらコメントをください。

それではさようならぁぁ👋







この記事が気に入ったらサポートをしてみませんか?