‫プロジェクト・アウトラインとこのビデオへようこそ｡
‫この章では､ 最終的にどうすればこれを作ることができるかを紹介します｡
‫本当にすぐやっちゃうんです｡
‫そのゲームを自分で作ってみればいいのですから､ あまり細かいことは言いません｡
‫ここまでで､ 必要なことはほとんどここで学んだことになりますが､ もし足りないものがあれば､ もちろんドキュメントを利用することができます｡
‫また､ もし行き詰まったら､ 以下のビデオで順を追って説明しています｡
‫また､ 自分でやってみるのはちょっと......という方は､ もちろん動画にそって進めてもOKです｡
‫わかりました｡
‫では､ 早速見てみましょう｡
‫だから､ 複数の異なるシーンがあるんです｡
‫ゲームシーン､ ゲームオーバーのシーン､ メインメニュー､ そしてここで開いているのがゲームシーンです｡
‫フィールドには､ ボール､ ラケット､ ここに見える2つの部品､ それからボール､ そしてUIがあり､ プレーヤーと番号､
‫他のプレーヤーとその番号といった構成になっています｡
‫もちろん､ プログラムも必要です｡
‫だから､ ボールが動くたびに､ プレイヤーはボールを打って反対方向に弾き飛ばそうとするのです｡
‫だから､ ボールは跳ね返るはずなんです｡
‫そして､ ボールがサイドウォールのいずれかに当たるような状況に相手を持ち込もうとするのです｡
‫つまり､ この右側のサイドウォールであればプレイヤー1が､ 反対側であればプレイ2がポイントを獲得し､
‫ラケットに当たるたびにボールは速くなる｡
‫だから､ 難易度はどんどん上がって､ もう打てなくなるくらいになる｡
‫だから､ ある時点ではボールが速すぎることになる｡
‫あと､ 最高速度の設定もしました｡
‫だから､ ボールがそれ以上速くならない速度があるのですが､ それでも常にボールに当てるのはかなり無理があるようです｡
‫だから､ そのプレイヤーがうまく弾けば勝てる｡
‫そのため､ ブラケットには最高速度が設定されていたり､ 一般的な速度が設定されていたりして､ 速度が上がらないようになっています｡
‫ボールが増えるわけです｡
‫スピードを上げると､ ある時期から問題が出てきて､ ボールが打てなくなるんです｡
‫そうすると､ ラケットの上側でボールを打つと､ ボールは上側に向かって跳ね返ってきます｡
‫ラケットの下側で打てば､ 下に向かって跳ね返ってきます｡
‫だから､ 敵を騙して間違った方向へ向かわせることができるものです｡
‫わかりました｡
‫基本的な機能はこれくらいですね｡
‫では､ その方法を簡単に説明しましょう｡
‫だから､ どうすればいいのか､ 一応知っておいてください｡
‫そこで､ キャンバスを作成し､ プレーヤー1というラベルとプレーヤー1というスコアを表示し､ 2番目のプレーヤーにも同じものを表示しました｡
‫もちろん､ 選手の持ち点に応じてスコアを更新するスクリプトも作りました｡
‫そして､ ゲームを構成するすべての要素で構成される「フィールド」です｡
‫プレイの仕組みとしては､ すべての壁があり､ ラケットがあり､ もちろんボールもあり､ その真ん中の壁もあるわけです｡
‫これらの壁にはすべて2Dボックスコライダーがあり､
‫ボールがこれらにぶつかると跳ね返ります｡ また､ ボール自体にもボックスコライダーがあります｡
‫だから､ その壁で跳ね返されるんです｡
‫だから､ 彼らにとっては物理の材料を使わなければならないことがわかるわけです｡
‫その様子をビデオでご覧いただいた後､ もう少し現場を見てみましょう｡
‫つまり､ 4つの壁があり､ 真ん中の壁があるわけです｡
‫この5つの壁はどれでしょう？
‫そして､ ラケットとレコードがある｡
‫ここではご覧のように､ ボックスカラーを使用しています｡
‫スクリプトを作成しました｡
‫移動速度がある｡
‫回転を凍結させたリジッドボディなどがあるんです｡
‫だから､ それは調べてみないとわからない｡
‫そして､ ここにあるボールは2種類の音があり､ 壁に当たると特定の音を奏で､ ラケットに当たると別の音を奏でます｡
‫もちろん､ 剛体やボックスコライダーも必要です｡
‫そして､ このように､ ボール素材が見事に跳ね返ってくるのです｡
‫ということで､ ゲームについてです｡
‫そして､ これがどのように展開されるのか､ 早速見てみましょう｡
‫だから､ この音は起きているときに再生される｡
‫音が出るかどうかを確認するために設定したんです｡
‫そして､ ご覧のように､ 左側で跳ねれば､ 正しく跳ね返ります｡
‫だから､ 上に向かって跳ねていくんです｡
‫そして､ そこにいるのはあなたです｡
‫ポイントを稼いだり､ 1ポイントもらったり｡
‫だから､ 今はただ負けるだけ｡
‫5点でゲームオーバーの場面､ ゲームオーバーの場面で移動してしまうので､ そのまま負けてしまうんです｡
‫ゲームオーバーという非常にシンプルなテキストとリプレイボタンがあります｡
‫だから､ ゲームオーバーになり､ リプレイになるように｡
‫そして､ リプレイボタンを押すと､ ゲームに戻ってまたゼロゼロとなり､ 全く新しいラウンドが始まる｡
‫ご覧の通り､ ここにはAIがいるので､ 右のラケットが動いています｡
‫何もしなくても｡
‫つまり､ 左はユーザー入力で実行されるわけで､ 私の場合はWとS､ あるいは矢印キーです｡
‫そして､ こちらはボールの位置に沿って追従しようとするAIです｡
‫だから､ それを実践してみることです｡
‫そして､ メインメニューです｡
‫そして､ そのメインメニューから､ ゲームシーンにも入ることができます｡
‫つまり､ タイトルが「Pong」で､ プレイを押すたびにゲームの中に戻っていくわけです｡
‫そして､ それはもちろんゲームシーンです｡
‫そこで､ ゲームシーンでは､ まだ説明していないことがあるんです｡
‫ボールはラケットに跳ね返りますが､ 私の場合は物理演算なしでボールを動かす機能を実装しています｡
‫だから､ 跳ね返されるんです｡
‫そして､ ボールについては､ ここでは速度を用いているので､ ボールに力を加えることはなく､ 単に剛体の速度機能を用いているだけです｡
‫そこで､ 例えばバウンドを基準に速度を変えているのですが､ 最初は特定の速度を持っていて､
‫バウンドしたら速度は反対方向に向かっていくんです｡
‫つまり､ 左ラケットで跳ねたらボールは右方向へ､ 右ラケットで跳ねたら左方向へ行くということです｡
‫わかりました｡
‫ということで､ ほぼ間違いないでしょう｡
‫やはり､ ビデオに沿って､ あるいは､ 並行して試さずにビデオを見るだけよりも､
‫自分で作ってみる方が､ 多くのことを学べるので､ 是非､ 自分でやってみることをお勧めします｡
‫だから､ どうぞ､ そのチャレンジが難しかったら教えてください｡
‫もし､ ドキュメントに載っていない機能や､ ネットで調べても出てこない機能で､
‫「このビデオは､ 何が起こっているのかを理解するために本当に必要なんだ」などと思われたなら｡
‫そうすれば､ もちろん何かを追加することはできますが､ それ以外はできるはずです｡
‫そして､ もし何かが欠けていたとしても､ それを自分で見つけることができれば､ さらに良い｡
‫それは､ 自分で機能を見つけ､ 自分の疑問に対する答えを見つけるということを教えてくれるからだ｡
‫そして､ それは将来､ 自分のプロジェクトを進めるときに必ず必要になるものです｡
‫わかりました｡
‫それでは､ 次のビデオまたは次の章でお会いしましょう｡