﻿1
00:00:04,500 --> 00:00:05,250
‫こんにちは､ ようこそ｡

2
00:00:05,250 --> 00:00:08,310
‫今回の講義では､ この左下にあるように､ ヘルスバーを追加しています｡

3
00:00:08,310 --> 00:00:14,610
‫また､ プレイヤーを敵よりもかなりタフにすることで､ 実際にたくさんの敵を撃ちまくり､

4
00:00:14,610 --> 00:00:18,410
‫体力がなくなる前に倒せるようにしています｡

5
00:00:18,410 --> 00:00:21,240
‫では､ そのヘルスバーの作り方を見ていきましょう｡

6
00:00:21,720 --> 00:00:25,950
‫だから､ 今のところ､ 健康が十分に残っているかどうか､ 知る由もないのです｡

7
00:00:25,950 --> 00:00:30,240
‫プレイヤーとして､ 現在の体力量からあとどれくらいプレイできるのか？

8
00:00:30,240 --> 00:00:31,110
‫では､ こうしてみましょう｡

9
00:00:31,110 --> 00:00:33,840
‫フードにヘルスバーを導入したいと思います｡

10
00:00:33,840 --> 00:00:37,440
‫そこで､ HUDウィジェットに移動して､ これを実行します｡

11
00:00:37,440 --> 00:00:44,730
‫EDでまだ開いていなければ､ パレットの中からプログレスバーを探し､ このプログレスバーを表示させます｡

12
00:00:44,730 --> 00:00:46,080
‫さて､ なぜプログレスバーなのか｡

13
00:00:46,080 --> 00:00:51,480
‫つまり､ 詳細ペインでパーセンテージまでスクロールすると､

14
00:00:51,480 --> 00:01:05,160
‫パーセンテージを変更することで､ バーが満杯になったり消えたりするのがわかります｡

15
00:01:05,160 --> 00:01:15,030
‫つまり､ 1%から始めて､ 0%になるまで水増ししていけばいいのですが､ そうすると再生が止まってしまいます｡

16
00:01:15,870 --> 00:01:16,980
‫それが狙いなんですね｡

17
00:01:16,980 --> 00:01:22,530
‫ここでやっておきたいのは､ 塗りつぶしのスタイルを変更することです｡

18
00:01:22,530 --> 00:01:28,410
‫そこで､ 少し塗りつぶして､ 塗りつぶし画像を見て､ 変更することにします｡

19
00:01:28,410 --> 00:01:30,300
‫その色合いを変えられるかどうか｡

20
00:01:31,440 --> 00:01:36,330
‫そこに少し緑色の､ 典型的な健康色のようなものに｡

21
00:01:36,330 --> 00:01:37,830
‫そして､ 超わかりやすいように

22
00:01:37,890 --> 00:01:40,390
‫ここにあるのは､ まさに「健康」です｡

23
00:01:40,410 --> 00:01:47,430
‫テキストブロックを追加し､ 「health」というラベルを付けて､ ヘルスバーの横に貼り付けようと思います｡

24
00:01:48,100 --> 00:01:56,470
‫そして､ これらのコンポーネントを両方とも選択し､ 左下に固定して､ 画面の左下の端に合わせて移動できるようにします｡

25
00:01:56,470 --> 00:01:57,550
‫というわけで､ そのつもりで｡

26
00:01:57,580 --> 00:02:04,330
‫アンカーのデフォルトを変更して､ 両方とも左下の端に少し近づけるつもりです｡

27
00:02:04,660 --> 00:02:07,480
‫そして､ これをコンパイルして､ 遊びに行こうと思っています｡

28
00:02:07,480 --> 00:02:11,860
‫フルスクリーンにすると､ 左下にヘルスバーが表示されますが､

29
00:02:11,860 --> 00:02:15,940
‫明らかに現在のヘルスを表しているわけではありません｡

30
00:02:16,030 --> 00:02:26,950
‫そのために､ Asheからキャラクター､ CPPからブループリントへの関数を公開し､ Uagウィジェットでこれを取得できるようにするのです｡

31
00:02:26,950 --> 00:02:32,860
‫基本的に「死んでいる」という青写真をコピーしますが､

32
00:02:32,860 --> 00:02:44,980
‫ブール値を返す代わりに､ 0と1の間のパーセンテージであるフロートを返すことにします｡

33
00:02:44,980 --> 00:02:50,410
‫このクラスを呼び出したときに､ このクラスを変更してはならないので､

