﻿1
00:00:04,310 --> 00:00:05,510
‫こんにちは､ ようこそ｡

2
00:00:05,510 --> 00:00:15,830
‫このレクチャーでは､ ゴーグルスタチューを装着し､ ドアのアルコーブに刺したときの物理シミュレーションをオフにします｡

3
00:00:15,830 --> 00:00:16,850
‫それでは､ どうぞ｡

4
00:00:16,850 --> 00:00:22,580
‫扉と一緒に倒れ､ 地下の地下室にアクセスできるようになりました｡

5
00:00:22,580 --> 00:00:24,620
‫さっそく潜入してみましょう｡

6
00:00:25,390 --> 00:00:31,450
‫トリガーコンポーネント内にアクターがある場合､ アクターは物理シミュレーションを停止し､

7
00:00:31,450 --> 00:00:38,710
‫トリガーコンポーネントに接続され､ 我々と一緒に移動するようにします｡

8
00:00:39,160 --> 00:00:41,160
‫どうすればいいのでしょうか｡

9
00:00:41,170 --> 00:00:44,590
‫さて､ これから必要な機能は以下の通りです｡

10
00:00:44,590 --> 00:00:48,610
‫コンポーネントへのアタッチというアクターの機能が必要になってきます｡

11
00:00:48,610 --> 00:00:55,810
‫これにより､ アクターとそのルートコンポーネントを別のコンポーネントにアタッチすることができ､

12
00:00:55,810 --> 00:01:00,820
‫アクターは供給されたコンポーネントと一緒に動くことになります｡

13
00:01:01,220 --> 00:01:07,470
‫それから､ 物理シミュレーションをさせないためにもう一つ必要なのは､ プリミティブコンポーネントそのものです｡

14
00:01:07,480 --> 00:01:09,760
‫set simulate physicsという機能があります｡

15
00:01:09,760 --> 00:01:16,840
‫これはブール値を取るので､ これをfalseにすると､ 基本的にデタッチャブルを停止します｡

16
00:01:16,870 --> 00:01:19,090
‫さて､ パズルのピースが一つできました｡

17
00:01:19,090 --> 00:01:22,670
‫私たちは､ すでに許容範囲の俳優を手にしています｡

18
00:01:22,690 --> 00:01:29,260
‫さて､ そのアクターのルートコンポーネントを取得して､ それがあなたのプリミティブコンポーネントであるかどうかを確認する必要があります｡

19
00:01:29,260 --> 00:01:34,060
‫なぜなら､ アクターはそのルートにプリミティブコンポーネントを持つことが当たり前ではないからです｡

20
00:01:34,120 --> 00:01:36,760
‫ただ､ 根底にシーンの構成要素があればいいんです｡

21
00:01:37,120 --> 00:01:43,420
‫そこで､ アクターポイントに移動して､ arrow get rootコンポーネントのnullポインタでないことが分かっているif文の中で､

22
00:01:43,420 --> 00:01:48,880
‫この処理を行うようにします｡

23
00:01:48,880 --> 00:01:56,150
‫そして､ この戻り値の型を見てもらうと､ U seenのコンポーネントであることがわかる｡

24
00:01:56,170 --> 00:02:04,780
‫さて､ これはyouプリミティブコンポーネントの親ですが､ この型が実際にyouプリミティブコンポーネントであることを意味するものではありません｡

25
00:02:04,900 --> 00:02:07,170
‫では､ この場合どうすればいいのか｡

26
00:02:07,180 --> 00:02:14,390
‫さて､ プリミティブなコンポーネントがあるかどうかを調べるには､ キャストと呼ばれる関数を使用します｡

27
00:02:14,410 --> 00:02:18,010
‫ここでも､ コンパイル時にパラメータを取る関数の一つである｡

28
00:02:18,010 --> 00:02:21,940
‫そこで､ 角括弧を使い､ それを与えることができるのです｡

29
00:02:21,940 --> 00:02:30,400
‫ポインタを自分のプリミティブ・コンポーネントにキャストして､ 角括弧を閉じ､ 実際のランタイム・パラメータ､

30
00:02:30,400 --> 00:02:38,290
‫ランタイム引数には括弧を付けて､ このアクター取得用ルート・コンポーネントを含めます｡

31
00:02:38,290 --> 00:02:44,770
‫つまり､ このYou've seenコンポーネントが実際にYouプリミティブコンポーネントであるかどうかをチェックし､

32
00:02:44,770 --> 00:02:51,580
‫出力はそのYouプリミティブコンポーネントへのポインタか､ NULLポインタになります｡

33
00:02:51,580 --> 00:02:55,600
‫もし､ 実際にプリミティブコンポーネントでないシーンコンポーネントがあったとしたら｡

34
00:02:55,600 --> 00:02:58,180
‫そこで､ そのコンポーネントポインタを格納することにしましょう｡

