﻿1
00:00:04,380 --> 00:00:05,310
‫こんにちは､ ようこそ｡

2
00:00:05,310 --> 00:00:12,630
‫この講義では､ こいつのようなポーンとこいつのようなキャラクターの違いについて学んでいきます｡

3
00:00:12,630 --> 00:00:19,350
‫そして､ キャラクタ ブループリントとキャラクタ C++ アクタをこのように設定して､ Wraith

4
00:00:19,350 --> 00:00:21,060
‫メッシュを作成します｡

5
00:00:21,060 --> 00:00:22,860
‫さっそく潜入してみましょう｡

6
00:00:22,890 --> 00:00:30,550
‫では､ 大きなプロジェクト計画の中で､ 最初に着手したいのは､ プレーヤーの動きです｡

7
00:00:30,550 --> 00:00:31,620
‫それが1番です｡

8
00:00:31,620 --> 00:00:37,020
‫シューティングゲームに限らず､ ほとんどのゲームは基本的にそれが基本で､ その後にアニメーションやシューティング､

9
00:00:37,020 --> 00:00:42,060
‫ヘルスや敵の死など､ 私たちがたどり着きたいものに進んでいくのでしょう｡

10
00:00:42,060 --> 00:00:45,660
‫しかし､ まず取り組むべきは､ 選手の動きです｡

11
00:00:46,050 --> 00:00:49,770
‫そのために､ キャラクタークラスを作成することにします｡

12
00:00:49,770 --> 00:00:51,030
‫さて､ キャラクタークラスとは何でしょう？

13
00:00:51,030 --> 00:00:56,010
‫まあ､ 何よりもまず､ ポーンとキャラクターは別物ですからね｡

14
00:00:56,130 --> 00:01:01,110
‫ポーンは､ プレイヤーとして所有できるものです｡

15
00:01:01,110 --> 00:01:05,280
‫ポゼッションについては後で詳しく説明しますが､ すでに以前から少し見ていただいているはずです｡

16
00:01:05,370 --> 00:01:10,320
‫しかし､ ここでの考え方は､ ポーンはプレイヤーが操作するものであるということです｡

17
00:01:10,320 --> 00:01:10,890
‫キャラクター？

18
00:01:10,890 --> 00:01:11,760
‫キャラクターって何？

19
00:01:11,760 --> 00:01:15,120
‫まあ､ まずキャラクターがポーンですからね｡

20
00:01:15,150 --> 00:01:17,760
‫pawn クラスを直接継承しています｡

21
00:01:17,760 --> 00:01:20,850
‫だから､ ポーンができることはすべてできる｡

22
00:01:20,850 --> 00:01:25,740
‫ましてやキャラクターは､ ポーンを特化したものです｡

23
00:01:26,130 --> 00:01:28,470
‫キャラクターのような機能を追加しています｡

24
00:01:28,470 --> 00:01:29,760
‫それじゃあ話にならないよ｡

25
00:01:29,760 --> 00:01:33,030
‫キャラクターは､ どんなところが好きなのでしょうか？

26
00:01:33,120 --> 00:01:39,930
‫例えば､ 普通の人と同じように動き回る､ 床の上を動き回る､ ジャンプできる､

27
00:01:39,930 --> 00:01:43,800
‫走れる､ そういうことですね｡

28
00:01:43,800 --> 00:01:50,010
‫ポーンは宇宙船のように飛び回ることができるため､ ポーンというよりはキャラクターの領域になりがちです｡

29
00:01:50,010 --> 00:01:53,730
‫人並みじゃないから､ キャラクターってそういうものなんですね｡

30
00:01:53,730 --> 00:01:59,130
‫さらに､ ナビメッシュの動きなども追加されます｡ これは､ このセクションのAIのセクションで詳しく説明しますが､

31
00:01:59,130 --> 00:02:06,300
‫キャラクターを動かして障害物を避けたりするのに役立つものです｡

32
00:02:06,720 --> 00:02:09,840
‫では､ どのようにキャラクターを作って行けばいいのでしょうか｡

33
00:02:09,870 --> 00:02:13,350
‫他のC++のクラスを作成するのとほとんど同じです｡

34
00:02:13,350 --> 00:02:16,410
‫新しい､ 新しいC++のクラスを追加するつもりです｡

35
00:02:16,410 --> 00:02:21,210
‫そして､ このオプションの中に､ 文字があるのがおわかりいただけると思います｡

