makeagame’s blog

UnityとVroidに関する情報を掲載しています。

Unityでゲームを作ろう!-テンプレートを弄ってみよう-

この記事でわかること

・Unityの専門用語

・Unityのスクリプト

・Unityの無料テンプレートを弄る方法

 

この記事はこんな人向け

・Unityに興味がある方

・Unityのプログラムに興味がある人

・Unityでゲーム作りをしてみたいと思っている方

 

今回は前々回に見せたブロック崩しのテンプレートにさらにちょっとしたゲーム要素を追加してみたいと思います!

 

前回はこちら

https://makeagame.hateblo.jp/entry/unitycanvas

 

ゲーム要素を追加する……。

ちょっと考えるだけでワクワクしますね!

とはいえ、無理のない範囲で……そこまで凝ってる感じではないやつ……。

 

ということで、とある条件の時にとある文字が出るなんてのはどうだろうかと考えてみた所存です。

 

いうなれば、ゲームクリアしたときに、ゲームクリアと表示するようなのはどうでしょうか。

 

ゲーム作りの醍醐味、ちょこっと改良ですね!

これが積み重なって個性になっていくわけですが……その第一歩をUnityで表現したいと思います。

 

早速【Game Clear】の絵を追加したいと思います。

 

素材集めは何を使っているか……。

Google先生に「Game Clear フリー素材」で検索してみましょう。

Youtubeなどの動画サイトへアップするなども視野に入る方は商業利用OKかどうかの確認も大事ですね。

 

私はよく「イラストAC」様も利用させてもらっています。

メンバー登録と回数制限はありますが、質の高いイラストを無料で使用することができるからですね。

今回はこちらの画像を参考にさせていただきました。

 

では早速、ゲームクリアしたときにこちらをつけてみましょう!

 

結果はこちらです!

 

 

ここで行ったことは3つです。

 

・どこで"ゲームクリア"となっているか

・ゲームクリア画像の配置

・ゲームクリア画像の移動

 

となります!

 

どこで"ゲームクリア"となっているか

では前々回から登場している「Block Breaker Template」の中身を見ていきましょう。

ゲームクリアはどこで制御されているのでしょうか?

それがこちら!

Unity Win Screen

左側の<Hierarchy>の[Camera]の中にある[Canvas]にありました!

 

しかし、今は非表示状態になっているので、表示させてみましょう。

Unity Win Screen02

<Hierarchy>で[WinScreen]を選択した状態で、<inspector>の下にあるチェックマークを付けて表示させます。

 

すると<Hierarchy>上で[WinText]、[TryAgainButton]、[MenuButton]が出現しました。

ここに、あの画像を追加してみましょう。

 

ゲームクリア画像の配置

適当に[Game Clear]の画像だけ用意しました。

Unity Game Clear

この画像をゲームオブジェクトとして読み込ませてみました!

 

Unity Game Clear 02

ちょっと整えて……。

Unity Game Clear 03

こんな感じにしてみました!

ドット絵はゲームのシックな感じにぴったりでしたね!

でもこれだけじゃ少し物足りないですよね……。

そこで、この[game clear]オブジェクトを少し動かしていきたいなぁと思います。

 

ゲームクリア画像の移動

スクリプトを組んでオブジェクトを動かして行きたいと思います!

Unity Add Script

"コンポーネントを追加"→一番下まで行って"New Script"→名前を付ける

ことでスクリプトを作ることができます。

今回は"transport"という名前にしました。

すると、"transport.cs"というデータが作られるので、そのデータにスクリプトを書き込んでいきます。

 

今回はこんな感じです!

Unity script

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

public class transport : MonoBehaviour
{
    private bool flag;

    void start()
    {
        flag = false;
    }
 
    void Update()
    {        
        if(flag==true)
        {
            transform.position -= transform.up * Time.deltaTime;
            if(this.transform.position.y<0.001f)
            {
                flag = false;
            }
        }
 
        else
        {
            transform.position += transform.up * Time.deltaTime;
            if(this.transform.position.y>=1.1f)
            {
                flag = true;
            }
        }
    }
}

上下に動かしたいので”transform.up”を使いました。

これはY軸を中心にして上下しているのでYの値が変わっていきます。そこで、if文を用いて強引に切り替えていきました。

 

まだまだ私も初心者ですのでこういう方がすごくわかりやすいですね。

Time.deltaTimeがあるとゆっくりな動きになりましたね。まぁ場合によるんでしょうけど。

 

