﻿1
00:00:04,500 --> 00:00:05,580
‫こんにちは､ ようこそ｡

2
00:00:05,580 --> 00:00:13,170
‫今回のレクチャーでは､ カメラの前方方向と砲弾そのものを発射していきます｡

3
00:00:13,170 --> 00:00:19,980
‫スペースキーを押すと､ このボールを対象物に向けることができるようになり､ 遠くの対象物に当てようとすると､

4
00:00:19,980 --> 00:00:23,010
‫もっと楽しいことがわかりますね｡

5
00:00:23,010 --> 00:00:24,120
‫そう､ その椅子を手に入れたのです｡

6
00:00:24,390 --> 00:00:26,940
‫以前よりずっと楽しくなりました｡

7
00:00:26,940 --> 00:00:28,860
‫さっそく､ その方法を見てみましょう｡

8
00:00:29,220 --> 00:00:33,270
‫そこで､ 順方向ベクトルというものを使うことになるのですが､ これは何でしょうか？

9
00:00:33,270 --> 00:00:40,950
‫そこで､ このスライドでは議論の便宜上､ ビューポートと同じようにXとYの方向性を入れて､

10
00:00:40,950 --> 00:00:45,120
‫現実に即していることを示しました｡

11
00:00:45,120 --> 00:00:50,910
‫そして､ ここにカメラがあることを想像してください｡ これはプレイヤーのカメラで､ マウスを回転させると向きを変え､

12
00:00:50,910 --> 00:00:53,880
‫それをスポーンしているところです｡

13
00:00:53,880 --> 00:01:00,090
‫これで､ 私たちの投射物と新しく生成された投射物が､ カメラから正しい回転を得るようになりました｡

14
00:01:00,090 --> 00:01:03,030
‫ですから､ スライドに描いたように､ これを見ることができます｡

15
00:01:03,030 --> 00:01:09,720
‫さて､ 前方ベクトルは､ 基本的にX方向を回転させたものになります｡

16
00:01:09,720 --> 00:01:16,470
‫つまり､ 基本的には回転させた後に前方向を指すベクトルです｡

17
00:01:16,470 --> 00:01:20,790
‫このプロジェクターは回転しており､

18
00:01:20,790 --> 00:01:28,050
‫その前方方向は､ カメラの後方にずれているのではなく､

19
00:01:28,050 --> 00:01:38,640
‫こちら側にあります｡

20
00:01:38,640 --> 00:01:44,580
‫しかし､ 私たちが関心を持つのは､ その前方方向に弾丸を送ることだけなので､ それを使うつもりはありません｡

21
00:01:44,580 --> 00:01:51,840
‫そして､ Get Forward vectorとget write vectorから戻ってくるベクターで興味深いのは､

22
00:01:51,840 --> 00:01:55,020
‫それらの長さが1であることです｡

23
00:01:55,080 --> 00:01:56,130
‫少ないのは保証できる｡

24
00:01:56,130 --> 00:01:57,900
‫必ず1本の長さになるそうです｡

25
00:01:57,900 --> 00:02:03,840
‫というのも､ この方向に一定のインパルスを与えたい場合､

26
00:02:03,840 --> 00:02:14,730
‫このベクトルに方向を指定する値を掛けるだけでよいからです（例えば､ 速度を指定する場合は400）｡

27
00:02:14,730 --> 00:02:18,600
‫では､ トルクは十分ですが､ 実際にblueprintでどのように実現するのでしょうか｡

28
00:02:18,600 --> 00:02:23,880
‫そこで､ 新たに生成された投射物を照会する必要があります｡

29
00:02:23,880 --> 00:02:29,730
‫スポーンする前にこちらで正しい回転を与えているので､ 正しい回転でスポーンしています｡

30
00:02:29,730 --> 00:02:32,670
‫ゲームをプレイしてみると､ それがよくわかる｡

31
00:02:32,670 --> 00:02:35,700
‫そこで､ その前方ベクトルを求める必要がある｡

32
00:02:35,700 --> 00:02:41,160
‫そのためには､ アクターのリファレンスそのものを引き抜くか､ どちらかを選択します｡

33
00:02:41,160 --> 00:02:48,150
‫つまり､ アクターノードのスポーンから出てくるビープ音の発射物への参照､ または静的コンポーネントから行うことができます｡

34
00:02:48,150 --> 00:02:49,590
‫どちらを使っても大丈夫です｡

35
00:02:49,590 --> 00:02:54,240
‫ノードを節約して少しでもすっきりさせるために､ アクターから行うことにしています｡

36
00:02:54,240 --> 00:03:01,260
‫ここで､ get forward vectorと入力すると､ 2つのオプションが表示されます｡

37
00:03:01,260 --> 00:03:03,540
‫ゲットアクティブフォワードベクトルを使うつもりです｡

38
00:03:03,540 --> 00:03:08,670
‫どちらも同じ結果になり､ ベクトル値を得ることができます｡

