﻿1
00:00:04,430 --> 00:00:06,020
‫こんにちは､ この講義を歓迎します｡

2
00:00:06,020 --> 00:00:11,810
‫これらの機能性ノードを使用して､ 要求に応じてシーン内のオブジェクトを操作する予定です｡

3
00:00:11,810 --> 00:00:17,270
‫スペースキーを押すと､ この立方体のウサギを上下に跳ねさせることができるわけです｡

4
00:00:17,270 --> 00:00:19,700
‫さっそく､ この仕組みを見てみましょう｡

5
00:00:21,290 --> 00:00:24,320
‫だから､ シーン内のオブジェクトからデータを取り出せるのは､ とても良いことだと思います｡

6
00:00:24,320 --> 00:00:26,710
‫しかし､ 彼らに何かをさせるというのはどうでしょうか？

7
00:00:26,720 --> 00:00:33,830
‫私がやりたいのは､ この物理システムを使って､ 立方体に力を加えて空中に飛び上がらせたり､

8
00:00:33,830 --> 00:00:41,570
‫何かに反応して実際に行動できるようなプログラミングを初めて行うことです｡

9
00:00:41,990 --> 00:00:48,500
‫そこで､ 実際にキーを押したときに反応するようにしたいのです｡

10
00:00:48,860 --> 00:00:51,590
‫このBegin Playというイベントは､ 過去にも利用したことがあります｡

11
00:00:51,590 --> 00:00:54,140
‫ここでは､ 新しいイベントを紹介したいと思います｡

12
00:00:54,440 --> 00:00:59,300
‫これから行うことは､ レベル設計図で右クリックして､ Space

13
00:00:59,300 --> 00:01:01,730
‫Barを検索することです｡

14
00:01:02,180 --> 00:01:06,830
‫そして､ キーボードイベントスペースバーというカテゴリーで､ キーボードイベントが表示されるのがわかります｡

15
00:01:06,830 --> 00:01:13,010
‫これをクリックすると､ 新しいイベントノードが表示されます｡ この赤いノードは､ 何かが起こるべきタイミングを知らせてくれます｡

16
00:01:13,100 --> 00:01:19,820
‫そして､ スペースバーが押されたとき用と離されたとき用の2つの実行ピンがあるのがわかると思います｡

17
00:01:20,060 --> 00:01:29,900
‫では､ これを使って実際に立方体の質量を表示してみましょう｡ このためには､ これらのノードをすべて選択します｡

18
00:01:29,900 --> 00:01:39,680
‫それらを所定の位置にドラッグダウンして､ 押された実行ピンからprint stringノードの入力ピンまでドラッグすることができるのです｡

19
00:01:40,310 --> 00:01:51,080
‫つまり､ スペースキーが押されたときと､ 再生が始まったときのどちらかで実行されることになります｡

20
00:01:51,080 --> 00:01:54,260
‫それでは､ 再生ボタンを押して､ 実際に動作しているところをご覧ください｡

21
00:01:54,260 --> 00:02:00,320
‫だから､ スペースバーを再生し始めると千が出て､ また千が出てくるようにした｡

22
00:02:01,220 --> 00:02:05,180
‫これを実際に上方向に力を加えるようにしたいのです｡

23
00:02:05,570 --> 00:02:11,750
‫さて､ 実際には力をかけるのではなく､ インパルスというものをかけさせたいのです｡

24
00:02:11,750 --> 00:02:17,870
‫さて､ この2つの違いは､ 物理学的に言うと､ 力は一定の時間をかけて発生するのに対し､

25
00:02:17,870 --> 00:02:22,040
‫インパルスは瞬間的に発生するということです｡

26
00:02:22,040 --> 00:02:29,540
‫これから行うのは､ print stringノードを削除し､ get massとconversionノードを同様に削除することです｡

27
00:02:29,630 --> 00:02:34,130
‫しかし､ キューブとスタティックメッシュノードは残しておくことにします｡

28
00:02:34,130 --> 00:02:35,660
‫これで､ 静的メッシュの参照ができました｡

29
00:02:35,660 --> 00:02:41,900
‫そこで､ これを抜いたら､ キューブに衝立を付けられるようなものを探そうというわけです｡

