137
1日で 迷路ゲームを作っちゃおう Unity Technologies Japan 常名 隆司

1DayMakeMazeGame ver,20171022

Embed Size (px)

Citation preview

Page 1: 1DayMakeMazeGame ver,20171022

1日で迷路ゲームを作っちゃおう

Unity Technologies Japan常名隆司

Page 2: 1DayMakeMazeGame ver,20171022

Unity操作・基本のキ

Page 3: 1DayMakeMazeGame ver,20171022

基本操作をやってみる

• プロジェクトの作成

• 画面の見かた

• シーンの作成・保存

• ブツを出現させる

• ツールバー/各ボタンの役割

• 見え方の変更

• ショートカットキーを使ってみよう

• だんご三兄弟を作ってみる

Page 4: 1DayMakeMazeGame ver,20171022

Unityでのゲーム開発概念

• プロジェクト

– 一つのゲームの開発単位

• シーン

– ゲーム内の小分けにした場面ごとの開発単位

– スタート画面やゴール画面もシーンとして分離するケースもあり

• ゲームオブジェクト

– ゲームを構成する一つ一つのパーツ

– 建物、人物、小物、表面素材、特殊効果、効果音、ボタン、etc,

プロジェクト

シーン

ゲームオブジェクト

Page 5: 1DayMakeMazeGame ver,20171022

プロジェクトの作成

• Project name

– ゲーム自体の名前を付けておく

– 半角英数字

– 今回は Maze-20171019

• Location

– 保存先のディレクトリを指定する

– 慣れない内は変更しなくてもOK

• Create project

– ボタンをクリックすると新規プロジェクトが立ち上がる

Page 6: 1DayMakeMazeGame ver,20171022

プロジェクトの選択

• Projects

– 一度作ったプロジェクトは一覧表示される

– プロジェクト名をクリックするとプロジェクトが開く

• New

– プロジェクトを新規作成したい場合にクリックする

• Open

– (他のUnityで開発したなどで)一覧に表示されていないプロジェクトを開きたい場合にクリックする

Page 7: 1DayMakeMazeGame ver,20171022

画面の見かた

• シーンビュー

– ゲームを作るための編集画面

• ヒエラルキーウィンドウ

– シーンにある全オブジェクトを階層的に表示する

• プロジェクトウィンドウ

– プロジェクト全体で使用できるオブジェクトやプログラムスクリプト等の全てを表示

• インスペクターウィンドウ

– 選択中のオブジェクトのプロパティの表示・編集

シーンビュー

ヒエラルキーウィンドウ

プロジェクトウィンドウ

インスペクターウィンドウ

ツールバー

• ツールバー

– 開発中に使用する便利な一発切り替えボタンが並ぶ

Page 8: 1DayMakeMazeGame ver,20171022

シーンの作成・保存

• シーンの名前を付けて保存

– 何はともあれまずはシーンの名前を付けて保存する

– Menu > File > Save Scene as...をクリック

• Save Scene

– Save As: に “Main.unity” として右下の [Save] ボタンをクリックする

Page 9: 1DayMakeMazeGame ver,20171022

シーンの作成・保存

• シーンはこまめに保存

– 一度名前を付けて保存したら、次からは頻繁に単純にシーンを保存する

– Menu > File > Save Scene をクリック

– ⌘+SキーでもOK

Page 10: 1DayMakeMazeGame ver,20171022

ブツを出現させる – 床

• 何はともあれ床

– Planeを使う

– QuadはUIとかで使う

– 今回はPlaneを使う

– Menu > GameObject > 3D Object > Plane をクリック

Page 11: 1DayMakeMazeGame ver,20171022

ブツを出現させる – 立方体

• 万能選手の箱

– 立方体としても柱にも板にも使える Cubeというオブジェクトを使う

– Menu > GameObject > 3D Object > Cube をクリック

– 出現させただけの状態では「配置した場所にただ存在するだけの何か」

– 物理法則を適用(重力の影響を受ける)させたい場合はRigidbodyをアタッチしてUse Gravityオプションを有効にする(後述)

Page 12: 1DayMakeMazeGame ver,20171022

ブツを動かしてみる

• 1軸方向の平行移動

– 立方体から三方向に伸びている矢印の先端をクリック

– ドラッグすると矢印方向にオブジェクトを移動させられる

Page 13: 1DayMakeMazeGame ver,20171022

ブツを出現させる – 球体

• 粒、弾、ボールならコレ

– 変形させるよりもサイズを変えて球体のまま使うケースが多い Sphereというオブジェクトを使う

– Menu > GameObject > 3D Object > Sphere をクリック

– 出現させただけの状態では「配置した場所にただ存在するだけの何か」

– 物理法則を適用(重力の影響を受ける)させたい場合はRigidbodyをアタッチしてUse Gravityオプションを有効にする(後述)

Page 14: 1DayMakeMazeGame ver,20171022

ブツを落としてみる

• プレイボタンをクリック

– メニューバーの中央部にある右向きの▶︎をクリック

Page 15: 1DayMakeMazeGame ver,20171022

ブツを落としてみる

• プレイボタンをクリック

– メニューバーの中央部にある右向きの▶︎をクリック

• なにも起きません

Page 16: 1DayMakeMazeGame ver,20171022

ブツを落としてみる

• プレイボタンをクリック

– メニューバーの中央部にある右向きの▶︎をクリック

• なにも起きない

– Sceneにただ置いただけのオブジェクトは「ただの物質」

