﻿1
00:00:04,350 --> 00:00:05,400
‫こんにちは､ ようこそ｡

2
00:00:05,400 --> 00:00:10,830
‫この講義では､ このベクトル構造体とそれを支える数学についてもう少し理解し､

3
00:00:10,830 --> 00:00:22,110
‫この講義が終わる頃には､ ベクトルの足し算や引き算､ 浮動小数点値の掛け算ができるようになることを目指します｡

4
00:00:22,110 --> 00:00:23,160
‫潜入してみよう｡

5
00:00:24,230 --> 00:00:30,470
‫そこですぐに､ インパルスを正しい回転方向に設定することを始めたいと思います｡

6
00:00:30,470 --> 00:00:37,400
‫しかし､ その前に､ ベクトルの基礎となる数学についてもう少し理解しておく必要があります｡

7
00:00:37,430 --> 00:00:43,670
‫さて､ このビデオでは､ ベクトル数学のホイッスルストップツアーをお見せします｡

8
00:00:43,670 --> 00:00:50,480
‫でも､ もっと深い解説をお望みなら､ ゲーム開発のための数学の講座があるので､

9
00:00:50,480 --> 00:00:52,520
‫そちらをお勧めします｡

10
00:00:52,670 --> 00:00:59,960
‫ベクトルは本来､ 数学的な概念であり､ 実際に何を意味しているのかを突き詰めていくと､ 非常にシンプルなものです｡

11
00:00:59,990 --> 00:01:10,010
‫ベクトルとは､ 簡単に言えば3次元空間における方向のことで､ 大きさ､ 数学用語で言えば大きさのことである｡

12
00:01:10,310 --> 00:01:18,110
‫さて､ これだけならいいのですが､ 実際にコンピュータ上でプログラム的に表現するとなると､ もっとシンプルになります｡

13
00:01:18,110 --> 00:01:28,010
‫これは､ X､ A､ Y､ Zの3つの浮動小数点数で､ 3次元のベクトルを完璧に表現しているのです｡

14
00:01:28,010 --> 00:01:33,920
‫では､ 2次元空間のベクトルを少し見てみましょう｡ ここには2次元のスクリーンがあります｡

15
00:01:33,920 --> 00:01:36,020
‫その方が見せやすいんです｡

16
00:01:36,200 --> 00:01:45,590
‫つまり､ XとYの部品があり､ 最初は00から始まるとします｡  この例では､ 右上にあります｡

17
00:01:45,950 --> 00:01:50,600
‫そして､ この2次元の空間にキャラクターを配置したい｡

18
00:01:50,600 --> 00:02:02,090
‫まあ､ キャラクターの位置を指す位置ベクトルを用意して､ 〇〇からの長さを持たせればいいんですけどね｡

19
00:02:02,090 --> 00:02:02,090
‫を､ キャラクターのいる場所まで移動させます｡

20
00:02:02,090 --> 00:02:05,330
‫そして､ これは構成要素に分解することができます｡

21
00:02:05,330 --> 00:02:13,670
‫ですから､ XパーツとYパーツは､ 予想されるように､ そして私たちがUnrealのレベルで行っていたように､ 用意することができます｡

22
00:02:13,670 --> 00:02:18,920
‫そこで､ この位置ベクトルに移動ベクトルを適用して､ この方向とこの大きさを持つ別のベクトルを作成し､

23
00:02:18,920 --> 00:02:29,810
‫実際にこの2つを加算して､ このように新しい位置を取得することができるのです｡

24
00:02:29,810 --> 00:02:34,190
‫つまり､ 基本的には位置と移動ベクトルを足したような形になります｡

25
00:02:34,190 --> 00:02:39,260
‫そこで､ この2つのベクトルを足し合わせると､ 次のような新しい位置ベクトルになります｡

26
00:02:39,260 --> 00:02:44,810
‫そして､ 実際に数学的なレベルで何が起こっているかというと､ 単純に新しいポジションを手に入れるということなのです｡

27
00:02:44,810 --> 00:02:53,540
‫X 元の位置のXと移動のXを足し合わせているのですが､ Yも同じように足し合わせています｡

28
00:02:53,540 --> 00:02:58,260
‫では､ もう少し､ ベクトルを使った足し算､ 引き算について見てみましょう｡

29
00:02:58,340 --> 00:03:03,140
‫本来は､ このようなベクトルAとこのようなベクトルBがあったとして､ それらを足し合わせるとベクトルになる､

30
00:03:03,140 --> 00:03:06,560
‫ということです｡

31
00:03:06,560 --> 00:03:15,890
‫仮に､ それらを足したものがベクトルCになるとすると､ ベクトルCは単純に目的地に直行する矢印ということになる｡

32
00:03:15,890 --> 00:03:21,830
‫基本的には､ これらのベクトルを頭から尻尾まで並べるわけですから､ どの順番でやってもいいわけです｡

33
00:03:21,830 --> 00:03:24,020
‫ちなみに､ Bを先にしたり､ aを先にしたりすることも可能です｡