34
00:02:50,410 --> 00:03:00,400
‫ブループリント､ ピュア､ constの両方が必要です｡

35
00:03:00,400 --> 00:03:02,860
‫だから考えてみてください､ あなたへのちょっとしたミニ・チャレンジです｡

36
00:03:02,860 --> 00:03:07,780
‫ここで健康を計算するのは､ 全体の健康に対する割合としてどうでしょうか？

37
00:03:08,110 --> 00:03:08,800
‫お帰りなさい｡

38
00:03:08,800 --> 00:03:17,260
‫では､ 実際にやってみましょう｡ ヘルスを最大値で割ると､ ヘルスは1になってしまうので､ 単純にヘルスで割ってみましょう｡

39
00:03:17,260 --> 00:03:21,460
‫健康がゼロになったら､ その間にどこもかしこもゼロになるんです｡

40
00:03:21,460 --> 00:03:24,250
‫では､ エディタに戻ってコンパイルしてみましょう｡

41
00:03:24,250 --> 00:03:29,470
‫次に､ HUD UIに移動して､ 何らかの方法でそのキャラクターを手に入れる必要があります｡

42
00:03:29,650 --> 00:03:37,330
‫そこで､ プログレスバーに移動して､ パーセンテージのプロパティがあるところまでスクロールダウンします｡

43
00:03:37,330 --> 00:03:39,760
‫その横にbindというボタンがあるのがわかると思います｡

44
00:03:39,760 --> 00:03:47,500
‫これをドロップダウンしてバインディングを作成すると､ パーセント値を取得するための関数が作成されます｡

45
00:03:47,500 --> 00:03:51,550
‫そして､ これが異なる値を返すたびに､ UIが更新されることになるのです｡

46
00:03:51,880 --> 00:03:53,290
‫だから､ かなりわかりやすい｡

47
00:03:53,290 --> 00:03:54,250
‫ゲットパーセントというやつです｡

48
00:03:54,250 --> 00:03:55,240
‫もっといい名前をつけよう｡

49
00:03:55,240 --> 00:04:00,910
‫これをクリックし､ 詳細に移動して､ このようにGet Healthに名前を変更します｡

50
00:04:01,210 --> 00:04:05,830
‫その上で､ 必要なのは､ 何とかして自分のキャラクターを掴むこと｡

51
00:04:05,860 --> 00:04:14,110
‫まず､ このUIはプレイヤーコントローラーに接続されているので､ すでにプレイコントローラーを手に入れることができます｡

52
00:04:14,110 --> 00:04:16,900
‫そして､ プレイコントローラーから､ それを制御しているのが--｡

53
00:04:16,900 --> 00:04:23,650
‫そして実際､ pawnで検索すれば､ 直接これを行うget owning player pawnがあることがわかる｡

54
00:04:23,650 --> 00:04:27,610
‫先に進んで自分のプレイヤーを獲得し､ 次に自分がコントロールしているポーンを獲得する｡

55
00:04:27,610 --> 00:04:35,410
‫そしてそこから､ 先ほど作成した関数にアクセスするために必要なのは､ シューターキャラクターへのキャストです｡

56
00:04:35,410 --> 00:04:43,120
‫そして､ そこから健康状態をパーセントで取得し､ それをリターンノードに流し込んで､

57
00:04:43,120 --> 00:04:49,330
‫キャストシューターキャラクターからの実行ピンを渡すようにします｡

58
00:04:49,540 --> 00:04:52,780
‫そして､ それをコンパイルして保存し､ 再生ボタンを押してみます｡

59
00:04:52,780 --> 00:04:58,870
‫そして､ 見るべきものはヘルスバー100％で､ 撃たれると下がっていくのですが､ それを見るのが少し遅かったです｡

60
00:04:58,870 --> 00:05:06,790
‫そこで､ メインレベルのビューポートから､ プレイのヘルスバーを1にして､ それが半分になったら死ぬ､ ということをやってみます｡

61
00:05:06,940 --> 00:05:09,970
‫だから､ それがちょっと早すぎるんです｡

62
00:05:09,970 --> 00:05:14,710
‫そこで､ Aの体力ではなく､ プレイヤーの体力だけを増やすことに挑戦してみたいと思います｡

63
00:05:14,710 --> 00:05:19,180
‫2発で敵をやっつけるようなレベルの感覚にしたいですね｡

