﻿1
00:00:04,380 --> 00:00:05,250
‫こんにちは､ ようこそ｡

2
00:00:05,250 --> 00:00:08,460
‫この講義では､ このレベルに磨きをかけていきます｡

3
00:00:08,460 --> 00:00:13,560
‫ガーゴイル像を落とせるところまで持っていくんです｡

4
00:00:13,560 --> 00:00:22,200
‫新しいエリアに入り､ 霊廟に入ったときに､ あそこにゲートがあり､ ここに銅像がある､ というようにすればいいのです｡

5
00:00:22,200 --> 00:00:28,230
‫像を台から取ると､ 門が閉まってしまい､ 間に合わない｡

6
00:00:28,230 --> 00:00:30,960
‫そして､ 表彰台に乗せるための他の何かを見つけなければなりません｡

7
00:00:30,960 --> 00:00:39,390
‫それでは､ この最後のパズルを実装するために､ どのように実現するのかを見ていきましょう｡

8
00:00:39,390 --> 00:00:52,290
‫そこで､ 中央に演壇を置き､ その上に銅像を置き､ その銅像を外せば降りてくるような手すりやゲートを上に設置することにしました｡

9
00:00:52,290 --> 00:00:58,560
‫そこで､ 中世のダンジョンのメッシュや小道具を見ると､ フードをかぶった金属製の黄金の像と像の台があり､

10
00:00:58,560 --> 00:01:01,290
‫これを両方使うことにしているんです｡

11
00:01:01,290 --> 00:01:04,290
‫では､ さっそくスタチュースタンドを持ち込んでみましょう｡

12
00:01:04,290 --> 00:01:11,440
‫まず､ フルバイフォーのビューに入って､ 私がやる中央におおよそ位置することを確認します｡

13
00:01:11,460 --> 00:01:15,480
‫そして､ フードをかぶった金属製の像を持ってきましょう､ お気づきでしょうか｡

14
00:01:15,480 --> 00:01:20,070
‫絶対的に極小のいいわけだ｡

15
00:01:20,070 --> 00:01:24,780
‫だから､ これからやらなければならないことは､ その規模を大きくすることです｡

16
00:01:24,780 --> 00:01:28,440
‫目盛りの横にあるロックボタンを押せば､ 全部揃うようになっているんです｡

17
00:01:28,440 --> 00:01:30,150
‫10倍は大きくしよう｡

18
00:01:30,180 --> 00:01:30,930
‫ちょっと大きいですね｡

19
00:01:30,930 --> 00:01:34,020
‫この像の場合､ 6倍くらいがいいのかもしれませんね｡

20
00:01:34,020 --> 00:01:38,670
‫そして､ 銅像の台座に乗せて回転させよう｡

21
00:01:38,670 --> 00:01:41,010
‫これで､ シーンがどんどん暗くなっていくのがわかると思います｡

22
00:01:41,010 --> 00:01:47,430
‫さて､ これはそのシーンで使われている露出補正の方法が原因です｡

23
00:01:47,430 --> 00:01:52,680
‫これを変更するためには､ 素早くアクターの追加に行く必要があります｡

24
00:01:52,680 --> 00:01:57,810
‫基本的にボリュームに追加して､ 私たちは探すことにしています｡

25
00:01:58,680 --> 00:02:01,050
‫後処理量です｡

26
00:02:01,050 --> 00:02:09,030
‫それをシーンに置いて､ 右クリックして､ グローバルフォルダに移動して､ アクターを選択するんです｡

27
00:02:09,030 --> 00:02:22,050
‫詳細ペインで露出設定に進み､ ここで測光モードを確認し､ 測光モードを自動露出ヒストグラムから自動露出ベーシックに変更します｡

28
00:02:22,290 --> 00:02:25,380
‫そして､ このボリュームが実はかなり小さいブロックであることがおわかりいただけると思います｡

29
00:02:25,380 --> 00:02:32,220
‫私たちにできることは､ このボリュームを大きくして､ 全エリアに適用することです｡

30
00:02:32,220 --> 00:02:33,780
‫では､ 位置を変えてみましょう｡

31
00:02:33,810 --> 00:02:38,400
‫下部のブラシ設定までスクロールすると､ X､ Y､ Zの各サイズがあります｡

