こんにちは、49代のmocchiです。
本当はマクドナルドのおすすめメニューランキングを書こうと思ったのですが、一応Unity班の班長というあってないような肩書を背負っているので、今回は
・Unityってなんですか?
・Unityのインストール方法
・Unityを使ってみよう
こんな感じでUnityを今まで全く触ったことのない人に向けた記事を書かせていただきます。
基本的にC#かJavaScriptを用いるUnityですが、この2つを全く触ったことがない人、というかプログラミングを一切やったことがない人でもわかるように書いていくつもりでいます。
そして「遊べるゲーム」を作ろうとするとかなり長い記事になってしまうので、今回はUnity内でいろいろ遊んで終わりになります。具体的なゲームの作り方はいずれ活動中に講座という形でやる予定です。
ということでUnityをある程度かじったことがある方には、正直読む必要のない記事になってます。許してチョンマゲ!w
・Unityってなんですか?
PCやスマホでゲームをする方は、このロゴを見てピンと来るかもしれません。
起動時にこのようなロゴが表示されるゲームをプレイしたことはありませんか?
Unityはいわゆる”ゲームエンジン”です。簡単に言い換えると「ゲーム作りに特化したソフトウェア」って感じでしょうか。他の有名なゲームエンジンの例としては、Unreal Engine、Cry Engine等、どれかしらは見たことがある人も多いかと思います。フリゲー好きには馴染み深いRPGツクールも分類的にはゲームエンジンです。
Unityで作られたゲームには有名な物も多くあります。例えばドラゴンクエスト8のスマホ移植版、白猫プロジェクト、などなど例を挙げればキリがありません。PCにも家庭用ゲーム機にもスマホにも対応しているマルチプラットフォームなゲームエンジンではありますが、最近ではスマホゲーム開発に使われることが多いです。もちろんそれ以外で使われることもたくさんあります。
「そんな有名なゲームばっかで使われてるとか、Unity使うの絶対難しいじゃん…」と思う方もいるでしょう。
……そんなことはありません!むしろ多くの人が「ゲームを作る」と聞くと想像するであろう、1からプログラミングしてカタカタカタ…よりは何十倍と簡単です。もちろん超有名ゲーム達と並ぶものを作ろうと思えば大変ですが、Unityを始めて間もなくても、ある程度のクオリティのゲームはあっさりと作ることができます。
ということで物は試し。早速インストールしてみましょうか。
・Unityのインストール方法
わざわざ項目まで設けましたが特に難しいことはありません。
https://unity3d.com/jp/get-unity/download?ref=personal
このリンクに飛び、「インストーラーをダウンロード」をクリックするとダウンロードが始まるので、完了したらダウンロードしたファイルを実行します。
あとはNextボタン連打でOK。回線の状態によっては一時間程度かかることもあるので気長に待ちましょう。
Macをお使いの方はプラットフォームのWindowsとなっているところをクリックしてMacOSに切り替えてからダウンロードしてください。
インストール完了後にUnityを実行すると、Personal版(無料)とProfessional版(有料)のどちらを使うかを選択させられます。個人やサークルでの開発ではPersonal版で困ることはまずありません。迷わずPersonal版を選びましょう。
その後アカウント作成を要求されます。迷惑メールが来たりとかはないのでちゃんと登録しましょう。
アカウントを作ってサインインできたらインストールは完了、かなりはしょった説明になってしまったのでどこかで躓いた場合はこちらのサイトを参考にしてください。
ということで、いよいよUnity起動です!
・Unityを使ってみよう
Unityでゲームを作るとき、一番最初にやらなければならないのは「プロジェクトの作成」です。プロジェクトは簡単に言うとゲームそのもの、作成したプロジェクトにそのゲームに関するファイルフォルダが全て入ります。
ということでサクッとプロジェクトを作ってしまいましょう。Unityでサインインを終えるとこのような画面になっているかと思います。
私はすでに何個かプロジェクトを作ってるので、それが表示されてますが、皆さんのUnityだと何も無いはずです。ということで右上のNEWボタンを押して新しくプロジェクトを作りましょう。
Project nameはその通りプロジェクトの名前です。日本語にするといろいろ面倒が起こる可能性があるので英語で入力することをおすすめします。適当に「test」とでも入れておきましょう。
Locationはプロジェクトの保存先です。基本的には変えなくて大丈夫!
そしてこの3Dと2Dのボタン、3Dのゲームを作るか2Dのゲームを作るかに応じて切り替えます。今回は3Dで行きましょう。
レイアウトはこんな感じになっているはず。なってない場合は右上の画像だと既に2 by 3になってるところをクリックして改めて2 by 3にしましょう。
まず最初にこの画面を見て感じることは「意味がわからない」だと思います。ということでそれぞれのタブの説明から始めましょう。
まず左上と左下のSceneタブとGameタブ、今ここに表示されてるのが「ゲーム内の空間」です。今ゲームの中はこんな風になってるんですね。とてつもなく殺風景です。初期配置の光源以外なにも置いてないので当然ですが。
この2つのお隣に陣取ってるのがHierarchyタブ、ここにはこのシーンに存在しているオブジェクトが全て表示されます。
今あるオブジェクトはMain cameraとDirection lightだけですね。この2つは最初に勝手に生成されます。Main cameraはこのゲーム内の空間のどこをどの角度でどの範囲移すかを管理しています。Main cameraから見たゲーム内の空間がGameタブに表示されています。ゲームのプレイヤーもこのカメラでゲーム内空間を見ることになります。ということでGameタブは「プレイ中のゲーム画面」なんですね。
Direction lightは光源です。Unityは光の当たり方によって自動でオブジェクトの色の濃淡や見え方を変えてくれます。ということで一切光がないと真っ暗になっちゃうんですね。このDirection lightはもうゲーム内空間をそこら中明るくしてくれてます。
「シーン」というのもUnityにおける重要な概念の一つです。ゲームをやってると、ロードをしてから画面が切り替わる、っていうのは見慣れた光景ですね。あれはシーンを切り替えてます。
超大雑把な例をいうと、初代マリオには1-1のシーン、1-2のシーン、1-3のシーンなど各ステージのシーンがバラバラに存在しています。この言い方だとステージ=シーンみたいですね。本当は全然違うんですが最初はその認識でいいです。
さらにそのお隣はProjectタブ、その隣はInspectorタブです。この2つの説明は後に回します。
ということでいよいよUnity内でいろいろ作ってみましょう。Hierarchyタブの左上にあるCreateを押して、3DObject→Cubeをクリックしてください。
はい、箱ですね。これでゲーム内空間にCubeが作成されました。Sceneタブ内で箱をクリックしてみましょう。三方向の矢印が出て来るかと思います。それをドラッグするとその方向に箱が動きます。すごい。
こんな感じでUnityのすごいところとして、ゲーム内のオブジェクトを直感的に動かせるんですね。
Sceneタブ内でよく使う操作としては、右クリックしながらマウスを動かすと視点が変わります。ついでにマウスホイールを押し込みながらマウスを動かすと視点の角度は変わらず見える範囲だけ変わります。
あとマウスホイールを使って拡大したり縮小したりできますね。これらの操作を知っておくとシーンタブ内での操作が便利です。
そしてCubeを左クリックしたあとにInspectorタブを見るとこんな表示になってるのにお気づきでしょうか。
ということでInspectorタブには、クリックしたオブジェクトの情報が表示されます。
TransformのPositionは座標、Rotationは角度、Scaleはそれぞれの軸方向における大きさの比率です。これらの数字は自分で変えられるので、縦長の長方形を作ったり、座標に数値を打ち込んで精密にオブジェクトを移動させたりできます。
Cube(Mesh Filter)とMesh Rendererのおかげでこのオブジェクトは白い立方体の形をしています。詳しいことは気にしなくて大丈夫です。
Box Colliderは簡単に言えば当たり判定です。このコンポーネントを削除すると当たり判定が消え他のオブジェクトをすり抜けるようになります。
Unityにはたくさんのコンポーネントがあり、用途に合わせて組み合わせることで様々な性質を持ったオブジェクトが作れます。試しにAdd componentをクリックして「Rigidbody」で検索し、出てきたコンポーネントをダブルクリックしてみましょう。Rigidbody2Dは2Dプロジェクト用であり、今回は3Dプロジェクトなので何もついてないRigidbodyだけ追加しましょう。
追加できたら画面上部中央にある再生マークのボタンを押してみましょう。このボタンを押すとそのシーンを実行、すごい適当な言い方をすると時が流れ始めます。
………箱が落ちていきますね。もう一度再生ボタンを押すと、全オブジェクトの位置や状態は実行する前に戻ります。
さっきつけたRigidbodyは重力に関係したコンポーネントなんですね。試しにRigidbody内のMass(質量)の数値を増やしてみましょう。すごい勢いで落ちていきます。
一切スクリプトを書かずともこのような簡単な物理演算ができてしまうのもUnityの強みです。
ということでものすごい大雑把なUnityの使い方でした。正直に言います、ここで書いたことだけをいくら応用してもゲームにはなりません。
ですがこの記事で、Unityに興味を持っていただけたらめちゃくちゃ嬉しいです。
冒頭でも書きましたが、具体的な「Unityを使ってゲームを作る方法」は4月か5月に活動内でUnity講座という形で教えられたらなと思っています。
「プログラミングやったことなくてもできるって書いてあるけど単純にプログラミングやってねえだけじゃねえか!」って言われるとなんとも言えません。その通りです。
ですが、簡単なゲームを作るなら、Unityで初めてプログラミングに触れる人でも全く問題ありません!
まず簡単なゲーム作りで慣れていき、段々とスキルアップして複雑なゲーム作りに挑戦してみましょう。
「講座まで待てない!さっさとゲーム作りたい!!」っていうやる気バリバリな方は、Unityが公式でチュートリアルを用意してくれてるので、そちらをやってみることをおすすめします。
講座の日が決まり次第即お知らせします!駄文長文を読んでいただきありがとうございました!ぜひぜひ講座でお会いしましょう!