﻿1
00:00:04,310 --> 00:00:05,000
‫こんにちは､ ようこそ｡

2
00:00:05,010 --> 00:00:13,310
‫この講義では､ 私たちが前進する争いと世界を見渡すことができるように､ キャラクターの動きをフックすることを見ていきます｡

3
00:00:13,310 --> 00:00:17,960
‫一人称視点や三人称視点のシューティングゲームでの移動のクラシカルさ｡

4
00:00:17,960 --> 00:00:19,400
‫さっそく潜入してみましょう｡

5
00:00:20,390 --> 00:00:26,420
‫キャラクタの動きを実現するために､ まず入力を結合する必要がありますが､

6
00:00:26,420 --> 00:00:32,750
‫その入力を何に結合するかも知っておく必要があります｡

7
00:00:32,930 --> 00:00:38,060
‫幸いなことに､ キャラクターに関しては､ 私たちのために簡略化してくれるものがたくさんあります｡

8
00:00:38,060 --> 00:00:44,390
‫結局のところ､ Unreal は､ シューティング ゲームやキャラクター ゲームのようなものを作るのに最適なエンジンなのです｡

9
00:00:44,390 --> 00:00:52,100
‫そして､ キャラクター移動コンポーネントだけでなく､ キャラクターアクタークラスがすでに提供してくれている移動関数をいくつか見てみましょう｡

10
00:00:52,100 --> 00:00:57,650
‫キャラクターアクタークラスはこれらを提供し､ しばしばその多くをキャラクター移動コンポーネントに渡しますが､

11
00:00:57,650 --> 00:01:02,480
‫必ずしもそうとは限りません｡

12
00:01:02,480 --> 00:01:04,940
‫それでは､ これから扱う移動機能を見てみましょう｡

13
00:01:04,940 --> 00:01:08,480
‫まず､ アドムーブメントの入力があります｡

14
00:01:08,510 --> 00:01:12,830
‫移動入力の追加は､ 基本的にベクトルをとって､ どの方向に移動するかを指示します｡

15
00:01:12,830 --> 00:01:14,660
‫つまり､ 順方向のベクトルであれば､ 前に進むわけです｡

16
00:01:14,660 --> 00:01:16,250
‫逆方向のベクトルであれば､ 後ろに移動する｡

17
00:01:16,250 --> 00:01:18,650
‫右のベクトルなら右へ､ といった具合に｡

18
00:01:18,650 --> 00:01:22,580
‫そして､ そのベクトルの大きさによって､ その方向への移動速度が決まることになります｡

19
00:01:23,000 --> 00:01:27,500
‫次に､ コントローラーのピッチ入力を追加します｡

20
00:01:27,500 --> 00:01:32,090
‫つまり､ 上と下を見るということですが､ これは明らかに便利です｡

21
00:01:32,090 --> 00:01:35,540
‫マウスを持ったとき､ マウスを上下に動かして上や下を見るようにしたい｡

22
00:01:35,960 --> 00:01:39,980
‫そして､ 左右に進む入力であるコントローラを追加します｡

23
00:01:40,400 --> 00:01:45,080
‫そして最後にジャンプ機能がありますが､ これはスペースバーを押すとジャンプするというものです｡

24
00:01:45,320 --> 00:01:55,850
‫そこで､ これらのことを念頭に置いて､ キャラクターアクタークラスに､ 入力を結合するバインディングを作成したいと思います｡

25
00:01:55,860 --> 00:02:01,700
‫キーボード､ マウス､ コントローラーから､ これらの機能に何らかの入力を行うわけです｡

26
00:02:01,700 --> 00:02:05,510
‫だから､ いくつかやって､ 残りをやるというチャレンジをするんです｡

27
00:02:05,810 --> 00:02:11,120
‫では､ Visual Studioのコードに移動して､ 私はシューターキャラクターになっています｡

28
00:02:11,450 --> 00:02:18,560
‫Hを選択すると､ すでにプレーヤー入力コンポーネントの設定機能があることに気づきます｡

29
00:02:18,560 --> 00:02:20,900
‫ここで､ 入力を束ねる必要があります｡

30
00:02:21,020 --> 00:02:24,560
‫F12キーを押してC++に移行する｡

31
00:02:25,750 --> 00:02:31,900
‫Altキーを押しながらC++に移動して､ 設定されている場所を探します｡

32
00:02:31,900 --> 00:02:36,570
‫まず最初に､ この入力コンポーネントとバインドすることができます｡