いやーなんか<Inspector>上のY軸とDebug.Logで表示させた数字が一致してなくてよくわからないことになっていたのはまぁ親オブジェクトとか子オブジェクトとかその辺がかかわってきそうですね。if文で条件付けするんなら、<inspector>の数値ではなく、Debug.Log上の数字ですね。いやはや。やはりDebug。Debugはすべてを解決する。

 

と、いうことでちょっと上下にオブジェクトを動かすスクリプトでした!

またUnityに関する情報をお伝えしますね!それでは!

Unityでオリジナルのゲームを作ってみる-Canvasの話-

この記事でわかること

・Unityの専門用語

・Unityのスクリプト

・Unityの無料テンプレートを弄る方法

 

この記事はこんな人向け

・Unityに興味がある方

・Unityのプログラムに興味がある人

・Unityでゲーム作りをしてみたいと思っている方

 

と、いうことで引き続きUnityのゲーム作りについて話していきます。

makeagame.hateblo.jp

 

今回は【Canvas】で躓きやすいところとその対応策についてお話していきたいなぁと思います。

 

性懲りもなくまーたブロック崩しのお話になりますが、自分で思った通りのゲームを作りたいなーってなると、いちから作った方が効率が良かったりするので、いちから作るところについてお話したいなーって思います。

 

で、ブロック崩しの作り方に関してはいろーんなところがわかりやすーく解説してくれているのでここでは色々と割愛したい気持ちであります。

 

知りたい方はGoogleで「ブロック崩し Unity 作り方」で検索してみてください。

 

じゃあ何を話すかっていうと、わかりやすくブロック崩しについて書かれているところはあれど、オリジナリティを出そうとしたら途端に躓いてしまう部分がいくつもあるということについてお話します。

 

それはなぜか?

答えは……わかりやすいオリジナリティを表現しようと思ったら[Canvas]を弄ることが多いからです。

 

Canvas

ボタンとか画像とか文字とか使用するときに使用するので使わないわけにはいかないのですが、扱いがめちゃくちゃ難しいのです。

こいつには幾度も辛酸をなめさせられました。

 

今でも舐めさせられていますが、こいつを触るときの注意点なんかをお伝え出来たらいいなぁと思う所存があります。

 

気にしてほしいところ、わからなくなったときの対処法みたいなのが皆様のお役に立てばいいなぁと思います。

 

では、【Canvas】のチェック項目についてお話です。

チェックポイントは3つあります。

  1. レンダーモードについて
  2. レンダーカメラについて
  3. キャンバスサイズについて

です!順番に見ていきましょう。

 

レンダーモードについて

Unity canvas

困ったらとにかく▽ボタンを押してもらって「スクリーンスペースカメラ」を選択していただくのが無難と思います。

Unity Canvas 02

映したい画面をどうやって映すかの問題で、手っ取り早い設定は上記の通りにしていただくことです。なぜこの方法が良いかというと、わかりやすいからという他ありませんね。

 

他のレンダーモードにするとどこに置いてもキャンバスが映し出してしまったり逆にゲームをプレイするとどこかへ消えてしまって映らないということが多いです。

 

しっかり使い込んでから出ないと応用が利かないと思うので上記以外を試す場合はしっかりと下調べしてから行うのが良いと思われます。

 

 

レンダーカメラについて

これも、かなり凝っていてカメラが複数あるゲームでなければまぁ1SCENEに1Cameraだと思うので、そのカメラをドラッグ&ドロップするのが基本です。

unity render camera

複数カメラを作って色々視点を操作するゲームを作られる場合はかなり大変ですので、1SCENEに1Cameraを崩さない方が理想と思われます。

 

 

キャンバスサイズについて

キャンバスサイズに関してですが、ここを弄ることが基本的にできません。なぜかというといったん弄ると元に戻すのが難しいです。

いやまぁ、Ctrl+zで元にはある程度戻せますが、1回や2回弄った程度ではすぐに変わらず、大きく変わったころにはだいぶ前までさかのぼらないと元に戻れない的なことが多いというのが私的な意見です。

ただ、キャンバスサイズ上でしか、画像やボタン、文字は配置できません大きな画像はいったん小さくして配置する、または大きなキャンパスに変えておくという方法しかないということですね。

 

で、キャンバスサイズなど弄ってしまってどこかへ消えてしまったという場合、非常に非常に便利な機能が2つ、Unityにはございます。

  1. 2Dボタン
  2. [Hierarchy]→[Canvas]をダブルクリック

unity canvas 03

これらですぐに探していたオブジェクト([Canvas])にたどり着くことができます。

意外と、2Dボタンをはずして3D空間で見ることは2Dゲームでも有効です。

 

どこかへ消えてしまったオブジェクト探しだけでなく、ちょっとした重なりなんかも見つけることがあったりします。

 

