﻿1
00:00:04,320 --> 00:00:05,310
‫こんにちは､ ようこそ｡

2
00:00:05,310 --> 00:00:15,150
‫この講義では､ C++から黒板キーを設定することで､ Begin Play時にプレイヤーの位置を設定できるようにします｡

3
00:00:15,150 --> 00:00:17,100
‫では､ その仕組みに飛び込んでみましょう｡

4
00:00:17,960 --> 00:00:18,170
‫なるほど｡

5
00:00:18,170 --> 00:00:28,100
‫そこで､ 前回の講義でお話したように､ ゲームプレイの状態を黒板に設定し､ AIがそれに基づき行動できるようにしたいと思います｡

6
00:00:28,340 --> 00:00:37,430
‫黒板はこのようになっていて､ 現在このセルフアクティブキーを持っていますが､ ここには他のキーがありません｡

7
00:00:37,430 --> 00:00:40,970
‫この新しいキーボタンをクリックするように､ キーを追加することができます｡

8
00:00:40,970 --> 00:00:42,770
‫種類を変更することができます｡

9
00:00:43,250 --> 00:00:50,090
‫実際にはアクターのための型などはなく､ 他のすべてのもののためのオブジェクトという漠然とした型の下に入るだけなのです｡

10
00:00:50,090 --> 00:00:56,270
‫ボール､ クラス､ 敵などがあります｡  しかし､ そのオブジェクトをどのような種類にするかは､

11
00:00:56,270 --> 00:01:01,310
‫黒板の詳細でドロップダウンして､ どのベースクラスを選択するかで決めることができます｡

12
00:01:01,310 --> 00:01:05,840
‫例えば､ ここではセルフアクターはアクタータイプであると言っているわけです｡

13
00:01:06,020 --> 00:01:08,300
‫これは､ デフォルトでここに入れてあるだけです｡

14
00:01:08,300 --> 00:01:12,740
‫しかし､ ここで行いたいのは､ 新しいキーを設定することです｡

15
00:01:12,920 --> 00:01:19,700
‫そのためには､ C++でどうやったらアクセスできるかを調べる必要があります｡

16
00:01:20,090 --> 00:01:32,810
‫つまり､ AIコントローラで黒板取得コンポーネントを実行することで､ 黒板を手に入れることができる簡単な機能をすでに持っているのです｡

17
00:01:32,810 --> 00:01:45,650
‫黒板コンポーネントを取得し､ 黒板コンポーネントドットhを見て､ この中に何があるのか見てみましょう｡

18
00:01:45,650 --> 00:01:55,040
‫set keyやset blackboardのようなことをしたいのですが､ 実はset valueと同じくらいシンプルなことなのです｡

19
00:01:55,040 --> 00:02:06,860
‫この黒板コンポーネントには､ さまざまな値を設定するための関数がたくさん用意されています｡

20
00:02:06,910 --> 00:02:14,900
‫それから､ 値をオブジェクトとして設定するか､ ここで利用可能なすべての異なるタイプをクラスとして設定することができます｡

21
00:02:15,140 --> 00:02:16,850
‫では､ それをやってみましょう｡

22
00:02:16,850 --> 00:02:25,700
‫C++に移動して､ プレイヤーのポーンの位置を変数の1つとして設定してみることにします｡

23
00:02:25,700 --> 00:02:31,250
‫そこで､ まず最初に黒板の部品を手に入れることを行います｡

24
00:02:31,250 --> 00:02:34,940
‫そこで､ 試しに黒板コンポーネントを取得してみましょう｡

25
00:02:34,940 --> 00:02:37,070
‫それから､ 正しいインクルージョンが必要です｡

26
00:02:37,070 --> 00:02:44,060
‫そこで､ Hの黒板コンポーネントにカーソルを合わせると､ ビヘイビアツリーのフォワードスラッシュの黒板コンポーネントを含める必要があることがわかりますね｡

27
00:02:44,060 --> 00:02:53,600
‫では､ ハッシュインクルードしてみましょう｡ すると､ ビヘイビアツリーのフォワードスラッシュ黒板コンポーネントHになるはずです｡

28
00:02:53,960 --> 00:02:59,180
‫これで､ その型に矢印演算子を使えば､ 実行できるはずです｡

29
00:02:59,180 --> 00:03:03,260
‫この場合､ ベクトルを設定したいのです｡

30
00:03:03,260 --> 00:03:04,370
‫場所を設定したい｡

31
00:03:04,370 --> 00:03:12,950
‫ベクターを設定し､ 行全体をコピーするのではなく､ ベクターだけを設定します｡ そして､ 最初のパラメーターは設定しようとしている名前なので､

32
00:03:12,980 --> 00:03:17,630
‫テキストマクロを使用することができます｡

33
00:03:17,720 --> 00:03:23,420
‫Begin Playの中で呼び出しているので､

