‫こんにちは､ ようこそ｡
‫この講義では､ これらの小さなピンとその色の違いを見て､ これらが何にプラグインできるかを制限する異なるデータ型であることを理解するつもりです｡
‫では､ さっそくデータ型とはどういうものかを見てみましょう｡
‫つまり､ データ型のかなり実行可能な定義は､ コンピュータのメモリ上で特定のデータをどのようにバイナリで表現しているかということです｡
‫また､ このデータで何ができるかを制限してしまうことにもなりかねません｡
‫ですから､ 必ずしも表現が違うとは限らないのです｡
‫そして､ 丸い穴に四角い釘は入らないという意味で､ データの形と考えることができます｡
‫だから､ 間違ったタイプのデータを間違ったタイプのピンに入力することはできないのです｡
‫では､ データ型の例をいくつか見てみましょう｡
‫整数というのがありますが､ これは典型的な例です｡
‫整数は整数ですから､ 223 -14のような値を持ちますが､ 1のような値は持ちません｡ 2.
‫それは浮動小数点数の略であるfloatになります｡
‫この数字は基本的に小数点を持つ数字で､ 非常に大きくも小さくもなりますが､
‫決定的に整数ではありません｡
‫また､ ネガティブな印象を与えることもあります｡
‫そして､ 文字列です｡
‫文字列は､ プログラマーが言うところのテキストの一部であり､ 以前にも紹介したことがある｡
‫そして､ 本来はデータ型である｡
‫これは､ テキストの断片をメモリに保存する方法なので､ 好きなものにすることができます｡
‫本当に｡
‫こんにちは､ ボブ｡
‫あのね､ なんでもいいんだけど､ この画面上の文字列は全部文字列で､ たぶんコンピュータのメモリのどこかにあるんだと思うんだ｡
‫そして最後に､ ブーリアン（boolean）の略であるボールがありますが､ これは真か偽の2つの値しか取り得ないのでしょうか？
‫これらのデータ型は素晴らしいものですが､ このような単純なものでゲーム全体を表現することはできませんよね？
‫まあ､ オブジェクトのようにグループ化すればいいんですけどね｡
‫それらをひとまとめにしてオブジェクトにすると､ より意味深いものになります｡
‫年齢を表す整数があったり､ 経験値を表す浮動小数点があったり､ そういうことです｡
‫また､ 1つ注意すべき点は､ オブジェクトだけでなく､ blueprintには構造体というものがあることです｡
‫そして､ ここで混乱してはいけない｡
‫Too much structは基本的にオブジェクトと同じですが､ 通常はかなり小さいので､
‫リファレンスは使わず､ 小さいから気にせずメモリ上で受け渡したりコピーしたりしています｡
‫そして､ データ型とは､ 先ほども言ったように､ データの形を表すものです｡
‫それでは､ いくつかのオブジェクト構造体の例を見てみましょう｡
‫そこで､ 冒険家の登場を想像してみました｡
‫私たちの冒険者は､ ちょっとこんな感じかもしれませんね｡
‫これが､ そのデータの形状である｡
‫レベルを表す整数と､ 経験値を表す浮動小数点があります｡
‫さて､ 同じ冒険家クラスのインスタンスが複数ある場合､ データの形状は同じである必要がありますが､
‫データの中身は同じである必要はありません｡
‫2人目の冒険者のレベルが100なのに､ なぜか経験値がマイナス5になっているのがわかる｡
‫しかし､ プレイヤーなど別のクラスのオブジェクトを用意することで､ 別のタイプを持つこともできるので､ 気にしないでください｡
‫そして､ ここでは形状が異なることがおわかりいただけると思います｡
‫アドベンチャーとプレイヤーは互換性のないタイプで､ プレイヤーにはそれぞれ異なる値が格納されています｡
‫プレイヤー名や､ コントローラーを使用しているかどうかなど､ いくつかのデータが含まれています｡
‫では､ これまで見てきた構造体を見てみましょう｡
‫ここでも､ 構造体とオブジェクトは､ サイズ以外はほとんど同じであることを思い出してください｡
‫まず､ 何度も見てきたのがベクトルです｡ ベクトルとは､ 3つの浮動小数点にほかなりません｡
‫それだけで､ X､ Y､ Zのフロートで､ 位置を表現することができるのです｡
‫また､ スケールを表現したり､ ADDインパルスノードにインパルスを入力する際に使用することもできます｡
‫もうひとつ､ 通りすがりに見たのがローテーターです｡
‫このローテーターも3つのフロートだけですが､ この2つのタイプに互換性があるわけではありません｡
‫構造体には別の名前を付けることができるので､ 誤って使ってはいけない場面で使ってしまうことを防げます｡
‫そして､ これらを組み合わせて､ シーン内のアクターの位置､ 回転､ スケールを表す､ さらに大きな複合構造体であるトランスフォームを作成することができます｡
‫このように､ これは他の構造体で構成された構造体であり､ 基本的にこれらのものを好きなだけネストして､
‫オブジェクトの中に構造体を持つなど､ さまざまなことができます｡
‫かなり複雑になりますね｡
‫では､ すでに過去に見たことのあるオブジェクトを見てみましょう｡
‫ここまで､ アクターであるオブジェクトについて見てきました｡
‫アクターはオブジェクトの一種であることが分かっています｡
‫立方体である俳優を見たことがあります｡
‫これもオブジェクトの一種です｡
‫投射物もオブジェクトの一種であり､ アクターであることを確認しました｡
‫そして､ アクターにはコンポーネントがあり､ これもオブジェクトの一種であることがわかりました｡
‫そして､ 静電部品はその一例である｡
‫このように､ 基本的なデータ型から構成されたものばかりです｡
‫深層部では､ 暫定的にもっと複雑な構造で構成されているかもしれませんが､ すべてはその基本的なデータ型が重要なのです｡
‫このようなグラフを見ると､ このインパルスがベクトルであることが色ですぐにわかります｡
‫たとえば､ 位置､ 回転､ スケールは､ 3つの浮動小数点数だけです｡
‫そして､ この赤い速度変更チェックボックスがブール値であることもわかります｡
‫イエス・ノーで答えられる｡
‫だから､ スタートするんです｡
‫これらは､ 何に何を差し込むかを制約しているデータ型であることを理解すること｡
‫つまり､ データ型はデータの形状であり､ オブジェクトはデータと機能の単なる集合体であること､ そして前述したように構造体はオブジェクトであるが､
‫通常はもう少し小さいものである､ ということがわかりました｡
‫そして､ それはかなり重要なことです｡
‫それでは､ 次回の講義でお会いしましょう｡