– 物理法則を適用させる必要がある

Page 17: 1DayMakeMazeGame ver,20171022

ブツを落としてみる

• 物理法則を適用する

– 重力の影響を受けさせる

• Rigidbodyをアタッチ

– Inspectorの一番下にある[ Add Component ]をクリック

Page 18: 1DayMakeMazeGame ver,20171022

ブツを落としてみる

• 虫眼鏡マークの入力欄にrigi と入力

• Searchに出ている候補からRigidbodyをクリックして選択する

– Inspectorの下の方にRigidbodyが追加される

Page 19: 1DayMakeMazeGame ver,20171022

ブツを落としてみる

• プレイボタンをクリック

– メニューバーの中央部にある右向きの▶︎をクリック

Page 20: 1DayMakeMazeGame ver,20171022

ブツを落としてみる

Page 21: 1DayMakeMazeGame ver,20171022

ブツを弾ませてみる

• 跳ねる物理シミュレーションを追加する

– Assets > Create > Physic Material

Page 22: 1DayMakeMazeGame ver,20171022

ブツを弾ませてみる

• 跳ねる物理シミュレーションを追加する

– Assets > Create > Physic Material

• ProjectウィンドウのAssetsに New Physic Materialが出現する

– Bump という名前に変更しておく

Page 23: 1DayMakeMazeGame ver,20171022

ブツを弾ませてみる

• 跳ねる量を設定する

– Inspectorの Bouncinessの値を 0 から 1 に変更

Page 24: 1DayMakeMazeGame ver,20171022

ブツを弾ませてみる

• 跳ねるシミュレーションを球体に追加する

– Projectウィンドウの中のBumpをドラッグアンドドロップでシーンウィンドウの中の Sphereに付ける

– Hierarchyの Sphere Colliderに “Bump” と表示されていればアタッチ成功

Page 25: 1DayMakeMazeGame ver,20171022

ブツを落としてみる

• プレイボタンをクリック

– メニューバーの中央部にある右向きの▶︎をクリック

Page 26: 1DayMakeMazeGame ver,20171022

ブツを弾ませてみる

• 跳ねる量を変えてみる

– Bouncinessの値を1より小さくしてみる(0.3や0.5など)

– Bouncinessの値を1より大きくしてみる(1.2や1.8など)

Page 27: 1DayMakeMazeGame ver,20171022

ブツを弾ませてみる

• 跳ねる量を変えてみる

– 全部の項目の数値を変えたりプルダウンメニューの中の値を変えてみる

Page 28: 1DayMakeMazeGame ver,20171022

ブツを出現させる – 円柱

• 串、テーブル、柱はこれで

– 円柱のバリエーションのモノを作るなら Cylinder というオブジェクトを使う

– Menu > GameObject > 3D Object > Cylinderをクリック

– 出現させただけの状態では「配置した場所にただ存在するだけの何か」

– 物理法則を適用(重力の影響を受ける)させたい場合はRigidbodyをアタッチしてUse Gravityオプションを有効にする

Page 29: 1DayMakeMazeGame ver,20171022

ブツを出現させる – カプセル

• 仮置きの人や棒にはカプセル

– Cylinderよりも柔らかい印象になる Capsule というオブジェクトを使う

– Menu > GameObject > 3D Object > Capsuleをクリック

– 出現させただけの状態では「配置した場所にただ存在するだけの何か」

– 物理法則を適用(重力の影響を受ける)させたい場合はRigidbodyをアタッチして Use Gravityオプションを有効にする

Page 30: 1DayMakeMazeGame ver,20171022

ツールバー/各ボタンの役割

• 画面の見え方変更ボタン

– シーンビュー内の特定の場所をクリックしたままドラッグする

– クリックした地点を中心に視点を上下左右に変更できる

– キーボードの Q キーをクリックしても切り替えられる

Page 31: 1DayMakeMazeGame ver,20171022

ツールバー/各ボタンの役割

• オブジェクト移動ボタン

– シーンビュー内のオブジェクトの配置をドラッグアンドドロップで変更する

– オブジェクトの中心から3方向に伸びる矢印の先端をドラッグすると矢印方向に移動できる

– オブジェクトの中心の立方体をドラッグすると自由に移動できる

– キーボードの W キーでも切り替えられる

Page 32: 1DayMakeMazeGame ver,20171022

ツールバー/各ボタンの役割

• オブジェクト回転ボタン

– シーンビュー内のオブジェクトを3軸方向それぞれに回転させる

– 3方向に伸びる矢印の代わりにオブジェクトの中心を包む3つの環が出現する

– 環をドラッグすると任意の向きに変更できる

– キーボードの E キーでも切り替えられる

Page 33: 1DayMakeMazeGame ver,20171022

ツールバー/各ボタンの役割

• オブジェクト拡縮ボタン

– シーンビュー内のオブジェクトを3軸方向それぞれに拡縮させる

– 3方向に伸びる矢印の代わりに3方向にキューブが伸びる

– 先端のキューブをドラッグするとオブジェクトがその方向に伸び、かつ、中心から同じサイズ分反対側にも伸びる

– キーボードの R キーでも切り替えられる

Page 34: 1DayMakeMazeGame ver,20171022

ツールバー/各ボタンの役割

• Rectツールボタン

– 2DとUIで拡大縮小のために使う

– 3Dでも使えるけれども左となりの拡縮ボタンと同じ動き

– キーボードの T キーでも切り替えられる

