‫お帰りなさい｡
‫このビデオでは､ レコードの手入れをすることになります｡
‫これまでは動かすことができなかったので､ この動画ではそれを変えたいと考えています｡
‫したがって､ レコードプレーヤー1用とレコードプレーヤー2用の2つのスクリプトが必要である｡
‫コンポーネント､ 新しいスクリプトを追加して､ そのレコードプレーヤーを1と呼ぶことにしましょう｡
‫そして､ レコードプレーヤーを台本にするのは､ 自分でやってみるものです｡
‫では､ まずレコードプレーヤーのスクリプトを1つ先に進めてみましょう｡
‫ここで必要になるのは､ とてもシンプルなものです｡
‫本当にひとつだけなんです｡
‫ユーザーがボタンを押したかどうかを常にチェックし､ 特定のボタンを押したらレコードが動き､
‫特定の速度でレコードが動くようにする､ 固定更新メソッドが必要になります｡
‫ということは､ パブリックなfloatの移動速度値が必要ということですね｡
‫ここでの良い値は､ 例えば200で､ プレイヤーは200の速度でレコードを動かすことができます｡
‫その他､ ここでは固定更新のメソッドを作ってみましょう｡
‫これはunityの内部メソッドで､ 1秒間に一定回数呼ばれることになります｡
‫だから例えば､ 1秒間に60回｡
‫ここで必要なのは､ ユーザーがボタンを押したかどうかをチェックし､ それをfloatの値として保存することです｡
‫そこで､ これを垂直方向の値であるVに保存し､ ユーザーの入力を得るようにします｡
‫入力はアクセス行で､ アクセス名で識別される仮想アクセスの値を､ スムージングフィルタリングを適用せずに返します｡
‫だから､ 変わらないんです｡
‫強く押そうが､ 弱く押そうが関係なく､ 単純に生の値を取得し､ ユーザーが例えばwを押したとすると､
‫それが上昇します｡
‫だから記録は伸びる｡
‫つまり､ ここでの値は1になるということです｡
‫もしそうなら､ これを押すと値がマイナス1されます｡
‫だから､ 記録は下がる｡
‫そして､ もちろんアクセス名も必要です｡
‫そして､ それをどうやって手に入れるか？
‫さて､ ここでは縦軸であるverticalを入力することにします｡
‫しかし､ それをどうやるか､ どう手に入れるかは､ ユニティーの中にある｡
‫先に進み､ プロジェクト設定入力の編集に進みます｡
‫このように､ 期待インスペクタの右側に入力マネージャが開き､
‫618の軸とそのうちの1つが垂直軸であり､ その垂直軸を使用したいことがわかります｡
‫つまり､ ここにdown upと書いてあるのがwこれは縦軸です｡
‫しかし､ 私が変更したいのは､ プレイヤー1の縦軸と､ プレイヤーにも別の縦軸を持たせたいのです｡
‫だから､ 例えば矢印キーはプレイヤー2用､ SEとWはプレイヤー1用にして､ 同じキーボードでプレイできるようにしたわけです｡
‫そのためには､ もう1つ必要なものがあります｡
‫入力する｡
‫ここにも縦型があるんですね｡
‫それは､ 私たちが望んでいることではありません｡
‫サイズを変更したいので､ 19に変更します｡
‫つまり､ 下の方にもう1つ､ 縦2本と呼んで､ 下と上はそこから削除されるということです｡
‫だから､ マイナスボタンが下､ プラスボタンが上と言うことになりますね｡
‫そして､ ここにも｡
‫オールポジティブボタンです｡
‫それは必要ない｡
‫そして､ その他の値は､ 私たちの垂直方向からコピーしています｡
‫下の感度の3つでいいんですが､ ここでスナップを起動します｡
‫グラビティ3も問題ないはずです｡
‫これで､ 垂直という軸と､ 垂直2という軸ができました｡
‫そして､ 縦は4つにする｡
‫1をプレイして､ もう1がプレイヤー2用にしてください｡
‫ということは､ これをSとWに変更すれば､ altボタンは使われないということですね｡
‫だから､ 代替ボタンがないんです｡
‫プレイヤー1にはSとWだけです｡
‫わかりました｡
‫そこで､ 自分たちで作った軸のものをバーチカル2と呼び､ すでにあった軸のものをバーチカルと呼ぶことにしました｡
‫そして､ それを少しずつ変えていったのです｡
‫この状態で､ 縦軸に先ほど変更した入力を取ります｡
‫これで､ ラケットのスピードを変えて行くことができるようになりました｡
‫そこで､ ラケットのDXに剛体であるコンポーネントを取得し､ 速度を新しいベクトル2であるように変更し､
‫0であり､ Y値Vとして移動速度を乗じた｡
‫これが､ レコードプレーヤーの台本のすべてです｡
‫では､ もう一度Unityを見て､ 今記録を動かせるかどうか確認してみましょう｡
‫だから､ レコードプレーヤー1には台本がある､ レコードプレーヤー1がいいんだ｡
‫今あるのはDX Colliderへのボックスなので､ これも変えたいところなので完璧です｡
‫でも､ まだリジッドボディがないんです｡
‫そこで､ DXにコンポーネントフィジックスを追加し､ DXにリジッドボディを追加し､ ここでは重力は不要としましょう｡
‫それが大事なんです｡
‫あとはもちろん､ 移動速度を変える必要があります｡
‫では､ レコードプレーヤーのスクリプトの移動速度を200にして､ ゲームのテストをしてみましょう｡
‫ラケットが動くかどうか､ 見てみよう｡
‫そして､ ご覧の通り､ 左側で自分の記録を移動させることができます｡
‫では､ 今度はレコードでも同じことをやってみてください｡
‫ですから､ 今お見せした手順を全部やって､ それを私たちの記録でも再現してください｡
‫そして､ ご覧の通り､ 私の記録はボールの物理的な性質に少し影響を受けています｡
‫それは､ 私たちが本当に望んでいることではありません｡
‫そこで､ 現在は回転しているので､ それに制約を加える必要があります｡
‫そして､ 回転を保持させないようにしたい｡
‫そこで､ ラケットのZポジションとEXポジションをフリーズさせることにします｡
‫だから今は､ どちらかに引きずられたり､ どちらかに押されて引っ張られたりすることはないはずです｡
‫そして､ ご覧の通り､ 今は硬くなっています｡
‫それでは､ レコードプレーヤーでも同じようにやってみてください｡
‫そこで､ ビデオを一時停止して､ 今見たものを再現し､ その動作を確認してみてください｡
‫わかりました｡
‫ぜひ試してみてください｡
‫そこで､ 新しいスクリプトを作成する必要があります｡ ここでは､ レコードプレーヤー2と呼ぶことにします｡
‫Unityで開いて､ ここからコードを全部コピーして､ ここに貼り付けます｡
‫軸を変えて､ 縦2軸にしました｡
‫そのため､ レコードを移動させるためには､ 上下の矢印が必要になります｡
‫残りはYの値だけなのでそのままでよく､ どちらのレコードでも同じ機能であるべきです｡
‫これで､ リジッドボディを追加する必要があります｡
‫DX､ なんとかなったかな｡
‫そこで､ 2つのRレコードに剛体を追加してみましょう｡
‫重力スケールをなくそう｡
‫そこで0を入力し､ xとzの値の制約を追加してみましょう｡
‫つまり､ yだけをプレイヤーが変更することができるのです｡
‫もちろん､ 移動速度を変更する必要があります｡ 不公平にならないように､ 例えば､ プレイヤー2には300を与え､
‫プレイヤー1の移動速度の記録は200だけとすることができます｡
‫そうすると､ ご覧のように同じスピードでボタンを使うことになるので､ 非常に不公平になるんです｡
‫そしてまた､ ご覧のように､ 左は右の記録と同じスピードで進んでいない｡
‫そうすると､ ゲームを少しごまかしたり､ プレイヤー1や2を難しくしたりすることになりますね｡
‫わかりました｡
‫ですから､ 例えば､ コントローラをほとんど持てない3歳の弟と一緒にゲームをしたい場合､
‫自分の記録が弟より遅く､ 弟がその方がボールを打ちやすいというように公平性を持たせるのも選択肢のひとつでしょう｡
‫わかりました｡
‫なんとかやってほしいですね｡
‫スクリプトをコピーして追加することが本当に重要なのは､ あまり多くの機能を追加することではありませんでした｡
‫コードチェンジはもちろん､ 入力も｡
‫そのため､ プロジェクトの設定内で､ 入力を変更する必要がありました｡
‫もちろん､ 縦にも作る必要がありました｡
‫そして､ もちろん移動速度を追加したり､ DXに剛体を追加したりと｡
‫素晴らしい｡
‫では､ 次に少し掃除してみましょう｡
‫これら2つのスクリプトをscriptsフォルダにドラッグして､ シーンを保存してみましょう｡
‫そして､ 次のビデオでは､ 私たちの記録の物理学を見てみましょう｡ 今のところ､ ボールは左と右にしか行きませんから｡
‫レコードの上の方に当たるか､ 下の方に当たるかはあまり関係ない｡
‫なぜなら､ 私が欲しいのは､ もし上部に当たったら､ ボールのY値は異なるはずだからです｡
‫だから､ 上に向かっていくはずなんです｡
‫底面で当たれば､ 底面に向かっていくはずです｡
‫それが『ポン』にはすごく重要で､ そうでないと超つまらないゲームになってしまうんです｡
‫素晴らしい｡
‫それでは､ 次のビデオでお会いしましょう｡