33
00:02:36,580 --> 00:02:38,410
‫思い起こせば､ こんなやり方もあるんですね｡

34
00:02:38,410 --> 00:02:45,490
‫プレーヤー入力コンポーネントがあり､ 矢印演算子を使って､ ここでバインド関数を実行します｡

35
00:02:45,490 --> 00:02:53,650
‫つまり､ ジャンプのような離散的な動作なのか､ 上下を見たり移動したりするような値を持つ動作なのかによって､

36
00:02:53,650 --> 00:03:01,300
‫バインドアクセスになるのか､ バインドアクションになるのかが分かれるわけです｡

37
00:03:01,660 --> 00:03:08,860
‫さて､ キーで動きをつける場合でも､ やはり軸を使ってバインドすることが多いですね｡

38
00:03:08,860 --> 00:03:14,230
‫ということで､ 実はこのビデオの最初のほうは､ ちょっとタイプミスをしているんです｡

39
00:03:14,230 --> 00:03:19,990
‫後で訂正しますが､ ここではバインドアクションではなく､ バインドアクシスを使用してください｡

40
00:03:20,840 --> 00:03:29,950
‫そこで､ さらに一歩踏み込んで､ プロジェクト設定でこれらのアクションと軸を設定する必要があります｡

41
00:03:29,960 --> 00:03:32,120
‫では､ Unrealに戻りましょう｡

42
00:03:32,150 --> 00:03:38,150
‫設定]､ [プロジェクト設定]､ そしてこれを下にドッキングして非常に見やすくし､

43
00:03:38,240 --> 00:03:42,020
‫入力セクションに移動するつもりです｡

44
00:03:42,020 --> 00:03:48,770
‫そこで､ エンジンの入力と､ いくつかの軸のマッピングとアクションのマッピングを設定します｡

45
00:03:50,590 --> 00:03:59,290
‫まず､ 軸のマッピングですが､ まず､ 前進があります｡

46
00:04:00,230 --> 00:04:04,490
‫そして､ 私たちはまた､ 上を見ているつもりです｡

47
00:04:04,520 --> 00:04:11,630
‫ここで思い出してほしいのは､ 前進と後退がないことです｡ それは､ 負のスケールを使えばよいからです｡

48
00:04:11,780 --> 00:04:17,060
‫だから､ 例えば､ 私のWクエを私のムーブフォワードに設定したいのです｡

49
00:04:17,060 --> 00:04:18,650
‫それがスケール1です｡

50
00:04:18,650 --> 00:04:25,940
‫しかし､ seキーをムーブバックにしたい場合は､ ムーブフォワードを使いながら､ スケールをマイナス1にすればいいのです｡

51
00:04:25,940 --> 00:04:27,240
‫ちょっとだけ､ お知らせです｡

52
00:04:27,260 --> 00:04:28,430
‫ルックアップと同じです｡

53
00:04:28,430 --> 00:04:30,020
‫マウスで操作することになりそうです｡

54
00:04:30,020 --> 00:04:33,110
‫コントローラの入力については､ 次回の講義で説明します｡

55
00:04:33,200 --> 00:04:35,620
‫マウスのYを使うことになります｡

56
00:04:35,630 --> 00:04:42,080
‫さて､ 覚えておいてほしいのは､ yは左右ではなく上下に動くもので､ なんだかちょっと背伸びしているような感じですよね？

57
00:04:42,080 --> 00:04:44,570
‫YはXより少し背伸びした文字です｡

58
00:04:44,570 --> 00:04:45,950
‫とにかくそういう記憶です｡

59
00:04:45,950 --> 00:04:53,090
‫だから､ マウスYは上下して､ あとはスケールで微調整して､ 正しい方向に進んでいるかどうかを確認するんだ｡

60
00:04:53,090 --> 00:04:58,070
‫しかし､ 基本的にこれは､ 下がればマイナスの値､ 上がればプラスの値が出ます｡

61
00:04:58,070 --> 00:05:02,900
‫ですから､ これが正しい方向に向かうかどうかは､ ルックアップで微調整する必要があるかもしれません｡

62
00:05:02,900 --> 00:05:09,800
‫しかし､ ここに入ってくる入力の種類によって､ スケールを反転させたり､ させなかったりできることはおわかりいただけたと思います｡

63
00:05:10,950 --> 00:05:14,390
‫それで､ 軸の名前がわかったら､ またC++に戻ることができます｡

