﻿1
00:00:04,500 --> 00:00:05,430
‫こんにちは､ ようこそ｡

2
00:00:05,430 --> 00:00:16,740
‫この講義では､ C++による位置呼び出し関数の設定について学び､ 再生を開始したときに立方体を新しい場所に持っていくことができるようにします｡

3
00:00:16,740 --> 00:00:19,500
‫このように､ 遊び始めたら突然現れたのがこのキューブです｡

4
00:00:19,500 --> 00:00:23,520
‫それでは､ C++で関数がどのように動作するのか見てみましょう｡

5
00:00:23,580 --> 00:00:32,010
‫そこで､ BlueprintからC++にどのように関数が変換されるか､ 特にこの段階で関数を使用することについて見てみましょう｡

6
00:00:32,010 --> 00:00:36,390
‫このセクションの後半で､ 独自の作成方法について見ていきます｡

7
00:00:36,570 --> 00:00:40,260
‫では､ 記憶を呼び起こすために､ Blueprintでは関数がどのようなものかを説明します｡

8
00:00:40,260 --> 00:00:45,630
‫ノードがあり､ 左側に入力ピン､ 右側に出力ピンがあります｡ C++で同じことをするために､

9
00:00:45,630 --> 00:00:50,910
‫入力ピンに変数のようなものを接続することができます｡

10
00:00:50,910 --> 00:00:55,170
‫このように､ 関数名にはスペースを入れずに再度使用するようです｡

11
00:00:55,170 --> 00:01:00,720
‫そのため､ アクターノードを別々の単語として扱うのではなく､ キャメルケースでまとめて､

12
00:01:00,720 --> 00:01:03,690
‫括弧で囲んでいるのです｡

13
00:01:03,690 --> 00:01:10,440
‫また､ 括弧の中には入力のリストがあり､ これらの入力は1つ以上である可能性があります｡

14
00:01:10,440 --> 00:01:14,460
‫カンマで区切ってもいいのですが､ 今回は1つだけにしておきます｡

15
00:01:14,550 --> 00:01:18,000
‫そして､ これらの入力は､ 実は引数と呼ばれています｡

16
00:01:18,000 --> 00:01:20,670
‫なぜ議論にならないのか､ 私に聞かないでください｡

17
00:01:20,670 --> 00:01:27,870
‫だから､ これらの変数を入れることになるのですが､ 変数を渡す必要はないのです｡

18
00:01:27,870 --> 00:01:29,130
‫変数はそのための一つの手段に過ぎない｡

19
00:01:29,130 --> 00:01:30,960
‫値も渡すことができます｡

20
00:01:30,960 --> 00:01:36,600
‫つまり､ 今回のように1〜3の位置を設定したいだけなら､ C++でもF

21
00:01:36,600 --> 00:01:44,820
‫Vectorコンストラクタを関数のカッコの中で直接使えば可能なのです｡

22
00:01:44,820 --> 00:01:51,060
‫つまり､ 変数内部に含まれる値ではなく､ 特定の値に設定するということですね｡

23
00:01:51,060 --> 00:01:52,620
‫では､ それをやってみましょう｡

24
00:01:52,620 --> 00:02:01,710
‫Visual Studioのコードに移動して､ My Vectorを更新した直後のBeginのプレイを見てみます｡

25
00:02:01,950 --> 00:02:07,470
‫新しい行をいくつか追加して､ set actor locationとタイプし始めます｡

26
00:02:07,470 --> 00:02:13,020
‫C++では名前が正確に一致しなければならないので､ 正しくタイプしてください｡

27
00:02:13,020 --> 00:02:18,360
‫それから括弧を開いて､ この中で新しいFベクトル値を構築していきます｡

28
00:02:18,360 --> 00:02:22,950
‫そこで､ 再びFベクトルオープン括弧を入力します｡

29
00:02:22,950 --> 00:02:28,470
‫そして､ ここでは実際にF Vectorのコンストラクタに引数を渡しています｡

30
00:02:28,470 --> 00:02:34,320
‫つまり､ これは関数を呼び出して､ その関数の値を別の関数に渡すのと非常によく似ています｡

31
00:02:34,320 --> 00:02:36,870
‫でも､ そういう話はまた後ほど｡

32
00:02:36,870 --> 00:02:43,560
‫そして､ ここでできることは､ 1､ カンマ2､ カンマ3と入力することで､ fベクトル1､ 2､ 3がセットアクターロケーションに渡されることを意味し､

33
00:02:43,560 --> 00:02:50,910
‫完了した行の最後にセミコロンを置くことができます｡

34
00:02:50,910 --> 00:02:53,070
‫では､ アンリアルに入りましょう｡

35
00:02:53,070 --> 00:02:56,490
‫さっそくコンパイルしてみましょう｡

36
00:02:56,490 --> 00:03:02,550
‫この効果を確認するために､ 移動するプラットフォームアクタに移動する必要があります｡ このアクタには実際にはコンポーネントがないことにお気づきでしょう｡

37
00:03:02,550 --> 00:03:09,840
‫つまり､ コンポーネントのみが位置を与えることができるため､ 実際には位置を持つことができません｡