Page 35: 1DayMakeMazeGame ver,20171022

見え方の変更

• 右クリック

– シーンビュー内で右クリックしたままドラッグすると、自分視点を中心にシーン内全体の見え方を上下左右に移動させられる

– Altキーを押しながら操作しても同じ効果を得られる

Page 36: 1DayMakeMazeGame ver,20171022

見え方の変更

• シーンギズモ

– シーンビューの視野角や投影モードを一発で素早く変更する(俯瞰、右、左)

– 円錐(ラッパ)をクリックするとその向きからの見た目に切り替わる

– 円錐の中心の立方体をクリックすると奥行き感の有無が切り替わる

– どこを向いているかわからなくなったら、Shiftキーを押しながら円錐の中心の立方体をクリックすれば少し見下ろした状態に戻る

Page 37: 1DayMakeMazeGame ver,20171022

ショートカットキーを使う

• 1scaleづつ移動させる

– Command(ctrl)を押しながら移動させる

Page 38: 1DayMakeMazeGame ver,20171022

ショートカットキーを使う

• 頂点同士をくっ付ける

– Vキーを押す

– 付けたい頂点に薄い□をかざして選ぶ

– 薄い□をドラッグしてオブジェクトを動かす

Page 39: 1DayMakeMazeGame ver,20171022

ショートカットキーを使う

• 頂点同士をくっ付ける

– Vキーを押す

– 付けたい頂点に薄い□をかざして選ぶ

– 薄い□をドラッグしてオブジェクトを動かす

Page 40: 1DayMakeMazeGame ver,20171022

ショートカットキーを使う

• 頂点同士をくっ付ける

– Vキーを押す

– 付けたい頂点に薄い□をかざして選ぶ

– 薄い□をドラッグしてオブジェクトを動かす

Page 41: 1DayMakeMazeGame ver,20171022

ショートカットキーを使う

• 頂点同士をくっ付ける

– Vキーを押す

– 付けたい頂点に薄い□をかざして選ぶ

– 薄い□をドラッグしてオブジェクトを動かす

Page 42: 1DayMakeMazeGame ver,20171022

ショートカットキーを使う

• 面方向に移動させる

– 移動対象の中央の3色の□の面と同方向にのみ移動できる

– やってみよう

Page 43: 1DayMakeMazeGame ver,20171022

ショートカットキーを使う

• 他のオブジェクトに視点を切り替える

– Shift+Fキーを押す

• 遠くのオブジェクトに切り替える

• 探し出せないオブジェクトに切り替える

などにも応用可能

Page 44: 1DayMakeMazeGame ver,20171022

だんご三兄弟を作ってみる

• 3連球

– Sphereを使う

– Cmd+CとCmd+Vで増殖

– 四方八方から見てくっ付いているか確認する

• 串

– Cylinderを使う

– 拡縮モードで縮めて形を整えるか、インスペクターウィンドウで数値を直接変更する

Page 45: 1DayMakeMazeGame ver,20171022

だんご三兄弟を作ってみる

• 値を直接変更

– Positionの値を変更するとシーン内に配置されたオブジェクトの位置を変更できる

– Rotationの値を変更するとオブジェクトの傾きを変更できる

– Scaleの値を変更するとオブジェクトの大きさを変更できる

Page 46: 1DayMakeMazeGame ver,20171022

だんご三兄弟を作ってみる

• だんごと串に色を塗る

– ProjectウィンドウのProjectタブ直下にある [Create] をクリックし、プルダウンからMaterial を選択

– プロジェクトウィンドウ内にNew Materialが出現するのでDangoColor という名前に変更する

– Inspectorウィンドウ内のMain Maps項目の Albedoの右の白い四角をクリック

– 表示されたカラーパレットから好みの色を選ぶ

Page 47: 1DayMakeMazeGame ver,20171022

だんご三兄弟を作ってみる

• だんごと串に色を塗る

– Projectウィンドウの DangoColorを Hierarchyウィンドウ内のSphereにドラッグアンドドロップする

– あるいは DangoColorをシーンビュー内のだんごに直接ドラッグアンドドロップする

– 同じ要領で串にも串の色をつける

– 串の色のマテリアル名はDangoKushiにする

Page 48: 1DayMakeMazeGame ver,20171022

だんご三兄弟をゴールにする

• ゴールの位置に移動させる

– シーン内の好きな位置にだんご三兄弟を移動させる

– ゴールに見立てるので隅でも中央でも適当な場所でも構わない

– ただし、今回は以下の条件に適合すること• 床の上のどこかに置くこと

• 床に接するor一部埋まっていること

– ただしただし、ゴールさせる経路次第では上記条件に沿わなくてもOK

Page 49: 1DayMakeMazeGame ver,20171022

迷路ゲームを作ってみる

• 土台を作る

• 外周を作る

• 経路を練る

• 迷路の壁を建てる

• 主人公を置く

• ゴールを作る

• トリックを仕込む

Page 50: 1DayMakeMazeGame ver,20171022

土台を作る

• さっきの床をそのまま使う

• だんご三兄弟はそのまま使う

• これら以外はDeleteキーで全部消す

Page 51: 1DayMakeMazeGame ver,20171022

外周を作る

• キューブを流用する

– GameObject > 3D Object > Cube

• 長さと厚みを変える

• 床の端に置く

• コピー&ペーストで反対側の壁を作る