64
00:05:14,400 --> 00:05:19,590
‫テキストマクロと軸名のテキストを使用してバインドすることにします｡

65
00:05:19,710 --> 00:05:25,180
‫次に､ 誰を対象にどのような関数を呼び出すかを言う必要があります｡

66
00:05:25,200 --> 00:05:35,160
‫現在､ 呼び出したい関数がないので､ C++のヘッダーファイルで新しいプライベート関数を作成します｡

67
00:05:35,280 --> 00:05:41,220
‫そして､ move forwardと呼ばれるようになるのは､ void関数になるのです｡

68
00:05:42,320 --> 00:05:46,130
‫そして､ 軸の値となるfloatを取得することになります｡

69
00:05:49,380 --> 00:05:50,880
‫セミコロンで締めくくる｡

70
00:05:50,880 --> 00:05:55,320
‫そして､ ちょっとしたコツ､ ちょっとした拡張機能があるのですが､ これを使うと､ コントロールシフトのpとandで､

71
00:05:55,320 --> 00:05:58,380
‫これらのことを少し早く実装することができます｡

72
00:06:00,460 --> 00:06:06,940
‫create implementationと入力すると､ その実装をC++ファイルに作成してくれます｡

73
00:06:06,940 --> 00:06:08,060
‫本当に素敵で簡単です｡

74
00:06:08,080 --> 00:06:09,460
‫その拡張子の名前｡

75
00:06:09,460 --> 00:06:14,980
‫オーバーすると､ いつもエクステンションの名前を忘れてしまうので､ 何かあるかもしれないので､ 見に行きますね｡

76
00:06:15,820 --> 00:06:18,310
‫そう､ この小さなドジっ子､ C++ヘルパーです｡

77
00:06:18,310 --> 00:06:25,090
‫VTSのコードにこれをインストールして行くと､ ちょうどそういうことができるようになるので､ 非常にいい感じです｡

78
00:06:25,090 --> 00:06:25,810
‫とても便利です｡

79
00:06:27,490 --> 00:06:30,060
‫つまり､ これは呼び出すように設定したい関数です｡

80
00:06:30,070 --> 00:06:32,850
‫そこでまず､ これだ､ これがターゲットだと言っています｡

81
00:06:32,860 --> 00:06:36,390
‫現在のオブジェクトがこの関数のターゲットとなる｡

82
00:06:36,400 --> 00:06:42,850
‫そして､ issueを完全修飾関数issueに､ 文字､ コロン､ コロンと進めていくと､

83
00:06:42,850 --> 00:06:46,990
‫この関数にバインドされるはずです｡

84
00:06:47,530 --> 00:06:57,430
‫そして最後に､ その軸の値を実際に呼び出したい関数（親関数）に渡します｡

85
00:06:57,430 --> 00:06:58,600
‫だから､ 私たちは何もしなくていいんです｡

86
00:06:58,600 --> 00:07:01,660
‫広告ムーブメントをすればいいんです｡

87
00:07:12,480 --> 00:07:13,680
‫このように入力します｡

88
00:07:14,320 --> 00:07:20,640
‫つまり､ これは前進メソッドなので､ アクターの前進ベクトルが欲しいのです｡

89
00:07:20,650 --> 00:07:28,990
‫そのためには､ アクターの前方ベクトルをこのように取得します｡ そして､ アクセス値から得られる前方ベクトルを､

90
00:07:28,990 --> 00:07:34,090
‫軸の値で乗算することが必要です｡

91
00:07:34,420 --> 00:07:36,340
‫そして､ それが正しい結果をもたらすことになるのです｡

92
00:07:36,340 --> 00:07:39,370
‫つまり､ 順方向のベクトルに軸の値を掛け合わせたものになります｡

93
00:07:39,370 --> 00:07:44,110
‫それが1なら前進､ マイナス1なら前進ベクトルが後退ベクトルになり､

94
00:07:44,110 --> 00:07:46,240
‫この関数だけで後退する｡

95
00:07:46,240 --> 00:07:49,000
‫これで前に進むための準備が整いました｡

96
00:07:49,000 --> 00:07:49,530
‫素晴らしい｡

97
00:07:49,540 --> 00:07:53,470
‫次に､ ルックアップのためのバインドです｡

98
00:07:53,470 --> 00:07:54,790
‫では､ コピーしてきましょう｡

