Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
夏の「中高生向け
プログラミング講座」
~僕たち私たちにもできるUNITYプログラミング入門講座~
PART 2
~ユニティちゃんでゲームを作ろう~
所属:専門学校岡山情報ビジネス学院
名前:山本優希
2016/8/9
1
目次
1. はじめに
2. ユニティちゃんについて
3. ユニティちゃんをインポートしよう
4. ユニティちゃんを表示させよう
5. カメラの設定の変更
6. ユニティちゃんの設定
7. ユニティちゃんのスクリプト
8. ユニティちゃんの回転調...
はじめに
みなさん。
おはようございます。2日目の朝です。
今日で最後ですね・・・
なんか寂しい気もしますが楽しくやっていきましょう。
今日はユニティちゃんをゲームに登場させてみましょう。
3
ユニティちゃんについて その1
まず、ユニティちゃんの説明をしたいと思います。
「ユニティちゃん」はUnity Technologies Japanが
提供する開発者のためのオリジナルキャラクターです。
ゲームエンジン「Unity」を使っている...
ユニティちゃんについて その2
はい、簡単に説明すると、
・ Unity Technologies Japan が提供する3Dゲーム素材。
・約束を守ればゲームにつかってもOKな3Dゲーム素材。
・ハイクオリティで超可愛いスーパーアイドルな3D...
ユニティちゃんをインポートしよう その1
「Import(インポート)」とは画像や3DモデルのデータをUnityの
「Project」内に取り込み、Unityで使えるようにすることです。
「Import」のやり方はとっても簡単です。
画面上の「...
ユニティちゃんをインポートしよう その2
7
ユニティちゃんをインポートしよう その3
「Asset Store」の画面が出たら、上の検索ワードの場所に
「Unity-chan」と入力します。
8
ユニティちゃんをインポートしよう その4
9
ユニティちゃんをインポートしよう その5
検索結果にユニティちゃんがありましたね。クリックしてみましょう。
10
ユニティちゃんをインポートしよう その6
11
ユニティちゃんをインポートしよう その7
ユニティちゃんのAsset画面に移動しました。
この画面の「Import」ボタンをクリックすると、インポートがスタートしま
す。
クリックしてみましょう。
12
ユニティちゃんをインポートしよう その8
13
ユニティちゃんをインポートしよう その9
Importボタンを押してちょっと待つと、右の画面が出ます。
右下の「Import」を押してインポートしましょう。
インポートには少し時間がかかるので
気長にゆっくり待ちましょう。
14
ユニティちゃんをインポートしよう その10
「Project」内に「UnityChan」と「WebPlayer」の
フォルダがインポートされました。
この「UnityChan」フォルダの中に今回使う
ユニティちゃんの3Dモデルが入っています。
...
ユニティちゃんを表示させよう その1
今回使うユニティちゃんの場所はここです。
「UnityChan」フォルダを開いて
「Models」フォルダの中にあります。
この「unitychan」の3DモデルをHierarchyに
ドラッグ&ドロップし...
ユニティちゃんを表示させよう その2
17
カメラの設定の変更 その1
ユニティちゃん登場です!! キャー! カワィィ!!
でも、Game画面から見えるユニティちゃんはちょっと遠いのでカメラ
の設定を変えましょう。
まず、「Hierarchy」の中の「Main Camera」を今登場した...
カメラの設定の変更 その2
「子(こ)」とは、
子どもを想像してください。いつも親にくっついて動いてますよね?
それと同じように「子」になったゲーム内の物は「親」にくっついて動き
ます。
19
□を左に移動
【△が□の子の場合】
【△が□の子で...
カメラの設定の変更 その3
つまり、「Main Camera」を「unitychan」の「子」にすることで「unitychan」が
動いたら一緒に動いてくれるようになりました。
これでどんな時もユニティちゃんのことを見つめていられますねっ!
さ...
カメラの設定の変更 その4
21
カメラの設定の変更 その5
22
カメラの設定の変更 その6
23
ユニティちゃんの設定 その1
ユニティちゃんが床に埋ってるぅ!?救出しましょう。
いままで使っていた「Player」を消して
「unitychan」の 「Position」と「Rotation」を図のように設定します。
24
ユニティちゃんの設定 その2
25
ユニティちゃんの設定 その3
26
ユニティちゃんの設定 その4
OK!
カメラアングルバッチリですね!
さて、ここは昨日の作業の復習です。
このユニティちゃんに重力(Rigidbody)を加えてみましょう。
「やり方を忘れた!」という人は昨日の資料を見て思い出してみましょう。
...
ユニティちゃんの設定 その5
28
ユニティちゃんの設定 その6
重力を加えたらユニティちゃんが「床をすり抜けて」落ちていきました。
まるで「ユニティちゃんが幽霊みたい」です。これをゲームでは「当たり
判定が無い」と言います。(実際まだありません)
これではゲームにならないので、...
ユニティちゃんの設定 その7
「unitychan」を選択した状態で「Add Component」をクリックします。
「Physics」をクリックして、「Capsule Collider」をクリックします。
これでユニティちゃんに当たり判定がつ...
ユニティちゃんの設定 その8
当たり判定の位置が少し下にありますので当たり判定の大きさや位置
を調節したいと思います。
どういうことかはあとで説明しますのでとりあえず先に設定だけ。
「unitychan」の「Capsule Collider」の...
ユニティちゃんの設定 その9
32
ユニティちゃんの設定 その10
33
ユニティちゃんの設定 その11
Scene画面のユニティちゃんを見てください。
当たり判定の線にすっぽり包まれました。
先程設定した「Height」は、当たり判定の高さのことで、3Dモデルの身
長に合わせるといい感じにすっぽり包まれるようになり...
ユニティちゃんのスクリプト その1
さあ、これでゲームをスタートしてもユニティちゃんが落ちることはあり
ません。当たり判定の設定はOKです。
次はスクリプトの設定をしたいと思います。
昨日使った「Move」スクリプトをダブルクリックして開いてく...
ユニティちゃんのスクリプト その2
public class Move : MonoBehaviour {
public GameObject cameraPosi; ←消す
public float moveSpeed = 1;
bool j...
ユニティちゃんのスクリプト その3
public class Move : MonoBehaviour {
public GameObject cameraPosi; ←消す
public float moveSpeed = 1;
bool j...
ユニティちゃんのスクリプト その4
void Update () {
float v = Input.GetAxisRaw ("Vertical");
if(v != 0){
transform.Translate ( 0, 0, moveSp...
ユニティちゃんのスクリプト その5
void Update () {
float v = Input.GetAxisRaw ("Vertical");
if(v != 0){
transform.Translate ( 0, 0, moveSp...
ユニティちゃんのスクリプト その6
void Update () {
float v = Input.GetAxisRaw ("Vertical");
if(v != 0){
transform.Translate ( 0, 0, moveSp...
ユニティちゃんのスクリプト その7
入力が出来たら「F7」を押して保存しましょう。
エラーが出なかったらUnity画面に戻って、「Move」スクリプトを
「Hierarchy」内の「unitychan」にドラッグ&ドロップしましょう。
できたら...
ユニティちゃんのスクリプト その8
42
ユニティちゃんの回転調節 その1
43
ユニティちゃんの回転調節 その2
44
ユニティちゃんの回転調節 その3
45
ユニティちゃんの回転調節 その4
46
ユニティちゃんの回転調節 その5
ゲームをプレイしているとユニティちゃんが勝手に回転して落ちてしま
うことがあります。
きっと原因はジャンプの着地時に少しずつぐらついて(周りからの力に
影響されて)、回転してしまうんですね。
昨日やった「Rig...
ユニティちゃんの回転調節 その6
では「unitychan」の「Rigidbody」の「Freeze」を
「Position」 「x」に
「Rotation」 「x」「y」「z」全てに
チェックを入れます。
今回は画像を用意しませんので、頑張っ...
ユニティちゃんの回転調節 その7
49
ユニティちゃんのアニメーション その1
そういえば、ユニティちゃんが棒立ちのままで動いているので可愛くない
です。
「アニメーション」をつけてより可愛いユニティちゃんでゲームをしましょう。
動いてるときは走って(Run)、ジャンプしてるときには...
ユニティちゃんのアニメーション その2
「アニメーション」とは、「キャラクターを生きてるみたいに動かす」ことです。
これぞキャラクターを動かしている醍醐味ですね~。
百聞は一見にしかず!さっそくやってみましょう。
まずは「Project」画面の...
ユニティちゃんのアニメーション その3
52
できた!
ユニティちゃんのアニメーション その4
作った「Animator」をそのままHierarchy内の「unitychan」にドラッグ&
ドロップします。
53
ユニティちゃんのアニメーション その5
これでユニティちゃんにアニメーションを設定する準備が出来ました。
次は「Project」画面の「Animator(アニメーター)」をダブルクリックして、
アニメーターの編集画面を開きます。
この画面内にア...
ユニティちゃんのアニメーション その6
55
この画面
ユニティちゃんのアニメーション その7
さあ、「アニメーション」を入れてみましょう。
アニメーションは「Project」画面内の「Unitychan」フォルダの中にあります。
「Animations」フォルダの中に
沢山アニメーションが準備され...
ユニティちゃんのアニメーション その8
「Animations」フォルダ内にある「 unitychan_RUN00_F 」をアニメーターの編
集画面にドラック&ドロップします。
57
ユニティちゃんのアニメーション その9
58
入った
ユニティちゃんのアニメーション その10
【名前がみつからない時は】
アニメーションの名前を探すのに大変な時は「Project」画面の下にある絞り
を左にドラッグするとゲームの素材の名前一覧表になります。
59
これを こう!
ユニティちゃんのアニメーション その11
さあ、これでアニメーションが入りました。
ゲームをプレイしてみましょう。
60
ユニティちゃんのアニメーション その12
61
走ってる!
ユニティちゃんのアニメーション その13
62
走ってるけど
ユニティちゃんのアニメーション その14
63
ずっと走ってる・・・
アニメーションの追加 その1
アニメーションは動きましたが、キーを押していないのにユニティちゃ
んが走りっぱなしです。
もっとアニメーションを入れてゲームっぽくしましょう。
「Project」画面の「Animations」フォルダから「unit...
アニメーションの追加 その2
65
アニメーションの追加 その3
66
入った
アニメーションの追加 その4
次はアニメーションの切り替えをするために、アニメーター編集画面内
のアニメーション同士を線で繋ぎます。
今回この切り替えに「Make Transition」を使用します。
「Make Transition」を使うこ...
アニメーションの追加 その5
68
アニメーションの追加 その6
69
クリック
アニメーションの追加 その7
同じように他のアニメーション同士を繋げ合ってこんな感じにします。
70
アニメーションの追加 その8
次に、ゲームが始まった時一番に再生されるアニメーションの設定をし
ます。
始まったばかりの時には何もしていないので、「立っているアニメーショ
ン」の「unitychan_WAIT00」を最初のアニメーションに設定し...
アニメーションの追加 その9
72
アニメーションの追加 その10
73
これでOK
アニメーションの条件設定 その1
次にアニメーションの条件設定をしていきましょう。
条件設定というのは
「ジャンプの処理時にはジャンプのアニメーションを流して」
と条件を付けて設定をすることです。
当たり前と言えば当たり前ですが、この設定を自分...
アニメーションの条件設定 その2
75
アニメーションの条件設定 その3
ここで条件設定の為の準備をします。ちなみに「Parameter(パラメー
ター)」というのは「媒介変数」という意味があります。・・・意味が分かり
ませんね。「設定を変える為のスイッチ」くらいに考えてもらっている...
アニメーションの条件設定 その4
右の図の「+」マークをクリックしてください。
すると右下の図のような一覧が出ます。
今回はこの「Bool」と書かれている項目をクリックします。
77
アニメーションの条件設定 その5
これで「Bool」型のスイッチができました。
名前を設定しましょう。
今回は「走る」ことに使うので「Run」と
名前をつけましょう。
「Bool」とは(飛ばしてOK)
プログラムのときに見た変数のあれです。
こ...
アニメーションの条件設定 その6
次にジャンプ用のスイッチを作ります
もう一度「+」マークをクリックしてください。
今度はこの「Trigger」と書かれている項目をクリックします。
79
アニメーションの条件設定 その7
これで「Trigger」型のスイッチができました。
名前を設定しましょう。
今回は「ジャンプ」ことに使うので「Jump」と
名前をつけましょう。
「Trigger」とは(ここも飛ばしてOK)
こちらはプログラム...
アニメーションの条件設定 その8
次に、さっき「→」で繋ぎ合ったところに今作ったスイッチで設定をして
いきます。
アニメーター画面内の「unitychan_WAIT00」をクリックしてください。
すると画面右側の「Inspector(インスペク...
アニメーションの条件設定 その9
82
今のアニメーションから、次のアニメーション
に切り替えるときの条件設定先を選択でき
ます。
「RUN00_F」を選択すると「立っているアニ
メーションから走るアニメーション」に切り替
えるときの条件設定が...
アニメーションの条件設定 その10
83
アニメーションを切り替える条件を設定する
ところです。
今回はココをたくさん使うことになるので覚
えておきましょう。
アニメーションの条件設定 その11
では、各アニメーションの切り替え条件を図のように設定しましょう。
【WAIT00の設定】
「RUN00_F」へ切り替えする場合 「JUMP00」へ切り替えする場合
84
←チェックを外す ←チェックを外す
↑...
アニメーションの条件設定 その12
【RUN00_Fの設定】
「WAIT00」へ切り替えする場合 「JUMP00」へ切り替えする場合
85
←チェックを外す ←チェックを外す
↑ falseにする
「Run(走る)がOFFのときに」という条件
...
アニメーションの条件設定 その13
【JUMP00の設定】
「WAIT00」へ切り替えする場合 「RUN00_F」へ切り替えする場合
86
←チェックを外さない ←チェックを外さない
↑ falseにする
「Run(走る)がOFFのときに」とい...
アニメーションの条件設定 その14
【JUMP00の設定】
「WAIT00」へ切り替えする場合 「RUN00_F」へ切り替えする場合
87
←チェックを外さない ←チェックを外さない
【なんでジャンプだけはチェックを外さないのか】(飛ばしてもO...
アニメーションのプログラム その1
あとちょっとです。
長かったアニメーションの道のりもあと少しで完走しきります。
「Move」のスクリプトを開いてアニメーション用のプログラムを書き足し
ていきましょう。
88
アニメーションのプログラム その2
public class Move : MonoBehaviour {
public float moveSpeed = 1;
Animator animator;
bool jumpFlg = true;
...
アニメーションのプログラム その3
public class Move : MonoBehaviour {
public float moveSpeed = 1;
Animator animator;
bool jumpFlg = true;
...
アニメーションのプログラム その4
float v = Input.GetAxisRaw ("Vertical");
if (v != 0) {
transform.Translate (0, 0, moveSpeed * v * Time.d...
アニメーションのプログラム その5
float v = Input.GetAxisRaw ("Vertical");
if (v != 0) {
transform.Translate (0, 0, moveSpeed * v * Time.d...
float v = Input.GetAxisRaw ("Vertical");
if (v != 0) {
transform.Translate (0, 0, moveSpeed * v * Time.deltaTime);
animato...
アニメーションのプログラム その7
if (Input.GetKeyDown (KeyCode.Space) && jumpFlg) {
GetComponent<Rigidbody> ().AddForce (0, 300, 0);
jump...
アニメーションのプログラム その8
if (Input.GetKeyDown (KeyCode.Space) && jumpFlg) {
GetComponent<Rigidbody> ().AddForce (0, 300, 0);
jump...
アニメーションのプログラム その9
入力が出来たら保存しましょう。
エラーが出なかったらUnity画面に戻ってゲームをやってみてください。
アニメーションがちゃんと動いていたらOKです。
おつかれさまでした。
以上でアニメーションの設定を終わり...
Nächste SlideShare
Wird geladen in …5
×

中高校生対象プログラミング講座Part2

459 Aufrufe

Veröffentlicht am

2016/8/9に行ったプログラミング講座です。
Unityを利用してゲームを作りながらプログラミングを学んでもらいました。
また、Unityのアニメーションの使いかたも学んでもらいました。

Veröffentlicht in: Bildung
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

中高校生対象プログラミング講座Part2

  1. 1. 夏の「中高生向け プログラミング講座」 ~僕たち私たちにもできるUNITYプログラミング入門講座~ PART 2 ~ユニティちゃんでゲームを作ろう~ 所属:専門学校岡山情報ビジネス学院 名前:山本優希 2016/8/9 1
  2. 2. 目次 1. はじめに 2. ユニティちゃんについて 3. ユニティちゃんをインポートしよう 4. ユニティちゃんを表示させよう 5. カメラの設定の変更 6. ユニティちゃんの設定 7. ユニティちゃんのスクリプト 8. ユニティちゃんの回転調節 9. ユニティちゃんのアニメーション 10. アニメーションの追加 11. アニメーションの条件設定 12. アニメーションのプログラム 2
  3. 3. はじめに みなさん。 おはようございます。2日目の朝です。 今日で最後ですね・・・ なんか寂しい気もしますが楽しくやっていきましょう。 今日はユニティちゃんをゲームに登場させてみましょう。 3
  4. 4. ユニティちゃんについて その1 まず、ユニティちゃんの説明をしたいと思います。 「ユニティちゃん」はUnity Technologies Japanが 提供する開発者のためのオリジナルキャラクターです。 ゲームエンジン「Unity」を使っている開発者の皆様へ、キャラクターを自由に 設定できるように利用規約に準じる形でアセット(素材)として無料配布してい ます。 ゲームで使うことのできるハイクオリティ、 かつハイエンドゲームに必要とされる機能を備えつつも、ユーザーに愛される 十分なキャラクター性をもったヒロイン、それがユニティちゃんです。 ( ユニティちゃんの公式サイトより) 4
  5. 5. ユニティちゃんについて その2 はい、簡単に説明すると、 ・ Unity Technologies Japan が提供する3Dゲーム素材。 ・約束を守ればゲームにつかってもOKな3Dゲーム素材。 ・ハイクオリティで超可愛いスーパーアイドルな3Dゲーム素材。 今回のゲームに盛り込むことでよりよいゲームになります。 ではユニティちゃんをゲーム内で使えるようにするために 「Import(インポート)」をしましょう。 5
  6. 6. ユニティちゃんをインポートしよう その1 「Import(インポート)」とは画像や3DモデルのデータをUnityの 「Project」内に取り込み、Unityで使えるようにすることです。 「Import」のやり方はとっても簡単です。 画面上の「Window」をクリックし「Asset Store」をクリックします。 「Asset Store(アセットストア)」とはゲームに使う素材をダウンロード、 アップロードできる場所のことです。 ここからユニティちゃんをダウンロードしてインポートします。 6
  7. 7. ユニティちゃんをインポートしよう その2 7
  8. 8. ユニティちゃんをインポートしよう その3 「Asset Store」の画面が出たら、上の検索ワードの場所に 「Unity-chan」と入力します。 8
  9. 9. ユニティちゃんをインポートしよう その4 9
  10. 10. ユニティちゃんをインポートしよう その5 検索結果にユニティちゃんがありましたね。クリックしてみましょう。 10
  11. 11. ユニティちゃんをインポートしよう その6 11
  12. 12. ユニティちゃんをインポートしよう その7 ユニティちゃんのAsset画面に移動しました。 この画面の「Import」ボタンをクリックすると、インポートがスタートしま す。 クリックしてみましょう。 12
  13. 13. ユニティちゃんをインポートしよう その8 13
  14. 14. ユニティちゃんをインポートしよう その9 Importボタンを押してちょっと待つと、右の画面が出ます。 右下の「Import」を押してインポートしましょう。 インポートには少し時間がかかるので 気長にゆっくり待ちましょう。 14
  15. 15. ユニティちゃんをインポートしよう その10 「Project」内に「UnityChan」と「WebPlayer」の フォルダがインポートされました。 この「UnityChan」フォルダの中に今回使う ユニティちゃんの3Dモデルが入っています。 15
  16. 16. ユニティちゃんを表示させよう その1 今回使うユニティちゃんの場所はここです。 「UnityChan」フォルダを開いて 「Models」フォルダの中にあります。 この「unitychan」の3DモデルをHierarchyに ドラッグ&ドロップします。 16
  17. 17. ユニティちゃんを表示させよう その2 17
  18. 18. カメラの設定の変更 その1 ユニティちゃん登場です!! キャー! カワィィ!! でも、Game画面から見えるユニティちゃんはちょっと遠いのでカメラ の設定を変えましょう。 まず、「Hierarchy」の中の「Main Camera」を今登場したばっかりの 「unitychan」にドラッグ&ドロップします。 これで「Main Camera」は「unitychan」の「子(こ)」になりました。 18
  19. 19. カメラの設定の変更 その2 「子(こ)」とは、 子どもを想像してください。いつも親にくっついて動いてますよね? それと同じように「子」になったゲーム内の物は「親」にくっついて動き ます。 19 □を左に移動 【△が□の子の場合】 【△が□の子でない場合】 □だけが左に移動 △も一緒に左に移動
  20. 20. カメラの設定の変更 その3 つまり、「Main Camera」を「unitychan」の「子」にすることで「unitychan」が 動いたら一緒に動いてくれるようになりました。 これでどんな時もユニティちゃんのことを見つめていられますねっ! さて、ユニティちゃんをVIP席で見ていたいので、位置を調節しましょう。 「Main Camera」の「Position」と「Rotation」を図のように設定してください。 20
  21. 21. カメラの設定の変更 その4 21
  22. 22. カメラの設定の変更 その5 22
  23. 23. カメラの設定の変更 その6 23
  24. 24. ユニティちゃんの設定 その1 ユニティちゃんが床に埋ってるぅ!?救出しましょう。 いままで使っていた「Player」を消して 「unitychan」の 「Position」と「Rotation」を図のように設定します。 24
  25. 25. ユニティちゃんの設定 その2 25
  26. 26. ユニティちゃんの設定 その3 26
  27. 27. ユニティちゃんの設定 その4 OK! カメラアングルバッチリですね! さて、ここは昨日の作業の復習です。 このユニティちゃんに重力(Rigidbody)を加えてみましょう。 「やり方を忘れた!」という人は昨日の資料を見て思い出してみましょう。 重力を加えることが出来たら一度再生してみましょう。 27
  28. 28. ユニティちゃんの設定 その5 28
  29. 29. ユニティちゃんの設定 その6 重力を加えたらユニティちゃんが「床をすり抜けて」落ちていきました。 まるで「ユニティちゃんが幽霊みたい」です。これをゲームでは「当たり 判定が無い」と言います。(実際まだありません) これではゲームにならないので、ユニティちゃんに「Collider(当たり判 定)」をつけましょう。 当たり判定をつけると他の物がユニティちゃんに触れるようになります。 つまり、ユニティちゃんが床の上に立てるようになります。 29
  30. 30. ユニティちゃんの設定 その7 「unitychan」を選択した状態で「Add Component」をクリックします。 「Physics」をクリックして、「Capsule Collider」をクリックします。 これでユニティちゃんに当たり判定がつきました。 30 この緑色の線が 当たり判定の範囲
  31. 31. ユニティちゃんの設定 その8 当たり判定の位置が少し下にありますので当たり判定の大きさや位置 を調節したいと思います。 どういうことかはあとで説明しますのでとりあえず先に設定だけ。 「unitychan」の「Capsule Collider」の 「Center」の「y」の値と 「Height」の値を 図のように設定します。 31
  32. 32. ユニティちゃんの設定 その9 32
  33. 33. ユニティちゃんの設定 その10 33
  34. 34. ユニティちゃんの設定 その11 Scene画面のユニティちゃんを見てください。 当たり判定の線にすっぽり包まれました。 先程設定した「Height」は、当たり判定の高さのことで、3Dモデルの身 長に合わせるといい感じにすっぽり包まれるようになります。 ちなみに、ユニティちゃんの3Dモデルの身長は「1.5m」です。 そして「Center」の「y」の設定は、当たり判定の中心の場所のことです。 ユニティちゃんの身長は「1.5m」なので、 その半分の「0.75m」が中心ということになります。 だから、身長の半分の「0.75」を「y」に設定しました。 34 1.5m 0.75m (中心) 解説
  35. 35. ユニティちゃんのスクリプト その1 さあ、これでゲームをスタートしてもユニティちゃんが落ちることはあり ません。当たり判定の設定はOKです。 次はスクリプトの設定をしたいと思います。 昨日使った「Move」スクリプトをダブルクリックして開いてください。 ユニティちゃん用にプログラムを書き換えたいと思います。 頑張りましょう! 35
  36. 36. ユニティちゃんのスクリプト その2 public class Move : MonoBehaviour { public GameObject cameraPosi; ←消す public float moveSpeed = 1; bool jumpFlg = true; // Use this for initialization void Start () { } 36
  37. 37. ユニティちゃんのスクリプト その3 public class Move : MonoBehaviour { public GameObject cameraPosi; ←消す public float moveSpeed = 1; bool jumpFlg = true; // Use this for initialization void Start () { } 37 今回はカメラをユニティちゃんの「子」にしているので、 この変数は必要ありません。 解説
  38. 38. ユニティちゃんのスクリプト その4 void Update () { float v = Input.GetAxisRaw ("Vertical"); if(v != 0){ transform.Translate ( 0, 0, moveSpeed * v * Time.deltaTime ); } if (transform.position.y < -1) { SceneManager.LoadScene ("Main"); } if (Input.GetKeyDown (KeyCode.Space) && jumpFlg) { GetComponent<Rigidbody> ().AddForce (0, 300, 0); jumpFlg = false; } cameraPosi.transform.position = new Vector3 (transform.position.x, transform.position.y, -10); ←消す } 38
  39. 39. ユニティちゃんのスクリプト その5 void Update () { float v = Input.GetAxisRaw ("Vertical"); if(v != 0){ transform.Translate ( 0, 0, moveSpeed * v * Time.deltaTime ); } if (transform.position.y < -1) { SceneManager.LoadScene ("Main"); } if (Input.GetKeyDown (KeyCode.Space) && jumpFlg) { GetComponent<Rigidbody> ().AddForce (0, 300, 0); jumpFlg = false; } cameraPosi.transform.position = new Vector3 (transform.position.x, transform.position.y, -10); ←消す } 39 「Vertical」は「縦入力」のことです。「上キー」と「下キー」 の入力を取得します。 昨日やった移動の処理です。 今回は(x,y,z)の「z(前後)」に向かって移動しています。 なぜ今回が「z」かというと、これは「ユニティちゃん目線」の移 動だからです。 左の図を見てもらったらわかりやすいと思います。 「上キー」を押すと前に、「下キー」を押すと後ろに動きます。 Z(前) 解説
  40. 40. ユニティちゃんのスクリプト その6 void Update () { float v = Input.GetAxisRaw ("Vertical"); if(v != 0){ transform.Translate ( 0, 0, moveSpeed * v * Time.deltaTime ); } if (transform.position.y < -1) { SceneManager.LoadScene ("Main"); } if (Input.GetKeyDown (KeyCode.Space) && jumpFlg) { GetComponent<Rigidbody> ().AddForce (0, 300, 0); jumpFlg = false; } cameraPosi.transform.position = new Vector3 (transform.position.x, transform.position.y, -10); ←消す } 40 今回はカメラをユニティちゃんの「子」にしているので、 この処理は必要ありません。 解説
  41. 41. ユニティちゃんのスクリプト その7 入力が出来たら「F7」を押して保存しましょう。 エラーが出なかったらUnity画面に戻って、「Move」スクリプトを 「Hierarchy」内の「unitychan」にドラッグ&ドロップしましょう。 できたらゲームをプレイしてみましょう。 41
  42. 42. ユニティちゃんのスクリプト その8 42
  43. 43. ユニティちゃんの回転調節 その1 43
  44. 44. ユニティちゃんの回転調節 その2 44
  45. 45. ユニティちゃんの回転調節 その3 45
  46. 46. ユニティちゃんの回転調節 その4 46
  47. 47. ユニティちゃんの回転調節 その5 ゲームをプレイしているとユニティちゃんが勝手に回転して落ちてしま うことがあります。 きっと原因はジャンプの着地時に少しずつぐらついて(周りからの力に 影響されて)、回転してしまうんですね。 昨日やった「Rigidbody」の「Freeze」にチェックを入れます。 47
  48. 48. ユニティちゃんの回転調節 その6 では「unitychan」の「Rigidbody」の「Freeze」を 「Position」 「x」に 「Rotation」 「x」「y」「z」全てに チェックを入れます。 今回は画像を用意しませんので、頑張ってみてください。 48
  49. 49. ユニティちゃんの回転調節 その7 49
  50. 50. ユニティちゃんのアニメーション その1 そういえば、ユニティちゃんが棒立ちのままで動いているので可愛くない です。 「アニメーション」をつけてより可愛いユニティちゃんでゲームをしましょう。 動いてるときは走って(Run)、ジャンプしてるときにはジャンプ(Jump)し ているアニメーションをつけるともっとゲームらしくなります。 やってみましょう。 50
  51. 51. ユニティちゃんのアニメーション その2 「アニメーション」とは、「キャラクターを生きてるみたいに動かす」ことです。 これぞキャラクターを動かしている醍醐味ですね~。 百聞は一見にしかず!さっそくやってみましょう。 まずは「Project」画面の上で右クリックをして、「Create」をクリック、 続いて、一覧表の真ん中くらいにある「Animator Controller」をクリック して、「Animator(アニメーター)」と呼ばれる「アニメーションを制御する」 ものを生成します。 51
  52. 52. ユニティちゃんのアニメーション その3 52 できた!
  53. 53. ユニティちゃんのアニメーション その4 作った「Animator」をそのままHierarchy内の「unitychan」にドラッグ& ドロップします。 53
  54. 54. ユニティちゃんのアニメーション その5 これでユニティちゃんにアニメーションを設定する準備が出来ました。 次は「Project」画面の「Animator(アニメーター)」をダブルクリックして、 アニメーターの編集画面を開きます。 この画面内にアニメーションをドラック&ドロップしてアニメーションを設定 します。 54
  55. 55. ユニティちゃんのアニメーション その6 55 この画面
  56. 56. ユニティちゃんのアニメーション その7 さあ、「アニメーション」を入れてみましょう。 アニメーションは「Project」画面内の「Unitychan」フォルダの中にあります。 「Animations」フォルダの中に 沢山アニメーションが準備されています。 56
  57. 57. ユニティちゃんのアニメーション その8 「Animations」フォルダ内にある「 unitychan_RUN00_F 」をアニメーターの編 集画面にドラック&ドロップします。 57
  58. 58. ユニティちゃんのアニメーション その9 58 入った
  59. 59. ユニティちゃんのアニメーション その10 【名前がみつからない時は】 アニメーションの名前を探すのに大変な時は「Project」画面の下にある絞り を左にドラッグするとゲームの素材の名前一覧表になります。 59 これを こう!
  60. 60. ユニティちゃんのアニメーション その11 さあ、これでアニメーションが入りました。 ゲームをプレイしてみましょう。 60
  61. 61. ユニティちゃんのアニメーション その12 61 走ってる!
  62. 62. ユニティちゃんのアニメーション その13 62 走ってるけど
  63. 63. ユニティちゃんのアニメーション その14 63 ずっと走ってる・・・
  64. 64. アニメーションの追加 その1 アニメーションは動きましたが、キーを押していないのにユニティちゃ んが走りっぱなしです。 もっとアニメーションを入れてゲームっぽくしましょう。 「Project」画面の「Animations」フォルダから「unitychan_WAIT00」 と「unitychan_JUMP00」をアニメーター画面にドラッグ&ドロップしま す。 「unitychan_WAIT00」は、「立っている」アニメーションで 「unitychan_JUMP00」は、「ジャンプ」のアニメーションです。 64
  65. 65. アニメーションの追加 その2 65
  66. 66. アニメーションの追加 その3 66 入った
  67. 67. アニメーションの追加 その4 次はアニメーションの切り替えをするために、アニメーター編集画面内 のアニメーション同士を線で繋ぎます。 今回この切り替えに「Make Transition」を使用します。 「Make Transition」を使うことでアニメーションの切り替えをするための 線を繋げられるようになります。 「RUN00_F」のアニメーションを右クリックして「Make Transition」をクリッ クします。 これでアニメーションの切り替えをするための「→」が伸びるようになっ たので、そのまま「JUMP00」をクリックして「→」を繋げます。 67
  68. 68. アニメーションの追加 その5 68
  69. 69. アニメーションの追加 その6 69 クリック
  70. 70. アニメーションの追加 その7 同じように他のアニメーション同士を繋げ合ってこんな感じにします。 70
  71. 71. アニメーションの追加 その8 次に、ゲームが始まった時一番に再生されるアニメーションの設定をし ます。 始まったばかりの時には何もしていないので、「立っているアニメーショ ン」の「unitychan_WAIT00」を最初のアニメーションに設定しましょう。 「unitychan_WAIT00」の上で右クリックをして、 「Set as Layer Default State」をクリックします。 さっきまでオレンジ色だった「RUN00_F」が灰色になって、 「unitychan_WAIT00」がオレンジ色になったらOKです。 71
  72. 72. アニメーションの追加 その9 72
  73. 73. アニメーションの追加 その10 73 これでOK
  74. 74. アニメーションの条件設定 その1 次にアニメーションの条件設定をしていきましょう。 条件設定というのは 「ジャンプの処理時にはジャンプのアニメーションを流して」 と条件を付けて設定をすることです。 当たり前と言えば当たり前ですが、この設定を自分でしなければいけ ません。少し地味な作業ですが、ここを頑張るとゲームの出来栄えが 格段に変わってきます。頑張っていきましょう。 まずはアニメーター編集画面の左上にある「Parameters」というボタン をクリックします。 するとアニメーター編集画面の左側が変わります。 74
  75. 75. アニメーションの条件設定 その2 75
  76. 76. アニメーションの条件設定 その3 ここで条件設定の為の準備をします。ちなみに「Parameter(パラメー ター)」というのは「媒介変数」という意味があります。・・・意味が分かり ませんね。「設定を変える為のスイッチ」くらいに考えてもらっていると 大丈夫です。 ここにそのスイッチをいくつか設定します。 76
  77. 77. アニメーションの条件設定 その4 右の図の「+」マークをクリックしてください。 すると右下の図のような一覧が出ます。 今回はこの「Bool」と書かれている項目をクリックします。 77
  78. 78. アニメーションの条件設定 その5 これで「Bool」型のスイッチができました。 名前を設定しましょう。 今回は「走る」ことに使うので「Run」と 名前をつけましょう。 「Bool」とは(飛ばしてOK) プログラムのときに見た変数のあれです。 この中には「ON(true)」と「OFF(false)」のどちらかしか入らないので、 上下キーを押しているとき(走っているとき)には「ON(true)」を そうでないときには「OFF(false)」を入力します。 スイッチの切り替えはプログラムから操作するのであとで説明します。 78
  79. 79. アニメーションの条件設定 その6 次にジャンプ用のスイッチを作ります もう一度「+」マークをクリックしてください。 今度はこの「Trigger」と書かれている項目をクリックします。 79
  80. 80. アニメーションの条件設定 その7 これで「Trigger」型のスイッチができました。 名前を設定しましょう。 今回は「ジャンプ」ことに使うので「Jump」と 名前をつけましょう。 「Trigger」とは(ここも飛ばしてOK) こちらはプログラムには出てきていません。 「Trigger」には「引き金を引く」という意味があります。 一度引き金を引くと1発の弾を撃つように、 「Trigger」に一度実行を頼むと、 一度だけそのアニメーションに切り替わります。 80
  81. 81. アニメーションの条件設定 その8 次に、さっき「→」で繋ぎ合ったところに今作ったスイッチで設定をして いきます。 アニメーター画面内の「unitychan_WAIT00」をクリックしてください。 すると画面右側の「Inspector(インスペクター)」画面が変わります。 ちょっとここで、アニメーションを設定するときの「Inspector」画面の説 明をしたいと思います。 81
  82. 82. アニメーションの条件設定 その9 82 今のアニメーションから、次のアニメーション に切り替えるときの条件設定先を選択でき ます。 「RUN00_F」を選択すると「立っているアニ メーションから走るアニメーション」に切り替 えるときの条件設定ができます。 「JUMP00」を選択すると「立っているアニ メーションからジャンプするアニメーション」 に切り替えるときの条件設定ができます。 「Has Exit Time」は、アニメーションを「全 て再生させて」次のアニメーションに移動 するという意味です。 これにチェックが入っていると格闘ゲーム のキャンセルや、ダメージをくらった時の 「やられ」アニメーションが再生される時 にタイミングが、遅れて再生されることが あります。 今回、走るときやそうでない時、ジャンプ へ切り替えのときにはこのチェックは外し ましょう。
  83. 83. アニメーションの条件設定 その10 83 アニメーションを切り替える条件を設定する ところです。 今回はココをたくさん使うことになるので覚 えておきましょう。
  84. 84. アニメーションの条件設定 その11 では、各アニメーションの切り替え条件を図のように設定しましょう。 【WAIT00の設定】 「RUN00_F」へ切り替えする場合 「JUMP00」へ切り替えする場合 84 ←チェックを外す ←チェックを外す ↑ trueにする 「Run(走る)がONのときに」という条件 「Jump(ジャンプ)のトリガーが引かれたとき」 という条件
  85. 85. アニメーションの条件設定 その12 【RUN00_Fの設定】 「WAIT00」へ切り替えする場合 「JUMP00」へ切り替えする場合 85 ←チェックを外す ←チェックを外す ↑ falseにする 「Run(走る)がOFFのときに」という条件 「Jump(ジャンプ)のトリガーが引かれたとき」 という条件
  86. 86. アニメーションの条件設定 その13 【JUMP00の設定】 「WAIT00」へ切り替えする場合 「RUN00_F」へ切り替えする場合 86 ←チェックを外さない ←チェックを外さない ↑ falseにする 「Run(走る)がOFFのときに」という条件 ↑ trueにする 「Run(走る)がONのときに」という条件
  87. 87. アニメーションの条件設定 その14 【JUMP00の設定】 「WAIT00」へ切り替えする場合 「RUN00_F」へ切り替えする場合 87 ←チェックを外さない ←チェックを外さない 【なんでジャンプだけはチェックを外さないのか】(飛ばしてもOK) ジャンプ中は空中に飛び上がっているので、ジャンプが終わりきるまで(地面に着くまで)は走るアニメー ションや立ち止まるアニメーションに切り替わってはいけないからです。 空中で走り出すキャラクターはシュールなので、「最後までアニメーションを実行して次のアニメーションに 切り替えたい」時にはチェックを入れるのをお勧めします。 ↑ falseにする 「Run(走る)がOFFのときに」という条件 ↑ trueにする 「Run(走る)がONのときに」という条件
  88. 88. アニメーションのプログラム その1 あとちょっとです。 長かったアニメーションの道のりもあと少しで完走しきります。 「Move」のスクリプトを開いてアニメーション用のプログラムを書き足し ていきましょう。 88
  89. 89. アニメーションのプログラム その2 public class Move : MonoBehaviour { public float moveSpeed = 1; Animator animator; bool jumpFlg = true; // Use this for initialization void Start () { animator = GetComponent<Animator> (); } 89
  90. 90. アニメーションのプログラム その3 public class Move : MonoBehaviour { public float moveSpeed = 1; Animator animator; bool jumpFlg = true; // Use this for initialization void Start () { animator = GetComponent<Animator> (); } 90 ユニティちゃんに設定されている「Animator」を操 作するために用意したAnimator型の変数です。 この変数で、アニメーションの切り替えをします。 昨日も使ったGetComponentでユニティちゃんに 設定している「Animator(アニメーター)」を取得 して、変数に代入しています。 これでこの変数はユニティちゃんのアニメーター として使うことが出来ます。 解説
  91. 91. アニメーションのプログラム その4 float v = Input.GetAxisRaw ("Vertical"); if (v != 0) { transform.Translate (0, 0, moveSpeed * v * Time.deltaTime); animator.SetBool ("Run",true); } else { animator.SetBool ("Run",false); } if (transform.position.y < -1) { 91
  92. 92. アニメーションのプログラム その5 float v = Input.GetAxisRaw ("Vertical"); if (v != 0) { transform.Translate (0, 0, moveSpeed * v * Time.deltaTime); animator.SetBool ("Run",true); } else { animator.SetBool ("Run",false); } if (transform.position.y < -1) { 92 「else」とは「if」で設定した条件でない場合の時に実行する内容 があるときに使います。 今回の場合は「キーボードの上キー、下キーの入力があった時」 の反対の条件なので「上キー、下キーを押してしてない時」のこ とです。 解説
  93. 93. float v = Input.GetAxisRaw ("Vertical"); if (v != 0) { transform.Translate (0, 0, moveSpeed * v * Time.deltaTime); animator.SetBool ("Run",true); } else { animator.SetBool ("Run",false); } if (transform.position.y < -1) { アニメーションのプログラム その6 93 「SetBool」はAnimatorの中に設定した「Parameter(スイッチ)」 を切り替える機能があります。 今回は「上キーか下キーを押している時」に取得したAnimator の「Run」というBool型のスイッチを「ON(true)」にしています。 これによってさっき設定した「WAIT00」から「RUN00_F」への条 件が満たされ、走っているアニメーションに切り替わります。 上の逆で「上キーか下キーを押していない時」に 「Run」のスイッチを「OFF(false)」にしています。 これで走っていない状態の「WAIT00」に切り替える ことが出来ます。 解説
  94. 94. アニメーションのプログラム その7 if (Input.GetKeyDown (KeyCode.Space) && jumpFlg) { GetComponent<Rigidbody> ().AddForce (0, 300, 0); jumpFlg = false; animator.SetTrigger ("Jump"); } 94
  95. 95. アニメーションのプログラム その8 if (Input.GetKeyDown (KeyCode.Space) && jumpFlg) { GetComponent<Rigidbody> ().AddForce (0, 300, 0); jumpFlg = false; animator.SetTrigger ("Jump"); } 95 「SetTrigger」はAnimatorの中に設定した「Parameter(スイッ チ)」一度だけの命令実行の機能があります。 今回は「スペースキーを押してジャンプしたとき」にTrigger型の スイッチを実行してジャンプのアニメーションをしてもらいます。 これによってさっき設定した「WAIT00」や「RUN00_F」から 「JUMP00」への条件が満たされ、ジャンプのアニメーションに切 り替わります。 解説
  96. 96. アニメーションのプログラム その9 入力が出来たら保存しましょう。 エラーが出なかったらUnity画面に戻ってゲームをやってみてください。 アニメーションがちゃんと動いていたらOKです。 おつかれさまでした。 以上でアニメーションの設定を終わります。 「Ctrlキー」と「Sキー」の同時押しでシーンの保存をしてください。 本当に長い道のりをおつかれさまでした。 96

×