32
00:02:38,410 --> 00:02:41,220
‫これらを増やし､ 少し余裕を持たせることができます｡

33
00:02:41,220 --> 00:02:46,110
‫そこで､ プレイヤーが移動可能な場所を､ このようにレベル内に含めることにしました｡

34
00:02:46,110 --> 00:02:55,350
‫また､ 照明から目を離すと､ すべてが本当に真っ暗になってしまうという問題もありません｡

35
00:02:55,350 --> 00:03:03,330
‫それでは､ ダンジョンの建築フォルダから何か持ってきたいので､ もう一度コンテンツドローを開いてみましょう｡

36
00:03:03,330 --> 00:03:05,760
‫セル側メッシュが欲しい｡

37
00:03:05,760 --> 00:03:10,830
‫そこで､ それをレベルアップして､ ドアの近くに配置してみます｡

38
00:03:10,830 --> 00:03:15,990
‫そして､ 邪魔にならないような高さにするために､ 注意することがあるんだ｡

39
00:03:15,990 --> 00:03:25,770
‫つまり､ 現時点ではZの位置が-440で､ ゼロゼロに位置させれば､ それは邪魔にならない｡

40
00:03:25,770 --> 00:03:32,250
‫というのも､ この像はトリガーゾーンにある､

41
00:03:32,250 --> 00:03:40,170
‫あるいはあるはずだからです｡

42
00:03:40,290 --> 00:03:43,980
‫そして､ トリガーゾーンに入ったときに､ 440円分持ち上げてほしいのです｡

43
00:03:43,980 --> 00:03:48,900
‫像を撤去すると､ 4～40人分下がって､ その辺りを封鎖することになります｡

44
00:03:48,900 --> 00:03:51,960
‫そのため､ スタチューにはコリジョン特性の設定が必要です｡

45
00:03:51,960 --> 00:03:54,120
‫それでは､ コリジョンのプリセットまで行ってみましょう｡

46
00:03:54,120 --> 00:04:04,920
‫カスタムで､ この特定のオブジェクトをつかむことができるようにしたいので､ グラバーがブロックするようにします｡

47
00:04:04,920 --> 00:04:12,270
‫そして､ ポーンに降りると､ ポーンに衝突しないように､ この特定のオブジェクトを無視するようにしたいのです｡

48
00:04:12,270 --> 00:04:19,260
‫また､ トリガーと重なるようにオーバーラップイベントを生成する必要があるため､ オーバーラップイベントも必要です｡

49
00:04:19,260 --> 00:04:21,390
‫トリガーといえば､ まだないんですよね｡

50
00:04:21,390 --> 00:04:29,280
‫それでは､ 彫像の台を選択し､ トリガーコンポーネントを追加してみましょう｡

51
00:04:29,280 --> 00:04:37,170
‫そして､ そのトリガーが像を包むように位置を変えて､

52
00:04:37,170 --> 00:04:52,200
‫許容できるタグを追加してみましょう｡

53
00:04:52,200 --> 00:04:58,320
‫そして､ 次に必要なのは､ トリガーとムーバーの間のリンクを作ることです｡

54
00:04:58,320 --> 00:05:02,010
‫そして､ これはレベルのブループリントで設定したので､ これを行うことにします｡

55
00:05:02,010 --> 00:05:05,100
‫この役者たちは､ 他に何のつながりもないんです｡

56
00:05:05,100 --> 00:05:12,600
‫そこで､ ブループリント・ボタンでレベル・ブループリントを開き､ スタチュー・スタンドが選択されていることを確認します｡

57
00:05:12,600 --> 00:05:18,360
‫Begin Play から引き抜くというか､ シーン内をクリックして､ スタチューに作成参照を追加していきます｡

58
00:05:18,360 --> 00:05:19,680
‫ここから立ち上がる｡

59
00:05:19,680 --> 00:05:21,480
‫そのトリガーとなる部品が必要なのです｡

60
00:05:21,480 --> 00:05:25,470
‫そこで､ クラスごとにコンポーネントを取得する方法をとります｡

61
00:05:26,360 --> 00:05:31,070
‫そして､ トリガー・コンポーネントとなるクラスを選択することにします｡

