﻿1
00:00:04,150 --> 00:00:05,500
‫こんにちは､ ようこそ｡

2
00:00:05,500 --> 00:00:17,470
‫この講義では､ これらの小さなピンとその色の違いを見て､ これらが何にプラグインできるかを制限する異なるデータ型であることを理解するつもりです｡

3
00:00:17,830 --> 00:00:23,470
‫では､ さっそくデータ型とはどういうものかを見てみましょう｡

4
00:00:23,650 --> 00:00:34,930
‫つまり､ データ型のかなり実行可能な定義は､ コンピュータのメモリ上で特定のデータをどのようにバイナリで表現しているかということです｡

5
00:00:35,410 --> 00:00:42,730
‫また､ このデータで何ができるかを制限してしまうことにもなりかねません｡

6
00:00:42,730 --> 00:00:46,510
‫ですから､ 必ずしも表現が違うとは限らないのです｡

7
00:00:46,510 --> 00:00:55,690
‫そして､ 丸い穴に四角い釘は入らないという意味で､ データの形と考えることができます｡

8
00:00:55,690 --> 00:01:00,730
‫だから､ 間違ったタイプのデータを間違ったタイプのピンに入力することはできないのです｡

9
00:01:01,850 --> 00:01:04,370
‫では､ データ型の例をいくつか見てみましょう｡

10
00:01:04,370 --> 00:01:07,610
‫整数というのがありますが､ これは典型的な例です｡

11
00:01:07,610 --> 00:01:16,760
‫整数は整数ですから､ 223 -14のような値を持ちますが､ 1のような値は持ちません｡  2.

12
00:01:16,760 --> 00:01:23,000
‫それは浮動小数点数の略であるfloatになります｡

13
00:01:23,060 --> 00:01:28,940
‫この数字は基本的に小数点を持つ数字で､ 非常に大きくも小さくもなりますが､

14
00:01:28,940 --> 00:01:33,650
‫決定的に整数ではありません｡

15
00:01:33,650 --> 00:01:35,390
‫また､ ネガティブな印象を与えることもあります｡

16
00:01:35,690 --> 00:01:36,860
‫そして､ 文字列です｡

17
00:01:36,860 --> 00:01:42,200
‫文字列は､ プログラマーが言うところのテキストの一部であり､ 以前にも紹介したことがある｡

18
00:01:42,200 --> 00:01:44,390
‫そして､ 本来はデータ型である｡

19
00:01:44,390 --> 00:01:49,970
‫これは､ テキストの断片をメモリに保存する方法なので､ 好きなものにすることができます｡

20
00:01:49,970 --> 00:01:50,210
‫本当に｡

21
00:01:50,210 --> 00:01:51,170
‫こんにちは､ ボブ｡

22
00:01:51,170 --> 00:01:57,650
‫あのね､ なんでもいいんだけど､ この画面上の文字列は全部文字列で､ たぶんコンピュータのメモリのどこかにあるんだと思うんだ｡

23
00:01:58,040 --> 00:02:04,760
‫そして最後に､ ブーリアン（boolean）の略であるボールがありますが､ これは真か偽の2つの値しか取り得ないのでしょうか？

24
00:02:05,060 --> 00:02:13,040
‫これらのデータ型は素晴らしいものですが､ このような単純なものでゲーム全体を表現することはできませんよね？

25
00:02:13,040 --> 00:02:19,280
‫まあ､ オブジェクトのようにグループ化すればいいんですけどね｡

26
00:02:19,280 --> 00:02:23,450
‫それらをひとまとめにしてオブジェクトにすると､ より意味深いものになります｡

27
00:02:23,450 --> 00:02:29,390
‫年齢を表す整数があったり､ 経験値を表す浮動小数点があったり､ そういうことです｡

28
00:02:29,390 --> 00:02:36,170
‫また､ 1つ注意すべき点は､ オブジェクトだけでなく､ blueprintには構造体というものがあることです｡

29
00:02:36,170 --> 00:02:38,060
‫そして､ ここで混乱してはいけない｡

30
00:02:38,060 --> 00:02:44,420
‫Too much structは基本的にオブジェクトと同じですが､ 通常はかなり小さいので､

31
00:02:44,420 --> 00:02:50,780
‫リファレンスは使わず､ 小さいから気にせずメモリ上で受け渡したりコピーしたりしています｡

32
00:02:50,960 --> 00:02:55,670
‫そして､ データ型とは､ 先ほども言ったように､ データの形を表すものです｡

33
00:02:56,120 --> 00:02:58,730
‫それでは､ いくつかのオブジェクト構造体の例を見てみましょう｡

34
00:02:58,730 --> 00:03:01,040
‫そこで､ 冒険家の登場を想像してみました｡

35
00:03:01,040 --> 00:03:03,470
‫私たちの冒険者は､ ちょっとこんな感じかもしれませんね｡

36
00:03:03,470 --> 00:03:05,180
‫これが､ そのデータの形状である｡

37
00:03:05,180 --> 00:03:10,970
‫レベルを表す整数と､ 経験値を表す浮動小数点があります｡

38
00:03:10,970 --> 00:03:17,630
‫さて､ 同じ冒険家クラスのインスタンスが複数ある場合､ データの形状は同じである必要がありますが､

39
00:03:17,630 --> 00:03:22,520
‫データの中身は同じである必要はありません｡

