まふゆちゃんの技術ブログ。

情報系の高校生・高専生・大学生を全力で応援するブログです。

【Unity】3Dゲーム、作ってみませんか?(アセット編)

f:id:Mafuyu7se:20181111085643p:plain
こんばんは!まふゆです。
初心者向けUnity講座の第2弾、やっていきますよ。

前回の記事で、Unityの基本的な操作については習得できたと思います。
ただ、せっかくUnityを使うからには、もっとゲームらしいものを作りたいよね。

今回はUnityを使って、ちゃんと動くゲームっぽいものを作ります。
ただし今回は、コードは1行も書く必要はありません。
コードを書かなくても、それなりにゲームっぽいものは作れるのだよ!!

■ 本記事の対象読者

前回の記事を一通り読んで、Unityの基本操作は把握してるよ!
・コードは書きたくないけど、3Dゲームを作ってみたい!

といった人向けの内容になります。

■ 筆者の開発環境

・OS:Windows 10
・Unityバージョン:2018.2.17f1 Personal

Mac版でもUnityの操作方法は同じなので、Macユーザさんが読んでも問題ないよ。


スポンサーリンク



■ Asset Storeを使いましょう。

Unityには、Asset(アセット)と呼ばれるものが存在します。
"Asset"という単語は"素材"という意味で、ゲームを作るための部品みたいなものです。

例えば、クルマを運転するレースゲームを作るとしよう。
まず必要になるのが車の3Dモデルですが、3Dモデリングの経験者でもない限り、そういったものを自分で作るのは難しいよね。ちなみに私は作れません。
誰かさんが車の3Dモデル作って、ゲームで使える形で公開してくれたらいいな~って思うよね。

そんなあなたの夢を叶えてくれるのが、Asset Storeなのだ!!
ゲーム開発に必要そうなアセット(素材)が沢山揃ってるオンラインのお店です。
有料のものと無料のものがありますが、今回は無料のアセットだけを使うので安心してください。

ひとまず、最初にUnityの新規プロジェクトを作りましょう。
デフォルトの画面配置なら、真ん中のSceneビューのところに"Asset Store"のタブがあるはず。
これをクリックすると、Asset Storeにアクセスできます。
ツールバーの「Window」→「General」→「Asset Store」を選択してもよいです。

f:id:Mafuyu7se:20181205211156p:plain


今回使用するのは、Standard Assetsと呼ばれるもの。
Unity公式が提供している高品質で無料のアセット集です。
人とか、車とか、飛行機とか、地面のテクスチャとか、3Dゲームを作る上でいろいろ便利なものが入ってます。

Asset Storeが開いたら、検索ボックスに"Standard Assets"と入力してEnterを押してね。
検索結果の一番上に出てくるはずです。
これをクリックして、次の画面で"Download"ボタンを押すとダウンロードが始まるよ。

f:id:Mafuyu7se:20181205212551p:plain


ダウンロードが完了すると、"Download"ボタンが"Import"ボタンに変わります。
"Import"ボタンを押しましょう。

f:id:Mafuyu7se:20181205213253p:plain


小さいウインドウが表示されます。
「"Standard Assets"にはこんなものが入ってるよ!必要なものをプロジェクトにインポートしてね!」っていうウインドウなんですが、今回は全部インポートしましょう。
最初から全部チェックマークが付いているはずなので、そのままImportボタンを押しちゃっていいよ!

f:id:Mafuyu7se:20181205220453p:plain


しばらく待機すると、画面下のProjectビューに、Standard Assetsフォルダが追加されるよ!
これでインポート完了。アセットが使える状態になりました。

f:id:Mafuyu7se:20181205223107p:plain


なお、Asset Storeを利用する上で注意してほしいことがあります。
・ 基本的に、Asset StoreからDLしたアセットは、ゲームに組み込んで配布するのはOKです(そのためのアセットだからね)。
・ ただ、DLした"アセット自体"を他人に配布したり、貰ったりするのはダメです。正規の手順で手に入れましょう。そういう決まりなので。
・ アセット毎に利用規約が存在するので、DLするときにしっかり目を通して、規約に違反しない使い方をしよう。

これらはとても大事なことだからね。しっかり守ってください。

■ 大地を創れ!!

今回は車を走らせるレースゲームもどきを作ることにします。
ただし、車が走るための大地がこの世界にはありません。
もしもこの世界に車を生み出しても、奈落の底へと落ちていってしまいます。