34
00:03:23,420 --> 00:03:32,630
‫開始時の位置情報を与えてくれます｡

35
00:03:32,690 --> 00:03:43,040
‫これをアンコメントして､ プレイヤーのポーンの矢印とアクターの位置情報をこのように取得し､ セミコロンで行を終えます｡

36
00:03:43,040 --> 00:03:47,750
‫そして､ 黒板の値を設定して行くだけの簡単なものです｡

37
00:03:47,750 --> 00:03:52,970
‫そこで､ もう半分の課題として､ 黒板にキーを作成することになります｡

38
00:03:52,970 --> 00:03:57,140
‫黒板にキーを追加して､ それが正しい型､ 正しい名前であることを確認し､ すべてが正しく機能すれば､

39
00:03:57,140 --> 00:04:00,140
‫実行時にその値をチェックすることができるはずです｡

40
00:04:00,140 --> 00:04:01,340
‫前回の講義を覚えていますか？

41
00:04:01,340 --> 00:04:04,040
‫ビヘイビアツリーを見る方法を見ました｡

42
00:04:04,040 --> 00:04:04,850
‫同じことをしてもいいんです｡

43
00:04:04,850 --> 00:04:12,090
‫プレイ中に実行時に黒板を検査すれば､ C++のコードでどのような値が設定されたかが分かるはずです｡

44
00:04:12,110 --> 00:04:14,420
‫ビデオを一時停止して､ 試してみてください｡

45
00:04:15,220 --> 00:04:15,490
‫なるほど｡

46
00:04:15,490 --> 00:04:16,290
‫お帰りなさい｡

47
00:04:16,300 --> 00:04:21,370
‫まだコンパイルしていないので､ エディターでコンパイルを実行します｡

48
00:04:21,370 --> 00:04:23,710
‫そして､ 新たに黒板キーを追加します｡

49
00:04:23,710 --> 00:04:28,600
‫そしてこの場合､ 名前を正しく､ 型を正しくしないと､ うまくいかないのです｡

50
00:04:28,600 --> 00:04:38,740
‫プレーヤー・ロケーションと呼ぶベクター・キーができました｡

51
00:04:38,740 --> 00:04:41,170
‫そう､ クールビーンズがあるんです｡

52
00:04:41,560 --> 00:04:48,940
‫そして､ これから行うのは､ 黒板の詳細が問題ないことを確認することです｡

53
00:04:48,940 --> 00:04:51,550
‫そうそう､ 欲を言えば説明文を追加できる名前がある｡

54
00:04:51,550 --> 00:04:52,570
‫型はベクトルである｡

55
00:04:52,570 --> 00:04:53,340
‫かっこいいですね｡

56
00:04:53,340 --> 00:04:55,170
‫例えば､ 選択します｡

57
00:04:55,180 --> 00:05:00,190
‫これは､ 今のところ特に興味のない変数です｡

58
00:05:00,190 --> 00:05:00,700
‫かっこいい｡

59
00:05:00,700 --> 00:05:06,520
‫コードがコンパイルされたので､ 再生ボタンを押して､ 黒板の値を検査できるかどうか見てみましょう｡

60
00:05:06,520 --> 00:05:12,370
‫黒板の上に移動して､ ドロップダウンで関連するものを選択することができるのがわかります｡

61
00:05:12,370 --> 00:05:19,270
‫この世界には1つしかありませんが､ セルフアクターは設定されていませんが､ プレイヤーの位置は確かに設定されているのがわかりますね｡

62
00:05:19,270 --> 00:05:21,520
‫それがおおよそ正しいかどうか､ 確認してみましょう｡

63
00:05:21,520 --> 00:05:27,730
‫もし私が f h d 所有する場合､ 私のプレーヤーを見て､ プレーヤーの場所を見てください｡

64
00:05:27,730 --> 00:05:28,420
‫見ることができます｡

65
00:05:28,420 --> 00:05:30,010
‫はい､ ほぼ正解です｡

66
00:05:30,010 --> 00:05:33,220
‫2000 -5100.

67
00:05:33,790 --> 00:05:36,400
‫2000 -5100.

68
00:05:36,400 --> 00:05:39,970
‫つまり､ C++から通して値を設定しているわけです｡

69
00:05:39,970 --> 00:05:40,840
‫単純なことです｡

70
00:05:40,990 --> 00:05:44,680
‫ビヘイビアツリーとのインターフェースも見えてきました｡

71
00:05:44,680 --> 00:05:51,130
‫次回の講義では､ 実際にビヘイビアツリーを構成して､ 何かをさせるということを見ていきます｡

72
00:05:51,130 --> 00:05:52,150
‫ワクワクするところ｡

73
00:05:52,180 --> 00:05:52,930
‫現地でお会いしましょう｡