99
00:07:54,790 --> 00:07:58,480
‫私はいつも､ この文字列参照をコピーして､ 間違えないようにしています｡

100
00:07:58,930 --> 00:08:03,160
‫ルックアップをして､ 前に進むために縛るのではなく､ ファイルの頭に戻って新しいものを作ろう｡

101
00:08:03,160 --> 00:08:07,960
‫ルックアップされ､ また､ フロート軸の値になりますね｡

102
00:08:09,080 --> 00:08:09,770
‫そうそう｡

103
00:08:10,600 --> 00:08:15,940
‫そして､ コントロールシフトPを行い､ クリエイトインプリメンテーションを行うと､ 先に進み､ 少し時間を節約することができます｡

104
00:08:16,150 --> 00:08:22,330
‫今回は､ 動作入力を追加するのではなく､ 他の関数を自由に使いたいと思います｡

105
00:08:27,060 --> 00:08:32,580
‫つまり､ 基本的にピッチアップしたいので､ アドコントローラーのピッチ入力です｡

106
00:08:32,730 --> 00:08:37,080
‫そこで今回は､ アドコントローラーを

107
00:08:38,860 --> 00:08:42,550
‫ピッチ入力で､ 軸値を直接渡す｡

108
00:08:42,580 --> 00:08:43,390
‫今すぐ

109
00:08:43,420 --> 00:08:49,980
‫さて､ もう少し経験のあるC++プログラマーなら､ この関数は基本的に何もしない､ と言うかもしれません｡

110
00:08:49,990 --> 00:08:53,650
‫これは､ 同じパラメータを持つ他の関数を呼び出しているに過ぎません｡

111
00:08:53,650 --> 00:08:55,540
‫だから､ あまり効果がないんです｡

112
00:08:55,540 --> 00:08:56,650
‫そして､ その通りでしょう｡

113
00:08:56,650 --> 00:09:06,700
‫そこで､ シューターキャラクターのルックアップを行い､ このクラスで定義されたシューターキャラクターの関数を呼び出すことができるのです｡

114
00:09:07,270 --> 00:09:14,200
‫あるいは､ アド・コントロール・ピッチの入力があるので､ それを直接呼び出せばいいのではないか､ ということも考えられますね｡

115
00:09:14,200 --> 00:09:24,850
‫F12キーを使ってどこに定義されているかを調べ､ そこに移動してみると､ 実はpawn hに定義されていることがわかります｡

116
00:09:24,850 --> 00:09:30,340
‫上にスクロールすると､ どこかにクラスがあるのがわかると思います｡

117
00:09:30,340 --> 00:09:34,690
‫クラス空間を検索する､ みたいなこともできますね｡

118
00:09:35,430 --> 00:09:38,460
‫そして､ ここではポーンがクラスです｡

119
00:09:38,460 --> 00:09:44,820
‫ポーンのコロン､ コロン､ コントローラのピッチ入力を追加して､

120
00:09:44,850 --> 00:09:59,100
‫独自の関数を経由するのではなく､ 自動的にその親関数を直接呼び出すようにします｡

121
00:09:59,100 --> 00:10:02,700
‫これも有効な方法ですが､ あくまで必要ないのです｡

122
00:10:02,700 --> 00:10:08,070
‫だから､ そういう風にやりたかったら参考にしたり､ 見たりできるように､ コメントアウトしておきます｡

123
00:10:08,190 --> 00:10:12,120
‫しかし､ 私はこのように少し短いルートで行うことをお勧めします｡

124
00:10:30,820 --> 00:10:35,720
‫私やコンパイルしようとして気づいたのですが､ 今までやりたかったようにAxisの後ろを呼び出すのではなく､

125
00:10:35,720 --> 00:10:38,240
‫bind actionをしています｡

126
00:10:38,240 --> 00:10:41,000
‫だから､ ずっと画面に向かって叫んでいたのでしょう｡

127
00:10:41,000 --> 00:10:42,530
‫もう一度､ それを作ってみましょう｡

128
00:10:42,530 --> 00:10:46,580
‫ちなみに､ コントロールシフトBで､ ビルドオプションを選択してやっています｡

129
00:10:46,580 --> 00:10:55,940
‫これは､ シンプルなシューターエディタのwin64開発ビルドで､ 私にとっては､ 行ってコンパイルボタンを押すよりも手っ取り早い方法なだけです｡

130
00:10:57,140 --> 00:10:59,390
‫見てみると､ 今日は構文がうまくいかない｡

