﻿1
00:00:04,420 --> 00:00:05,890
‫やあ､ お帰りなさい｡

2
00:00:05,920 --> 00:00:10,720
‫前回のビデオでは､ capsuleコンポーネントを作成し､ それをrootに設定しました｡

3
00:00:10,750 --> 00:00:13,960
‫このビデオでは､ さらにいくつかのコンポーネントを追加する必要があります｡

4
00:00:13,960 --> 00:00:18,520
‫具体的には､ 戦車の基部と砲塔部分のメッシュがいくつか必要です｡

5
00:00:19,030 --> 00:00:24,100
‫そして､ 以前の講義で説明したように､ 投射物のスポーンポイントも必要です｡

6
00:00:24,280 --> 00:00:26,230
‫では､ VSコードに飛び込んでみましょう｡

7
00:00:26,260 --> 00:00:29,950
‫さて､ ここBase Pancakeでは､ カプセルの部品を使用しています｡

8
00:00:29,950 --> 00:00:34,540
‫このプライベートセクションのすぐ下に､ 他のコンポーネントを追加することができます｡

9
00:00:34,570 --> 00:00:39,370
‫そこで､ メッシュには静的メッシュコンポーネントを使用することにします｡

10
00:00:39,610 --> 00:00:45,580
‫もちろん､ これは基本型ではないので､ これらはポインタになります｡ 最初のメッシュはベースメッシュと呼ぶことにして､

11
00:00:45,580 --> 00:00:51,790
‫カプセルカンパニーのベースメッシュと同じように､ 独自のyouプロパティマクロを取得することにします｡

12
00:00:51,940 --> 00:00:57,760
‫静的メッシュコンポーネントは､ 前方に宣言されていないため､ エラーにならないことに注意してください｡

13
00:00:57,760 --> 00:01:03,820
‫それは､ スタティックメッシュコンポーネントがすべてのアクターにデフォルトで含まれているからで､ もちろんポーンもアクターですから､

14
00:01:03,820 --> 00:01:07,090
‫スタティックメッシュコンポーネントが使われているのです｡

15
00:01:07,120 --> 00:01:14,230
‫さて､ どの型がデフォルトで含まれていて､ どの型が含まれていないのかを知る方法はないかというと､ いつもコンパイルしてみてエラーが出るかどうかを確認すればいいのです｡

16
00:01:14,230 --> 00:01:18,820
‫必要なヘッダーを入れなかったときに､ どのようなエラーになるかは分かっています｡

17
00:01:18,850 --> 00:01:25,000
‫また､ 非現実的なエンジンタイプのヘッダーファイルは､ 1つのファイルに複数回インクルードされないようにインクルードガードを設けて､

18
00:01:25,000 --> 00:01:30,490
‫常にフォワード宣言し､ 常にインクルードするというアプローチもあります｡

19
00:01:30,520 --> 00:01:33,700
‫実は､ 私たちがいるヘッダーにも､ このようなものがあるのです｡

20
00:01:33,700 --> 00:01:35,620
‫プラハWMAというのが一度あります｡

21
00:01:35,620 --> 00:01:40,180
‫さて､ ベースとなるメッシュができたので､ もうひとつ静的メッシュのコンポーネントを用意します｡

22
00:01:40,180 --> 00:01:46,300
‫これがUのスタティックメッシュコンポーネントのポインターになり､ これがタレット用になります｡

23
00:01:46,300 --> 00:01:52,660
‫このタレットメッシュもベースメッシュと同じようにUプロパティマクロを取得します｡

24
00:01:52,660 --> 00:01:58,030
‫さて､ ベースメッシュと砲塔メッシュのポインタができたので､ 実際にこれらを構築してみましょう｡

25
00:01:58,030 --> 00:02:02,980
‫では､ Base Pont CPに移動して､ ここのコンストラクタでそれをやってみましょう｡

26
00:02:02,980 --> 00:02:10,420
‫まず､ ベースメッシュと言い､ デフォルトサブオブジェクトの作成で返される値をこれに割り当てます｡

27
00:02:10,420 --> 00:02:15,370
‫さて､ 私が記入する前に､ ここに正しいタイプを入力してみてはいかがでしょう？

28
00:02:17,280 --> 00:02:17,910
‫そうなんです｡

29
00:02:17,910 --> 00:02:20,450
‫静的なメッシュ部品ですね｡

30
00:02:20,460 --> 00:02:26,190
‫さて､ 名前ですが､ テキストマクロを使って､ このベースメッシュと呼ぶことにします｡

31
00:02:26,400 --> 00:02:32,880
‫ここで､ ベースとなるメッシュを何かにくっつけることが重要です｡

32
00:02:32,880 --> 00:02:36,300
‫PONを移動させながら､ ルートに装着していきます｡

33
00:02:36,420 --> 00:02:46,050
‫そのため､ ベースメッシュにはセットアップアタッチメントという機能があり､ セットアップアタッチメントにはアタッチメントとなる見た目の部品が必要です｡

34
00:02:46,080 --> 00:02:49,320
‫カプセルコンプにベースメッシュを貼り付けます｡

35
00:02:49,380 --> 00:02:52,560
‫ここに過去のルート成分を簡単に入れることができるんです｡

36
00:02:52,860 --> 00:02:56,220
‫では､ 同じように砲塔のメッシュを作成します｡

37
00:02:56,220 --> 00:03:04,620
‫そのため､ タレットメッシュはデフォルトのサブオブジェクトを作成し､ これもスタティックメッシュのコンポーネントとして使用することになります｡

38
00:03:04,950 --> 00:03:08,550
‫そして､ 今回の名称は､ このタレットメッシュと呼ぶことにします｡

