Unity チュートリアル

Preview:

Citation preview

よろしくお願いします!

Unity で簡単なゲームを作ってみよう

ひっこしおつかれさまでした記念

今回つくるもの

プレイヤー

今回つくるもの

ドラッグ

   移動

フリック

   発射

Unity の基本的な

オペレーション

ゲームを作るゲームに近い環境で

 絵の作りこみ

プログラムの

 作り方

素材のインポート

マテリアルの設定

絵素材を作る

アーティストの場合 プログラマーの場合

今回の目的

ここです

だいたいの手順

1. 新規プロジェクトを作る

2. シーンを作って保存する

3. プレイヤーを作る

4. ステージの壁を作る

5. 敵を作る

新規プロジェクトを作る

メニューの

【 File 】 → 【 New

Project 】

を実行

新規プロジェクトを作ります

名まえとフォルダーを入力

Scene を作って保存する

『 Scene 』って? 『タイトル』『ゲーム中』などのシーケンス

今回シーケンスは作りませんが  Scene を作らないと保存できないので   Scene を作ります

リザルトタイトル画面 ゲーム

Scene を作って保存する

メニューの

【 File 】 → 【 Save

Scene 】

を実行

【 Project 】 ビューに “ GameScene” ができ

ます

プレイヤーの GameObject を作る

『 GameObject 』って? ゲームに登場する 、ありとあらゆる ”モノ”

カメラ

BGM

プレイヤー

かわいい敵

背景

プレイヤーの GameObject を作る

メニューの

【 GameObject 】 → 【 3D Object 】 → 【 Sphere 】

を実行

【 Scene 】 ビューに球があらわれ

ます

3Dモデルの変わりに、プリセット

の球を使います

Gameobject の名前を変える

【 Hierarchy 】 ビューで “ Sphere” をクリッ

ク、選択

“Sphere” を “ Player” に変

Rigidbody をアタッチする

『 Component 』って?  GameObject に “機能” を追加するしくみです

アニメーション

物理運動

Rigidbody をアタッチする

【 Hierarchy 】 ビューで “ Player” をクリッ

ク、選択

メニューの

【 Component 】 → 【 Physics 】 →

【 Rigidbody 】

を実行

“Player” が下に落下しま

マウスで操作できるようにする

ゲーム独自の機能はスクリプト(プログラム)で 作ります

スクリプトも Component です

今回はあらかじめ用意したものを使ってください

スクリプトをコピーする

エクスプローラーから

“ WorkShop/Script”

 フォルダーを【 Project 】ビューに

  ドラッグ&ドロップする

スクリプトを” Player” にアタッチする

【 Project 】 ビューの “ Player” スクリ

プトを

 【 Hierarchy 】 ビューの “ Player” に

  ドラッグ&ドロップ

“SlideInput” スクリプトも同じよ

うに

 アタッチする

“Player” を移動したり

 フリックで飛ばしたり

  できるようになりま

コンストレイントを設定する

Player が前後に移動しないようにしておきます

“Player” を選択する

【 Inspector 】 で

『 Rigidbody 』タブの

 『 Freeze Position/Z 』に

  チェックを入れる

ステージの壁を作る

ステージを囲う壁を作ります

ステージの壁を作る

メニューの

【 GameObject 】 → 【 3D Object 】 → 【 Cube 】

を実行

まずは上の壁です

ステージの壁を作る

【 Inspector 】 で Position/Scale を

変更

Position 0 5 0

Rotaion 0 0 0

Scale 10 1 1

こんな感じになればOKで

ステージの壁を作る

右と左の壁もつくりましょう

Position 5 0 0

Rotaion 0 0 0

Scale 1 10 1

右の壁

上の壁と同じように、 Cube をつくり Position/Scaleを 変更します

左の壁Position -5 0 0

Rotaion 0 0 0

Scale 1 10 1

3つの Cube をひとまとめにする

3つの Cube をひとつの GameObject の子どもに まとめておきます

選択や移動がまとめて行えるようになるので便利です

親になるオブジェクトをつくる

メニューの

【 GameObject 】 → 【 Create

Empty 】

を実行

名まえを “ Stage” に変える

Cube を “ Wall” の子どもにする

【 Hierarchy 】 ビューで “ Cube” を

 “ Stage” にドラッグ&ドロップす

“Cube1” 、” Cube2” も同

 ように

こうなれば OK です

Player とカメラの位置を調整する

ここらへんで一度調整しましょう

Position 0 -5 0

Rotaion 0 0 0

Scale 1 1 1

Player

Position 0 0 -10

Rotaion 0 0 0

Scale 1 1 1

Camera

こんな感じになればOKで

ゲーム画面のサイズを調整する

ついでにゲーム画面のサイズも変えておきます

