第1回Unity講座 コンパイラ班 3年 山崎 弘靖
やること ・第1回 Unityの基本操作 ・第2回 3D関連について ・第3回 2D関連について ・第4回 ミニゲーム作成
今日やること Unityの基本操作&基本事項 Projectの作り方 Unityの画面について(ビューの説明) Game Objectについて Asset Storeについて Buildについて
1. Projectの作り方 Unityを起動すると次の画面が表示されます 右上に「New Project」があるのでクリックすると新しいプロジェクトが作れます。
今回、Project Nameは「Ex01」としていますが、なんでもいいです。 Locationもどこでも大丈夫です。 図のようにするとD:/Unity Projects/Ex01みたいにフォルダが作られます。 「Create project」を押すと作成されます。
2. Unityの画面について
・Sceneビュー ここにゲームオブジェクトを配置してゲームのシーンを作成します Cameraオブジェクトがシーンを映します ・Gameビュー 実際に作成中のゲームをプレイできます ・Hierarchyビュー Sceneビューに存在するゲームオブジェクトを表示します ・Projectビュー Projectの保存先のフォルダの中の「Asset」フォルダと同じ内容を表示します ・Inspectorビュー SceneビューやHierarchyビュー、Projectビューで選択したファイル、 オブジェクトの内容を表示します
左から、Sceneビュー内の移動、オブジェクトの移動、オブジェクトの回転、 オブジェクトの拡大・縮小、uGUIの操作 ギズモ(モデルの位置や向きを示すアイコン)の表示の切り替え
左から、プレイ、ポーズ、ステップボタン 左:Sceneビューに表示されるレイヤーを選択 右:画面レイアウトの切り替え
3. Game Objectについて UnityではScene上にGame Objectを配置し、Game Object1つ1つに命令を与えて、 ゲームやアプリを作成していきます。 プレイヤーやステージ、エフェクトなどがGame Objectという単位で扱われます。
基本オブジェクトの作り方 「Hierarchy」→「Create」でオブジェクト選択 または、 メニュー →「Game Object」でオブジェクト選択 で作成できます。
試しにCubeを作成します。 「Hierarchyビュー」→「Create」→「3D Object」→「Cube」 でCubeを作成することができます 「Hierarchy」と「Scene」にCubeが追加されます
作ったCubeをHierarchyで選択した状態でInspectorビューを見てください TransformやBox Colliderなどが追加されていると思います これら1つ1つをComponent(コンポーネント)といいます
ComponentはGame Objectの機能をもった部品のことです。 例えば、CubeについているBox Colliderは当たり判定をとるためのComponentで、 Mesh Rendererはメッシュを実際に描画するComponentです。 また、Transform ComponentはすべてのGame Objectに必ず追加されています。 Unityでは、Game ObjectにComponentを与えることでGame Objectを コントロールし、ゲームやアプリを作成していきます。
4. Asset Storeについて ゲームには3Dモデルやテクスチャ、Audioなどの素材が必ず必要になります。 自分達はプログラマーであり、モデリングとかは専門外です。 Unityでは素材を無料や有料で配布するサービスがあります。 それがAsset Storeと呼ばれるサービスです。 Unityからは、 メニュー →「Window」→「Asset Store」 から行くことができます。
こんな画面が出るはずです。
Asset Storeを利用するにはアカウント登録が必要なのでアカウントを作成して ください。右上のアカウント登録からできます。 アカウントを作成したら、右上の「ログイン」からログインしてください。 ログインできたらこんな感じに名前が表示されます。
Asset Storeは有料のものが多いですが、無料のAssetも数多くあります。 今回はAsset Storeから3Dモデルをダウンロードし、Unityへインポートする ところまでやってみます。 右のカテゴリ一覧の3Dモデルの下のキャラクターをクリックしてください。
キャラクターの3Dモデルがずらっと並んだページにとぶはずです。 今回はみんな大好き「Unity-chan」をダウンロードします。
「Unity-chan」をクリックすると次の画面に行きます。 ダウンロードを押すとダウンロードが始まります。 各自Unity-chanをダウンロードしてください。
ダウンロードが終わると、Unityへインポートするかどうかの画面が 表示されます。 Importを押すと自動的にUnityへimportされます。
1回ダウンロードしたAssetは次からはダウンロード不要になります。 再び同じAssetを使いたい場合は、そこから再importしてください。
Unityの画面へ戻ると、ProjectビューにUnity-chanフォルダが追加されている と思います。 今回はモデルをダウンロードしましたが、エフェクトやオーディオ、 マテリアルなど様々なものをimportできます。
5. Buildについて Unityは複数のプラットフォームに対応しています。 主に、Web Player , Android , iOS , Windows , Mac , Linux , Xbox360 , Xbox One , PS 3 , PS Vita , PS 4 に対応しています。 プラットフォーム毎に出力が異なるので注意してください。 今回はWindowsで動くように出力します。
出力した後、何もできないのはつまらないので、少し手を加えてから出力します。 まず、床をつくります。 「Hierarchyビュー」→「Create」→「3D Object」→「Plane」 を選択します。床っぽいのが作られます。
PlaneのInspectorにおいて、Transformコンポーネントから位置を調整します。 以下のようにしてください。直接手で打ち込んで大丈夫です。
先ほどダウンロードしたモデルをSceneに配置します。 「Projectビュー」→「UnityChan」→「Prefabs」→「unitychan」 を選択して、Hierarchyビューへ ドラッグ&ドロップしてください。 (Scene上へ直接ドラッグ&ドロップ しても大丈夫です)
※Prefabについて このunitychanはPrefabというものになっています。 PrefabとはAssetの1種類で、再利用可能なゲームオブジェクトのことです。 このPrefabをScene上に追加すると、そのPrefabのインスタンスが生成されます。 Prefabを変更するとそのインスタンスも全て変更されます。 データを複製したいゲームオブジェクトはPrefabにしておくことをオススメします。
ドラッグ&ドロップすると、Scene上にUnity-chanが追加されます。 Unity-chanのInspectorを図のようにしておいてください。
次にカメラの調整を行います。Gameビューに映し出される画面はカメラが 映している画面です。 「Hierarchyビュー」→「Main Camera」を選択し、InspectorでTransform コンポーネントを次の図のようにしてください。
GameビューにUnity-chanの後ろ姿が表示されると思います。
次にスクリプトを作成します。 Projectビュー上で右クリック→Create→C # Scriptと選択してください。 Unityは、JavaScript , C# , Booの3種類のスクリプトで書くことができます。 C#が一番わかりやすいと思うのでC#をオススメします。
C# Scriptを作成するときに、名前を「Cam_controller」とします。 これでC# Scriptが作成されました。Cam_controller.csをダブルクリックすると MonoDevelopが起動されます。MonoDevelop上でスクリプトを書いていきます。
MonoDevelopが嫌な人は、メニューのEdit→Preferencesを選択し、 External Tools→External Script Editorからエディタを変更できます。 自分はMonoDevelopが扱いづらいのでVisual Studioを使用していますが、 MonoDevelopでもかまいません。
以下をコピペしてください rotation = Quaternion.Euler(y, x, 0); vec = new Vector3(0.0f, dy, -distance); position = rotation * vec + targetObj.position; rotatetarget.rotation = rotation; rotatetarget.position = position; using UnityEngine; mousescroll = Input.GetAxis("Mouse ScrollWheel"); using System.Collections; if (mousescroll > 0 && distance > 2.0f) { distance -= 0.5f; public class Cam_controller : MonoBehaviour { else if (mousescroll < 0 && distance < 25.0f) { private float xspeed , yspeed; distance += 0.5f; private float dy , x, y; private Vector3 angles , vec , position; private Quaternion rotation; rotatetarget.position = Quaternion.Euler(y, x, 0) * vec + private Transform rotatetarget; targetObj.position; public Transform targetObj; if (Input.GetKeyDown("escape")) { public float distance = 5.0f; Application.Quit(); public float yMinLimit = 10.0f; public float yMaxLimit = 80.0f; private float mousescroll; float ClampAngle(float ang, float min, float max) { void Start() { if (ang < -360) { xspeed = 10.0f; ang += 360; yspeed = 10.0f; dy = 0.5f; if (ang > 360) { rotatetarget = this.gameObject.transform; ang -= 360; angles = rotatetarget.eulerAngles; x = angles.y; return Mathf.Clamp(ang, min, max); y = angles.x; if (GetComponent<Rigidbody>()) { GetComponent<Rigidbody>().freezeRotation = true; } void Update() { if (Input.GetMouseButton(1)) { x += Input.GetAxis("Mouse X") * xspeed; y -= Input.GetAxis("Mouse Y") * yspeed; y = ClampAngle(y, yMinLimit, yMaxLimit);
Cam_controller.csはオブジェクトの周りをぐるぐる回る機能とズーム機能が 実装されているスクリプトです。 この機能をMain Cameraにつけます。 Cam_controller.csをMain Camera のInspectorビューにドラッグ& ドロップしてください。 これでMain CameraにCam_controller の機能が追加されました。
次に回る時の基準のオブジェクトを選択します。 HierarchyビューのunitychanをMain CameraのCam_contoroller.csのTarget Objに ドラッグ&ドロップします。 これでunitychanの周りをカメラが 回るようになりました。 実際にエディタ上で確かめてみましょう!
ではこれをexe出力します。 まずこれをゲームの1シーンとして保存したいのでCTRL+Sでシーンを保存して ください。 名前は「Unitychan_Look」とここではしますが何でもいいです。 保存すると図のようになります。
シーンが保存できたら、メニューのFile→Build Settingsを選択します。 次にexe出力するシーンを追加します。「Add Current」を選択してシーンを 追加してください。 またPlatformはPC , Mac & Linux Standalone を選択しておいてください。 Buildを押すと出力が開始されます。 任意の所に任意の名前で保存してください。
Buildが完了されると、先ほど指定した場所にexeファイルが生成されます。 自分はプロジェクトフォルダ直下に生成しました。 実際に起動してみましょう!
起動すると画面の解像度等を選択するウィンドウが出てきます。 今回は制作過程でウィンドウの設定はしていないので毎回大きさを指定する ことになります。Playを押すと開始します。
お疲れ様でした!