Unityでゲーム、アプリ開発

Unityで初めてゲームやアプリを作る人のための支援ブログです。

Unity ランゲームを作ろう④、ステージの作り方と動く障害物の作成 3Dゲーム作り⑧

今回は、ランゲームのスコア実装の前にステージの作って
いく方法と、動く障害物を取り入れるちょっとした技法の紹介です。


ステージの作り方と動く障害物の作成!

f:id:Phoenix9056:20200429230704p:plain

※前回の続きからの作成になっていてスクリプトの内容で
行う手順が少し変わってくるので是非参考にしてください。

www.unityprogram.info


f:id:Phoenix9056:20200429232025p:plain

※前回作ったStage1のプレハブは一度削除して新しく作っていきます。
ProjectAsset内にあるNejikoRun-master⇨Assets⇨①Prefabsをクリックして
②DefaultStageScene内にドラッグ&ドロップしてください。
※一応NejikoRunのアセットリンクを貼っておきます。
このアセットを使わなくてもCubeで地面のように作成してプレハブ化して使っても構いません。

Nejiko Run - UnityList

名前をStage1に変更して、分かりやすく編集出来るように、
Inspector内にあるTransform
PositionX15にしてY,Zにします。
※地面のオブジェクトのデザインが変わっていますが後ほどこの手順をやっていきます。


次はステージの色を変更するために、アセットを使用していきます。

f:id:Phoenix9056:20200429235645p:plain

アセットストアから『Yughues Free Metal Materials』と検索して
ダウンロード、インポートしてください。
※リンクは下記に貼っておきます。
assetstore.unity.com


f:id:Phoenix9056:20200429233632p:plain

Project内に先程インポートした①Metal texturs pack
▶︎をクリックするとたくさん出てくるので、その中で
自分が変えたい色を選んで、②の丸い形をしたMaterial
Hierarchy内のStage1の中にある③Groundにドラッグ&ドロップしてください。

そうするとStage1共に前回の続きからやっている人は
全部のStageの色が反映されていると思います。
※全部変わったのは、プレハブ自体の変更をして適用されたからです。


今度は敵キャラクターを新しく用意していきます。

f:id:Phoenix9056:20200430001456p:plain
また、アセットストアから『LowPoly Fantasy Monsters Pack 』
検索してダウンロード、インポートしてください。
※ブラウザからのリンクは下記に貼っておきます。
assetstore.unity.com


f:id:Phoenix9056:20200430000615p:plain

Project内の先程インポートしたLowPoly Fantasy Monster⇨①Prefabsをクリックして、
②goblin_01_MecanimHierarchy内にある③Stage1にドラッグ&ドロップして子要素にしてください。
※一個上のゴブリンはMoveスクリプトが付いていて一緒に動いてしまうので
使う際はスクリプトを削除して使ってください。

④のように自分が配置したい所に動かしましょう。
InspectorのTransform⇨Positionの値をにすると動かしやすいです。

goblin_01_MecanimInspector内にある
⑤のTagRoboに変更しましょう。
コレは前回のダメージ判定で当たるオブジェクトのタグがRobo
オブジェクトをスクリプトで指定してある為です。

Transform内の⑥PositionYの値を180にしてゲームが進行した時に
敵キャラクターがコチラを向くようにします。



f:id:Phoenix9056:20200430012952p:plain

敵キャラクターを設置していくにあたって
敵キャラクターに付いているSphere Colliderのコライダと
接触する事によってメインキャラクターがダメージを受ける
設定になっていて、コライダが大きすぎてダメージ処理をしてしまったので
InspectorからSphere Colliderの値を変更しました。

自分が好みように大きさを設定してみてください。


f:id:Phoenix9056:20200430014305p:plain

今度はジャンプして避ける障害物を作っていきます。
Hierarchy内の①+⇨3D Object⇨Cubeを選択して、
②Cubeを作成したら、Stage1にドラッグ&ドロップして子要素にします。