35
00:02:58,510 --> 00:03:03,850
‫つまり､ プリミティブなコンポーネント・ポインタになるわけで､ これをコンポーネントと呼ぶことにする｡

36
00:03:04,510 --> 00:03:08,950
‫そして､ これを使う前に､ NULLかどうかを確認する必要があります｡

37
00:03:08,950 --> 00:03:18,570
‫そこで､ もしコンポーネントがNULLポインタと等しくなければ､ そのコンポーネントポインタで何かをすることができる､ と言うことになります｡

38
00:03:18,580 --> 00:03:22,630
‫そこで､ アタッチメントをセットして､ 自分で試してみることに挑戦してみたいと思います｡

39
00:03:22,630 --> 00:03:28,840
‫リンク先のドキュメントを開き､ それを読んでみて､ 何ができると言っているのか意味を理解するのです｡

40
00:03:28,990 --> 00:03:31,660
‫アクターを使用して､ 現在のコンポーネントをアタッチします｡

41
00:03:31,660 --> 00:03:40,930
‫C++では､ このキーワードを使って､ カレントオブジェクトのポインタを取得することができる｡

42
00:03:40,930 --> 00:03:50,530
‫次に､ その関数の2番目の引数には､ Fアタッチメント変換ルールコロンコロンキープワールド変換を使用する必要があります｡

43
00:03:50,530 --> 00:03:54,340
‫その意味するところは､ ドキュメントをご覧になればおわかりになると思います｡

44
00:03:54,610 --> 00:04:00,730
‫そして最後に､ 物理を無効にするためにキャストしたコンポーネントを使用します｡ どの関数とどのパラメータを使用するかは､

45
00:04:00,760 --> 00:04:03,640
‫ドキュメントを参照してください｡

46
00:04:03,640 --> 00:04:06,580
‫ポーズビデオを入れて､ GOを出す論法｡

47
00:04:09,700 --> 00:04:10,720
‫やあ､ お帰りなさい｡

48
00:04:10,750 --> 00:04:13,870
‫そこでまず､ コンポーネントを使って物理を無効化することにします｡

49
00:04:13,870 --> 00:04:19,750
‫つまり､ コンポーネントの矢印セット､ 物理シミュレーションになるわけです｡

50
00:04:20,700 --> 00:04:21,540
‫偽り｡

51
00:04:21,570 --> 00:04:26,970
‫キャストの行の最後にセミコロンが抜けているようなので､ それも入れておきましょう｡

52
00:04:27,300 --> 00:04:29,970
‫そして､ アクターを装着する｡

53
00:04:29,970 --> 00:04:35,460
‫つまり､ アクター・アロー・アタッチ・トゥ・コンポーネントとなるわけです｡

54
00:04:36,120 --> 00:04:38,850
‫添付している部品はこれです｡

55
00:04:38,850 --> 00:04:41,910
‫では､ この第2パラメータを見てみましょう｡

56
00:04:41,910 --> 00:04:50,220
‫この F attached transform rules タイプは明らかに構造体で､ 基本的にアタッチメントをどのように処理すべきかを示しています｡

57
00:04:50,220 --> 00:04:53,340
‫この中に既成のものがいくつかあります｡

58
00:04:53,340 --> 00:04:59,190
‫ヒープ相対変換がありますが､ これは基本的にオブジェクトをアタッチするときに移動させるものです｡

59
00:04:59,190 --> 00:05:00,330
‫だから､ それは困るんです｡

60
00:05:00,750 --> 00:05:03,510
‫私たちが望むのは､ 世界を変革し続けることです｡

61
00:05:03,510 --> 00:05:04,950
‫だから､ それを利用するのです｡

62
00:05:05,490 --> 00:05:14,370
‫つまり､ F attachment transform rules colon, colon keep world transform, and put a semicolon at the end of that

63
00:05:14,370 --> 00:05:16,470
‫line and recompile.です｡

64
00:05:16,500 --> 00:05:17,100
‫ということで､ 終了です｡

65
00:05:17,100 --> 00:05:25,410
‫エディタに飛び込んで､ 再生ボタンを押して､ ガーゴイルを捕まえて､ 床の間に貼り付けましょう｡

66
00:05:25,830 --> 00:05:36,210
‫そして､ 床と一緒に下がっているのがわかると思いますが､ 床が完全に抜けていて､ 地下室にアクセスできるようになっているのです｡

67
00:05:36,210 --> 00:05:37,800
‫ファンタスティックなもの

68
00:05:37,800 --> 00:05:47,130
‫さて､ 今回の講義では､ アクターとコンポーネントのアタッチメントについて､ また､ キャストによる型変換の方法について学びました｡

69
00:05:47,130 --> 00:05:51,000
‫型がコンバーチブルなら､ 次の講義でお会いしましょう｡