40
00:03:22,520 --> 00:03:28,280
‫2人目の冒険者のレベルが100なのに､ なぜか経験値がマイナス5になっているのがわかる｡

41
00:03:28,280 --> 00:03:35,750
‫しかし､ プレイヤーなど別のクラスのオブジェクトを用意することで､ 別のタイプを持つこともできるので､ 気にしないでください｡

42
00:03:35,750 --> 00:03:37,940
‫そして､ ここでは形状が異なることがおわかりいただけると思います｡

43
00:03:37,940 --> 00:03:47,240
‫アドベンチャーとプレイヤーは互換性のないタイプで､ プレイヤーにはそれぞれ異なる値が格納されています｡

44
00:03:47,240 --> 00:03:52,790
‫プレイヤー名や､ コントローラーを使用しているかどうかなど､ いくつかのデータが含まれています｡

45
00:03:52,790 --> 00:03:55,880
‫では､ これまで見てきた構造体を見てみましょう｡

46
00:03:55,880 --> 00:04:00,440
‫ここでも､ 構造体とオブジェクトは､ サイズ以外はほとんど同じであることを思い出してください｡

47
00:04:00,620 --> 00:04:06,950
‫まず､ 何度も見てきたのがベクトルです｡ ベクトルとは､ 3つの浮動小数点にほかなりません｡

48
00:04:06,950 --> 00:04:11,180
‫それだけで､ X､ Y､ Zのフロートで､ 位置を表現することができるのです｡

49
00:04:11,180 --> 00:04:18,380
‫また､ スケールを表現したり､ ADDインパルスノードにインパルスを入力する際に使用することもできます｡

50
00:04:18,860 --> 00:04:21,110
‫もうひとつ､ 通りすがりに見たのがローテーターです｡

51
00:04:21,110 --> 00:04:28,400
‫このローテーターも3つのフロートだけですが､ この2つのタイプに互換性があるわけではありません｡

52
00:04:28,400 --> 00:04:36,110
‫構造体には別の名前を付けることができるので､ 誤って使ってはいけない場面で使ってしまうことを防げます｡

53
00:04:36,740 --> 00:04:49,070
‫そして､ これらを組み合わせて､ シーン内のアクターの位置､ 回転､ スケールを表す､ さらに大きな複合構造体であるトランスフォームを作成することができます｡

54
00:04:49,070 --> 00:04:54,380
‫このように､ これは他の構造体で構成された構造体であり､ 基本的にこれらのものを好きなだけネストして､

55
00:04:54,380 --> 00:04:58,370
‫オブジェクトの中に構造体を持つなど､ さまざまなことができます｡

56
00:04:58,370 --> 00:04:59,990
‫かなり複雑になりますね｡

57
00:05:00,380 --> 00:05:03,890
‫では､ すでに過去に見たことのあるオブジェクトを見てみましょう｡

58
00:05:03,890 --> 00:05:06,980
‫ここまで､ アクターであるオブジェクトについて見てきました｡

59
00:05:06,980 --> 00:05:08,870
‫アクターはオブジェクトの一種であることが分かっています｡

60
00:05:09,380 --> 00:05:11,840
‫立方体である俳優を見たことがあります｡

61
00:05:11,840 --> 00:05:13,490
‫これもオブジェクトの一種です｡

62
00:05:13,490 --> 00:05:19,340
‫投射物もオブジェクトの一種であり､ アクターであることを確認しました｡

63
00:05:19,340 --> 00:05:24,680
‫そして､ アクターにはコンポーネントがあり､ これもオブジェクトの一種であることがわかりました｡

64
00:05:24,680 --> 00:05:28,040
‫そして､ 静電部品はその一例である｡

65
00:05:28,040 --> 00:05:32,840
‫このように､ 基本的なデータ型から構成されたものばかりです｡

66
00:05:32,840 --> 00:05:39,860
‫深層部では､ 暫定的にもっと複雑な構造で構成されているかもしれませんが､ すべてはその基本的なデータ型が重要なのです｡

67
00:05:40,010 --> 00:05:46,280
‫このようなグラフを見ると､ このインパルスがベクトルであることが色ですぐにわかります｡

68
00:05:46,280 --> 00:05:53,810
‫たとえば､ 位置､ 回転､ スケールは､ 3つの浮動小数点数だけです｡

69
00:05:54,230 --> 00:05:58,640
‫そして､ この赤い速度変更チェックボックスがブール値であることもわかります｡

70
00:05:58,640 --> 00:06:00,140
‫イエス・ノーで答えられる｡

71
00:06:00,140 --> 00:06:00,890
‫だから､ スタートするんです｡

72
00:06:01,090 --> 00:06:07,510
‫これらは､ 何に何を差し込むかを制約しているデータ型であることを理解すること｡

73
00:06:08,320 --> 00:06:14,620
‫つまり､ データ型はデータの形状であり､ オブジェクトはデータと機能の単なる集合体であること､ そして前述したように構造体はオブジェクトであるが､

74
00:06:14,620 --> 00:06:20,950
‫通常はもう少し小さいものである､ ということがわかりました｡

75
00:06:20,950 --> 00:06:23,770
‫そして､ それはかなり重要なことです｡

76
00:06:23,800 --> 00:06:25,870
‫それでは､ 次回の講義でお会いしましょう｡