• 矢印のドラッグ&ドロップで反対側に置くかInspectorの PositionのZ値を反対側の位置(例では -5を 5)に変更する

Page 52: 1DayMakeMazeGame ver,20171022

外周を作る

• 横壁を流用する

• コピー&ペーストで縦方向の壁を作る

– Inspectorの Rotationの Yの値を90にして壁の向きを直角方向に変更する

• 矢印のドラッグ&ドロップで床の側に置く

• 反対側の壁はコピー&ペーストで作って移動させて反対側に配置する

Page 53: 1DayMakeMazeGame ver,20171022

迷路ゲームの経路を練る

• 自動処理で迷路の経路をつくる

– NavMeshでやる

– A* Pathfindingなどのアセットを使う

– 自分で迷路の正解の道順を作る

Page 54: 1DayMakeMazeGame ver,20171022

迷路ゲームの経路を練る

• 自動処理で迷路の経路をつくる

– NavMeshでやる

• 時間が掛かる&コツを掴むまでは難しい

– A* Pathfindingなどのアセットを使う

• 壮大な迷路にはコレ!

• 今回の規模ではオーバースペック

– 自分で迷路の正解の道順を作る

• 今回の規模には最適♪

Page 55: 1DayMakeMazeGame ver,20171022

迷路の経路を作る

• キューブを使う

– GameObject > 3D Object > Cube

• 床と見分けやすい色を塗る

– Project > Material

– 「MazeRoute」という名前をつけておく

• ひたすらコピー&ペーストで箱を増殖しながら迷路の正解の道筋を作る

Page 56: 1DayMakeMazeGame ver,20171022

迷路の経路のコツ

• 長い直線は飽きる

• 曲がり過ぎると後で自分が大変になる

• 引っ掛け経路などは気にしない

• 最短距離過ぎてもつまらない

• 最短距離過ぎると見た目がごまかせない

Page 57: 1DayMakeMazeGame ver,20171022

迷路ゲームの経路の例

• 直感的に作ってみる

– 壁を建て始めると経路を変えたくなる

• 長い直線は2箇所まではOK

– カラクリでごまかせる

• くっ付いても気にしない

– 壁を建てて隔てられる

• シンプルがちょうど良い

– 壁を建てて実際に辿ると案外難しくなっている

Page 58: 1DayMakeMazeGame ver,20171022

迷路の壁を建てる

• 外周を流用する

– コピー&ペースト

• 床の罫線の上に乗せる

– CubeとCubeの間に挟まって良い

• 拡縮ボタンを活用

– 長さを縮める

• 横壁は縦壁を流用する

– Inspectorの Rotationの Yの値を90°変更

Page 59: 1DayMakeMazeGame ver,20171022

迷路の壁を飾りやすくする

• 作った壁を「プレハブ化」する

– シーンビュー内のオブジェクトをプロジェクトウィンドウにドラッグ&ドロップする

– 縦の壁は “MazeWallTate” と名前をつける

– 横の壁は “MazeWallYoko” と名前をつける

– プレハブ化したプレハブをドラッグ&ドロップでシーンビューに落とす

– この作業の謎解きは後ほど

Page 60: 1DayMakeMazeGame ver,20171022

迷路の壁を建てまくる

• プレハブから作った壁をどんどんコピペする

– プレハブではなくプレハブをシーンビューに落とした壁をコピペしまくる

– 正解経路のCubeを挟み込んで通路になるように壁を建てる

– 直感でジャンジャン壁を建てていく

Page 61: 1DayMakeMazeGame ver,20171022

主人公を置く

• 今回は Cupsuleを使う

– Menu > GameObject > 3D Object > Cupsule

• ゴール(だんご三兄弟)の正反対の位置に配置する

• 床の上に置く

• 通路幅よりも細くする

– 例)X:0.5, Y:0.2, Z:0.5

Page 62: 1DayMakeMazeGame ver,20171022

主人公が動くようにする

• そのままでは動かない

– ←↑↓→ のキー操作で動くようにする

• 動かすためのプログラムを仕込む

– 今回はコピペで済ませる

– Projectウィンドウ > Create > C# Script

– ファイル名を “Move” に変更

– ファイルをダブルクリックする

Page 63: 1DayMakeMazeGame ver,20171022

主人公が動くようにする

• プログラム編集ソフトが起動する

– Cmd+Aキーで全て選択

– Deleteキーで全て消す

– 続けて次のページのプログラムを全部コピーしてきて、それをペーストする

Page 64: 1DayMakeMazeGame ver,20171022

主人公が動くようにするusing UnityEngine;using System.Collections;

public class Move : MonoBehaviour {//動く速度を指定するpublic float speed = 3;

// Use this for initializationvoid Start () {

}

// Update is called once per framevoid Update () {//左右キー・上下キーのキーボード入力を取得するfloat speed_x = Input.GetAxis (“Horizontal”) * speed;float speed_y = Input.GetAxis (“Vertical”) * speed;

//自分に力を与えて動かす(転がす)this.GetComponent<Rigidbody> ().AddForce (speed_x, 0, speed_y);

}}

https://goo.gl/wwn7z8

Page 65: 1DayMakeMazeGame ver,20171022

主人公が動くようにする

• 主人公にくっ付ける

– いま出来上がった Projectビューの中にあるプログラム“Move” を、Hierarchyビューの中の主人公にドラッグ&ドロップする

– Hierarchyビューの中の主人公がどれだか判らない時は、シーンビューの中の主人公をクリックすると判る

