‫お帰りなさい｡
‫このビデオでは､ ゲーム内でオブジェクトを移動させる基本を学びます｡
‫そこで､ ユーザー入力の使い方や､ 基本的な物理の使い方を確認します｡
‫もちろん､ 次の動画内では物理を詳しく見ていきますが｡
‫では､ ゲームを進めていきましょう｡
‫キューブを削除してみましょう｡
‫だから､ それを削除しよう｡
‫私が使いたいのは､ 球体の3Dオブジェクトと､ 平面の3Dオブジェクトです｡
‫そこで､ 階層ビュー内で右クリックし､ 3Dオブジェクトから平面を使用するようにしました｡
‫ご覧のように､ 私の飛行機はX､ Y､ Zの値の変換位置が000になっています｡
‫このtransformコンポーネントは､ 以前のビデオでお話したように､ ゲーム内にあるすべてのオブジェクトに対して常に存在し､
‫このあたりで変更することができます｡
‫例えば､ Xの位置を変えて､ 前後に移動させることができます｡
‫Yの位置を変えれば､ 上下に動かすことも可能です｡
‫ご覧の通り､ それはあなたにとって非常に重要なことかもしれません｡
‫また､ ご覧のように､ ここには太陽があり､ 特定の方向を持っています｡
‫ご覧のように､ 左上から右下に向かって太陽光が降り注いでいます｡
‫そのため､ ここにこのような影ができるのです｡
‫だから､ そのすべてがすでに解決されているのです｡
‫全部プログラムする必要はないんですよ｡
‫すでにあるのですから､ すごいことです｡
‫今のプレーは､ 私が嫌がる位置にあるので､ いつでもリセットできるんです｡
‫右上の小さなボタンをクリックし､ リセットを選択します｡
‫これによって､ 位置と回転の標準値である000にリセットされ､ 同時に目盛りが1､
‫1､ 1になります｡
‫わかりました｡
‫では､ 球体を移動させて､ 地面の中に入らないようにしましょう｡
‫Y値を上げることで簡単に変更できます｡
‫また､ ここに手動で値を入力することもできますし､ Yからドラッグすることもできます｡
‫そこで､ マウスでyにカーソルを合わせ､ 左右に動かすと変更されます｡
‫だから今度は､ 自分のボールの正しい位置を探してみると､ あれが良さそうなんです｡
‫だから0｡ 37 しかし､ 左上の変換ツール､ たとえば十字架を選択して､
‫オブジェクトをこの中に移動させることもできます｡
‫わかりました｡
‫つまり､ 球体と平面が白くなっているのです｡
‫そして､ それを簡単に変えることができるのが､ anを作ることです｡
‫新しい素材です｡
‫そこで､ 素材を作ってそれを呼び出すことにしましょう｡
‫地面と今度は違う色をつける｡
‫そこで､ 例えば緑色を選んで､ その素材をゲームにドラッグすることができます｡
‫そしてご覧の通り､ 私たちの飛行機は完全に緑色になり､ 例えば地面を複製することができるようになりました｡
‫では､ そうして､ プレーヤーと呼ぶことにしましょう｡
‫そして､ そこで例えば赤色を使うことができます｡
‫では､ この赤っぽい色を選んで､ プレーヤーにドラッグしてみましょう｡
‫ご覧のように､ マウスの左ボタンを押しながらドラッグしたり､ カーソルを合わせたりすると､ さまざまなゲームオブジェクトや､
‫たとえば飛行機の上にカーソルを置くことができます｡
‫そして､ 飛行機が赤くなったり､ 私のプレーヤーの上を通過して､ 私のプレーヤーが赤くなったりするのがわかると思います｡
‫それがうまくいかない場合は､ 左側の階層表示でも可能です｡
‫それを球体の上にドラッグすると､ 球体も赤くなります｡
‫では､ 球体をざっと見てみましょう｡
‫これは､ コンポーネントの色が赤になったことを意味します｡
‫これで､ 私たちの土俵ができた｡
‫プレーヤーやスフィアを用意し､ そのプレーヤーを呼び出す｡
‫だから､ あれが私のプレーヤーで､ 飛行機が私のオンザグラウンドになるんです｡
‫さて､ プレイヤーを動かすためには､ そのためのスクリプトを作成する必要があります｡
‫そして､ すでにスクリプトを作成しています｡
‫テストと称していますが､ このスクリプトは好きではないので削除します｡
‫また､ ご覧の通り､ スクリプトを削除すると､ この動作は元に戻せません｡
‫そのため､ プロジェクトからアセットを削除する際には､ 十分な注意が必要です｡
‫なので､ 今のは削除します｡
‫では､ 新しいスクリプトを作成しましょう｡ 名前は「player movement」です｡
‫では､ それを開いてみましょう｡
‫そして通常､ Visual Studioか､ 標準エディタとして設定されているエディタが表示されるはずです｡
‫では次に､ 何をするかというと､ 変数を2つ作り､ ここからメソッドを使います｡
‫すべてを理解できなくても問題ありません｡
‫この点については､ 後日のビデオでご紹介します｡
‫次の章では､ このusingの意味､ このpublicの意味､ このクラスの意味､ などを詳しく説明します｡
‫あとは､ キャラクターを動かしたいので､ それについていくだけです｡
‫そして､ キャラクターを動かすには､ スピードが必要になります｡
‫それでは､ 例えば速度が5のパブリックフロートスピードを作成してみましょう｡
‫だから､ さっきも言ったように､ 心配はいらない｡
‫何が起こっているのか正確に理解できない場合は､ 剛体タイプの別の変数が必要です｡
‫これを剛体と呼び､ startメソッド内で初期化します｡
‫つまり､ 剛体に値を設定するということです｡ そうしないと､ 剛体が空っぽになってしまい､ 何をしたらいいのかわからなくなるからです｡
‫このメソッドは､ ゲームオブジェクト（プレーヤー）がゲーム内で作成されるときに､
‫最初に呼び出されるからで､ ここで私は､ コンポーネント剛体を取得することを選択しました｡
‫わかりました｡
‫だから､ さっきも言ったように､ 心配はいらない｡
‫わからないことがあったら､ そのままついてきてください｡
‫そして､ updateメソッド内で､ キャラクターを縦に移動させたいと思います｡
‫だから､ ユーザーの入力を得て､ アクセス権を得て､ 縦軸をとって､ 横軸も同じようにするんです｡
‫フロート水平移動は入力ドットゲット軸で､
‫こちらは堀ゾーンツールです｡
‫そして最後に､ 私のキャラクターベクター3の動きを新しいベクター3に移動させたいと思います｡
‫水平に動かした後､ 上に動かさず垂直に動かす｡
‫つまり､ ここに書いてあるように､ 1フレームに1回呼ばれるupdateメソッドの中で､ 私のプレーヤーは毎回チェックすることになります｡
‫ユーザーからの入力はありますか？
‫選手プレスもそうです｡
‫例えば､ 縦キーですが､ これは前進と後退､ あるいはWとSWを押しているのでしょうか？
‫そうすると､ 縦方向の数値が出ます｡
‫つまり､ 前進して1､ 後退してマイナス1ということです｡
‫そして､ 同じことが横型のものにも言えるのです｡
‫では､ ここで保存されるのは､ 彼が左か右か？
‫そして今度は､ 3Dベクトルを作成します｡ つまり方向です｡
‫前方向､ 上方向､ 横方向というのがあるんです｡
‫だから､ これは×ムーブです｡
‫ホリゾンタルがX､ こっちがY､ こっちがZです｡
‫そして､ 水平と垂直は具体的な視点から､ その意味を考えていきます｡
‫そして､ いよいよ剛体を動かすことができるようになりました｡
‫剛体とは何か､ 次回のビデオで詳しく説明します｡
‫そこで今度は､ 方向である「動き」に､ 「速度」を掛け合わせます｡
‫ここに入力した速度が､ ボタンを押すたびにプレイヤーを動かすことになります｡
‫そのスクリプトを保存して､ プレーヤーに追加してみましょう｡
‫また､ ここからスクリプトをドラッグする方法は複数あり､ アセットからプレーヤーにドラッグすると､
‫プレーヤーの移動スクリプトがインスペクタに追加されます｡
‫それ以外の場合は､ コンポーネントの追加からスクリプトを検索し､ プレーヤーの動きを見つけることができます｡
‫押せば追加されます｡
‫誤って同じスクリプトが2回出てしまった場合は､ この右上のボタンを押して､
‫コンポーネントを削除してください｡
‫さて､ ゲームを実行する前に､ プレイヤーの位置を少し上にして､ ちょうど飛行機の上になるようにしましょう｡
‫見ての通り､ まさに井の中の蛙､ もう少し上に置いてもいいくらいです｡
‫わかりました｡
‫次に､ 球体に剛体を与える必要があります｡ この剛体は､ 物理の剛体で見つけることができます｡
‫これは､ 対象物（この場合はプレーヤー）に肉体を与えるということです｡
‫そしてそれは､ 例えば質量を持つ｡
‫ドラッグ､ つまり角のあるドラッグがあるのです｡
‫重力を使っているかどうかがわかる｡
‫また､ リジッドボディについては､ 次回のビデオで詳しく紹介する予定です｡
‫でも､ とりあえず､ コードを実行してみましょう｡
‫そして､ 左､ 右､ 前に動けば､ 自分のボールが動くのがわかると思います｡
‫さて､ カメラの角度が気に入らないので､ 簡単に変更することができます｡
‫メインカメラに移動して､ 少し動かしてみましょう｡
‫ここにあるように､ この小さなこの角度に向かって動かすことができますし､ 例えば､
‫回転を変えることもできますので｡
‫そして今､ 私たちのゲームとは異なる､ 非常に異なった外観を持つことになるのです｡
‫カメラ
‫さて､ そうなると､ ちょっと難しいですね｡
‫そこで､ 回転をゼロに戻してみましょう｡
‫カメラを少し横に動かしてみましょう｡
‫それでは､ カメラのプレビューをご覧ください｡
‫では､ こちらで回転させてみましょう｡
‫そして､ まあ､ いいポジションはマイナス1 5 Zのポジションはそのままでいいし､ ローテーションもあるはず｡
‫では､ 45度で行ってみましょう｡
‫だから今､ 私たちのゲームに違うアングルがあるのです｡
‫そして､ ご覧のように私のボールがあり､ 私が競技場から離れると必ず落ちてしまうのです｡
‫だから､ 地下から離れるとすぐに落ちてしまう｡
‫そしてそれは､ 重力を持つことと関係があります｡
‫つまり､ 私たちのプレーヤーは重力を持っているのです｡
‫そしてそれは､ ここでの使用重力と関係がある｡
‫では､ それを解除したら､ さっそく見てみましょう｡
‫このように､ 私たちのボールにはもう地下は必要ないのです｡
‫そして今､ それは私たちの目に見えないところにある｡
‫実は､ そこで復活したんです｡
‫見えているのは､ 左に押したら､ 今度は見えなくなったということです｡
‫そこにあるのは
‫そして､ 右へ左へと押し返す｡
‫自分の思うような方向に戻るまで､ 少し時間が必要です｡
‫それは､ 肉体であること､ あるいは肉体を持つことと関係があり､ かなり重くなるんですね｡
‫だから､ ちょっと力を加えるだけで､ そう簡単に向きを変えることはできないんです｡
‫わかりました｡
‫これがプレイヤーの動きの基本なんですね｡
‫後ほど､ より詳細な作品をご紹介させていただきます｡
‫さて､ まずは物理を見てみましょう｡ 次のビデオでは､ 物理を見ていきます｡
‫スクリプティングについては､ 次章以降で見ていきます｡
‫そしてその後､ 何が起こっているのかがよくわかるようになり､ 最初の小さなゲームを作ることができるようになるのです｡
‫だから､ 今のところは｡
‫プレイヤーの動きは､ 私たちが作成したスクリプトです｡
‫私たちは何行かのコードを書きました｡
‫全部は理解できないかもしれません｡
‫ご心配なく｡
‫きっと､ たどり着ける｡
‫ただひとつ理解していただきたいのは､ ゲームオブジェクト（たとえばプレイヤーや地下など）の挙動を変更するためには､
‫スクリプトが必要だということです｡