34
00:03:24,050 --> 00:03:31,250
‫ここで同じ場所に行き着くベクトルCは､ まるで近道をするようにまっすぐ最終目的地を指しているだけで､

35
00:03:31,250 --> 00:03:36,470
‫引き算は驚くほど似ています｡

36
00:03:36,470 --> 00:03:42,680
‫ベクトルAとベクトルBがこのようにあったら､ 引き算では､ 負のベクトルB､

37
00:03:42,680 --> 00:03:49,580
‫つまり通常のベクトルBと反対方向を指すベクトルをとって､ そのまま足せば､

38
00:03:49,580 --> 00:03:54,080
‫ベクトルCが代わりにこの場所を指しているような､

39
00:03:54,080 --> 00:03:57,560
‫ちょっとした結果になる｡

40
00:03:57,560 --> 00:04:03,920
‫ここでは､ ベクトルの乗算､ 特にベクトルとfloatの乗算について見てみましょう｡

41
00:04:03,950 --> 00:04:10,100
‫aをとって､ aを2倍してベクトルBを出すとしたらどうなるか？

42
00:04:10,340 --> 00:04:14,090
‫この場合､ 2つのベクトルAを足すと2倍の長さのベクトルBができることを考えればよいので､

43
00:04:14,090 --> 00:04:19,460
‫実はとても簡単なのです｡

44
00:04:19,460 --> 00:04:26,660
‫大きさはベクトルAの2倍で､ 実はここでは整数にこだわる必要はないのです｡

45
00:04:26,660 --> 00:04:30,350
‫半分のベクトルaは､ ちょうど半分の長さになる可能性があります｡

46
00:04:30,350 --> 00:04:37,880
‫5個でもいいんですよ｡  5になるようなベクトルAの6｡  そのベクトルAの長さを6倍にしても､

47
00:04:37,880 --> 00:04:40,400
‫結局方向は変わりません｡

48
00:04:40,400 --> 00:04:42,740
‫常に同じベクトル方向を持つことになります｡

49
00:04:42,740 --> 00:04:46,490
‫そこで､ ここでちょっとした宝探しに挑戦してみましょう｡

50
00:04:46,490 --> 00:04:49,550
‫A､ B､ Cのベクトルを定義してみました｡

51
00:04:49,550 --> 00:04:53,960
‫そのビジュアルを､ 方向の大きさを表す矢印で表現してみました｡

52
00:04:53,960 --> 00:05:00,260
‫下の方に数値で表現していますが､ ここでやっていただきたいのは､

53
00:05:00,260 --> 00:05:19,670
‫XY軸のグリッドにキャラクターがいると仮定して､ ここに暗号の宝探しの指示が出されたとします｡

54
00:05:19,670 --> 00:05:23,510
‫このキャラクターがどこに移動しなければならないか､ 考えてみてください｡

55
00:05:23,820 --> 00:05:27,360
‫宝物を見つけるには､ 映像を一時停止して挑戦してください｡

56
00:05:31,690 --> 00:05:32,140
‫なるほど｡

57
00:05:32,140 --> 00:05:32,610
‫お帰りなさい｡

58
00:05:32,620 --> 00:05:35,590
‫そこでまず､ A､ Aを足すのです｡

59
00:05:35,620 --> 00:05:41,530
‫その掛け算をする必要がないので､ Aを足すとこっちの場所に行くことになるんです｡

60
00:05:41,530 --> 00:05:47,740
‫次にBを足しますが､ 3倍なので3回足します｡ そしてCを引きますので､ マイナスの方向､

61
00:05:47,740 --> 00:05:52,810
‫つまりCを引きます｡ 矢印を反対につけているのがわかると思いますが､

62
00:05:52,810 --> 00:05:57,730
‫頭から尾ではなく､ 頭から頭です｡

63
00:05:57,730 --> 00:06:01,210
‫そしてそれは､ 事実上､ 逆方向に進むことと同じことなのです｡

64
00:06:01,810 --> 00:06:08,980
‫そして､ この場所に行き着いたことがわかります｡ 実際には､ 結果のベクトルはこのようになります｡

65
00:06:08,980 --> 00:06:12,340
‫そのベクトルをすべて足し合わせた結果がこれです｡

66
00:06:12,340 --> 00:06:18,700
‫つまり､ 新しいけれども､ 新しい位置､ つまり実際の座標です｡

67
00:06:18,700 --> 00:06:28,390
‫実際の座標は51x5でy軸に1､ 結果の移動ベクトルの合計は10 3となります｡

68
00:06:28,390 --> 00:06:34,990
‫実際にXとYを別々に足したり掛けたりして､

69
00:06:34,990 --> 00:06:43,540
‫この動きを確認することができます｡

70
00:06:43,540 --> 00:06:50,080
‫これで､ ベクトルの足し算､ 引き算､ 掛け算について､ 少しは理解していただけたでしょうか｡

71
00:06:50,080 --> 00:06:51,040
‫次の講義では

72
00:06:51,040 --> 00:06:52,900
‫これを活かしていきます｡

73
00:06:52,900 --> 00:06:53,740
‫現地でお会いしましょう｡