なので、大地を創りましょう。
大地の1つや2つを創造することなんぞ、この世界の創造神であるあなたにとっては容易いことです。
Hierarchyビューから、「Create」→「3D Object」→「Terrain」の順にクリックするだけでOK。
ちなみにTerrainは"テレイン"と読むそうな。私は英語苦手なのでよく分かりませんが。
f:id:Mafuyu7se:20181205225021g:plain


あっという間に白い大地の完成です。
創造神マジパネェ。
f:id:Mafuyu7se:20181205225239p:plain


これでも一応大地としての役割は果たしてくれるのですが、如何せん見た目が味気ないよね。
もっとリアルにするために、大地の表面にそれっぽい画像を貼りましょう。
3Dオブジェクトの表面に画像を貼ることを"テクスチャを貼る"と言ったりします。
3Dモデリングとか3Dゲーム界隈ではよく出てくる言葉なので、覚えておくといいかも。

まず、Hierarchy上の"Terrain"か、シーンビュー上の白い大地をクリックしよう。
画面右側に、TerrainのInspectorが表示されるはずです。
そのあとに、Inspector上の"筆アイコン"→"Edit Textures..."→"Add Texture..."の順にクリックしてね。
f:id:Mafuyu7se:20181205231727g:plain


小さいウインドウが表示されます。
まず、左側の"Select"をクリックしてね。
f:id:Mafuyu7se:20181205233632p:plain


すると、もうひとつ小さいウインドウが表示されます。
地面に貼り付ける画像をここで選択します。プロジェクト全体の画像が一覧で表示されるよ。
さっきインポートしたStandard Assetsにはたくさんの画像ファイルが含まれているので、このままでは目的の画像を見つけるのは難しいです。
検索ボックスを使いましょう。
今回使う画像名"GrassHillAlbedo"を検索ボックスに入力し、出てきた画像をダブルクリックしてね。
f:id:Mafuyu7se:20181205233722p:plain


この状態で"Add"をクリックしましょう。
f:id:Mafuyu7se:20181205234104p:plain


緑の広がる大地の完成だよ!やったね!!
f:id:Mafuyu7se:20181205234214p:plain


■ クルマを置いてみよう。

Standatd Assetsにはクルマのオブジェクトが含まれています。
これをさっき作った大地の上に置いてみましょう。

プロジェクトビューから、"Asstes"→"Standard Assets"→"Vehicles"→"Car"→"Prefabs"の順に進んで、その中にある"Car"をシーンビュー上にドラッグ&ドロップしてね!!
f:id:Mafuyu7se:20181206193943p:plain

これで大地の上にクルマが置かれました。
クルマがどこにあるか分からない場合、Hierarchy上のCarをダブルクリックすると、シーンビュー上のクルマに自動でフォーカスを合わせてくれます。

このままではクルマがデタラメな場所に置かれてしまうので、大地の中央までクルマを移動しよう。
クルマがクリックされた状態で、InspectorからPositionを設定してください。
X=250、Y=0、Z=250にセットしてね。
f:id:Mafuyu7se:20181206194710g:plain

それと、クルマを映すためにMain Cameraの位置も変えましょう。
Hierarchy上の"Main Camera"をクリックしてInspectorを開いたら、Positionを
X=250、Y=1、Z=240にセットしてください。

これでひとまず準備完了。
ゲームを動かしてみましょう。

■ ゲーム実行!!

画面上部中央の"開始ボタン"を押して、ゲームを起動してみよう。
クルマを後ろから撮影しているような形になっているはず。
f:id:Mafuyu7se:20181206195557p:plain

この状態で、キーボードのカーソル(矢印)キーを押してみて!!
f:id:Mafuyu7se:20181206200419g:plain

なんと、クルマが走ります!!!!
感動したでしょ??

クルマの3Dモデル自体はただの紙粘土なので、それ単体では走ることができません。
動作用のスクリプトを作って適用したり、物理演算の設定をしたりする必要があります。
実は、今回使っている"Car"は、そういった面倒なことを全て親切な人がやってくれているので、動くクルマとしてそのままゲームに使うことができるんです。
最初からエンジン音やブレーキ音まで付いてるし、ブレーキランプも点灯させることができます。
作ってくれた人に感謝だね!!

動作が確認できたら、もう一度実行ボタンを押してゲームを終了し、シーンビューに戻りましょう。


スポンサーリンク