36
00:02:21,300 --> 00:02:29,970
‫では､ さっそくブループリント・チルドレンとC++の作成にチャレンジしてみたいと思います｡

37
00:02:29,970 --> 00:02:34,110
‫そこで､ まずは､ C++を作成するために､ フォローします｡

38
00:02:34,110 --> 00:02:35,940
‫これは､ あなたの挑戦の一部にはならないでしょう｡

39
00:02:35,940 --> 00:02:41,910
‫これから自分たちで --

40
00:02:41,910 --> 00:02:46,230
‫を作ります｡

41
00:02:46,230 --> 00:02:48,330
‫では､ そのクラスを作成してください｡

42
00:02:48,540 --> 00:02:54,930
‫そして､ それが先に進んで終了すると､ 最終的に -- クラス､ 以前見たことのあるようなものになるのです｡

43
00:02:54,930 --> 00:03:00,570
‫開始､ チック再生､ セットアップ､ 入力コンポーネント再生など､ 必要なことがある｡  これから行うのは､ もう一度同じ手順で､

44
00:03:00,570 --> 00:03:04,200
‫新しいC++クラスを追加することです｡

45
00:03:04,200 --> 00:03:07,290
‫今回はキャラクターを作成します､ 次へ進みます｡

46
00:03:07,290 --> 00:03:12,690
‫そして､ 私のキャラクターのような想像力のない呼び方ではなく､ ここではどんなキャラクターを作ろうとしているのか､

47
00:03:12,810 --> 00:03:18,120
‫より説明しやすい「シューターキャラクター」と呼ぶことにします｡

48
00:03:18,120 --> 00:03:20,640
‫そして､ これからそのクラスを作成します｡

49
00:03:20,970 --> 00:03:26,700
‫そして､ このビルドが完了すると､ かなり似たような見た目のヘッダーファイルができるのがわかると思います｡

50
00:03:26,700 --> 00:03:34,380
‫実際､ --の代わりにキャラクタクラスを継承している点を除けば､ ほとんどすべてが同一である｡

51
00:03:34,380 --> 00:03:36,900
‫それ以外はとてもよく似ていますね｡

52
00:03:36,900 --> 00:03:43,740
‫ですから､ その違いを見るには､ これらの設計図の子供たちがどんな部品を持っているのかを見る必要があります｡

53
00:03:44,160 --> 00:03:55,050
‫先ほどのC++と､ マイ・スポーンとシューター・キャラクターのそれぞれのブループリント・チャイルドを作成することがあなたの課題となります｡

54
00:03:55,050 --> 00:04:01,980
‫では､ その2つの設計図を開き､ 動画を一時停止して､ 実際に見てみると､ どのような違いがあるのでしょうか｡

55
00:04:02,010 --> 00:04:02,340
‫なるほど｡

56
00:04:02,340 --> 00:04:03,180
‫お帰りなさい｡

57
00:04:03,180 --> 00:04:04,770
‫では､ これに挑戦してみよう｡

58
00:04:04,770 --> 00:04:15,480
‫エディタに入り､ コンテンツ ディレクトリの最上部に移動して､ 新しいブループリントをいくつか追加します｡

59
00:04:15,630 --> 00:04:19,020
‫そこで､ 右クリックでブループリント・クラスを作成することにします｡

60
00:04:19,020 --> 00:04:25,320
‫そして､ これらのいずれかを継承するのではなく､ すべてのクラスを選択して､ 見てのとおりポーンの子であるマイ

61
00:04:25,320 --> 00:04:28,380
‫-- クラスを探すことにします｡

62
00:04:28,380 --> 00:04:32,670
‫それを選択して､ そのオーバーライドを作成してください｡

63
00:04:32,670 --> 00:04:42,210
‫C++とブループリントを区別するために､ その規約を使うためにBPアンダースコアのマイポーンと呼ぶことにします｡

64
00:04:42,390 --> 00:04:45,330
‫次に､ 右クリックして別のブループリント・クラスを作成します｡

65
00:04:45,330 --> 00:04:48,240
‫今回は､ シューターキャラクターを探します｡

66
00:04:49,180 --> 00:04:50,530
‫そして､ その1つを選択する｡

67
00:04:50,530 --> 00:04:54,740
‫そして予想通り､ そのBPのアンダースコアのシューターキャラクターということになりますね｡