– 主人公にプログラムがくっ付いたかどうか確認する• 主人公をクリックしてInspector

ビューに “Move (Script)” の項目があればOK!

Page 66: 1DayMakeMazeGame ver,20171022

主人公が動くようにする

• 主人公が物理法則の影響を受けるようにする

– Inspectorウィンドウの一番下の [Add Component]ボタンをクリック

– 検索窓に “rigi” と入力

– “Search” に “Rigidbody” が表示されたらクリックで選択

– Inspectorビューの中に“Rigidbody” が入っていればOK

Page 67: 1DayMakeMazeGame ver,20171022

主人公が動いたら

• プレイモードにする

– 画面上部中央のプレイボタン▶︎ をクリック

• キーボードの←↑↓→で操作

– 主人公がキー入力通りに動くか確認する

Page 68: 1DayMakeMazeGame ver,20171022

主人公が動いたら

• 正解経路のCubeを全部消す

– シーンビューで一つ一つ消すか Hierarchyビューでまとめて消す

• ゴールに辿り着けるか確認

– 通れない通路はないか?

– 曲がれるか

Page 69: 1DayMakeMazeGame ver,20171022

見えにくい時は

• 最初にゲームカメラの視野を変えておく

• シーンギズモくん登場

– カメラが見える視野になるまでX, Y, Zラッパをクリックしまくる

– 見つからない時はズームアウト(ホイールをスクロール)してみる

– 真横にカメラが見える位置がオススメ

Page 70: 1DayMakeMazeGame ver,20171022

見えにくい時は

• カメラの視野を鳥瞰にする

• シーンギズモくん登場

– カメラが見える視野になるまでX, Y, Zラッパをクリックしまくる

– 見つからない時はズームアウト(ホイールをスクロール)してみる

• 回転ボタン活躍

– カメラの視野を真下に向ける

– カメラのInspectorのRotationの値を直接変えてもOK• Inspector > Transform > X:90

Page 71: 1DayMakeMazeGame ver,20171022

見えにくい時は

• シーンの視野を変える

• シーンギズモくん登場

– 全体がが見える視野になるまでX, Y, Zラッパをクリックしまくる

– 入りきらない場合はズームアウト(ホイールをスクロール)してみる

Page 72: 1DayMakeMazeGame ver,20171022

トリックを仕込む

• シーンの視野を変える

• シーンギズモくん登場

– 全体がが見える視野になるまでX, Y, Zラッパをクリックしまくる

– 入りきらない場合はズームアウト(ホイールをスクロール)してみる

Page 73: 1DayMakeMazeGame ver,20171022

ゴールを作る

• ゴールしたことを判りたい

• だんご三兄弟に当たったら串の色を変えたい

• モノがぶつかったら色を変えるプログラムを仕込む

– 今回もコピペで済ませる

– Projectウィンドウ > Create > C# Script

– ファイル名を “Goal” に変更

– ファイルをダブルクリックする

Page 74: 1DayMakeMazeGame ver,20171022

ゴールを作る

• プログラム編集ソフトが起動する

– Cmd+Aキーで全て選択

– Deleteキーで全て消す

– 続けて次のページのプログラムを全部コピーしてきて、それをペーストする

Page 75: 1DayMakeMazeGame ver,20171022

ゴールを作るusing UnityEngine;using System.Collections;

public class Goal : MonoBehaviour {

void OnTriggerEnter(Collider col){//オブジェクトに衝突したことを検出する

//マテリアルの色として redを着色するGetComponent<Renderer>().material.color = Color.red;

}}

https://goo.gl/wwn7z8

Page 76: 1DayMakeMazeGame ver,20171022

ゴールを作る

• ゴールにくっ付ける

– いま出来上がった Projectビューの中にあるプログラム ”Goal” を、Hierarchyビューの中の串(Cylinder)にドラッグ&ドロップする

– Hierarchyビューの中の串がどれだか判らない時は、シーンビューの中のだんご三兄弟の串をクリックすると判る

– 串(Cylinder)のCapsule Colliderの Is Triggerにチェックを付ける

Page 77: 1DayMakeMazeGame ver,20171022

ゴールを作る

• プレイモードにする

– 画面上部中央のプレイボタン▶︎ をクリック

• 色が変わるか確認する

– ゴールまで遠すぎたり複雑すぎる時は一時的に主人公をゴールの近くに置く

– 見え難かったら視点を変えるか、だんごの高さを変えて串を見えるようにする

– 主人公が串をすり抜ける

Page 78: 1DayMakeMazeGame ver,20171022

ゴールを作る ~2

• ゴールしたことを判りたい

• だんご三兄弟に当たったら串の色を変えたい

• 串をすり抜けたくない

• モノがぶつかったら色を変えるプログラムを仕込む

– 今回もコピペで済ませる

– Projectウィンドウ > Create > C# Script

– ファイル名を “Goal2” に変更

– ファイルをダブルクリックする

Page 79: 1DayMakeMazeGame ver,20171022

ゴールを作る

• プログラム編集ソフトが起動する

– Cmd+Aキーで全て選択

– Deleteキーで全て消す

– 続けて次のページのプログラムを全部コピーしてきて、それをペーストする

Page 80: 1DayMakeMazeGame ver,20171022

ゴールを作る~2using UnityEngine;using System.Collections;

public class Goal : MonoBehaviour {

void OnCollisionEnter(Collision collision){//オブジェクトに衝突したことを検出する

//マテリアルの色として redを着色するGetComponent<Renderer>().material.color = Color.red;

}}