62
00:05:31,070 --> 00:05:33,230
‫ここでは､ トリガー・コンポーネント・クラスを作成しました｡

63
00:05:33,260 --> 00:05:37,340
‫そしてもうひとつは､ 「私たちのものを選んできてください」ということです｡

64
00:05:38,310 --> 00:05:43,530
‫アクターを売り､ それを選択した状態で､ ダンジョンレベルに突入します｡

65
00:05:43,530 --> 00:05:46,890
‫右クリックして､ セルアクターへの参照を作成することにします｡

66
00:05:46,890 --> 00:05:51,570
‫そして､ そのセルを使って､ 再びクラスごとにコンポーネントを取得するのです｡

67
00:05:51,570 --> 00:05:54,180
‫今回募集するのはムーバーというクラスです｡

68
00:05:54,180 --> 00:06:07,230
‫そして､ トリガーコンポーネントからの戻り値を利用して､ セットムーバーを呼び出し､ ムーバーピンを接続して､ 実行ピンを接続して再生を開始することができます｡

69
00:06:07,230 --> 00:06:11,730
‫そしてもうひとつは､ セルを選択して､ それを移動可能にする必要があります｡

70
00:06:11,730 --> 00:06:15,870
‫そこで､ 「一般」に移動して､ その中で「可動」を選択します｡

71
00:06:16,530 --> 00:06:20,250
‫おそらく､ 可動が必要なフードの像も同じようにする必要があるでしょう｡

72
00:06:20,250 --> 00:06:21,150
‫すでにそうなっています｡

73
00:06:21,150 --> 00:06:27,300
‫再生ボタンを押すと､ スタチューがトリガー・コンポーネントにあるため､ セル側が邪魔にならず､

74
00:06:27,300 --> 00:06:31,890
‫天井まで伸びていることがわかります｡

75
00:06:31,890 --> 00:06:34,080
‫しかし､ その像を手に取ることができない｡

76
00:06:34,080 --> 00:06:42,660
‫そしてその理由は､ 現在トリガーコンポーネントによって保持されているため､ 物理シミュレーションを行わないように設定されているからです｡

77
00:06:42,660 --> 00:06:47,280
‫そこで､ グラボにそれを追加する必要があります｡

78
00:06:47,280 --> 00:06:55,770
‫CP では､ この像がそのトリガー部品から移動できるように活性化させることに挑戦してみましょう｡

79
00:06:55,770 --> 00:07:02,160
‫そのためには､ ヒット部品に物理シミュレーションを設定する必要があります｡ 物理シミュレーションをtrueに設定します｡

80
00:07:02,430 --> 00:07:05,010
‫俳優を切り離すことも必要になってきますね｡

81
00:07:05,010 --> 00:07:07,650
‫だから､ アクターを切り離し､ アクターから切り離す｡

82
00:07:07,650 --> 00:07:13,590
‫そして､ アタッチメントを変換する役割と同じように､ デタッチメントを変換する役割もあることがおわかりいただけると思います｡

83
00:07:13,590 --> 00:07:17,610
‫そして､ 今回も「Keep World Transform」を使用します｡

84
00:07:18,090 --> 00:07:23,550
‫さらに､ この像をトリガーコンポーネントから取り除くと､

85
00:07:23,550 --> 00:07:29,460
‫ゲートが自動的に上昇しないことに気づくでしょう｡

86
00:07:29,460 --> 00:07:31,980
‫だから､ オマケに両方使えるようにしてくれ｡

87
00:07:31,980 --> 00:07:38,550
‫トリガーボリュームに何かを入れるとゴールに移動し､ 取り出すとスタートに戻るという仕組みです｡

88
00:07:38,550 --> 00:07:40,740
‫だから､ ビデオを一時停止して､ 試してみてください｡

89
00:07:43,780 --> 00:07:44,170
‫なるほど｡

90
00:07:44,170 --> 00:07:45,130
‫お帰りなさい｡

91
00:07:45,550 --> 00:07:53,410
‫まず､ モノをつかむグラブCPでは､ ヒットコンポーネントからリジッドボディという方法を取っています｡

92
00:07:53,410 --> 00:08:00,820
‫そのヒット・コンポーネントを取り出して､ 物理シミュレーションをtrueに設定しましょう｡

