﻿1
00:00:04,500 --> 00:00:05,580
‫こんにちは､ ようこそ｡

2
00:00:05,580 --> 00:00:12,360
‫この講義では､ 移動するプラットフォームアクタに変数を追加して､

3
00:00:12,360 --> 00:00:16,560
‫エディタで確認できるようにします｡

4
00:00:16,560 --> 00:00:17,790
‫潜入してみよう｡

5
00:00:18,360 --> 00:00:23,640
‫そこで､ C++で学ぶ最初のコンセプトは､ 変数の作り方です｡

6
00:00:23,640 --> 00:00:25,890
‫以前､ Blueprintで見たことがあります｡

7
00:00:25,890 --> 00:00:30,090
‫値を入れる箱のようなもので､ 型があることも知っています｡

8
00:00:30,240 --> 00:00:34,890
‫C++でも､ 作成方法以外はすべて同じです｡

9
00:00:34,890 --> 00:00:39,810
‫以前､ ブループリントでこの作業を行ったとき､ 記憶を呼び覚ますためにレベルのブループリントを開くと､

10
00:00:39,810 --> 00:00:48,300
‫この「私のブループリント」ペインがあり､ ここに関数や変数などを追加していました｡

11
00:00:48,300 --> 00:00:51,510
‫そして､ 実際にプログラミングを行うイベントグラフを用意しました｡

12
00:00:51,510 --> 00:00:53,970
‫今のC++は非常によく似ています｡

13
00:00:53,970 --> 00:01:02,190
‫変数や関数の設定を行う場所と､ 実際に実装を行う場所とで､ 2つの場所を用意しています｡

14
00:01:02,190 --> 00:01:07,500
‫では､ Visual Studio codeに移動して､ Visual Studio Code Projectを開いて見てみましょう｡

15
00:01:07,500 --> 00:01:10,650
‫左側のバーに「エクスプローラー」タブがあります｡

16
00:01:10,650 --> 00:01:16,710
‫これを開くと､ 基本的にファイルの階層マップを見ることができます｡

17
00:01:16,710 --> 00:01:24,300
‫一番上のレベルには､ 5つのプロジェクトとObstacle Assault､ または私たちのプロジェクトがあり､ これを開くと､ ここにいくつかのフォルダがあります｡

18
00:01:24,300 --> 00:01:28,410
‫私たちが関心を持つのは､ すべてのC++を見つけることができるソースフォルダです｡

19
00:01:28,410 --> 00:01:35,340
‫そしてその中に障害物襲来のフォルダがあり､ その中に移動台という名前のファイルが2つあります｡

20
00:01:35,340 --> 00:01:44,250
‫1つはドットファイル､ もう1つはDOT CPで､ DOTはHeader､ CPはC++の略です｡

21
00:01:44,250 --> 00:01:52,170
‫これは本質的に､ ヘッダーファイルやFFファイルにある関数や変数などを追加できる私の青写真のようなもので､

22
00:01:52,170 --> 00:02:03,060
‫それからドットCPがあり､ イベントグラフのように本質的にコーディングそのものを行うことができます｡

23
00:02:03,330 --> 00:02:06,600
‫そこで､ ムービングプラットフォームを開放することにしました｡

24
00:02:06,840 --> 00:02:12,300
‫H なぜなら､ 新しい変数を追加したいからで､ ここに一杯あることに気がつくでしょう｡

25
00:02:12,300 --> 00:02:20,910
‫その詳細は省きますが､ 最も興味深いのは､ ムービングプラットフォームクラスであることの意味を定義していることです｡

26
00:02:20,910 --> 00:02:23,370
‫ここには､ 気になるキーワードがいくつも並んでいます｡

27
00:02:23,370 --> 00:02:25,290
‫10行目にクラスキーワードがありますね｡

28
00:02:25,290 --> 00:02:32,160
‫ムービングプラットフォームがあり､ その前にはアクターであることを意味するAが付いています｡ そして､

29
00:02:32,160 --> 00:02:36,270
‫11行目と26行目には中括弧がいくつかあります｡

30
00:02:36,270 --> 00:02:42,540
‫そして､ このマッチした中括弧の間に､ いくつかの宣言があるのがわかると思います｡

31
00:02:42,540 --> 00:02:46,200
‫この中に関数があり､ ここに変数も置くことができます｡