39
00:03:09,840 --> 00:03:14,940
‫先ほど､ タレットメッシュをベースメッシュに取り付けると言いましたが､ タレットメッシュはアタッチメントを設定し､

40
00:03:14,970 --> 00:03:21,480
‫取り付けるコンポーネントはベースメッシュとします｡

41
00:03:21,810 --> 00:03:27,600
‫そこで､ ベースメッシュと引数として､ セットアップアタッチメントを渡します｡

42
00:03:27,600 --> 00:03:33,420
‫右クリックで定義に進むと､ シーンコンポーネントの関数であることがわかります｡

43
00:03:33,570 --> 00:03:36,180
‫つまり､ すべてのシーンコンポーネントがこの機能を持っているわけです｡

44
00:03:36,420 --> 00:03:38,400
‫というわけで､ シーンコンポーネントを終了します｡

45
00:03:38,820 --> 00:03:43,800
‫今､ あなたは不完全なクラス型へのポインタというインテリセンス・エラーに気づいたことでしょう｡

46
00:03:43,800 --> 00:03:46,050
‫これも実は､ 誤った誤りなのです｡

47
00:03:46,050 --> 00:03:53,040
‫そして､ ダウンロードした拡張機能は実際にはこれを修正しませんが､ これはうまくコンパイルできるので､ 心配する必要はないでしょう｡

48
00:03:53,040 --> 00:04:03,000
‫さて､ もし気になるようでしたら､ include components slash static mesh component を追加すれば､

49
00:04:04,170 --> 00:04:06,600
‫赤い四角い線は消えますよ｡

50
00:04:06,600 --> 00:04:11,220
‫また､ 先ほど申し上げたように､ これらにはインクルードガードが付いているので､ 二重に収録されることはありません｡

51
00:04:11,220 --> 00:04:12,540
‫だから､ それはあなた次第なんです｡

52
00:04:12,570 --> 00:04:16,410
‫インクルードをここに置いておくと､ スクイッグルが出なくなりますね｡

53
00:04:16,410 --> 00:04:22,620
‫これで､ タレットメッシュの中にベースメッシュができましたので､ あとは発射体のスポーンポイントだけです｡

54
00:04:22,620 --> 00:04:24,770
‫だから､ これがあなたのチャレンジになるのです｡

55
00:04:25,050 --> 00:04:28,860
‫Projectile spawn pointというポインタを作成します｡

56
00:04:29,190 --> 00:04:35,070
‫射的のスポーンポイントに適したタイプを選び､ テキストマクロを使って名前を付け､

57
00:04:35,070 --> 00:04:38,460
‫デフォルトのサブオブジェクトを作成します｡

58
00:04:38,610 --> 00:04:42,090
‫砲塔のメッシュに弾丸のスポーンポイントを取り付けます｡

59
00:04:42,270 --> 00:04:49,860
‫そして､ 考えて欲しいのは､ そのヘッダーファイルをインクルードして､ ビデオを一時停止して､ 今このコンポーネントを作成する必要があるかということです｡

60
00:04:52,650 --> 00:04:53,280
‫わかりました｡

61
00:04:53,280 --> 00:04:55,360
‫では､ この次のコンポーネントを追加してみましょう｡

62
00:04:55,380 --> 00:05:03,170
‫さて､ 弾丸の発射点はU字型のコンポーネントで､ これを発射点（projectile spawn point）と呼ぶことにします｡

63
00:05:03,180 --> 00:05:05,550
‫次に､ you プロパティマクロを追加します｡

64
00:05:05,580 --> 00:05:06,180
‫それでいいんです｡

65
00:05:06,180 --> 00:05:11,790
‫もしこれを行わなかったのなら､ 今すぐyouプロパティマクロを追加して､ Base Pond

66
00:05:11,790 --> 00:05:15,300
‫CPに移動し､ このコンポーネントを構築しましょう｡

67
00:05:15,300 --> 00:05:22,290
‫そこで､ 射的のスポーンポイントと言い､ デフォルトのサブオブジェクトを作成することにします｡

68
00:05:22,290 --> 00:05:25,320
‫そして､ これはあなたが見た部品になります｡

69
00:05:25,350 --> 00:05:28,080
‫さて､ あなたはおそらくこれにすごい名前をつけたでしょう｡

70
00:05:28,080 --> 00:05:32,910
‫スポーンポイントということで､ これのアタッチメントを設定する必要がありますね｡

71
00:05:32,910 --> 00:05:41,190
‫射的のスポーンポイント､ アタッチメントの設定､ そしてこれをタレットメッシュにアタッチして､

72
00:05:41,400 --> 00:05:49,620
‫これでコンパイルができます｡

73
00:05:49,620 --> 00:05:51,570
‫だから､ すべてがうまくいっているんです｡

74
00:05:51,570 --> 00:05:58,320
‫このビデオでは､ 静的メッシュコンポーネントを作成し､ それらのヘッダーを含める必要がないことを確認しました｡

75
00:05:58,320 --> 00:06:00,330
‫すでにデフォルトで含まれていた｡

76
00:06:00,330 --> 00:06:07,140
‫また､ projectile spawn pointというシーンコンポーネントを作成しましたが､ そのヘッダーも含めなくても､

77
00:06:07,140 --> 00:06:09,240
‫コードはうまくコンパイルできました｡

78
00:06:09,270 --> 00:06:13,920
‫近々､ ベースとなる池のC++クラスをベースにしたブループリントを作成する予定です｡

79
00:06:14,070 --> 00:06:15,480
‫次の動画でお会いしましょう｡