131
00:10:59,390 --> 00:11:08,540
‫もちろん､ この関数の前にアンパサンドを使って､ 基本的にポインタを取得したいことを言う必要があります｡

132
00:11:09,750 --> 00:11:14,610
‫これらの関数の前にアンパサンドを付けて､ 正しい構文になるようにしたい｡

133
00:11:21,950 --> 00:11:22,130
‫なるほど｡

134
00:11:22,130 --> 00:11:28,430
‫1つは間違った関数の呼び出し､ もう1つは使おうとしている関数の前にアンパサンドを付けていなかったという､

135
00:11:28,430 --> 00:11:33,030
‫非常によくある2つのエラーを修正した後です｡

136
00:11:33,050 --> 00:11:37,070
‫それでは､ Unrealに移動して､ これが実際に動作しているかどうかを見てみましょう｡

137
00:11:37,070 --> 00:11:41,930
‫再生ボタンを押しながら､ WキーとSキーを使えば､ 前進と後退ができることがおわかりいただけると思います｡

138
00:11:41,930 --> 00:11:42,800
‫すごいですね｡

139
00:11:42,800 --> 00:11:49,040
‫また､ マウスでは上や下を見ることができますが､ 私の動きに対して今のところ反転している感じです｡

140
00:11:49,040 --> 00:11:55,310
‫そこで､ 製品設定に移動して､ そこにあるマイナス1を押して､ 先に進み､ 再生を押してください｡

141
00:11:56,560 --> 00:11:59,140
‫そして今､ 上下させると､ 正しい感触が得られる｡

142
00:11:59,140 --> 00:12:01,990
‫実際には2つの異なる場所でスポーンしていることに注意してください｡

143
00:12:01,990 --> 00:12:04,780
‫それは､ 2枚目を入れるときにプレイヤースタートをしなければならないからです｡

144
00:12:04,780 --> 00:12:10,120
‫レベル内にすでに1つあるとは思わなかったので､ ここでスポーンすることもあれば､ 違う場所でスポーンすることもあるわけです｡

145
00:12:10,120 --> 00:12:11,500
‫同じものを見つけることができるかもしれません｡

146
00:12:13,170 --> 00:12:14,940
‫だから､ チャレンジタイムなんです｡

147
00:12:14,940 --> 00:12:22,920
‫あなた方の映画の権利を縛って､ 私たちの動きを完全にコントロールできるように､ 正しく見えるようにしましょう｡

148
00:12:22,920 --> 00:12:28,590
‫ですから､ 今レクチャーで行ったプロセスを､ この2つとも繰り返してください｡ おそらく皆さんは､ このプロセスに従っていると思います｡

149
00:12:28,830 --> 00:12:31,320
‫そうでない場合は､ 修正するために見に行くことができます｡

150
00:12:31,320 --> 00:12:35,340
‫あと､ ジャンプ機能も試してみてほしいですね｡

151
00:12:35,460 --> 00:12:38,160
‫勇気のある方は､ ビデオを一時停止して挑戦してみてください｡

152
00:12:38,920 --> 00:12:39,270
‫なるほど｡

153
00:12:39,270 --> 00:12:39,720
‫お帰りなさい｡

154
00:12:39,720 --> 00:12:41,330
‫では､ これに挑戦してみよう｡

155
00:12:41,340 --> 00:12:46,680
‫まず､ 上記のmove forwardとlook upのステップを繰り返します｡

156
00:12:46,680 --> 00:12:50,160
‫ということは､ ムーブがあるんですよね？

157
00:12:50,430 --> 00:12:54,120
‫そして､ 上を見るのではなく､ 右を見るようにするのです｡

158
00:12:54,450 --> 00:12:59,520
‫そして､ これらをコピーして､ プロジェクトの設定で軸を設定することができます｡

159
00:12:59,520 --> 00:13:02,160
‫そこで､ もう一組､ 軸のマッピングを追加します｡

160
00:13:02,160 --> 00:13:08,190
‫まず､ move, rightで､ キーであるa four leftにマッピングするつもりです｡

161
00:13:08,190 --> 00:13:10,890
‫だから､ それがマイナスになるんです｡

162
00:13:11,310 --> 00:13:18,990
‫Aは実際には右の反対の左だからマイナス1になるし､ DXは今すぐ4つ行くことになる｡

163
00:13:18,990 --> 00:13:21,210
‫もちろん､ ここに矢印キーを追加することも可能です｡