32
00:02:46,440 --> 00:02:49,680
‫そこで､ この宣言の末尾に変数を追加することにします｡

33
00:02:49,680 --> 00:02:57,810
‫そこで､ 中括弧を閉じる直前に新しい行を追加して､ ここに新しい変数を書き始めることができます｡

34
00:02:58,140 --> 00:03:04,440
‫ブループリントの変数と同じように､ 型と変数名があり､ デフォルト値を与えることもできます｡

35
00:03:04,620 --> 00:03:13,530
‫C++､ Unreal C++では､ 整数はキーワードINT 32で示され､

36
00:03:13,530 --> 00:03:20,550
‫基本的にここに格納できる値の大きさを示します｡

37
00:03:20,550 --> 00:03:22,500
‫そして､ 32歳ではありません｡

38
00:03:22,530 --> 00:03:23,820
‫それよりもずっとずっと大きいです｡

39
00:03:23,820 --> 00:03:28,620
‫32は整数に割り当てられたビット数です｡

40
00:03:28,650 --> 00:03:34,200
‫さて､ 次は変数名ですが､ クラスと同じように変数名にもスペースは使えません｡

41
00:03:34,200 --> 00:03:38,670
‫そこで､ 代わりに大文字で言葉を表すことにしました｡

42
00:03:38,670 --> 00:03:41,520
‫だから､ 私のintの通知と言うことになります｡

43
00:03:41,520 --> 00:03:44,520
‫その語頭を両方とも大文字にしているのです｡

44
00:03:44,520 --> 00:03:53,970
‫それから､ デフォルトの値を指定します｡ 等号を付けて､ 例えば99のような値を指定します｡

45
00:03:54,150 --> 00:03:59,880
‫ここで､ イコールサインの前と後にスペースを入れていることに注意してください｡

46
00:03:59,880 --> 00:04:04,140
‫それは実は厳密には必要ないのですが､ 読みやすく､ きれいになるのです｡

47
00:04:04,140 --> 00:04:05,760
‫だから､ それを含めて考えています｡

48
00:04:05,760 --> 00:04:11,070
‫ここで､ 32と実際の整数名の間にスペースが必要なのは明らかです｡

49
00:04:11,070 --> 00:04:12,690
‫それがないと､ 物事はうまくいかないのです｡

50
00:04:12,960 --> 00:04:20,520
‫そして､ この宣言の仕上げとして､ 行の最後にセミコロンをつけて､ C++に終了を告げる必要があります｡

51
00:04:20,520 --> 00:04:26,790
‫改行があること､ スペースやタブがあること､ これらはすべてC++にとっては実はどうでもいいことなのです｡

52
00:04:26,790 --> 00:04:30,360
‫全部一緒に走っても､ これは変わらない｡

53
00:04:30,360 --> 00:04:34,230
‫ここのスペースを抜いても問題ないでしょう｡

54
00:04:34,230 --> 00:04:38,040
‫C++に関する限り､ これはすべて完全に有効なC++である｡

55
00:04:38,040 --> 00:04:40,590
‫読んでいて､ 本当にひどい､ ひどい｡

56
00:04:40,800 --> 00:04:48,000
‫そこで､ このレベルのインデントをタブで維持し､ このレベルのスペーシングを維持することで､ 健全な状態を保つことができます｡

57
00:04:48,450 --> 00:04:52,380
‫現在､ これはブループリント・エディタには表示されていません｡

58
00:04:52,380 --> 00:04:58,410
‫これを表示させるには､ Unreal に表示すべき変数があることを少し警告する必要があります｡

59
00:04:58,410 --> 00:05:03,770
‫その方法は､ 前の行にyou property all capsと入力します｡

60
00:05:04,330 --> 00:05:11,170
‫それから括弧を開き､ キャメルケースと呼ばれる方法で､ 基本的に各単語の最初の文字を大文字にして､

61
00:05:11,170 --> 00:05:17,460
‫このように任意の場所に編集を入力し､ 括弧を閉じます｡

62
00:05:17,470 --> 00:05:19,420
‫この行の最後にセミコロンを付ける必要はありません｡

63
00:05:19,420 --> 00:05:26,770
‫この宣言は､ その下の行にある整数と同じ宣言の一部なので､ 正しくありません｡