もちろん、逆に2Dボタンを押して3D空間に戻った方が見にくいという場合もあるので2Dボタンを押さずに[Hierarchy]から任意のオブジェクトをダブルクリックするのも手段です。

 

やりやすい方を選択してみてください。

 

それでは本日はここまでとします!

よいUnityライフを!

Unity の無料テンプレートを触ってみた結果

この記事でわかること

・Unityの専門用語

・Unityのスクリプト

・Unityの無料テンプレートを弄る方法

 

この記事はこんな人向け

・Unityに興味がある方

・Unityのプログラムに興味がある人

・Unityでゲーム作りをしてみたいと思っている方

 

では前回の続きから

makeagame.hateblo.jp

 

前回は無料のゲームテンプレート[Block Breaker]を開いてみました。

 

実行してみた方はわかると思いますが、まったく面白くありません。

 

その理由に

  1. プレイヤー/ボールの速度が遅い

があります。

 

ではそれらはどこを弄れば変えられるのでしょうか?

 

1つずつテンプレートファイルを読み解いていきましょう。

 

プレイヤーの速度について

早速、プレイヤーの速度について書かれているところを探していきましょう。

画像左下の[Project]ウィンドウを探します。(デフォルトでは左下にあるはずです)

そこでBlockBrerakerTemplateを選択します。

 

すると

unity project window

[Prefabs]、[Scenes]、[Scripts]、[Sprites]の4つフォルダが出てきます。

その中の[Scenes]を選択すると[Game]が出てくるので、[Game]をダブルクリックします。

 

そしたら、ゲーム画面が現れるので、ここからプレイヤー……つまり横棒(Paddle)を探すわけですね。

Unity Paddle

[Paddle]を見つけていきます。

[Hierarchy]ウィンドウを見てみると[Game]があると思います。

[Game]の左横にある三角ボタンをクリックすると、階層構造を見つけることができます。

その中に[Paddle]を見つけることができましたね!

Unity Paddle 02

右側の[Inspector]ウィンドウを見ていただき、下へスクロールしてもらうとSpeedという欄を見つけることができました。

 

ここの数値を変えることで自機、自分で操作する横棒のスピードを変えることができます。

 

ボールの速度について

unity window

語りすぎるとベクトルの話になってかなりややこしくなるんですが、このゲームではわかりやすいように[speed]変数が使われているのでそこを弄るだけとなります。

 

場所は画像だと、左[Hierarchy]です。

[Hierarchy]のウィンドウを探してもらって、[Ball]を選択します。

その後、画像の右側にある[Inspector]ウィンドウを見てみると、中盤くらいにSpeedと書かれた箇所がありますね。

ここがボールのスピードに関する項目を表示しているわけです。

 

[Hierarchy]とか[Inspector]とかめちゃくちゃわかりにくい単語が出ましたね。

まぁゲームの階層構造を表しているのが[Hierarchy]で、ゲーム1つ1つの要素を細かく見ていくのが[Inspector]って感じですね。

 

階層構造の[Hierarchy]はレイヤーみたいな感じで表示順番とかも関係してくるので絵をデジタルで描いたことのある人はちょっとなじみ深いんじゃないでしょうか。

 

で、ここの数字をちょちょいと変えることが可能です。

が、しかしここを変えても正直変化がありません。

 

なぜならスクリプトでボールスピードは初期化されているからです。

[Inspector]で数値を変えても反映されない時があるんですね。

 

変え方について記載していきます。

unity inspector ball script

[Hierarchy]でBallを選択し、[Inspector]でSpeedの上Script Ball.csをダブルクリックします。

Unity script

なんということでしょう。

Ballのプログラムを弄るウィンドウが表示されます。

(おそらくUnityをインストールしたときにMicrosoft Visual Studioもインストールされていると思います。Microsoft Visual Studio でプログラムを弄ります。)

 

中身はめちゃめちゃ難しいです。

プログラムの初歩はわかっていて、1か月ブロック崩し弄ることができたら、だいたい何のこと書いてあるかなんとなーくわかるようになります。

プログラムについて知っており、英語堪能な方でない限り難しいでしょう。ある程度はさっぱりあきらめた方がいいかなぁーと個人的には思ったりします。

 

話を戻します。

Ball.csのプログラム内を弄っていきます。

といっても弄る箇所はここです!一番下です!

Unity script speed

speed 変数に200という数字が代入されています。

ここでスピードが初期化されているので、その数値を変えれば、ボールスピードを弄ることができます。

あ、一応[Max Speed]を弄っておきましょうか。