93
00:08:00,940 --> 00:08:04,660
‫そして､ この俳優を手に入れることができました｡

94
00:08:04,660 --> 00:08:07,810
‫それを独自の変数に入れる｡

95
00:08:07,810 --> 00:08:16,990
‫つまり､ 俳優､ スターヒットアクターは､ ヒットリザルトゲットアクターと同じで､ それを置き換えればいいわけです｡

96
00:08:16,990 --> 00:08:18,730
‫だから､ アクタータグを打つ｡

97
00:08:18,730 --> 00:08:22,390
‫そして､ さらにその下にあるアクターも切り離すことにします｡

98
00:08:22,390 --> 00:08:32,380
‫アクター矢印を押してアクターから切り離し､ F切り離し､ ルールを変換､ コロン､ コロン､ 世界を維持､ 行末にセミコロンを変換して､

99
00:08:32,380 --> 00:08:39,100
‫再コンパイルして､ うまくいくかどうか見てみましょう｡

100
00:08:39,100 --> 00:08:43,060
‫さっそく再生ボタンを押して､ 私たちの像を拾ってみましょう｡

101
00:08:43,510 --> 00:08:46,750
‫そして今回は､ まさに完璧なまでに仕上がっています｡

102
00:08:46,930 --> 00:08:50,440
‫しかし､ うちのゲートは思うように閉まらない｡

103
00:08:50,440 --> 00:08:53,350
‫では､ これからどうやってゲートを閉めるようにするのか｡

104
00:08:53,350 --> 00:08:56,050
‫像をスタンドに戻すことができるかどうか､ 見てみましょう｡

105
00:08:56,440 --> 00:08:59,650
‫だから､ ここに貼り付けて､ ほらね｡

106
00:08:59,890 --> 00:09:05,200
‫トリガー・コンポーネントに自動的に添付されるため､ それだけでそこに留まります｡

107
00:09:05,470 --> 00:09:10,850
‫そこで､ チャレンジの要素である「移動」､ つまりボーナスについてですが､ 「移動」をオープンにして､

108
00:09:10,850 --> 00:09:20,350
‫コントロールPで「移動」を検索し､ CPの「移動」をオープンにして､ 「移動すべきもの」を持っているところまで降りていくことができるのです｡

109
00:09:20,350 --> 00:09:30,970
‫そして､ altステートメントで､ ターゲットの場所を元の場所に設定することができます｡

110
00:09:31,450 --> 00:09:36,040
‫そして､ 基本的に残りのコードは､ その場所に移動するために常に実行する必要があります｡

111
00:09:36,040 --> 00:09:43,090
‫そこで､ このようにif文からすべて取り出し､ インデントの問題を解決してみましょう｡

112
00:09:43,090 --> 00:09:45,760
‫そして､ 本来欲しいのは目標地点です｡

113
00:09:46,210 --> 00:09:51,790
‫if文の前にデフォルト値で設定することにします｡

114
00:09:51,790 --> 00:09:55,900
‫つまり､ デフォルト値は元の場所になるわけです｡

115
00:09:55,900 --> 00:09:58,420
‫そのムーブオフセットだけ切り取ろうと思っています｡

116
00:09:58,420 --> 00:10:01,900
‫つまり､ 元の場所とターゲットの場所を設定したわけです｡

117
00:10:01,900 --> 00:10:06,160
‫だから､ デフォルトでは､ 元の場所に戻したいと思っているはずです｡

118
00:10:06,160 --> 00:10:17,980
‫しかし､ もしshould moveがtrueであれば､ ターゲット位置を更新して､ 基本的に元の位置に移動オフセットを加えたものにする必要があります｡

119
00:10:17,980 --> 00:10:21,550
‫これで､ 実質的にゴール地点にたどり着いたわけです｡

120
00:10:21,700 --> 00:10:24,850
‫そうすれば､ 後で現在地を計算することができます｡

121
00:10:24,850 --> 00:10:27,910
‫距離と速度の計算をするんです｡

122
00:10:27,910 --> 00:10:33,070
‫Vの解釈定数を行い､ 新しいアクティブな場所を設定するのです｡

123
00:10:33,070 --> 00:10:38,440
‫もうひとつ､ 速度の計算方法を変更する必要があります｡ ここでは､