39
00:03:08,670 --> 00:03:13,860
‫さて､ これをインパルスに直接差し込んでも､ あまり効果は期待できません｡

40
00:03:13,860 --> 00:03:18,990
‫再生ボタンを押しながら弾を発射すると､ まっすぐ下に落ちるのがわかると思います｡

41
00:03:18,990 --> 00:03:28,200
‫その理由は､ このベクトルの長さが､ ご存知のように､ 非現実的な単位であるセンチメートルになるからです｡

42
00:03:28,200 --> 00:03:33,270
‫つまり､ 1秒間に1センチメートルという､ かなりちっぽけな速度が出るわけです｡

43
00:03:33,270 --> 00:03:38,520
‫そこで､ このベクトルにfloatを乗じることができるようにする必要があります｡

44
00:03:38,520 --> 00:03:41,220
‫幸いなことに､ ブループリントではそれをかなり簡単に行うことができます｡

45
00:03:41,220 --> 00:03:48,540
‫この前方ベクトルの戻り値からドラッグしてmultiplyと入力すると､ このmultiply演算子ノードが得られます｡

46
00:03:48,540 --> 00:03:57,840
‫デフォルトではベクトルとベクトルを掛けたいのですが､ これは我々が実現したいことではありません｡

47
00:03:57,840 --> 00:04:02,730
‫そして幸いなことに､ 2番目の入力ノードを右クリックすることで変更することができます｡

48
00:04:02,730 --> 00:04:11,610
‫ピンの変換をクリックすると､ ピンが浮動小数点に変換され､ 必要な乗算が行われます｡

49
00:04:11,610 --> 00:04:16,470
‫そこで､ この掛け算のベクトルを自分でやってみることに挑戦してみたいのです｡

50
00:04:16,470 --> 00:04:24,330
‫そこで､ インパルスへの入力と出力の両方に乗算ノードをプラグインします｡

51
00:04:24,330 --> 00:04:30,060
‫また､ どれくらいの倍率にすれば､ 満足のいく力が得られるのでしょうか？

52
00:04:30,090 --> 00:04:32,130
‫ビデオを一時停止して､ 試してみてください｡

53
00:04:35,200 --> 00:04:37,070
‫こんにちは､ お帰りなさい｡

54
00:04:37,090 --> 00:04:49,780
‫そして､ 乗算の出力をインパルスの入力に差し込みます｡

55
00:04:49,780 --> 00:05:03,040
‫つまり､ 400単位の長さのベクトルが､ BP弾の前進方向､ つまり回転する方向を指しているのです｡

56
00:05:03,040 --> 00:05:05,620
‫それも､ 我々のカメラと同じ方向で｡

57
00:05:05,620 --> 00:05:07,930
‫では､ さっそく再生を押してみましょう｡

58
00:05:07,930 --> 00:05:13,150
‫そして､ 発射すると､ 正しい方向に発射されているが､ 力が十分でないことがわかる｡

59
00:05:13,150 --> 00:05:17,770
‫そこで､ これを1000に増やしてみる｡

60
00:05:17,770 --> 00:05:19,240
‫1000で試してみよう｡

61
00:05:19,240 --> 00:05:19,630
‫なるほど｡

62
00:05:19,630 --> 00:05:23,280
‫今､ 私たちは､ 実際に楽しむことができる､ より良いものを手に入れているのです｡

63
00:05:23,290 --> 00:05:25,120
‫実に4000人だったかな｡

64
00:05:25,120 --> 00:05:32,920
‫記憶違いかな､ 今4000でプレイしてきたら､ もっと楽しい弾が見えると思うんだけど｡

65
00:05:32,920 --> 00:05:37,990
‫そして最後は､ もう回転であることを知る必要がないからです｡

66
00:05:37,990 --> 00:05:41,680
‫しかも､ こんな細長い形をしているなんて､ なんだか変な感じです｡

67
00:05:41,680 --> 00:05:43,480
‫ビープ音に戻りたい｡

68
00:05:43,480 --> 00:05:48,430
‫Projectile EditorでStatic Measureコンポーネントを選択し､

69
00:05:48,430 --> 00:05:55,720
‫詳細ペインに移動してスケールを0に戻してみます｡ 5があり､ 他のすべての要素と同じように､ 球が球形に戻るのです｡

70
00:05:55,720 --> 00:06:01,450
‫そして､ 再生ボタンを押すと､ 小さな砲弾ができあがります｡ オブジェクトを発射して､

71
00:06:01,450 --> 00:06:05,440
‫ちょっとした破壊を引き起こすのは､ 実に楽しいものです｡

72
00:06:05,440 --> 00:06:06,070
‫素晴らしい内容です｡

73
00:06:06,070 --> 00:06:11,260
‫この講義では､ そのゲットフォワードベクトルノードを応用して､ 多くのことを達成しました｡

74
00:06:11,260 --> 00:06:12,730
‫次回作でお会いしましょう｡