[Hierarchy]でBallを選択し、[Inspector]でMax Speedのところを弄ります。ここは、弄っても初期化がされてないのでそのまま動いている感じですね!

 

unity play

スピードを確認するには上の三角ボタンを押せばいいわけですね。

 

今回はここまでとなります。

専門用語やスクリプトなどが現れてきていよいよゲームっぽくなってきました。

少しずつオリジナル要素が入ってくると嬉しいですね!

 

それでは!

 

Unityのアセットストアでゲームを無料ダウンロード -block breaker-

この記事はこんな人向けです!

  1. Unityに興味がある!
  2. Unityでゲーム作りを学びたい!
  3. すでに出来上がっているテンプレートを学びたい!

 

ですが、そう思って色々調べてみたけれど、結局何も出来ていない……そんなことはありませんか?

 

と、いうわけでUnityについて学びたいと思う人たちを少しでも助けになれればと思い、ブログを立ち上げます。

 

ここでは、とりあえずUnityダウンロード/インストール出来たぜ!ってところまで出来た人向けに書いていきます。

 

まだそこまで行ってないって人はGoogleに「Unity インストール方法」で調べてみてください!自分なんかより100倍はわかりやすく説明されています。

 

ではさっそく、出来上がっているテンプレートについて説明していきます。

 

今回参考にさせていただくゲームは「ブロック崩し」です。

 

ブロック崩しの無料テンプレートをダウンロード/Unity内で開く方法をご紹介します。

 

順番はこの通りです。

  1. Unity Asset Store で無料テンプレートをダウンロードする
  2. Unity ID でログインをする (2箇所)
  3. Unityのパケットマネージャーから無料テンプレートをインストールする

といった順番です。

1つずつ見ていきましょう。

 

Unity Asset Store で無料テンプレートをダウンロード

ではブロック崩しの無料テンプレートを見てみましょう。

URLはこちら

unity asset store

ここで「マイアセットに追加する」を選択します。

すると

unity asset store id

というサイトに行ってUnity IDを求められます。

作ってない方は作っていただき、サインインを押します。

 

その後元居たページに戻ると

unity asset store 003

「Unity で開く」に変わっているのでそこをクリックします!

するとUnityが開くのでブラウザ側の手順は終わりです!

 

Unity ID でログインをする

ブラウザ側で1回ログインしました。

 

Unity Hubでも1回、ログインしておきましょう。

 

Unity Hub側でのログイン方法は以下の通りです。

unity hub login

左上の人型マークの横にある下三角のボタンを押すことでSign in ボタンを押すことができます。

 

そうすることで、再度ブラウザが開き、ログインすることができます。

 

ここから、Unity側の操作となります。

 

Unityのパケットマネージャーから無料テンプレートをインストール

最後にUnity側の操作をすることで無料テンプレートをインストールすることができます!

 

では見ていきましょう。

 

Unity Hubを開きます。

 

unity hub new project

そこで右側にあるNew projectを開きます。

 

すると、どんなゲームを作るか問われます。

 

unity hub 2d

2Dを選択した状態で、右下のCreate Projectをクリックします。

 

数秒したら、Unityがプロジェクトを起動してくれます。

 

ここから、最初に行ったアセットストアにつなげていきます。

unity windows asset store

上のメニューから[Window]→[Asset Manager]→下にスライドして[Open Package Manager]

または、[Window]→[Package Manager]を開きます。

 

unity package manager

左上のPackageを My Assetにセットします。

 

unity package manager02

ここでようやくBlock Breakerが見つかると思います。

Block Breaker Template をダウンロードまたはインポートを行います。

 

何度かインポートを選択することで、ゲームをインポートすることができます。

 

しかし……。ここで終わりではありません。

せっかくインポートしたのですから、ゲームを遊びたいですよね?

 

なのでここからゲームを遊ぶ方法をお伝えします。

 

おまけ:テンプレートゲームの遊び方

unity project window

(おそらく) Unity画面の下にある[Project]ウィンドウを見つけます。

そして、[Assets]を見つけます。

 

すると、[BlockBreakerTemplate]が見つかると思います。

unity project window 02

そこから、[Scenes]フォルダを選択、Menuファイルをダブルクリックします。

これでようやく画面が

unity window

ゲームのタイトルっぽい感じのが出てきました。

真上の三角ボタンを押しましょう。

 

ゲームが再生されます。

ゲームをやめる場合は三角ボタンを再度押すことでゲームを止めることができます。

 

これで一通りゲームを楽しむことができます!

 

これではボールの速度などがいまいちでゲームとしてはあまり面白くはないのでどうしていくかまたお伝えしていきますね!

 

今回はこれで!ではまた。