64
00:05:19,240 --> 00:05:28,030
‫しかし､ その場合､ プレイヤーはもっと体力があり､ 大きくて強いヒーローなので､ 実際に倒させるためにはAIからもっと多くのショットが必要になります｡

65
00:05:28,150 --> 00:05:32,650
‫つまり､ ここではプレイヤーのための子供を作るということです｡

66
00:05:32,650 --> 00:05:40,240
‫つまり､ これはキャラクタークラスの子になりますが､ キャラクタークラスだけでなく､ おそらくすでにそのブループリントのクラスにもなっています｡

67
00:05:40,240 --> 00:05:42,610
‫数種類の変数をオーバーライドする必要があります｡

68
00:05:42,610 --> 00:05:55,180
‫つまり､ 最大体力はプレイヤーの方が高くなりますし､ 周りの敵と差別化するために別のメッシュを使いたいかもしれません｡

69
00:05:56,340 --> 00:05:56,850
‫なるほど｡

70
00:05:56,850 --> 00:05:57,330
‫お帰りなさい｡

71
00:05:57,330 --> 00:06:02,640
‫コンテンツフォルダまで行って､ キャラクターを探します｡

72
00:06:02,640 --> 00:06:03,780
‫BPのシューターキャラクターがいるんです｡

73
00:06:03,780 --> 00:06:09,510
‫その上で右クリックして､ 子ブループリント・クラスを作成します｡ このクラスは､

74
00:06:09,510 --> 00:06:15,360
‫BP アンダースコア・プレイヤー・シューティング・キャラクターになります｡

75
00:06:15,360 --> 00:06:22,020
‫このブループリントを開くと､ 親ブループリントと同じプロパティがすべて設定されています｡

76
00:06:22,020 --> 00:06:24,330
‫しかし､ 今ではいくつかのことを上書きすることができるようになりました｡

77
00:06:24,330 --> 00:06:27,540
‫まず最初に上書きするのはメッシュです｡

78
00:06:27,540 --> 00:06:28,410
‫というわけで､ スタートダッシュです｡

79
00:06:28,410 --> 00:06:29,460
‫こちらは赤のメッシュ｡

80
00:06:29,460 --> 00:06:31,560
‫敵にとってはいいことだと思うんですけどね｡

81
00:06:31,560 --> 00:06:35,010
‫でも､ 欲しいのは主人公の緑色のメッシュです｡

82
00:06:35,010 --> 00:06:37,770
‫だから､ 別人であることが超わかりやすくなる｡

83
00:06:38,190 --> 00:06:45,030
‫次に､ ルートまたはクラスのデフォルトに移動して､ 最大ヘルスを変更します｡

84
00:06:45,030 --> 00:06:50,460
‫だから､ 敵の10倍くらいの体力を持たせてあげたいんです｡

85
00:06:50,460 --> 00:06:52,530
‫では､ それをコンパイルして保存してきます｡

86
00:06:52,530 --> 00:06:56,940
‫そして､ もうひとつは､ 設計図を変えてくることです｡

87
00:06:56,940 --> 00:07:04,830
‫BP KML ゲインモードを見つけて､ デフォルトの -- クラスを BP

88
00:07:04,830 --> 00:07:14,790
‫シューターキャラクターから BP プレイヤーシューターキャラクターに変更します｡

89
00:07:14,790 --> 00:07:17,940
‫そして､ 私たち自身が異なるキャラクターを手に入れたことがおわかりいただけると思います｡

90
00:07:18,060 --> 00:07:19,260
‫顔つきが変わってきた｡

91
00:07:19,260 --> 00:07:26,910
‫また､ 撃たれてもヘルスバーの減りが遅いので､ 敵を短時間で仕留めることができます｡

92
00:07:26,910 --> 00:07:31,320
‫しかし､ それでもシーンに十分な敵を配置すれば､ かなりの難易度になります｡

93
00:07:31,320 --> 00:07:32,310
‫というわけで､ 今回の講義はここまで｡

94
00:07:32,310 --> 00:07:39,930
‫これまで､ バインディングを使ったヘルスコンポーネントの追加や､ プログレスバーコンポーネントの追加について見てきました｡

95
00:07:39,930 --> 00:07:44,700
‫次回の講義では､ プレイヤーがメッシュで上下に照準を合わせるためのアニメーションを､

96
00:07:44,700 --> 00:07:48,510
‫もう一度少し見ていきます｡

97
00:07:48,540 --> 00:07:49,260
‫現地でお会いしましょう｡