68
00:04:54,760 --> 00:04:59,350
‫ネーミングにあまり想像力を働かせずにすむという点では､ とても助かりますね｡

69
00:04:59,350 --> 00:05:02,350
‫その設計図の子供の名前に想像力を働かせるのはやめましょう｡

70
00:05:02,380 --> 00:05:07,480
‫BPのアンダースコアを前につけただけで､ まったく同じ名前になると言いたいだけでしょう｡

71
00:05:07,630 --> 00:05:14,100
‫では､ この2つを開いてメインウィンドウにドッキングさせ､ 簡単に比較できるようにしましょう｡

72
00:05:14,110 --> 00:05:19,660
‫シューターキャラクタードットをメインウィンドウに開くと､ すぐにいくつかの違いを確認することができます｡

73
00:05:19,870 --> 00:05:24,420
‫ポーンは基本的にコンポーネントビューでは何もしていません｡

74
00:05:24,430 --> 00:05:28,030
‫デフォルトのシーンルートがあり､ 他には何もありません｡

75
00:05:28,540 --> 00:05:32,440
‫しかし､ シューターキャラクターに目を移すと､ さらにいろいろなことが起こっているのがわかります｡

76
00:05:32,470 --> 00:05:44,110
‫まず､ カプセルの部品がありますが､ これは､ カプセルの中に入る人型の形状を想定していることを暗示しているようなものです｡

77
00:05:44,110 --> 00:05:50,470
‫カプセルは大まかな物理演算や操作､ 地形との衝突を行うためのものです｡

78
00:05:50,470 --> 00:05:54,610
‫そして､ その中にうまく収まるのが､ 明らかに人型のキャラクターです｡

79
00:05:54,640 --> 00:05:59,590
‫矢印のコンポーネントは､ 基本的にこのキャラクターがどちらの方向に進んでいるかを教えてくれます｡

80
00:05:59,710 --> 00:06:02,350
‫そして､ メッシュを継承しています｡

81
00:06:02,350 --> 00:06:03,810
‫C++から継承している｡

82
00:06:03,820 --> 00:06:09,690
‫実は､ A Shooterのキャラクターでは､ ここでメッシュを定義していないので､ 2つ上の階層から継承しています｡

83
00:06:09,700 --> 00:06:14,130
‫代わりにAキャラクタークラスで定義されたのでしょう｡

84
00:06:14,140 --> 00:06:23,530
‫つまり､ メッシュ コンポーネントはこのブループリント クラスまで伝わってきていますが､ まだそのメッシュには何も入っていないのです｡

85
00:06:23,530 --> 00:06:26,890
‫だから､ 先にメッシュを入れればいいんです｡

86
00:06:26,890 --> 00:06:28,000
‫では､ さっそく試してみましょう｡

87
00:06:28,000 --> 00:06:31,240
‫詳細ペインでスケルトンメッシュに移動します｡

88
00:06:31,240 --> 00:06:34,720
‫そして､ 基本的にはレイスのキャラクターを投入したいと考えています｡

89
00:06:34,720 --> 00:06:37,540
‫そこで､ ここでWraithを選択すると､ こうなります｡

90
00:06:37,540 --> 00:06:39,910
‫そのおかげで､ 彼は少し離れたところにいる｡

91
00:06:39,910 --> 00:06:43,630
‫そこで､ 私がやりたいのは､ 彼の足元を調整することです｡

92
00:06:43,750 --> 00:06:48,340
‫だから､ できるだけカプセルの底に合わせるようにしています｡

93
00:06:48,620 --> 00:06:50,920
‫どうやら､ 最初にかなりの確率で成功したようだ｡

94
00:06:50,920 --> 00:07:01,930
‫そして､ 前方の矢印の方向に向くように整列させ､ 少し回転させて90度回転させれば完成です｡

95
00:07:01,930 --> 00:07:04,870
‫ちなみに私は回転ウィジェットに行くためにRキーを押していました｡

96
00:07:04,870 --> 00:07:13,460
‫また､ ビューポートの右上にある小さなウィジェットを使って､ 平行移動と回転の間を移動することもできます｡

97
00:07:13,480 --> 00:07:17,650
‫コンポーネント階層でもう一つ注目すべきは､ このメッシュ､ 矢印､ カプセルのコンポーネントとは別に､

98
00:07:17,650 --> 00:07:23,050
‫このキャラクターの移動コンポーネントがあることです｡