164
00:13:21,210 --> 00:13:23,190
‫ただ､ 時間短縮のためにやっているわけではないんです｡

165
00:13:23,190 --> 00:13:25,170
‫でも､ 同じことをやってもいいんです｡

166
00:13:25,170 --> 00:13:31,170
‫ここにキーを追加して､ 1つの軸の外観にマッピングするキーを好きなだけ追加できます｡

167
00:13:31,170 --> 00:13:31,680
‫そうですね｡

168
00:13:31,680 --> 00:13:35,520
‫マウスのxを使うことになります｡

169
00:13:36,310 --> 00:13:39,910
‫そして､ マイナス1ではなく､ 1でも十分だと思うのです｡

170
00:13:40,180 --> 00:13:41,740
‫これは反転させる必要はないと思うんです｡

171
00:13:42,520 --> 00:13:45,610
‫そして､ これから行うのは､ これを少し違った形でバインドすることです｡

172
00:13:45,610 --> 00:13:52,330
‫そこで､ ALT OHで右方向に移動する関数を作成します｡

173
00:13:53,390 --> 00:13:57,540
‫さて､ なぜ今までと違うことをするのか､ 疑問に思われるかもしれません｡

174
00:13:57,560 --> 00:13:58,620
‫なぜムーブが正しいのか？

175
00:13:58,640 --> 00:14:00,860
‫なぜ､ ストレートに動作入力の追加を呼びかけないのでしょうか？

176
00:14:00,950 --> 00:14:02,990
‫違うのは､ ここではちょっとした計算をしていることです｡

177
00:14:02,990 --> 00:14:09,630
‫このベクトルによる乗算を加えることで､ この関数の存在を正当化するための情報を追加しているのです｡

178
00:14:09,650 --> 00:14:16,030
‫そこで今回は､ 前進という行為を得る代わりに､ このようにアクターの右のベクトルを得て､ それに軸の値を掛けて､

179
00:14:16,040 --> 00:14:20,810
‫前進の代わりに呼び出すようにしたいと思います｡

180
00:14:20,810 --> 00:14:24,980
‫今すぐルックにムーブをかけたい｡

181
00:14:26,960 --> 00:14:27,680
‫そうですね｡

182
00:14:27,680 --> 00:14:34,310
‫コントローラーのピッチ入力を追加する代わりに､ あなたの入力を行いたいのです｡

183
00:14:34,310 --> 00:14:36,380
‫ロールピッチを覚えれば飛行機から

184
00:14:36,380 --> 00:14:41,110
‫どれがどれだかわからなくなったらWikipediaで調べて､ そっちを作ればいいんです｡

185
00:14:41,120 --> 00:14:43,190
‫今度こそ構文を間違えなければいいのですが｡

186
00:14:43,670 --> 00:14:49,310
‫エディタに飛び込んで､ 再生ボタンを押せば､ ほら｡

187
00:14:49,310 --> 00:14:50,510
‫自分の周りをずっと見渡せるんです｡

188
00:14:50,510 --> 00:14:51,470
‫いい感じですね｡

189
00:14:51,470 --> 00:14:53,150
‫左右のストレーフィングができる｡

190
00:14:53,150 --> 00:14:55,010
‫前にも後ろにも行ける｡

191
00:14:55,010 --> 00:15:05,090
‫ジャンプは軸ではなく､ アクションマッピングになります｡

192
00:15:05,120 --> 00:15:07,640
‫Visual Studioのコードに移動してください｡

193
00:15:08,410 --> 00:15:13,870
‫そして､ コンパイルウィンドウを閉じて､ 軸をバインドする代わりに､ ここにあるものを使います｡

194
00:15:13,870 --> 00:15:18,700
‫アクションのバインドアクションをするんです｡

195
00:15:18,710 --> 00:15:19,660
‫単純なことです｡

196
00:15:19,720 --> 00:15:21,940
‫最初はやはりこちらのテキストからスタートします｡

197
00:15:22,930 --> 00:15:23,710
‫ジャンプの｡

198
00:15:24,190 --> 00:15:28,840
‫しかし､ 軸と違うのは､ 皆さんもご記憶でしょう｡

199
00:15:30,860 --> 00:15:45,080
‫入力イベントという構文が必要ですが､ これは列挙型で､ ダブルクリックやプレスリリースなど､ さまざまなオプションを指定することができます｡