64
00:05:27,160 --> 00:05:32,470
‫でも､ これを読んでいる私たちが楽をするために､ 別行動にしました｡

65
00:05:32,470 --> 00:05:39,100
‫だから､ 私たちはあなたの財産が30から私のint､ そして等号､ そして99のどこにでも編集することができます｡

66
00:05:39,100 --> 00:05:42,790
‫そして､ デフォルトでここにファイルを保存しておくことが重要です｡

67
00:05:42,790 --> 00:05:44,980
‫これを行うには､ コントロールキーを押す必要があります｡

68
00:05:45,100 --> 00:05:52,660
‫ファイルメニューを開くと､ ここにオプションで自動保存が打てるので､ 変更するたびに保存を打たなくてもいい｡

69
00:05:52,750 --> 00:05:53,890
‫それが今､ 私がしていることです｡

70
00:05:53,890 --> 00:06:03,100
‫これで､ エディタを閉じて､ 再コンパイルして､ 再び開けば､ 動くプラットフォームに新しい変数ができるわけです｡

71
00:06:03,100 --> 00:06:08,560
‫俳優 でも､ コードを変更するたびにエディターを閉じていたら､ ちょっと面倒ですよね｡

72
00:06:08,560 --> 00:06:12,160
‫そこで､ UnrealにはLive Codingという機能があります｡

73
00:06:12,160 --> 00:06:21,970
‫レベル設計図を閉じて､ 右下に､ キューブのセットが遠くに溶けていくように見えるボタンがあることをお見せします｡

74
00:06:21,970 --> 00:06:27,790
‫カーソルを合わせると､ ゲーム用のC++コードをその場で再コンパイルして再読み込みすると書いてあります｡

75
00:06:27,790 --> 00:06:36,340
‫このボタンをクリックすると､ コードをコンパイルした結果であるメッセージのログが表示されたターミナルが表示されます｡

76
00:06:36,730 --> 00:06:41,380
‫さて､ これは初めて実行されるものではないので､ 以前よりずっと速く実行されます｡

77
00:06:41,470 --> 00:06:46,210
‫そして完了すると､ ライブコーディングが成功したという通知が表示されます｡

78
00:06:46,450 --> 00:06:53,650
‫ライブコーディングが成功しなかった場合､ エラーの前に出てくるログの結果をコピーして､ 助けを求める必要があればQ&Aに投稿することが重要ですが､

79
00:06:53,650 --> 00:07:03,340
‫ダブルチェックをして､ あなたの構文が私が画面に入力したものと一致しているかどうかを確認することもできます｡

80
00:07:03,520 --> 00:07:10,630
‫単に人が作ったタイプミスで､ それが原因でコンパイルできないことがよくあります｡

81
00:07:10,630 --> 00:07:18,550
‫大文字と小文字の区別は非常に重要で､ セミコロンにも注意してください｡

82
00:07:18,550 --> 00:07:20,950
‫そういうのを入れ忘れる人がよくいるんですよ｡

83
00:07:21,100 --> 00:07:26,200
‫そこで今度は､ そのヘッダーファイルの新しい行に､ 独自の変数を追加することに挑戦してみたいと思います｡

84
00:07:26,200 --> 00:07:30,190
‫だから､ フロート型やブル型にして､ 違う名前をつける｡

85
00:07:30,190 --> 00:07:32,020
‫変数に同じ名前をつけることはできません｡

86
00:07:32,020 --> 00:07:33,100
‫違うものでなければならないのです｡

87
00:07:33,340 --> 00:07:34,990
‫デフォルト値を指定します｡

88
00:07:34,990 --> 00:07:38,050
‫つまり､ floatであれば､ デフォルトの値は､ そのような形式である必要があります｡

89
00:07:38,050 --> 00:07:39,970
‫何かポイント､ 何か､ 何か｡

90
00:07:39,970 --> 00:07:47,560
‫もしブーリアンなら､ trueかfalseのどちらかをすべて小文字にする必要があります｡

91
00:07:47,560 --> 00:07:55,210
‫ライブコーディングで再コンパイルして､ エラーが出るかどうか確認してください｡

92
00:07:55,300 --> 00:07:57,250
‫ビデオを一時停止して､ 行ってみてください｡

93
00:08:00,500 --> 00:08:00,890
‫なるほど｡

94
00:08:00,890 --> 00:08:01,790
‫お帰りなさい｡