99
00:07:23,050 --> 00:07:34,240
‫これが､ 歩いたり走ったりできるなど､ 動きをつけるための全責任を担っているのです｡

100
00:07:34,240 --> 00:07:34,240
‫詳細ペインには､

101
00:07:34,240 --> 00:07:35,320
‫動きの設定や重力スケールが表示されているのがわかります｡

102
00:07:35,320 --> 00:07:39,990
‫だから､ 火星や月､ 木星で遊んでいるように見せることができるんです｡

103
00:07:40,000 --> 00:07:42,670
‫何をするにしても､ 重力スケールを変えるのは楽しいことです｡

104
00:07:42,790 --> 00:07:53,980
‫陸上､ 水上､ 歩行､ ジャンプ､ 情報ネットワークなど､ さまざまな種類の動作がデフォルトで用意されています｡

105
00:07:53,980 --> 00:07:56,650
‫これは､ 多人数参加型のゲームでは自動的にうまく機能します｡

106
00:07:56,650 --> 00:08:01,960
‫そのため､ 基本的にはすでに多くのことがここで行われています｡

107
00:08:01,960 --> 00:08:08,950
‫だから､ ポーンよりもキャラクターを使いたいんです｡ キャラクターを使うと､ この動きのコードを全部一から書かなければならなくなりますから｡

108
00:08:08,950 --> 00:08:17,170
‫すでにこのキャラクターが動いてくれるという要素が設定されており､ キャラクターが提供してくれるものの全てには程遠いのです｡

109
00:08:17,170 --> 00:08:24,250
‫また､ ベースクラスで呼び出すことで､ より簡単に仕事をこなせるように､ たくさんの便利な機能や素敵な関数が用意されています｡

110
00:08:24,250 --> 00:08:26,650
‫今後の講義で見ていきたいと思います｡

111
00:08:26,650 --> 00:08:34,000
‫最後に､ このキャラクターをマップに登場するポーンにすることをお勧めします｡

112
00:08:34,000 --> 00:08:38,050
‫そこで､ もう一度コンテンツのルートに移動してみます｡

113
00:08:38,050 --> 00:08:39,070
‫そして､ これがリビジョンです｡

114
00:08:39,070 --> 00:08:52,950
‫このマップのクローンや､ このマップからBPシューターキャラクターが生まれる設計図のゲームモードセットを作ることができます｡

115
00:08:53,290 --> 00:08:57,010
‫メインのビッグチャレンジだけでなく､ こうしたミニチャレンジにもぜひチャレンジしてください｡

116
00:08:57,010 --> 00:09:00,340
‫その分チャレンジスライドは無しにして､ 先に進みたいと思います｡

117
00:09:00,340 --> 00:09:07,030
‫モジュール式SFシーズン1スターターバンドルマップ､ マップ1はこちらです｡

118
00:09:07,030 --> 00:09:12,550
‫実は､ このままプロジェクトのルートにコピーして､ 後でルートがもう少し充実して組織構造がはっきりしてきたら､

119
00:09:12,550 --> 00:09:18,550
‫少しずつ整理していこうと思っているんです｡

120
00:09:18,790 --> 00:09:23,170
‫そのマップを「サンドボックス」に改名することにしました｡

121
00:09:23,680 --> 00:09:29,980
‫プロジェクトの設定→マップとモード→ゲームとエディターの両方でマップ1からサンドボックスに変更して､

122
00:09:29,980 --> 00:09:35,830
‫プロジェクトのデフォルトとして設定するつもりです｡

123
00:09:38,020 --> 00:09:39,670
‫じゃあ､ ゲームモードを作ろうかな｡

124
00:09:39,670 --> 00:09:42,760
‫そこで､ 右クリックして､ ブループリント・クラスを作成することにします｡

125
00:09:42,760 --> 00:09:50,290
‫ゲームモードの基本設計図を作成します｡ 名称は「ビープ､ アンダースコア・シューティング」ゲームモードです｡

126
00:09:50,930 --> 00:09:52,630
‫それを開放する｡

127
00:09:52,630 --> 00:09:58,180
‫このベースクラスにはC++は必要ないので､ 基本的にC++から派生させないようにしています｡

128
00:09:58,180 --> 00:10:05,380
‫でも､ いざ必要になったら､ いつでも修理できるし､ 自分たちで考案したC++のクラスに設計図も書ける｡