メニューの

【 File 】 → 【 Build Settings … 】

を実行

『 Build Settings 』と

いう

 ダイアローグが

  開きます

プラットフォームを Web Player にする

大きさの前にプラットフォームを WebPlayer に変えておきます

【 Platform 】 の “ Web Player” をク

リック

【 Switch Platform 】 ボタンを押しま

Unity のマーク

 移動すれば

  OKです

画面サイズを設定する

大きさの前にプラットフォームを WebPlayer に変えておきます

【 Player Settings... 】 ボタン

を押す

【 Inspector 】 の地球のマークを

押す

画面サイズを設定する

【 Resolution and Presentation 】 の文字をク

リック

画面サイズを入力する

Width 800

Height 450

画面サイズを設定する

今追加した画面サイズを選択します

【 Game 】 ビューの左上のボタンを押す

『 Web(800x450) 』を選択

Player の跳ね返りを調整する

Player が壁に当たっても、ぜんぜんバウンドしません

“Physic Material” で調整します

“Physic Material” ははね返りまさつ

を設定する、物理運動のパラメーターです

Physic Material をつくる

【 Project 】 ビュー左上の

 【 Create 】ボタンをク

リック

『 Physic Material 』をク

リック

パラメーターを設定する

名まえを “ Player Physic Material”

 変える

【 Inspector 】で各パラメー

ターを

 入力するDynamic Friction 0

Static Friction 0

Bounciness 1

Friction Combine Minimum

Bounce Combne Maxmum

プレイヤーにセットする

【 Project 】 ビューの “ Player Physic

Material” を

【 Inspector 】 の 『 Sphere Collider 』 タブの

『 Material 』にドラッグ&ドロップする s

ここまでのところ

壁でぽんぽん跳ね返ればOKです

敵を作る

“Enemy” という名前の Cube を作る

“Enemy” スクリプトをアタッチ

する

コリジョンをトリガーにする

Player が貫通してほしいので、  Enemy のコリジョンはトリガーにします

コリジョン同士がぶつかったときは跳ね返ります

コリジョンとトリガーは貫通します

コリジョンもトリガーも、『ぶつかったこと』を スクリプトで検知できます

コリジョンをトリガーにする

“Enemy” を選択する

【 Inspector 】 の 『 Box Collider 』

タブの

 『 Is Trigger 』にチェックを入れ

Player が Enemy を貫通すれ

 OKです

敵をたおせるようにする

Player スクリプトには『ヒットした敵をたおす』しくみが入っています

『 Player が当たったオブジェクト』の種類が わかるようになれば  このしくみが動くようになります

Player.cs の   OnTriggerEnter()   メソッド

タグって何?

『タグ』は GameObject を大ざっぱに分類するための 文字列です

タグの使用例• ぶつかった相手が敵なのか、アイテムなのか区別する• Scene にいる敵を全てリストアップする

タグの例 『 Player 』『 Enemy 』『 Bullte 』『 Item 』 etc …

タグを追加する

“Enemy” を選択する

【 Inspector 】 の 『 Untagged 』を

クリック、

 『 Add Tag... 』を選択する

【 Inspector 】 の表示が

【 Tags & Layers 】 に変わります

タグを追加する

【 Tags 】 の右下にある “+”(プラスマーク)

を押す

『 Tag 0 』の欄に “ Enemy” と入力

する

Enemy にタグをセットする

もう一度 “ Enemy” を選択する

【 Inspector 】 の 『 Untagged 』を

クリック、

 『 Enemy 』を選択する

プレハブって何?

 同じ GameObject をコピーでたくさん作る  しくみです

Enemy をプレハブにする

【 Hierarchy 】 ビューの “ Enemy” を

【 Project 】ビューにドラッグ&ドロッ

プする

『青いキューブ』がプレハブのマークで

【 Hierarchy 】 ビューの “ Enemy” を削除する

(*) プレハブ化した GameObject は、削除してもいつでも作ることができ

ます

敵をたおせるようにする

Player スクリプトには『敵をプレハブから作る』しくみが入っています

『敵のプレハブ』を Player スクリプトにセットすれば このしくみが動き出します

Player.cs の   create_enemy()   メソッド

敵のプレハブをセットする

“Player” を選択する

『 Tag 0 』の欄に “ Enemy” と入力

する

ちょっとだけスクリプトを修正する

【 Project 】 ビューで “ Player” スクリプトを選

択する

スクリプトの編集には “ Mono Develop” という アプリを使います

【 Inspector 】 の

『 Open 』ボタン 

 を押します

スクリプトを修正する

“Player.cs” スクリプトを MonoDevelop で

開く

“delete_enemy()” メソッドを修正

する

“/*” と “ */” を

 削除する

完成です!

Recommended