200
00:15:45,080 --> 00:15:45,080
‫そうそう､

201
00:15:45,080 --> 00:15:48,080
‫みたいなプレスに飛びつきたくなりますね｡

202
00:15:55,710 --> 00:16:04,980
‫このように､ アンダースコアを押して､ 同じようにジャンプを呼び出すことができるようにします｡

203
00:16:05,280 --> 00:16:07,700
‫さて､ ジャンプはどこで定義されているのでしょうか？

204
00:16:07,710 --> 00:16:08,460
‫それは...？

205
00:16:08,460 --> 00:16:09,330
‫見てみよう｡

206
00:16:10,320 --> 00:16:13,440
‫いや､ でも､ キャラクターにあるかもしれない｡

207
00:16:13,440 --> 00:16:16,230
‫そこで､ コントロールPをして､ キャラクターを探します｡

208
00:16:20,540 --> 00:16:21,710
‫ドットH｡

209
00:16:23,850 --> 00:16:28,800
‫それを開いて､ ここにジャンプ機能が定義されているかどうか見てみてください｡

210
00:16:29,040 --> 00:16:32,990
‫ヘッダーファイルの中の関数を探すには､ ジャンプしてから開括弧をよく使うのがよいでしょう｡

211
00:16:33,000 --> 00:16:34,860
‫案の定､ その機能を手に入れました｡

212
00:16:34,860 --> 00:16:36,030
‫ドキュメントを見ることができます｡

213
00:16:36,030 --> 00:16:40,230
‫私は､ ドキュメントファイルを調べるよりも､ ソースコードを直接使いたいことが多いのです｡

214
00:16:40,230 --> 00:16:44,790
‫ただ､ 特にアクセスコントロールの方が早くアクセスできることがありますね｡

215
00:16:44,790 --> 00:16:46,770
‫P Visual Studioのコードで｡

216
00:16:47,430 --> 00:16:52,620
‫そこで必要なのは､ --､ コロン､ コロンの代わりに､ 文字コロン､ コロンとすることです｡

217
00:16:52,620 --> 00:16:56,610
‫つまり､ アンパサンド､ 文字コロンになるわけです｡

218
00:16:56,610 --> 00:16:59,190
‫Colon これは､ そのクラスで定義されているからです｡

219
00:16:59,190 --> 00:17:05,880
‫このコロン､ コロン演算子をしているときに､ 階層を調べに行くわけにもいかず､ そのままジャンプになってしまう｡

220
00:17:05,880 --> 00:17:07,830
‫だから､ 文字､ コロン､ コロンジャンプ｡

221
00:17:07,830 --> 00:17:10,560
‫あと､ 最後にセミコロンが必要なこともお忘れなく｡

222
00:17:10,560 --> 00:17:13,890
‫ビルドして､ 今ジャンプできるかどうか見てきてください｡

223
00:17:17,430 --> 00:17:19,790
‫さて､ ビルドは正しく動作しました｡

224
00:17:19,800 --> 00:17:21,810
‫サンドボックスレベルまで行ってみよう｡

225
00:17:21,810 --> 00:17:24,600
‫再生ボタンを押して､ ジャンプしてみてください｡

226
00:17:24,780 --> 00:17:28,380
‫キーバインドがないので､ それが足かせになるかもしれませんね｡

227
00:17:28,710 --> 00:17:35,200
‫ジャンプのキーとしてスペースバーを追加して､ 再生ボタンを押してください｡

228
00:17:35,220 --> 00:17:35,910
‫イエーイ｡

229
00:17:35,910 --> 00:17:39,750
‫飛び跳ねて空中を移動したり､ 動き回ることができるんです｡

230
00:17:39,870 --> 00:17:40,560
‫ファンタスティック｡

231
00:17:40,560 --> 00:17:44,760
‫そこで､ 軸やアクションの縛り方を学んでいないところで､ 学んできました｡

232
00:17:44,790 --> 00:17:51,300
‫修正しましたが､ シューティングゲームでおなじみのクラシックなキャラクターのジャンプ､

233
00:17:51,300 --> 00:17:59,760
‫ストレーフィング､ 移動､ カメラで見ることを実現するために､ キャラクターで縛りたいものが見えてきました｡

234
00:18:00,760 --> 00:18:08,400
‫そして､ 次回の講義では､ キーボードやマウスだけでなく､ コントローラーを使って移動する際に必要なニュアンスについて見ていきます｡