30
00:02:41,900 --> 00:02:48,620
‫このとき､ 検索メニューの文脈依存性をオンにしていることに注意してください｡

31
00:02:48,950 --> 00:02:58,700
‫これは非常に重要なことで､ 静的メッシュコンポーネントオブジェクトを使用するノードに絞り込むことを意味します｡

32
00:02:58,700 --> 00:03:05,570
‫ここでインパルスを探し､ impulseと入力すると､ ここにadd impulseノードがあるのがわかります｡

33
00:03:05,570 --> 00:03:08,180
‫いくつかありますが､ 広告のインパルスがありますね｡

34
00:03:08,180 --> 00:03:09,830
‫それを先取りしてみましょう｡

35
00:03:10,250 --> 00:03:15,980
‫実行ピンがあり､ いつインパルスを追加すべきかを教えてくれますので､ 先に進み､

36
00:03:15,980 --> 00:03:20,720
‫スペースバーを押した実行ノードに即座に接続できます｡

37
00:03:20,720 --> 00:03:27,560
‫つまり､ スペースバーを押したときにインパルスが加算されるということになるはずです｡

38
00:03:27,980 --> 00:03:35,360
‫このように､ 静的メッシュコンポーネントにインパルスを追加していますが､ このノードには他にも記入する必要のあるプロパティがあり､

39
00:03:35,360 --> 00:03:42,260
‫特にインパルス自体の値を記入する必要があります｡

40
00:03:42,260 --> 00:03:47,600
‫さて､ これにはX､ Y､ Zの3つのパーツがあります｡

41
00:03:47,600 --> 00:03:56,720
‫実は､ この3つの部分があるとき､ ベクトルと言われるのですが､ ベクトルについては､ 後の講義でもっと詳しく説明することにします｡

42
00:03:56,990 --> 00:04:05,030
‫このX､ Y､ Zは､ 実際に移動ウィジェット､ キューブ､ そしてビューポートの左下隅に表示されるX､

43
00:04:05,030 --> 00:04:10,040
‫Y､ Zに対応していることに注意してください｡

44
00:04:10,040 --> 00:04:11,450
‫X､ Y､ Zがあるのがわかると思います｡

45
00:04:11,480 --> 00:04:17,390
‫これらの価値観が基本的にどの方向に関係しているかを示してくれているのです｡

46
00:04:17,630 --> 00:04:20,990
‫そこで､ どうすればいいかというと､ 値を追加すればいいのです｡

47
00:04:20,990 --> 00:04:29,360
‫もし上昇させたいのであれば､ Z方向で､ ここに値を入れることができます｡

48
00:04:29,360 --> 00:04:30,680
‫試してみよう

49
00:04:30,680 --> 00:04:33,980
‫再生ボタンを押して､ スペースキーを押してみましょう｡

50
00:04:34,400 --> 00:04:37,160
‫では､ 今のところ何も起きていないかというと､ そうではありません｡

51
00:04:37,160 --> 00:04:42,500
‫そして､ その理由は､ ここに入力した値が小さすぎるからです｡

52
00:04:42,770 --> 00:04:50,660
‫そこで､ インパルスを実際に空中に飛び出すような値に微調整することに挑戦してほしい｡

53
00:04:51,020 --> 00:04:55,100
‫そこで､ 質量に100を掛けてみてください｡

54
00:04:55,100 --> 00:05:02,300
‫この方法で､ 少なくとも立方体を動かすことができるかもしれません｡

55
00:05:02,330 --> 00:05:08,570
‫この価値観で､ 見た目が気に入り､ 自分にとって楽しい行動をするものを手に入れる｡

56
00:05:08,690 --> 00:05:12,950
‫また､ 代わりにXとYに追加していたらどうでしょう？

57
00:05:12,950 --> 00:05:15,360
‫そこでは､ どのような異なる効果が得られるのでしょうか？

58
00:05:15,380 --> 00:05:17,450
‫ビデオを一時停止して､ 試してみてください｡

59
00:05:20,870 --> 00:05:21,580
‫なるほど｡

60
00:05:21,590 --> 00:05:22,420
‫お帰りなさい｡

61
00:05:22,430 --> 00:05:25,220
‫そこで､ これを試してみることにした｡