95
00:08:02,060 --> 00:08:06,440
‫では､ Visual Studioのコードに戻り､ 変数を追加してみましょう｡

96
00:08:06,440 --> 00:08:09,470
‫そこでまず､ 新しいプロパティにすることにします｡

97
00:08:09,470 --> 00:08:13,400
‫括弧を開いてどこでも編集､ 括弧を閉じるというものです｡

98
00:08:13,400 --> 00:08:21,530
‫そして､ 新しい行には､ フロートタイプにして､ 伝統を守るためにマイフロートと呼ぶことにします｡

99
00:08:21,620 --> 00:08:31,420
‫そして､ デフォルトの値である5を与えることにします｡  99を入力し､ 行末にセミコロンを入れて､ 今入力した内容の構成要素がすべてここにあることを確認してください｡

100
00:08:32,060 --> 00:08:34,130
‫そして､ さらにスペースを追加していく｡

101
00:08:34,130 --> 00:08:36,980
‫複数の新しい行を追加していることに注目してください｡

102
00:08:36,980 --> 00:08:39,110
‫新しい線がいくつあってもいいんです｡

103
00:08:39,110 --> 00:08:40,670
‫ホワイトスペースは重要ではありません｡

104
00:08:40,670 --> 00:08:44,750
‫やはり､ そうなると､ また新しい財産を手に入れることになりますね｡

105
00:08:44,930 --> 00:08:51,920
‫Edit Anywhereはbool型で､ これをmy boolと呼び､ デフォルトの値をtrueにして､

106
00:08:51,920 --> 00:08:55,760
‫最後にセミコロンを付けます｡

107
00:08:55,760 --> 00:08:58,340
‫オートセーブがある場合は保存する必要はありませんが､ 保存してください｡

108
00:08:58,340 --> 00:09:01,220
‫そうでない場合は､ エディターに戻ります｡

109
00:09:01,220 --> 00:09:10,700
‫右下のライブコーディングボタンを押すと､ ログが表示され､ うまくいけば成功するんです｡

110
00:09:10,700 --> 00:09:16,490
‫ただ､ もし私が､ 安心できる素敵な緑色ではなく､ セミコロンとこの行の終わりを残すなどのミスを犯した場合､

111
00:09:16,490 --> 00:09:20,300
‫どうなるかをお見せしたいのです｡

112
00:09:20,300 --> 00:09:25,550
‫ログの最後には､ 代わりに赤いビルドの失敗が表示されます｡

113
00:09:25,550 --> 00:09:31,520
‫もしビルドに失敗したら､ まず最初に自分のコードをチェックし､

114
00:09:31,520 --> 00:09:42,290
‫私のコードと一致していることを確認してください｡

115
00:09:42,350 --> 00:09:49,220
‫とはいえ､ これからコードを修正して再コンパイルします｡ それが成功したら､ ログを閉じて､

116
00:09:49,220 --> 00:09:56,180
‫移動プラットフォームのアウトラインを見ることができます｡ 移動プラットフォームを選択して詳細ペインを見れば､

117
00:09:56,180 --> 00:10:00,590
‫作成したすべての変数を確認できます｡

118
00:10:00,590 --> 00:10:07,040
‫int､ float､ boolは､ それぞれデフォルトの値です｡

119
00:10:07,040 --> 00:10:10,040
‫さて､ 注目すべきは､ これらはあくまでもデフォルトであるということです｡

120
00:10:10,040 --> 00:10:16,730
‫そのため､ エディタ､ ブループリント､ またはレベルでこれらの値を上書きした後､ C++で変更すると､

121
00:10:16,730 --> 00:10:21,110
‫C++での変更はもはや効果を持ちません｡

122
00:10:21,110 --> 00:10:22,580
‫あくまでデフォルト値である｡

123
00:10:22,580 --> 00:10:28,580
‫ですから､ Blueprintで変更を加えた場合は､ それが優先され､ C++で行ったものは上書きされます｡

124
00:10:28,610 --> 00:10:29,360
‫ファンタスティックなもの

125
00:10:29,360 --> 00:10:35,420
‫最初の変数､ 最初のコードをC++で作成し､ ライブコーディングを使って持ってきたのです｡

126
00:10:35,420 --> 00:10:37,250
‫それでは､ 次回の講義でお会いしましょう｡