■ カメラにクルマを追いかけさせよう。

現在のままでは、クルマがカメラの撮影範囲外に出てしまうと、プレイヤーからクルマが見えなくなってしまいます。
なので、カメラがクルマを追いかけるようなスクリプトを組んであげる必要があります…

ところが!!!!
"Standard Assets"には、目標物を自動で追尾するようなカメラが既に含まれているのだ!!
それを使えばいいのです!!!!
アセットしゅごい!!!!!

プロジェクトビューから、"Assets"→"Standard Assets"→"Cameras"→"Prefabs"の順に選択して、その中にある"MultipurposeCameraRig"をシーンビューに上にドラッグ&ドロップしましょう。
f:id:Mafuyu7se:20181206201616p:plain

Hierarchy上の"MultipurposeCameraRig"をクリックしてInspectorを開いたら、Main Cameraと同じようにPositionを
X=250、Y=1、Z=240にセットしてください。

それと、カメラが素早くクルマをを追いかけてくれるように設定を変更しましょう。
Inspectorから、"Auto Cam(Script)"内にある以下4点のパラメータを変更してください。
・Move Speed : 3 → 10に変更。
・Turn Speed : 1 → 10に変更。
・Roll Speed : 0.2 → 10に変更。
・Follow VelocityのチェックボックスをONにする。

f:id:Mafuyu7se:20181206203159g:plain

これで、追尾カメラのセットが完了です。

この時点で、Main Cameraさんは不要になったので削除してしまいましょう。
Hierarchyビュー上で、"Main Camera"を右クリックして"Delete"で削除できます。
f:id:Mafuyu7se:20181206202112g:plain
今までありがとう。

この状態で、"実行ボタン"を押してゲームを起動してみよう!!
カメラがクルマを自動で追尾するから、レースゲームっぽくなったはずだよ。
f:id:Mafuyu7se:20181206204306g:plain

動作が確認できたら、もう一度実行ボタンを押してゲームを終了し、シーンビューに戻ってね。

■ 「ビルド」してみよう。

ここまで作ることができたら、ゲームを"ビルド"してみよう。
"ビルド"とは要するに、"Unityプロジェクト内で作り上げたゲームを、実際に遊べる形に変換する"ことです。
今回は、PCゲーム向けに"ビルド"を行います。

"File"→"Build and Run"をクリックすると、保存先を選択するウインドウが表示されます。
プロジェクトの保存先は、デフォルトでは"C:\Users\(ユーザー名)\Documents\(プロジェクト名)"になっています。
ここに新しく"Build"フォルダを作り、それを保存先として選択しましょう。
f:id:Mafuyu7se:20181206211432g:plain

しばらく待機すると、ビルドが完了してゲームのウインドウが開きます。
f:id:Mafuyu7se:20181206211524p:plain

"Play!"を押すと、ゲームが起動します。
存分にドライブを楽しんでください!!!!!

なお、このゲームには終了処理が含まれていません。
フルスクリーンでゲームを起動した場合、Alt+Enterでウインドウモードに切り替えてから、右上の×マークをクリックして終了してください。

ビルドが完了したら、Buildフォルダ内のexeファイルを実行することで、いつでもゲームを遊ぶことができます。
作ったゲームを友達にあげたいときは、Buildフォルダごと渡してね。

とりあえず、今日はここまで。
"File"→"Save Scene"またはCtrl+Sでシーンを保存してから終了してください。

■ まとめ

・ゲームを作るための素材が欲しいときは、Asset StoreからアセットをDLして使おう!
・DLしたアセットはゲームに組み込んで配布するのはOKだけど、アセット自体を他人に配布するのはダメだよ!
・アセットごとに利用規約があるのでしっかり目を通しておこう!
・スクリプトを自分で組まなくても、アセットを組み合わせればゲームっぽいものは作れるよ!
・"ビルド"することで、Unityのプロジェクトを"実際に遊べる形"に変換できるよ!

今回作ったレースゲームもどきをベースにして、コンピュータが操作するクルマと競争する機能や、走行タイムを測る機能や、速度を画面上に表示するような機能を追加すれば、立派なレースゲームになります!!
気が向いたら、そういった機能の実装方法もそのうち解説するかも!!

ではでは~・:*+.\( °ω° )/.:+

にほんブログ村 IT技術ブログへにほんブログ村
にほんブログ村 IT技術ブログ Unityへにほんブログ村