主人公がゴールの串をすり抜けたくない場合に使う

https://goo.gl/wwn7z8

Page 81: 1DayMakeMazeGame ver,20171022

ゴールを作る

• ゴールにくっ付け直す

– いま出来上がった Projectビューの中にあるプログラム ”Goal2” を、Hierarchyビューの中の串(Cylinder)にドラッグ&ドロップする

– 串の Capsule Colliderの Is Triggerのチェックを外す

Page 82: 1DayMakeMazeGame ver,20171022

ゴールを作る

• プレイモードにする

– 画面上部中央のプレイボタン▶︎ をクリック

• 色が変わるか確認する

• 串にぶつかってすり抜けないことを確認する

Is Triggerを有効にするとぶつかったオブジェクトはすり抜けるでも、ぶつかったこと自体は認識(=衝突判定)する

Page 83: 1DayMakeMazeGame ver,20171022

高度化させてみよう

Page 84: 1DayMakeMazeGame ver,20171022

トリックを仕込む

• ただゴールを目指してもいいけど、、、

• 罠があると面白さが増す

– チェックポイントでハードルを上げる

– 障害物があると乗り越えたくなる

– 騙しがあると燃える

– 意表を突くと笑いが取れる

Page 85: 1DayMakeMazeGame ver,20171022

チェックポイントを作る

• カッコイイチェックポイントにしよう!

– チェックポイントに寄りたくさせる

– 絵心やCG経験、3Dモデリング経験があるなら作る

– それらの経験がなくても大丈夫!

Page 86: 1DayMakeMazeGame ver,20171022

アセットストアを使う

• マーケットプレイス

– Unityで何かを開発する時に、

– すぐ使えるパッケージ(アセット)を、

– 無料で取得・有料で購入できるマーケットプレイス

– 3Dモデル、アニメーション、Unity拡張、音素材、特殊効果

– 総点数 27,000強

• みんなが使っている

– 大手ゲーム開発会社

– 有名ゲーム・アプリ

Page 87: 1DayMakeMazeGame ver,20171022

アセットストアを使う

• アセットストアを開く

– Menu > Window > Asset Store

– シーンビューの上にアセットストアウィンドウが開く

Page 88: 1DayMakeMazeGame ver,20171022

アセットストアを使う

• 何はともあれ [ログイン]ボタンをポチる

Page 89: 1DayMakeMazeGame ver,20171022

アセットストアを使う

• アセットストアにログイン

• メール

– 登録したメールアドレス

• パスワード

– 登録したパスワード

• [ログイン] ボタンをポチる

• Full Nameに登録した名前に切り替わる

Page 90: 1DayMakeMazeGame ver,20171022

アセットストアを使う

• もしもログインできなかったら、、、

– [アカウント作成] ボタンをポチる

Page 91: 1DayMakeMazeGame ver,20171022

アセットストアを使う

• 自動的にブラウザが開く

• Email

– 受け取れるメールアドレス

• Password

– 8文字以上で記号、英大小文字、数字を組み合わせる

• Username

– ペンネームみたいなもの

• Full Name

– 英文の実名

• Country

– 必ず【Japan】を選ぶ!

Page 92: 1DayMakeMazeGame ver,20171022

アセットストアを使う

• Click or touch the 〜〜〜

– 〜〜〜で指定されている絵柄を選ぶ

• I agree to the〜〜〜

– 利用規約とプライバシーポリシーに同意できるならチェックをつける

• Get Unity news

– Unityからの各種お知らせが届く

– 不要ならチェックしない

• Create a Unity ID

– ポチッと!

Page 93: 1DayMakeMazeGame ver,20171022

アセットストアを使う

• Confirm your Email に変わったらメールを受信する

• メール本文中の “Link to confirm email” をクリックする

Page 94: 1DayMakeMazeGame ver,20171022

アセットストアを使う

• アセットストアにログイン

– [ログイン] ボタンをポチる

Page 95: 1DayMakeMazeGame ver,20171022

アセットストアを使う

• アセットストアにログイン

• メール

– 登録したメールアドレス

• パスワード

– 登録したパスワード

• [ログイン] ボタンをポチる

• Full Nameに登録した名前に切り替わる

Page 96: 1DayMakeMazeGame ver,20171022

アセットストアを使う

• なにはともあれ検索

• And検索

– 検索単語をスペースでつなぐ

• Or検索

– 単語をパイプ | でつなぐ

• And/Or検索

– かっこ()でくくりスペースでつなぐ

– (fire|flare|burn) effect

• 除外

– マイナス – を付ける

– car -cartoon

今回は star を検索してみる

Page 97: 1DayMakeMazeGame ver,20171022

アセットストアを使う

• 値段順に並べ替える

– 無料から順に並ぶ

– 無料の中からカテゴリが “3D モデル” のものを選ぶ

– 例では “Cartoon Props Pack”

• 黒い太文字がアセット名

– アセット名をクリックする

– アセットの説明ページが開く

– そこからダウンロードできる

Page 98: 1DayMakeMazeGame ver,20171022

アセットストアを使う

• [ダウンロード]をポチる

– ダウンロードボタンがプログレスバー(何%ダウンロード中のように伸びる)に変わる

– 100%になると “Import Unity Package” 画面が開く

• 特に気にせず [Import] ボタンをポチる

– ダウンロードしたアセットの解凍とインポートが始まる