次にProject内にある③Metal textures Packの中から
好きなものを選んで④のマテリアルをCubeにドラッグ&ドロップして
色を変えていきましょう。

CubeInspectorの⑤のTagを忘れずにRoboに変更しましょう。
TransformRotationYは変更しなくて大丈夫です。
⑥のScaleX⇨6、Y⇨1、Z⇨0に変更して形を⑦のような
ハードルみたいにします。
後は好きな所に設置してください。


さあ!いよいよ動かすオブジェクトの作成です!

f:id:Phoenix9056:20200430020120p:plain

今度も、Hierarchy内のを選択して
Cubeを作成⇨Stage1にドラッグ&ドロップして②のようにします。
画像ではStage4と表記してありますが、ステージを4つ作っていたからなので
あまり気にしないでください。

Inspector内のタグをRoboに変更を忘れずに。
かく言う僕は結構忘れてました。
TransformScaleの値を③のように、に変更して
縦長のCubeにします。
色はお好みでマテリアルをつけてください。

今度はCubeを動かすスクリプトを作っていきます。
Project内の自分の好きな所で右クリック⇨Create⇨C# Scriptから
名前をCubeSideにして④のスクリプトを作成します。

次のコードをコピー&ペーストするか同じ記述にしてください。

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

public class CubeSide : MonoBehaviour
{
    //float型を変数moveStateで宣言します。
    public float moveState;
    //float型を変数speedで宣言します。
    public float speed;
    //Vector3型を変数vectorで宣言します。
    Vector3 vector;

    void Start()
    {
        //初期位置を保存します。
        vector = transform.localPosition;
    }


    void Update()
    {
        //x軸に移動する移動範囲とスピードの計算をします。
        float x = moveState * Mathf.Sin(Time.time * speed);
        //割当られた数値を元にx軸のポジションを決定します。
        transform.localPosition = vector + new Vector3(x, 0, 0);
    }
}

出来上がった④のスクリプトCubeにドラッグ&ドロップしてアタッチします。

f:id:Phoenix9056:20200430021919j:plain

CubeInspectorからスクリプトの設置をします。
Move StateにしてSpeedに変更しましょう。
Move Stateは2の場合右に2進んで左に2進む往復をします。

オブジェクトを配置する位置はなるべく中央のほうが
僕はいいと思います。
後は好みで色々いじってみてください。


f:id:Phoenix9056:20200430022308p:plain

ステージが出来上がったら、①Stage1Projectのアセット内に
ドラッグ&ドロップしてOriginal Prefabとして新しくプレハブ化しましょう。

こような手順で続けてStage2、Stage3と作成してプレハブ化してください。


f:id:Phoenix9056:20200430022702p:plain

最後にHierarchy内にあるStageをクリックして、
Inspector内にある、③Stage TipsSizeにして、
プレハブ化したステージをそれぞれドラッグ&ドロップして完成です。

ステージはそれぞれランダムで出現します。

それでは再生してみましょう!

f:id:Phoenix9056:20200430023838g:plain

人生避けるので精一杯!
時には壁にぶつかってダメージ受けたり。

道中モンスターを仲間にせたり皆さんの人生色々あると思います。

頑張りましょう!

ご視聴ありがとうございました。

今日のゆうきさんのゲーム実況!

youtu.be


関連記事

※本格的に3Dゲームを作っていきたい方は下記カテゴリを参考にしてください。
www.unityprogram.info

※オススメの無料アセットは下記カテゴリより。便利なアセットが有ます。
www.unityprogram.info

※Unityを学習していきたい方は下記カテゴリを覗いて見てください。
www.unityprogram.info

※実際に使って読んでみたオススメの本は下記カテゴリからご覧ください。
www.unityprogram.info

※初心者に向けた簡単な記事は下記カテゴリより。
www.unityprogram.info