Upload
masaki-katoh
View
172
Download
0
Embed Size (px)
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()” メソッドを修正
する
“/*” と “ */” を
削除する
完成です!