Upload
takashi-jona
View
181
Download
0
Embed Size (px)
Citation preview
1日で迷路ゲームを作っちゃおう
Unity Technologies Japan常名隆司
Unity操作・基本のキ
基本操作をやってみる
• プロジェクトの作成
• 画面の見かた
• シーンの作成・保存
• ブツを出現させる
• ツールバー/各ボタンの役割
• 見え方の変更
• ショートカットキーを使ってみよう
• だんご三兄弟を作ってみる
Unityでのゲーム開発概念
• プロジェクト
– 一つのゲームの開発単位
• シーン
– ゲーム内の小分けにした場面ごとの開発単位
– スタート画面やゴール画面もシーンとして分離するケースもあり
• ゲームオブジェクト
– ゲームを構成する一つ一つのパーツ
– 建物、人物、小物、表面素材、特殊効果、効果音、ボタン、etc,
プロジェクト
シーン
ゲームオブジェクト
プロジェクトの作成
• Project name
– ゲーム自体の名前を付けておく
– 半角英数字
– 今回は Maze-20171019
• Location
– 保存先のディレクトリを指定する
– 慣れない内は変更しなくてもOK
• Create project
– ボタンをクリックすると新規プロジェクトが立ち上がる
プロジェクトの選択
• Projects
– 一度作ったプロジェクトは一覧表示される
– プロジェクト名をクリックするとプロジェクトが開く
• New
– プロジェクトを新規作成したい場合にクリックする
• Open
– (他のUnityで開発したなどで)一覧に表示されていないプロジェクトを開きたい場合にクリックする
画面の見かた
• シーンビュー
– ゲームを作るための編集画面
• ヒエラルキーウィンドウ
– シーンにある全オブジェクトを階層的に表示する
• プロジェクトウィンドウ
– プロジェクト全体で使用できるオブジェクトやプログラムスクリプト等の全てを表示
• インスペクターウィンドウ
– 選択中のオブジェクトのプロパティの表示・編集
シーンビュー
ヒエラルキーウィンドウ
プロジェクトウィンドウ
インスペクターウィンドウ
ツールバー
• ツールバー
– 開発中に使用する便利な一発切り替えボタンが並ぶ
シーンの作成・保存
• シーンの名前を付けて保存
– 何はともあれまずはシーンの名前を付けて保存する
– Menu > File > Save Scene as...をクリック
• Save Scene
– Save As: に “Main.unity” として右下の [Save] ボタンをクリックする
シーンの作成・保存
• シーンはこまめに保存
– 一度名前を付けて保存したら、次からは頻繁に単純にシーンを保存する
– Menu > File > Save Scene をクリック
– ⌘+SキーでもOK
ブツを出現させる – 床
• 何はともあれ床
– Planeを使う
– QuadはUIとかで使う
– 今回はPlaneを使う
– Menu > GameObject > 3D Object > Plane をクリック
ブツを出現させる – 立方体
• 万能選手の箱
– 立方体としても柱にも板にも使える Cubeというオブジェクトを使う
– Menu > GameObject > 3D Object > Cube をクリック
– 出現させただけの状態では「配置した場所にただ存在するだけの何か」
– 物理法則を適用(重力の影響を受ける)させたい場合はRigidbodyをアタッチしてUse Gravityオプションを有効にする(後述)
ブツを動かしてみる
• 1軸方向の平行移動
– 立方体から三方向に伸びている矢印の先端をクリック
– ドラッグすると矢印方向にオブジェクトを移動させられる
ブツを出現させる – 球体
• 粒、弾、ボールならコレ
– 変形させるよりもサイズを変えて球体のまま使うケースが多い Sphereというオブジェクトを使う
– Menu > GameObject > 3D Object > Sphere をクリック
– 出現させただけの状態では「配置した場所にただ存在するだけの何か」
– 物理法則を適用(重力の影響を受ける)させたい場合はRigidbodyをアタッチしてUse Gravityオプションを有効にする(後述)
ブツを落としてみる
• プレイボタンをクリック
– メニューバーの中央部にある右向きの▶︎をクリック
ブツを落としてみる
• プレイボタンをクリック
– メニューバーの中央部にある右向きの▶︎をクリック
• なにも起きません
ブツを落としてみる
• プレイボタンをクリック
– メニューバーの中央部にある右向きの▶︎をクリック
• なにも起きない
– Sceneにただ置いただけのオブジェクトは「ただの物質」
– 物理法則を適用させる必要がある
ブツを落としてみる
• 物理法則を適用する
– 重力の影響を受けさせる
• Rigidbodyをアタッチ
– Inspectorの一番下にある[ Add Component ]をクリック
ブツを落としてみる
• 虫眼鏡マークの入力欄にrigi と入力
• Searchに出ている候補からRigidbodyをクリックして選択する
– Inspectorの下の方にRigidbodyが追加される
ブツを落としてみる
• プレイボタンをクリック
– メニューバーの中央部にある右向きの▶︎をクリック
ブツを落としてみる
ブツを弾ませてみる
• 跳ねる物理シミュレーションを追加する
– Assets > Create > Physic Material
ブツを弾ませてみる
• 跳ねる物理シミュレーションを追加する
– Assets > Create > Physic Material
• ProjectウィンドウのAssetsに New Physic Materialが出現する
– Bump という名前に変更しておく
ブツを弾ませてみる
• 跳ねる量を設定する
– Inspectorの Bouncinessの値を 0 から 1 に変更
ブツを弾ませてみる
• 跳ねるシミュレーションを球体に追加する
– Projectウィンドウの中のBumpをドラッグアンドドロップでシーンウィンドウの中の Sphereに付ける
– Hierarchyの Sphere Colliderに “Bump” と表示されていればアタッチ成功
ブツを落としてみる
• プレイボタンをクリック
– メニューバーの中央部にある右向きの▶︎をクリック
ブツを弾ませてみる
• 跳ねる量を変えてみる
– Bouncinessの値を1より小さくしてみる(0.3や0.5など)
– Bouncinessの値を1より大きくしてみる(1.2や1.8など)
ブツを弾ませてみる
• 跳ねる量を変えてみる
– 全部の項目の数値を変えたりプルダウンメニューの中の値を変えてみる
ブツを出現させる – 円柱
• 串、テーブル、柱はこれで
– 円柱のバリエーションのモノを作るなら Cylinder というオブジェクトを使う
– Menu > GameObject > 3D Object > Cylinderをクリック
– 出現させただけの状態では「配置した場所にただ存在するだけの何か」
– 物理法則を適用(重力の影響を受ける)させたい場合はRigidbodyをアタッチしてUse Gravityオプションを有効にする
ブツを出現させる – カプセル
• 仮置きの人や棒にはカプセル
– Cylinderよりも柔らかい印象になる Capsule というオブジェクトを使う
– Menu > GameObject > 3D Object > Capsuleをクリック
– 出現させただけの状態では「配置した場所にただ存在するだけの何か」
– 物理法則を適用(重力の影響を受ける)させたい場合はRigidbodyをアタッチして Use Gravityオプションを有効にする
ツールバー/各ボタンの役割
• 画面の見え方変更ボタン
– シーンビュー内の特定の場所をクリックしたままドラッグする
– クリックした地点を中心に視点を上下左右に変更できる
– キーボードの Q キーをクリックしても切り替えられる
ツールバー/各ボタンの役割
• オブジェクト移動ボタン
– シーンビュー内のオブジェクトの配置をドラッグアンドドロップで変更する
– オブジェクトの中心から3方向に伸びる矢印の先端をドラッグすると矢印方向に移動できる
– オブジェクトの中心の立方体をドラッグすると自由に移動できる
– キーボードの W キーでも切り替えられる
ツールバー/各ボタンの役割
• オブジェクト回転ボタン
– シーンビュー内のオブジェクトを3軸方向それぞれに回転させる
– 3方向に伸びる矢印の代わりにオブジェクトの中心を包む3つの環が出現する
– 環をドラッグすると任意の向きに変更できる
– キーボードの E キーでも切り替えられる
ツールバー/各ボタンの役割
• オブジェクト拡縮ボタン
– シーンビュー内のオブジェクトを3軸方向それぞれに拡縮させる
– 3方向に伸びる矢印の代わりに3方向にキューブが伸びる
– 先端のキューブをドラッグするとオブジェクトがその方向に伸び、かつ、中心から同じサイズ分反対側にも伸びる
– キーボードの R キーでも切り替えられる
ツールバー/各ボタンの役割
• Rectツールボタン
– 2DとUIで拡大縮小のために使う
– 3Dでも使えるけれども左となりの拡縮ボタンと同じ動き
– キーボードの T キーでも切り替えられる
見え方の変更
• 右クリック
– シーンビュー内で右クリックしたままドラッグすると、自分視点を中心にシーン内全体の見え方を上下左右に移動させられる
– Altキーを押しながら操作しても同じ効果を得られる
見え方の変更
• シーンギズモ
– シーンビューの視野角や投影モードを一発で素早く変更する(俯瞰、右、左)
– 円錐(ラッパ)をクリックするとその向きからの見た目に切り替わる
– 円錐の中心の立方体をクリックすると奥行き感の有無が切り替わる
– どこを向いているかわからなくなったら、Shiftキーを押しながら円錐の中心の立方体をクリックすれば少し見下ろした状態に戻る
ショートカットキーを使う
• 1scaleづつ移動させる
– Command(ctrl)を押しながら移動させる
ショートカットキーを使う
• 頂点同士をくっ付ける
– Vキーを押す
– 付けたい頂点に薄い□をかざして選ぶ
– 薄い□をドラッグしてオブジェクトを動かす
ショートカットキーを使う
• 頂点同士をくっ付ける
– Vキーを押す
– 付けたい頂点に薄い□をかざして選ぶ
– 薄い□をドラッグしてオブジェクトを動かす
ショートカットキーを使う
• 頂点同士をくっ付ける
– Vキーを押す
– 付けたい頂点に薄い□をかざして選ぶ
– 薄い□をドラッグしてオブジェクトを動かす
ショートカットキーを使う
• 頂点同士をくっ付ける
– Vキーを押す
– 付けたい頂点に薄い□をかざして選ぶ
– 薄い□をドラッグしてオブジェクトを動かす
ショートカットキーを使う
• 面方向に移動させる
– 移動対象の中央の3色の□の面と同方向にのみ移動できる
– やってみよう
ショートカットキーを使う
• 他のオブジェクトに視点を切り替える
– Shift+Fキーを押す
• 遠くのオブジェクトに切り替える
• 探し出せないオブジェクトに切り替える
などにも応用可能
だんご三兄弟を作ってみる
• 3連球
– Sphereを使う
– Cmd+CとCmd+Vで増殖
– 四方八方から見てくっ付いているか確認する
• 串
– Cylinderを使う
– 拡縮モードで縮めて形を整えるか、インスペクターウィンドウで数値を直接変更する
だんご三兄弟を作ってみる
• 値を直接変更
– Positionの値を変更するとシーン内に配置されたオブジェクトの位置を変更できる
– Rotationの値を変更するとオブジェクトの傾きを変更できる
– Scaleの値を変更するとオブジェクトの大きさを変更できる
だんご三兄弟を作ってみる
• だんごと串に色を塗る
– ProjectウィンドウのProjectタブ直下にある [Create] をクリックし、プルダウンからMaterial を選択
– プロジェクトウィンドウ内にNew Materialが出現するのでDangoColor という名前に変更する
– Inspectorウィンドウ内のMain Maps項目の Albedoの右の白い四角をクリック
– 表示されたカラーパレットから好みの色を選ぶ
だんご三兄弟を作ってみる
• だんごと串に色を塗る
– Projectウィンドウの DangoColorを Hierarchyウィンドウ内のSphereにドラッグアンドドロップする
– あるいは DangoColorをシーンビュー内のだんごに直接ドラッグアンドドロップする
– 同じ要領で串にも串の色をつける
– 串の色のマテリアル名はDangoKushiにする
だんご三兄弟をゴールにする
• ゴールの位置に移動させる
– シーン内の好きな位置にだんご三兄弟を移動させる
– ゴールに見立てるので隅でも中央でも適当な場所でも構わない
– ただし、今回は以下の条件に適合すること• 床の上のどこかに置くこと
• 床に接するor一部埋まっていること
– ただしただし、ゴールさせる経路次第では上記条件に沿わなくてもOK
迷路ゲームを作ってみる
• 土台を作る
• 外周を作る
• 経路を練る
• 迷路の壁を建てる
• 主人公を置く
• ゴールを作る
• トリックを仕込む
土台を作る
• さっきの床をそのまま使う
• だんご三兄弟はそのまま使う
• これら以外はDeleteキーで全部消す
外周を作る
• キューブを流用する
– GameObject > 3D Object > Cube
• 長さと厚みを変える
• 床の端に置く
• コピー&ペーストで反対側の壁を作る
• 矢印のドラッグ&ドロップで反対側に置くかInspectorの PositionのZ値を反対側の位置(例では -5を 5)に変更する
外周を作る
• 横壁を流用する
• コピー&ペーストで縦方向の壁を作る
– Inspectorの Rotationの Yの値を90にして壁の向きを直角方向に変更する
• 矢印のドラッグ&ドロップで床の側に置く
• 反対側の壁はコピー&ペーストで作って移動させて反対側に配置する
迷路ゲームの経路を練る
• 自動処理で迷路の経路をつくる
– NavMeshでやる
– A* Pathfindingなどのアセットを使う
– 自分で迷路の正解の道順を作る
迷路ゲームの経路を練る
• 自動処理で迷路の経路をつくる
– NavMeshでやる
• 時間が掛かる&コツを掴むまでは難しい
– A* Pathfindingなどのアセットを使う
• 壮大な迷路にはコレ!
• 今回の規模ではオーバースペック
– 自分で迷路の正解の道順を作る
• 今回の規模には最適♪
迷路の経路を作る
• キューブを使う
– GameObject > 3D Object > Cube
• 床と見分けやすい色を塗る
– Project > Material
– 「MazeRoute」という名前をつけておく
• ひたすらコピー&ペーストで箱を増殖しながら迷路の正解の道筋を作る
迷路の経路のコツ
• 長い直線は飽きる
• 曲がり過ぎると後で自分が大変になる
• 引っ掛け経路などは気にしない
• 最短距離過ぎてもつまらない
• 最短距離過ぎると見た目がごまかせない
迷路ゲームの経路の例
• 直感的に作ってみる
– 壁を建て始めると経路を変えたくなる
• 長い直線は2箇所まではOK
– カラクリでごまかせる
• くっ付いても気にしない
– 壁を建てて隔てられる
• シンプルがちょうど良い
– 壁を建てて実際に辿ると案外難しくなっている
迷路の壁を建てる
• 外周を流用する
– コピー&ペースト
• 床の罫線の上に乗せる
– CubeとCubeの間に挟まって良い
• 拡縮ボタンを活用
– 長さを縮める
• 横壁は縦壁を流用する
– Inspectorの Rotationの Yの値を90°変更
迷路の壁を飾りやすくする
• 作った壁を「プレハブ化」する
– シーンビュー内のオブジェクトをプロジェクトウィンドウにドラッグ&ドロップする
– 縦の壁は “MazeWallTate” と名前をつける
– 横の壁は “MazeWallYoko” と名前をつける
– プレハブ化したプレハブをドラッグ&ドロップでシーンビューに落とす
– この作業の謎解きは後ほど
迷路の壁を建てまくる
• プレハブから作った壁をどんどんコピペする
– プレハブではなくプレハブをシーンビューに落とした壁をコピペしまくる
– 正解経路のCubeを挟み込んで通路になるように壁を建てる
– 直感でジャンジャン壁を建てていく
主人公を置く
• 今回は Cupsuleを使う
– Menu > GameObject > 3D Object > Cupsule
• ゴール(だんご三兄弟)の正反対の位置に配置する
• 床の上に置く
• 通路幅よりも細くする
– 例)X:0.5, Y:0.2, Z:0.5
主人公が動くようにする
• そのままでは動かない
– ←↑↓→ のキー操作で動くようにする
• 動かすためのプログラムを仕込む
– 今回はコピペで済ませる
– Projectウィンドウ > Create > C# Script
– ファイル名を “Move” に変更
– ファイルをダブルクリックする
主人公が動くようにする
• プログラム編集ソフトが起動する
– Cmd+Aキーで全て選択
– Deleteキーで全て消す
– 続けて次のページのプログラムを全部コピーしてきて、それをペーストする
主人公が動くようにする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
主人公が動くようにする
• 主人公にくっ付ける
– いま出来上がった Projectビューの中にあるプログラム“Move” を、Hierarchyビューの中の主人公にドラッグ&ドロップする
– Hierarchyビューの中の主人公がどれだか判らない時は、シーンビューの中の主人公をクリックすると判る
– 主人公にプログラムがくっ付いたかどうか確認する• 主人公をクリックしてInspector
ビューに “Move (Script)” の項目があればOK!
主人公が動くようにする
• 主人公が物理法則の影響を受けるようにする
– Inspectorウィンドウの一番下の [Add Component]ボタンをクリック
– 検索窓に “rigi” と入力
– “Search” に “Rigidbody” が表示されたらクリックで選択
– Inspectorビューの中に“Rigidbody” が入っていればOK
主人公が動いたら
• プレイモードにする
– 画面上部中央のプレイボタン▶︎ をクリック
• キーボードの←↑↓→で操作
– 主人公がキー入力通りに動くか確認する
主人公が動いたら
• 正解経路のCubeを全部消す
– シーンビューで一つ一つ消すか Hierarchyビューでまとめて消す
• ゴールに辿り着けるか確認
– 通れない通路はないか?
– 曲がれるか
見えにくい時は
• 最初にゲームカメラの視野を変えておく
• シーンギズモくん登場
– カメラが見える視野になるまでX, Y, Zラッパをクリックしまくる
– 見つからない時はズームアウト(ホイールをスクロール)してみる
– 真横にカメラが見える位置がオススメ
見えにくい時は
• カメラの視野を鳥瞰にする
• シーンギズモくん登場
– カメラが見える視野になるまでX, Y, Zラッパをクリックしまくる
– 見つからない時はズームアウト(ホイールをスクロール)してみる
• 回転ボタン活躍
– カメラの視野を真下に向ける
– カメラのInspectorのRotationの値を直接変えてもOK• Inspector > Transform > X:90
見えにくい時は
• シーンの視野を変える
• シーンギズモくん登場
– 全体がが見える視野になるまでX, Y, Zラッパをクリックしまくる
– 入りきらない場合はズームアウト(ホイールをスクロール)してみる
トリックを仕込む
• シーンの視野を変える
• シーンギズモくん登場
– 全体がが見える視野になるまでX, Y, Zラッパをクリックしまくる
– 入りきらない場合はズームアウト(ホイールをスクロール)してみる
ゴールを作る
• ゴールしたことを判りたい
• だんご三兄弟に当たったら串の色を変えたい
• モノがぶつかったら色を変えるプログラムを仕込む
– 今回もコピペで済ませる
– Projectウィンドウ > Create > C# Script
– ファイル名を “Goal” に変更
– ファイルをダブルクリックする
ゴールを作る
• プログラム編集ソフトが起動する
– Cmd+Aキーで全て選択
– Deleteキーで全て消す
– 続けて次のページのプログラムを全部コピーしてきて、それをペーストする
ゴールを作るusing UnityEngine;using System.Collections;
public class Goal : MonoBehaviour {
void OnTriggerEnter(Collider col){//オブジェクトに衝突したことを検出する
//マテリアルの色として redを着色するGetComponent<Renderer>().material.color = Color.red;
}}
https://goo.gl/wwn7z8
ゴールを作る
• ゴールにくっ付ける
– いま出来上がった Projectビューの中にあるプログラム ”Goal” を、Hierarchyビューの中の串(Cylinder)にドラッグ&ドロップする
– Hierarchyビューの中の串がどれだか判らない時は、シーンビューの中のだんご三兄弟の串をクリックすると判る
– 串(Cylinder)のCapsule Colliderの Is Triggerにチェックを付ける
ゴールを作る
• プレイモードにする
– 画面上部中央のプレイボタン▶︎ をクリック
• 色が変わるか確認する
– ゴールまで遠すぎたり複雑すぎる時は一時的に主人公をゴールの近くに置く
– 見え難かったら視点を変えるか、だんごの高さを変えて串を見えるようにする
– 主人公が串をすり抜ける
ゴールを作る ~2
• ゴールしたことを判りたい
• だんご三兄弟に当たったら串の色を変えたい
• 串をすり抜けたくない
• モノがぶつかったら色を変えるプログラムを仕込む
– 今回もコピペで済ませる
– Projectウィンドウ > Create > C# Script
– ファイル名を “Goal2” に変更
– ファイルをダブルクリックする
ゴールを作る
• プログラム編集ソフトが起動する
– Cmd+Aキーで全て選択
– Deleteキーで全て消す
– 続けて次のページのプログラムを全部コピーしてきて、それをペーストする
ゴールを作る~2using UnityEngine;using System.Collections;
public class Goal : MonoBehaviour {
void OnCollisionEnter(Collision collision){//オブジェクトに衝突したことを検出する
//マテリアルの色として redを着色するGetComponent<Renderer>().material.color = Color.red;
}}
主人公がゴールの串をすり抜けたくない場合に使う
https://goo.gl/wwn7z8
ゴールを作る
• ゴールにくっ付け直す
– いま出来上がった Projectビューの中にあるプログラム ”Goal2” を、Hierarchyビューの中の串(Cylinder)にドラッグ&ドロップする
– 串の Capsule Colliderの Is Triggerのチェックを外す
ゴールを作る
• プレイモードにする
– 画面上部中央のプレイボタン▶︎ をクリック
• 色が変わるか確認する
• 串にぶつかってすり抜けないことを確認する
Is Triggerを有効にするとぶつかったオブジェクトはすり抜けるでも、ぶつかったこと自体は認識(=衝突判定)する
高度化させてみよう
トリックを仕込む
• ただゴールを目指してもいいけど、、、
• 罠があると面白さが増す
– チェックポイントでハードルを上げる
– 障害物があると乗り越えたくなる
– 騙しがあると燃える
– 意表を突くと笑いが取れる
チェックポイントを作る
• カッコイイチェックポイントにしよう!
– チェックポイントに寄りたくさせる
– 絵心やCG経験、3Dモデリング経験があるなら作る
– それらの経験がなくても大丈夫!
アセットストアを使う
• マーケットプレイス
– Unityで何かを開発する時に、
– すぐ使えるパッケージ(アセット)を、
– 無料で取得・有料で購入できるマーケットプレイス
– 3Dモデル、アニメーション、Unity拡張、音素材、特殊効果
– 総点数 27,000強
• みんなが使っている
– 大手ゲーム開発会社
– 有名ゲーム・アプリ
アセットストアを使う
• アセットストアを開く
– Menu > Window > Asset Store
– シーンビューの上にアセットストアウィンドウが開く
アセットストアを使う
• 何はともあれ [ログイン]ボタンをポチる
アセットストアを使う
• アセットストアにログイン
• メール
– 登録したメールアドレス
• パスワード
– 登録したパスワード
• [ログイン] ボタンをポチる
• Full Nameに登録した名前に切り替わる
アセットストアを使う
• もしもログインできなかったら、、、
– [アカウント作成] ボタンをポチる
アセットストアを使う
• 自動的にブラウザが開く
– 受け取れるメールアドレス
• Password
– 8文字以上で記号、英大小文字、数字を組み合わせる
• Username
– ペンネームみたいなもの
• Full Name
– 英文の実名
• Country
– 必ず【Japan】を選ぶ!
アセットストアを使う
• Click or touch the 〜〜〜
– 〜〜〜で指定されている絵柄を選ぶ
• I agree to the〜〜〜
– 利用規約とプライバシーポリシーに同意できるならチェックをつける
• Get Unity news
– Unityからの各種お知らせが届く
– 不要ならチェックしない
• Create a Unity ID
– ポチッと!
アセットストアを使う
• Confirm your Email に変わったらメールを受信する
• メール本文中の “Link to confirm email” をクリックする
アセットストアを使う
• アセットストアにログイン
– [ログイン] ボタンをポチる
アセットストアを使う
• アセットストアにログイン
• メール
– 登録したメールアドレス
• パスワード
– 登録したパスワード
• [ログイン] ボタンをポチる
• Full Nameに登録した名前に切り替わる
アセットストアを使う
• なにはともあれ検索
• And検索
– 検索単語をスペースでつなぐ
• Or検索
– 単語をパイプ | でつなぐ
• And/Or検索
– かっこ()でくくりスペースでつなぐ
– (fire|flare|burn) effect
• 除外
– マイナス – を付ける
– car -cartoon
今回は star を検索してみる
アセットストアを使う
• 値段順に並べ替える
– 無料から順に並ぶ
– 無料の中からカテゴリが “3D モデル” のものを選ぶ
– 例では “Cartoon Props Pack”
• 黒い太文字がアセット名
– アセット名をクリックする
– アセットの説明ページが開く
– そこからダウンロードできる
アセットストアを使う
• [ダウンロード]をポチる
– ダウンロードボタンがプログレスバー(何%ダウンロード中のように伸びる)に変わる
– 100%になると “Import Unity Package” 画面が開く
• 特に気にせず [Import] ボタンをポチる
– ダウンロードしたアセットの解凍とインポートが始まる
チェックポイントを作る
• インポートが完了すると
– Projectウィンドウの Assetsフォルダ直下にアセット名のフォルダが生まれる
– フォルダを開くといろいろ入っている
• モデルをシーンに配置
– Modelsフォルダ内の “Star” をドラッグ&ドロップで迷路状のチェックポイントに置く
– ちょうど良いサイズに変更する
チェックポイントを作る
• インポートが完了すると
– Projectウィンドウの Assetsフォルダ直下にアセット名のフォルダが生まれる
– フォルダを開くといろいろ入っている
• モデルをシーンに配置
– Modelsフォルダ内の “Star” をドラッグ&ドロップで迷路状のチェックポイントに置く
– ちょうど良いサイズや向きに変更する
– コピペで2〜3個配置してみる
時間がある方は
• チェックポイントに当たったら
• 飛跳ねさせてみる
• 飛び跳ねる音を鳴らしてみる
• 数回飛跳ねたら消滅させる
• 得点をつけてみる
• 主人公をワープさせてみる
障害物を置く
• ただの壁じゃつまらない
• DLしたアセットを使う
• 樽をシーンに配置
– Modelsフォルダ内の “Barrel” をドラッグ&ドロップで迷路の邪魔になる場所に置く
– ちょうど良いサイズや向きに変更する
– 今回は「正解経路」を塞ぐ
もしも樽が動いたら、、、
もしも樽が動いたら、、、
もしも樽が動いたら、、、
騙してみよう
• 樽が物理法則の影響を受けるようにする
– 樽をクリックしてInspectorビューの一番下の [Add Component] ボタンをポチる
– 検索窓に “rigi” と入力
– “Search” に “Rigidbody” が表示されたらクリックで選択
– Inspectorビューの中に“Rigidbody” があればOK
• プレイモードにする
– 画面上部中央のプレイボタン▶︎ をクリック
意表を突いて笑いを取ろう
見えない壁を作ろう
• 見えない壁とは?
– “衝突判定” だけのモノを置く
• “カラ”のモノを作る
– Menu > GameObject > Create Empty
• 衝突判定だけを付ける
– Inspectorウィンドウの一番下の [Add Component]ボタンをクリック
– 検索窓に “coll” と入力
– “Search” に “Box Collider” が表示されたらクリック
– Inspectorビューの中に “BoxCollider” が入っていればOK
見えない壁を作ろう
• 見え難いので場外で作業
– 大きさ・厚さを壁と同じくらいにする
• 正解経路上に置いてみる
– とにかく見え難いので視野を変えながら微調節する
見えない壁を作ろう
• プレイモードにする
– 画面上部中央のプレイボタン▶︎ をクリック
もっと意表を突こう
すり抜けられる壁を作ろう
• すり抜けられない壁とは?
– ぶつかったことを検知して「オレ、モノだから!」と主張する
– ぶつかった方は「モノだからすり抜けられない」と認識する
– これが俗に言う “衝突判定”
– 衝突判定は “Collider” さんがやってくれる
• 衝突判定を外す
– すり抜けたい壁の Inspector内の “Box Collider” のチェックを外す
すり抜けられる壁を作ろう
• プレイモードにする
– 画面上部中央のプレイボタン▶︎ をクリック
見栄えをキレイにしてみる
• 壁
• 外周
• 土台
• 主人公
壁っぽくしてみる
• 壁に似合う素材を使う
– Asset Store > テクスチャ&マテリアル > レンガ
壁っぽくしてみる
• 壁に似合う素材を使う
– Asset Store > テクスチャ&マテリアル > レンガ
– 例では “Stone and BrickTexture Pack”をダウンロード
– そのまま全部 Importする
壁っぽくしてみる
• 壁のプレハブに素材を貼る
– Projectウィンドウで“MazeWallYoko” を選択
– Inspectorウィンドウが表示されている状態にしておく
– ProjectウィンドウでAssets/Stone&BrickTexturePack/Texture/Materialsフォルダを開く(フォルダをクリックして開くまで)
– Brickを素早くMazeWallYokoのInspectorウィンドウにドラッグ&ドロップする
– シーンビュー内の横壁が全部グレーのレンガに変わる
壁っぽくしてみる
• 同じ要領で縦壁にも貼る
– Projectウィンドウで“MazeWallTate” を選択
– Inspectorウィンドウが表示されている状態にしておく
– ProjectウィンドウでAssets/Stone&BrickTexturePack/Texture/Materialsフォルダを開く(フォルダをクリックして開くまで)
– Brickを素早くMazeWallTateのInspectorウィンドウにドラッグ&ドロップする
– シーンビュー内の縦壁が全部グレーのレンガに変わる
覚えていますか?
• プレハブって便利ですね
– プレハブ単位で一括変更
– 異なるプレハブには影響しない
– まとめるほど便利
– まとめすぎると厄介者
• 便利に使うためには?
– グルーピングの仕方を事前に熟考する
床っぽくしてみる
• 床に似合う素材を使う
– Asset Store > テクスチャ&マテリアル > 地面
床っぽくしてみる
• 床に似合う素材を使う
– Asset Store > テクスチャ&マテリアル > 地面
– 例では “Grass 01 Game-Ready”をダウンロード
– そのまま全部 Importする
床っぽくしてみる
• Planeに素材を貼る
– ProjectウィンドウでAssets/TL_LAB/TL_Grass_01/U4 Materialフォルダを開く
– TL_Grass_01を素早くシーンビュー内の床にドラッグ&ドロップする
なんということでしょう♪
Before After
時間がある方は
• 主人公にテクスチャを貼ってみる
• 主人公を3Dモデルに変えてみる
– 人型、車、戦車、戦闘機、宇宙船
• カウントダウンタイマーをつけてみる
• 全体的なBGMを付けてみる
• スタート画面を作ってみる
• ゴールを褒め称えちゃう画面を作る
主人公を追いかける
• カメラを動かす
– ←↑↓→ のキー操作で動くようにする
• 動かすためのプログラムを仕込む
– 今回はコピペで済ませる
– Projectウィンドウ > Create > C# Script
– ファイル名を “CameraMove” に変更
– ファイルをダブルクリックする
主人公を追いかける
• プログラム編集ソフトが起動する
– Cmd+Aキーで全て選択
– Deleteキーで全て消す
– 続けて次のページのプログラムを全部コピーしてきて、それをペーストする
主人公を追いかける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
主人公を追いかける
• Main Cameraの位置と向きを変える
– 主人公目線に変更する
– 壁高目線
– 足元目線
主人公を追いかける
• Main Cameraの位置と向きを変える
– 主人公目線に変更する
– 壁高目線
– 足元目線
主人公を追いかける
• 自分目線でカメラを動かしてみる
– Game Object > Create Empty
– 名前を Camera Parent に変更
主人公を追いかける
• 自分目線でカメラを動かしてみる
– Camera Parent のInspectorのPositionと Rotationの値をMain Cameraの値と同じにする
主人公を追いかける
• 自分目線でカメラを動かしてみる
– Main Camera を Camera Parent にドラッグアンドドロップして、Camera Parentの子にする
主人公を追いかける
• カメラの親にくっ付ける
– 作っておいた Projectビューの中にあるプログラム ”CameraMove” を、Hierarchyビューの中のCamera Parent にドラッグ&ドロップする
• 主人公を対象にさせる
– Camera Parentの Inspectorで Camera Move (Script) のMove_targetの右端の◉をクリック
– 検索窓で cap と入力
– Capsule を選択する
みんなに遊んでもらおう
• Build Settingsを開く
– File > Build Settings…
WebGLでの書き出し
• WebGLを選択
• 画面左下の「Switch Platform」をクリック
WebGLでの書き出し
• 「Add Open Scenes」をクリック
• “Scenes in Build”の枠内にMainシーンが入ったら画面下の「Build」をクリック
WebGLでの書き出し
• Save As: にWebGL書き出しをするディレクトリ名を入力する
– 今回は MazeWebGL
• Saveをクリック
• しばらく待つと index.htmlと複数のフォルダが出来上がる
• ウェブサーバーにアップロードする