124
00:10:38,440 --> 00:10:44,110
‫元の位置と目標位置の差を求めていますが､ 目標位置を元の位置と同じに設定すると､

125
00:10:44,110 --> 00:10:46,840
‫ゼロになります｡

126
00:10:46,840 --> 00:10:48,670
‫そうすると､ 速度がゼロになるんです｡

127
00:10:48,670 --> 00:10:56,320
‫その代わり､ まあ､ 元の場所での目標位置の差は､ 実は移動オフセットの長さであることが分かっているわけです｡

128
00:10:56,320 --> 00:11:01,090
‫そこで､ この方法で距離を計算する代わりに､ いつも少し無駄になってしまうのですが､

129
00:11:01,090 --> 00:11:07,150
‫移動オフセットのドット長を計算して､ それを移動時間で割ればいいのです｡

130
00:11:07,150 --> 00:11:13,090
‫つまり､ 関数移動オフセットドット長括弧を移動時間で割ったものなので､ 括弧が必要なのです｡

131
00:11:13,090 --> 00:11:14,830
‫再コンパイルして試してみましょう｡

132
00:11:14,920 --> 00:11:21,150
‫再生ボタンを押して､ 私たちの像を手に取ると､ ゲートが閉じていくのがわかります｡

133
00:11:21,160 --> 00:11:25,330
‫なかなか開かなかったので､ 最後まで行くということがわからなかったのかもしれません｡

134
00:11:25,330 --> 00:11:29,920
‫でも､ その場にある像を落とすと､ 上まで持ち上がってしまうんです｡

135
00:11:30,400 --> 00:11:35,050
‫像をはずすと､ 下まで戻ってしまう｡

136
00:11:35,050 --> 00:11:35,590
‫素晴らしい内容です｡

137
00:11:35,590 --> 00:11:43,300
‫だから､ あとはちょっとした筋書きというか､ パズルに持っていけるようなものを入れていくだけです｡

138
00:11:43,300 --> 00:11:52,960
‫そこで､ 小道具の下のメッシュに入り､ 小さな完全なポットを見つけて､ 反対側のドアのそばに置いてみます｡

139
00:11:52,960 --> 00:11:56,980
‫そのため､ 銅像の代わりになるものを探すのに少し苦労しています｡

140
00:11:56,980 --> 00:12:04,150
‫スタチューと同じようにオーバーラップイベントを発生させるように設定します｡ コリジョンのプリセットはカスタムに設定する必要があります｡

141
00:12:04,900 --> 00:12:12,580
‫グラブで掴めるように､ ブロックに置いて､ ポーンに重ならないように変更するんです｡

142
00:12:12,580 --> 00:12:18,520
‫そして､ アクタータグで､ アンロック2用のタグを追加します｡

143
00:12:18,520 --> 00:12:22,780
‫そして､ 最後にボールを動かすように設定してきます｡

144
00:12:22,780 --> 00:12:25,390
‫さっそくプレイを押して､ このポットをつかめるかどうか試してみましょう｡

145
00:12:25,390 --> 00:12:25,780
‫うん｡

146
00:12:25,780 --> 00:12:26,920
‫できるようだ｡

147
00:12:26,920 --> 00:12:30,490
‫この霊廟のエリアまで通してみましょう｡

148
00:12:31,000 --> 00:12:37,810
‫像を外して､ ポットを取って､ その場所に貼り付ければいいんです｡

149
00:12:38,380 --> 00:12:42,730
‫そして､ それが開くと､ 銅像を奪って逃げられることがわかる｡

150
00:12:43,280 --> 00:12:43,890
‫危機に瀕している｡

151
00:12:43,910 --> 00:12:51,500
‫そこで､ この講義では､ レベルの残りを整理し､ ムーバーを後ろに移動させ､ グラバーが拾ったものを切り離して物理シミュレーションに設定できるようにするなど､

152
00:12:51,500 --> 00:13:01,760
‫いくつかのコード変更を伴うゲームを完成させました｡

153
00:13:01,790 --> 00:13:02,680
‫素晴らしい内容です｡

154
00:13:02,690 --> 00:13:04,520
‫それでは､ 次回の講義でお会いしましょう｡