62
00:05:25,220 --> 00:05:30,530
‫アスタリスクに100を掛けたものが､

63
00:05:30,530 --> 00:05:36,500
‫大まかな目安になります｡

64
00:05:36,500 --> 00:05:38,720
‫小さなバニーホップをしているのがわかると思います｡

65
00:05:38,750 --> 00:05:39,680
‫お得感がない｡

66
00:05:39,680 --> 00:05:44,390
‫そして､ スペースバーを連打すると､ 少しづつ空中に上がっていくようになりました｡

67
00:05:44,630 --> 00:05:50,570
‫そこで､ 実はこの値全体をもう一度アスタリスク4で掛け合わせることにしています｡

68
00:05:50,570 --> 00:05:55,010
‫だから､ 4倍の値で再生ボタンを押して､ 空中に飛び出させる｡

69
00:05:55,010 --> 00:05:59,090
‫それが､ 今はもうちょっとまともなバニーホップができるようになったんですよ｡

70
00:05:59,090 --> 00:06:04,490
‫質量をかけなければならないのは､ この式のためです｡

71
00:06:04,490 --> 00:06:09,320
‫その力は､ 実は質量に加速度をかけたものに等しいのです｡

72
00:06:09,320 --> 00:06:16,340
‫つまり､ ある加速度が欲しいなら､ それに質量を掛ければ､ 必要な力が得られるということです｡

73
00:06:16,460 --> 00:06:27,560
‫加速度ではなく､ 速度の変化を求める場合は､ 質量と掛け合わせることになります｡

74
00:06:27,560 --> 00:06:34,970
‫つまり､ 速度を 400 倍にしたいのですが､ この場合､ Unreal ではセンチメートルを主な単位としているので､

75
00:06:34,970 --> 00:06:44,240
‫毎秒 4 メートルとなり､ 400 に立方体の質量を掛けると､ 必要な推進力が得られます｡

76
00:06:44,540 --> 00:06:48,320
‫しかし､ 実際にはその計算をしたくなければする必要はないのです｡

77
00:06:48,320 --> 00:06:54,170
‫ベロシティを変更したい場合は､ ノードの下にある小さなチェックボックスで､ ベロシティ変更（Velocity Change）､

78
00:06:54,170 --> 00:06:58,670
‫略してval変更（val change）とラベル付けされているのがわかります｡

79
00:06:58,670 --> 00:07:05,360
‫チェックすると､ 基本的に質量を完全に無視して､ 好きな速度が適用されます｡

80
00:07:05,360 --> 00:07:15,620
‫Zに直接400と入力すると､ 上方向に400､ 毎秒400cmの速度が適用されるのです｡

81
00:07:15,620 --> 00:07:20,600
‫そこで､ 先に再生してみると､ インパクトがまったく同じであることがわかると思います｡

82
00:07:20,600 --> 00:07:27,680
‫ところが今は､ キューブにどんな質量を設定しても､ 同じだけジャンプしてしまうんです｡

83
00:07:28,220 --> 00:07:33,320
‫最後に､ もしこれをXやYに貼っていたら......ということを考えてみました｡

84
00:07:33,320 --> 00:07:41,330
‫Zから切り出してZ､ Yに入れ､ Zを完全にゼロにキャンセルして､ 再生ボタンを押してスペースバーを押すと､

85
00:07:41,330 --> 00:07:49,700
‫横､ 左､ つまりY方向にシフトしているのがわかりますね｡

86
00:07:49,700 --> 00:07:54,530
‫Xでやっていたら､ X方向である前方にずれてしまうんです｡

87
00:07:54,530 --> 00:07:59,660
‫だから､ それを戻して､ Z方向にちょうど400になるようにするんです｡

88
00:07:59,660 --> 00:08:04,220
‫それを確認するために再生ボタンを押して､ バニーホッピングをすることができるんです｡

89
00:08:04,220 --> 00:08:09,290
‫この講義では､ ノードを使用して実際に何かを行う方法について見てきました｡

90
00:08:09,290 --> 00:08:16,700
‫また､ それらのシステムの物理を理解するために､ ベクトルや力､ インパルスを少し見てきました｡

91
00:08:16,700 --> 00:08:18,140
‫それでは､ 次回の講義でお会いしましょう｡