38
00:03:09,840 --> 00:03:16,170
‫そこで､ この動くプラットフォームアクターに立方体のようなものを追加するか､

39
00:03:16,170 --> 00:03:27,210
‫詳細ペインの広告に移動して「キューブ」を選択すると､ 立方体が表示されます｡

40
00:03:27,210 --> 00:03:34,110
‫移動するプラットフォームをクリックし､ ツールバーのイジェクトボタンを使ってイジェクトし､ 移動するプラットフォームをダブルクリックすればいいのです｡

41
00:03:34,110 --> 00:03:37,980
‫そして､ 移動するプラットフォームの場所に移動するのがわかると思います｡

42
00:03:37,980 --> 00:03:45,810
‫そして､ 異常値またはシーンビューでそれを選択した状態で､ 詳細ペインを見ると､ それを確認することができます｡

43
00:03:45,810 --> 00:03:51,720
‫案の定､ トランスフォームによると､ その位置は1､ 2､ 3である｡

44
00:03:51,720 --> 00:03:55,530
‫C++のコードで正しく設定しました｡

45
00:03:55,530 --> 00:04:04,500
‫さて､ 次の部分ですが､ 私のx変数から私のベクトルのY値を設定する場合､ ちょうど混乱することになります｡

46
00:04:04,500 --> 00:04:06,780
‫だから､ その行を削除して､ 私のためにプレイを始めましょう｡

47
00:04:06,780 --> 00:04:16,080
‫19行目です｡ 余分な空行をいくつか削除して､ スーパービッグインプレイとセットアクターロケーションの間に1行だけ入るようにします｡

48
00:04:16,320 --> 00:04:22,230
‫それなら､ その場でfベクトルを構成するのではなく､ 変数を使うことにチャレンジしてみたいですね｡

49
00:04:22,230 --> 00:04:26,580
‫そこで､ 使っているFベクトルコンストラクタを置き換えてみましょう｡

50
00:04:26,610 --> 00:04:31,800
‫マイベクターの位置が変わるように更新します｡

51
00:04:31,800 --> 00:04:35,010
‫もっとプレーヤーに近いところに持ってこれないか？

52
00:04:35,010 --> 00:04:40,680
‫再生ボタンを押すと､ 実はキューブがプレイヤーから見える場所に配置されているんです｡

53
00:04:40,680 --> 00:04:42,480
‫ビデオを一時停止して､ 試してみてください｡

54
00:04:45,390 --> 00:04:47,080
‫こんにちは､ お帰りなさい｡

55
00:04:47,100 --> 00:04:55,260
‫その方法は､ このFベクトルとその括弧､ そして引数を削除することです｡

56
00:04:55,260 --> 00:05:02,520
‫そして､ アクターの位置を設定するための引数として､ 私のベクトルを入力します｡

57
00:05:02,520 --> 00:05:10,920
‫つまり､ 再生開始時にアクターの位置を設定するために､ my vector変数内の値を使用することになります｡

58
00:05:10,920 --> 00:05:14,220
‫では､ アンリアルに入りましょう......一旦､ 再生を停止します｡

59
00:05:14,220 --> 00:05:18,750
‫それでは､ 三人称視点のキャラクターの位置を見てみましょう｡

60
00:05:18,750 --> 00:05:22,110
‫ここにこのような場所があることがわかります｡

61
00:05:22,110 --> 00:05:25,080
‫実際にできることは､ それぞれを手動でコピーすることですね｡

62
00:05:25,080 --> 00:05:30,510
‫実際に､ 場所を右クリックして､ コピーをクリックし､ 移動用のプラットフォームへ移動することができます｡

63
00:05:30,780 --> 00:05:39,540
‫ベクターがあるところで右クリックし､ ペーストを押すと､ ベクター全体がそこにペーストされます｡

64
00:05:39,540 --> 00:05:44,010
‫これで､ プラットフォームキューブを動かすのは､ 000のこっちだとわかったわけです｡

65
00:05:44,010 --> 00:05:48,810
‫でも､ 再生ボタンを押しても､ 実はコンパイルを忘れていて､ あまり何も起きないんです｡

66
00:05:48,810 --> 00:05:53,280
‫これは､ C++に変更があった場合､ コンパイルする必要があることを常に覚えておくことです｡

67
00:05:53,280 --> 00:05:59,790
‫そのため､ コンパイルボタンを押す必要があり､ それが完了したときに初めて､ 私たちが行った変更を実際に見ることができるのです｡

68
00:05:59,790 --> 00:06:01,500
‫では､ さっそく再生を押してみましょう｡

69
00:06:01,500 --> 00:06:02,310
‫そして､ そこにあるのは

70
00:06:02,310 --> 00:06:06,870
‫プレイヤーの目の前に立方体が立っているんです｡

71
00:06:06,870 --> 00:06:11,610
‫というわけで､ C++のコードを使ってビギンプレイで動かすことに成功しました｡

72
00:06:11,610 --> 00:06:12,390
‫素晴らしい内容です｡

73
00:06:12,390 --> 00:06:14,070
‫それでは､ 次回の講義でお会いしましょう｡