Page 99: 1DayMakeMazeGame ver,20171022

チェックポイントを作る

• インポートが完了すると

– Projectウィンドウの Assetsフォルダ直下にアセット名のフォルダが生まれる

– フォルダを開くといろいろ入っている

• モデルをシーンに配置

– Modelsフォルダ内の “Star” をドラッグ&ドロップで迷路状のチェックポイントに置く

– ちょうど良いサイズに変更する

Page 100: 1DayMakeMazeGame ver,20171022

チェックポイントを作る

• インポートが完了すると

– Projectウィンドウの Assetsフォルダ直下にアセット名のフォルダが生まれる

– フォルダを開くといろいろ入っている

• モデルをシーンに配置

– Modelsフォルダ内の “Star” をドラッグ&ドロップで迷路状のチェックポイントに置く

– ちょうど良いサイズや向きに変更する

– コピペで2〜3個配置してみる

Page 101: 1DayMakeMazeGame ver,20171022

時間がある方は

• チェックポイントに当たったら

• 飛跳ねさせてみる

• 飛び跳ねる音を鳴らしてみる

• 数回飛跳ねたら消滅させる

• 得点をつけてみる

• 主人公をワープさせてみる

Page 102: 1DayMakeMazeGame ver,20171022

障害物を置く

• ただの壁じゃつまらない

• DLしたアセットを使う

• 樽をシーンに配置

– Modelsフォルダ内の “Barrel” をドラッグ&ドロップで迷路の邪魔になる場所に置く

– ちょうど良いサイズや向きに変更する

– 今回は「正解経路」を塞ぐ

Page 103: 1DayMakeMazeGame ver,20171022

もしも樽が動いたら、、、

Page 104: 1DayMakeMazeGame ver,20171022

もしも樽が動いたら、、、

Page 105: 1DayMakeMazeGame ver,20171022

もしも樽が動いたら、、、

Page 106: 1DayMakeMazeGame ver,20171022

騙してみよう

• 樽が物理法則の影響を受けるようにする

– 樽をクリックしてInspectorビューの一番下の [Add Component] ボタンをポチる

– 検索窓に “rigi” と入力

– “Search” に “Rigidbody” が表示されたらクリックで選択

– Inspectorビューの中に“Rigidbody” があればOK

• プレイモードにする

– 画面上部中央のプレイボタン▶︎ をクリック

Page 107: 1DayMakeMazeGame ver,20171022

意表を突いて笑いを取ろう

Page 108: 1DayMakeMazeGame ver,20171022

見えない壁を作ろう

• 見えない壁とは?

– “衝突判定” だけのモノを置く

• “カラ”のモノを作る

– Menu > GameObject > Create Empty

• 衝突判定だけを付ける

– Inspectorウィンドウの一番下の [Add Component]ボタンをクリック

– 検索窓に “coll” と入力

– “Search” に “Box Collider” が表示されたらクリック

– Inspectorビューの中に “BoxCollider” が入っていればOK

Page 109: 1DayMakeMazeGame ver,20171022

見えない壁を作ろう

• 見え難いので場外で作業

– 大きさ・厚さを壁と同じくらいにする

• 正解経路上に置いてみる

– とにかく見え難いので視野を変えながら微調節する

Page 110: 1DayMakeMazeGame ver,20171022

見えない壁を作ろう

• プレイモードにする

– 画面上部中央のプレイボタン▶︎ をクリック

Page 111: 1DayMakeMazeGame ver,20171022

もっと意表を突こう

Page 112: 1DayMakeMazeGame ver,20171022

すり抜けられる壁を作ろう

• すり抜けられない壁とは?

– ぶつかったことを検知して「オレ、モノだから!」と主張する

– ぶつかった方は「モノだからすり抜けられない」と認識する

– これが俗に言う “衝突判定”

– 衝突判定は “Collider” さんがやってくれる

• 衝突判定を外す

– すり抜けたい壁の Inspector内の “Box Collider” のチェックを外す

Page 113: 1DayMakeMazeGame ver,20171022

すり抜けられる壁を作ろう

• プレイモードにする

– 画面上部中央のプレイボタン▶︎ をクリック

Page 114: 1DayMakeMazeGame ver,20171022

見栄えをキレイにしてみる

• 壁

• 外周

• 土台

• 主人公

Page 115: 1DayMakeMazeGame ver,20171022

壁っぽくしてみる

• 壁に似合う素材を使う

– Asset Store > テクスチャ&マテリアル > レンガ

Page 116: 1DayMakeMazeGame ver,20171022

壁っぽくしてみる

• 壁に似合う素材を使う

– Asset Store > テクスチャ&マテリアル > レンガ

– 例では “Stone and BrickTexture Pack”をダウンロード

– そのまま全部 Importする

Page 117: 1DayMakeMazeGame ver,20171022

壁っぽくしてみる

• 壁のプレハブに素材を貼る

– Projectウィンドウで“MazeWallYoko” を選択

– Inspectorウィンドウが表示されている状態にしておく

– ProjectウィンドウでAssets/Stone&BrickTexturePack/Texture/Materialsフォルダを開く(フォルダをクリックして開くまで)

– Brickを素早くMazeWallYokoのInspectorウィンドウにドラッグ&ドロップする

– シーンビュー内の横壁が全部グレーのレンガに変わる

Page 118: 1DayMakeMazeGame ver,20171022

壁っぽくしてみる

• 同じ要領で縦壁にも貼る