129
00:10:05,560 --> 00:10:08,590
‫そこで､ 私がやろうと思っていることは､ 細部にまで踏み込むことです｡

130
00:10:08,590 --> 00:10:14,440
‫もし選択されていない場合は､ トップバーの「クラスのデフォルト」から「クラス」のセクションに移動して､

131
00:10:14,440 --> 00:10:20,860
‫デフォルトのクラスを見つけてください｡

132
00:10:20,860 --> 00:10:25,900
‫それから､ サンドボックスに戻り､

133
00:10:25,900 --> 00:10:33,970
‫サンドボックスを開いて､ ゲームモードを変更します｡

134
00:10:33,970 --> 00:10:39,730
‫サンドボックスを作成した理由は､ 元のマップを編集したくないからです｡ サンドボックスを台無しにしてしまった場合､

135
00:10:39,730 --> 00:10:43,960
‫参考にするために元のマップに戻るかもしれないからです｡

136
00:10:44,200 --> 00:10:51,520
‫そこで､ トップバーのブループリントのドロップダウンから､ 現在ゲームモードベースに設定されているゲームモードを選択してみましょう｡

137
00:10:52,030 --> 00:10:58,120
‫代わりにBPのアンダースコアのシューティングゲームゲームモード､ シューティングゲームモードを選択するんだ｡

138
00:10:58,270 --> 00:11:03,280
‫そして､ パズルの最後のピースは､ プレイヤーを投入すること､ どこかでスタートすることです｡

139
00:11:03,280 --> 00:11:08,080
‫実は､ 私は気づいていなかったのですが､ マップにはすでにプレイヤースタートが含まれています｡

140
00:11:08,080 --> 00:11:14,050
‫つまり､ この1つを追加することで､ 偶然にも2つの場所にスポーンすることができるようになったということです｡

141
00:11:14,050 --> 00:11:16,180
‫これは講座の後半でごまかします｡

142
00:11:16,180 --> 00:11:20,890
‫ただ､ 念のために言っておくと､ もし違う場所で産卵してしまって混乱するようなら､ それが理由です｡

143
00:11:20,890 --> 00:11:24,160
‫だから､ あなたの場所に行って､ 左側のアクターズタブに行ってください｡

144
00:11:24,160 --> 00:11:29,260
‫持っていない場合は､ ウィンドウでプレースアクターを選択すると表示されるようになります｡

145
00:11:29,350 --> 00:11:32,290
‫そして､ 基本的なアクターは欲しいし､ プレイヤーのスタートアクションも欲しい｡

146
00:11:32,290 --> 00:11:37,090
‫これを取り込むと､ 小さなカプセルに前進矢印が表示され､ ポーンが生まれる場所がわかるので､

147
00:11:37,090 --> 00:11:41,560
‫そのまま再生ボタンを押せばいいのです｡

148
00:11:41,560 --> 00:11:45,550
‫そして､ これが功を奏したかどうかは､ すぐにはわからないのです｡

149
00:11:45,550 --> 00:11:54,190
‫で､ どうするかというと､ F8でポーンからイジェクトして所持するわけですが､ 後ろを向けばそれがわかりますね｡

150
00:11:54,190 --> 00:11:56,980
‫案の定､ ここでキャラクターが決まりました｡

151
00:11:56,980 --> 00:12:00,850
‫彼はただ､ 残念ながら股間のどこかにカメラを持っていたのです｡

152
00:12:00,850 --> 00:12:04,450
‫それで､ その点は後で修正することにしています｡

153
00:12:04,450 --> 00:12:12,640
‫しかし､ 現時点ではメッシュができたので､ これからアニメーションを修正し､ 3人称のキャラクターなどを用意し､

154
00:12:12,640 --> 00:12:18,580
‫最も重要なことである「動き」を出すことになります｡

155
00:12:19,570 --> 00:12:23,740
‫というわけで､ 現時点では正しいシューターキャラクターがスポーンしています｡

156
00:12:23,740 --> 00:12:25,180
‫三人称視点のカメラではないんです｡

157
00:12:25,180 --> 00:12:26,590
‫それは後で修正するつもりです｡

158
00:12:26,590 --> 00:12:30,190
‫でも､ まずはムーブメントを稼働させる｡

159
00:12:30,190 --> 00:12:32,590
‫では､ 次の講義に飛びます｡