– Projectウィンドウで“MazeWallTate” を選択

– Inspectorウィンドウが表示されている状態にしておく

– ProjectウィンドウでAssets/Stone&BrickTexturePack/Texture/Materialsフォルダを開く(フォルダをクリックして開くまで)

– Brickを素早くMazeWallTateのInspectorウィンドウにドラッグ&ドロップする

– シーンビュー内の縦壁が全部グレーのレンガに変わる

Page 119: 1DayMakeMazeGame ver,20171022

覚えていますか?

• プレハブって便利ですね

– プレハブ単位で一括変更

– 異なるプレハブには影響しない

– まとめるほど便利

– まとめすぎると厄介者

• 便利に使うためには?

– グルーピングの仕方を事前に熟考する

Page 120: 1DayMakeMazeGame ver,20171022

床っぽくしてみる

• 床に似合う素材を使う

– Asset Store > テクスチャ&マテリアル > 地面

Page 121: 1DayMakeMazeGame ver,20171022

床っぽくしてみる

• 床に似合う素材を使う

– Asset Store > テクスチャ&マテリアル > 地面

– 例では “Grass 01 Game-Ready”をダウンロード

– そのまま全部 Importする

Page 122: 1DayMakeMazeGame ver,20171022

床っぽくしてみる

• Planeに素材を貼る

– ProjectウィンドウでAssets/TL_LAB/TL_Grass_01/U4 Materialフォルダを開く

– TL_Grass_01を素早くシーンビュー内の床にドラッグ&ドロップする

Page 123: 1DayMakeMazeGame ver,20171022

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

Before After

Page 124: 1DayMakeMazeGame ver,20171022

時間がある方は

• 主人公にテクスチャを貼ってみる

• 主人公を3Dモデルに変えてみる

– 人型、車、戦車、戦闘機、宇宙船

• カウントダウンタイマーをつけてみる

• 全体的なBGMを付けてみる

• スタート画面を作ってみる

• ゴールを褒め称えちゃう画面を作る

Page 125: 1DayMakeMazeGame ver,20171022

主人公を追いかける

• カメラを動かす

– ←↑↓→ のキー操作で動くようにする

• 動かすためのプログラムを仕込む

– 今回はコピペで済ませる

– Projectウィンドウ > Create > C# Script

– ファイル名を “CameraMove” に変更

– ファイルをダブルクリックする

Page 126: 1DayMakeMazeGame ver,20171022

主人公を追いかける

• プログラム編集ソフトが起動する

– Cmd+Aキーで全て選択

– Deleteキーで全て消す

– 続けて次のページのプログラムを全部コピーしてきて、それをペーストする

Page 127: 1DayMakeMazeGame ver,20171022

主人公を追いかけるusing UnityEngine;using System.Collections;

public class CameraMove : MonoBehaviour {// 相手のTransform(位置・角度・大きさ)情報を取得public Transform move_target;

// Use this for initializationvoid Start () {

}

// Update is called once per framevoid Update () {

// 自分の位置を相手の位置と同じにする。transform.position = move_target.position;

}}

https://goo.gl/wwn7z8

Page 128: 1DayMakeMazeGame ver,20171022

主人公を追いかける

• Main Cameraの位置と向きを変える

– 主人公目線に変更する

– 壁高目線

– 足元目線

Page 129: 1DayMakeMazeGame ver,20171022

主人公を追いかける

• Main Cameraの位置と向きを変える

– 主人公目線に変更する

– 壁高目線

– 足元目線

Page 130: 1DayMakeMazeGame ver,20171022

主人公を追いかける

• 自分目線でカメラを動かしてみる

– Game Object > Create Empty

– 名前を Camera Parent に変更

Page 131: 1DayMakeMazeGame ver,20171022

主人公を追いかける

• 自分目線でカメラを動かしてみる

– Camera Parent のInspectorのPositionと Rotationの値をMain Cameraの値と同じにする

Page 132: 1DayMakeMazeGame ver,20171022

主人公を追いかける

• 自分目線でカメラを動かしてみる

– Main Camera を Camera Parent にドラッグアンドドロップして、Camera Parentの子にする

Page 133: 1DayMakeMazeGame ver,20171022

主人公を追いかける

• カメラの親にくっ付ける

– 作っておいた Projectビューの中にあるプログラム ”CameraMove” を、Hierarchyビューの中のCamera Parent にドラッグ&ドロップする

• 主人公を対象にさせる

– Camera Parentの Inspectorで Camera Move (Script) のMove_targetの右端の◉をクリック

– 検索窓で cap と入力

– Capsule を選択する

Page 134: 1DayMakeMazeGame ver,20171022

みんなに遊んでもらおう

• Build Settingsを開く

– File > Build Settings…

Page 135: 1DayMakeMazeGame ver,20171022

WebGLでの書き出し

• WebGLを選択

• 画面左下の「Switch Platform」をクリック

Page 136: 1DayMakeMazeGame ver,20171022

WebGLでの書き出し

• 「Add Open Scenes」をクリック

• “Scenes in Build”の枠内にMainシーンが入ったら画面下の「Build」をクリック

Page 137: 1DayMakeMazeGame ver,20171022

WebGLでの書き出し

• Save As: にWebGL書き出しをするディレクトリ名を入力する

– 今回は MazeWebGL

• Saveをクリック

• しばらく待つと index.htmlと複数のフォルダが出来上がる

• ウェブサーバーにアップロードする