﻿1
00:00:04,370 --> 00:00:05,420
‫こんにちは､ ようこそ｡

2
00:00:05,420 --> 00:00:16,520
‫この講義では､ シーン内の複数のオブジェクト間で設定や機能を共有するためのクラスを作成する方法を学びます｡

3
00:00:16,520 --> 00:00:18,410
‫さっそく潜入してみましょう｡

4
00:00:19,040 --> 00:00:27,460
‫さて､ オブジェクトを使ったプログラミングの真価は､ クラスやインスタンスを使い始めてから発揮されます｡

5
00:00:27,470 --> 00:00:29,150
‫さて､ クラスとは何でしょう？

6
00:00:29,150 --> 00:00:36,680
‫つまり､ オブジェクトのテンプレートや青写真のようなものです｡

7
00:00:36,680 --> 00:00:43,670
‫このアドベンチャーは､ adventurerクラスと呼ばれ､ いくつかのデフォルトデータと機能を持ちますが､

8
00:00:43,670 --> 00:00:50,180
‫このクラスのインスタンスを作成することができます｡

9
00:00:50,420 --> 00:00:57,860
‫例えばボブを呼び出すと､ 彼はAdventurerクラスのそのデータを自分用にコピーしています｡

10
00:00:57,860 --> 00:01:03,410
‫これが実際のオブジェクトで､ クラスはオブジェクトを作るためのものです｡

11
00:01:03,830 --> 00:01:10,610
‫また､ 同じクラスの2つ目のインスタンスに冒険者を設定すると､

12
00:01:10,610 --> 00:01:15,470
‫両者は機能を共有することができます｡

13
00:01:15,470 --> 00:01:19,220
‫つまり､ 冒険者2が経験値を変化させたことがわかる｡

14
00:01:19,460 --> 00:01:21,770
‫さて､ このことのメリットは2つあります｡

15
00:01:21,770 --> 00:01:27,710
‫1つは､ これらの異なるオブジェクト間ですべての機能を共有していること､ もう1つは､

16
00:01:27,710 --> 00:01:33,050
‫経験値500やレベル1などの変更していないデータがあることです｡

17
00:01:33,050 --> 00:01:39,560
‫レベル1をレベル2に変更すると､ クラスのすべてのインスタンスでも同様に変更されるのです｡

18
00:01:39,800 --> 00:01:44,990
‫では､ 実際にUnrealでこのようなものを作るにはどうしたらいいのでしょうか｡

19
00:01:45,410 --> 00:01:50,330
‫さて､ 最初にやりたいことは､ 投射物として動作するものを導入することです｡ 投射物は､

20
00:01:50,330 --> 00:01:54,620
‫最初に作成するオブジェクトとクラスにすることができます｡

21
00:01:54,950 --> 00:02:00,920
‫そこで､ ツールバーの「クイック・エンター・プロジェクト」ボタンから「シェイプ」を開き､ 「球体」を選択して､

22
00:02:00,920 --> 00:02:03,650
‫球体をシーンにドラッグしてみます｡

23
00:02:03,650 --> 00:02:10,160
‫また､ 少し上にドラッグして､ スケールツールで少し小さくしてみます｡

24
00:02:10,160 --> 00:02:20,030
‫そして､ 中央の「ホワイトビット」をクリックすると､ 全体を一様にスケーリングして､ 投射物のサイズに合ったものを作ることができます｡

25
00:02:20,330 --> 00:02:31,970
‫さて､ この発射体を､ 単なる1つのオブジェクトから､ 複数のオブジェクトのためのブループリント・クラスにしたいのです｡

26
00:02:32,390 --> 00:02:34,280
‫簡単にできる方法があるんです｡

27
00:02:34,280 --> 00:02:38,270
‫詳細パネルに､ 小さな設計図ボタンがあります｡

28
00:02:38,270 --> 00:02:44,720
‫これをクリックすると､ このアクタをスクリプトの動作を持つ再利用可能なブループリント クラスに変換すると表示されます｡

29
00:02:44,720 --> 00:02:49,970
‫これをクリックして､ 新しいサブクラスを作成します｡

30
00:02:49,970 --> 00:02:51,590
‫デフォルトのままでいいんです｡

31
00:02:51,590 --> 00:02:54,500
‫変えたいのは名前だけです｡

32
00:02:54,500 --> 00:03:01,130
‫今､ 私たちが呼びたいのはprojectileですが､ 私たちが使いがちな命名規則が少しあります｡

33
00:03:01,130 --> 00:03:02,150
‫義務ではありません｡

34
00:03:02,150 --> 00:03:10,130
‫このプロジェクトに機能的な影響を与えるものではありませんが､ 物事を少し理解するのに役立つと思います｡

35
00:03:10,130 --> 00:03:20,060
‫ブループリントのクラスを作るときは､ 大文字のアンダースコアでBPという接頭語を付けることが多いのですが､ これによって､ ここにどんなオブジェクトがあるのかが瞬時に分かるようになっています｡

36
00:03:20,060 --> 00:03:21,290
‫ブループリントのクラスです｡

37
00:03:21,380 --> 00:03:28,610
‫先に進み､ select をクリックすると､ 何らかの理由で create が有効になり､ その結果､

38
00:03:28,610 --> 00:03:34,940
‫Blueprint クラス自体のエディタである新しいエディタがここに開かれます｡

39
00:03:34,940 --> 00:03:40,190
‫これで､ 他のエディタと同じように､ これをメインウィンドウにドッキングさせることができるようになりました｡

40
00:03:40,880 --> 00:03:43,040
‫そしてまた､ いろいろなものがあるのがお分かりいただけると思います｡

41
00:03:43,040 --> 00:03:49,310
‫レベル ブループリントと非常によく似ていますが､ ここにはビューポートなど､ このブループリント

42
00:03:49,310 --> 00:03:57,740
‫クラスのオブジェクト インスタンスを作成したときにどのように見えるかをプレビューするための機能がいくつか備わっています｡

43
00:03:58,130 --> 00:04:01,130
‫さて､ これでこのメインクラスが出来上がりました｡

44
00:04:01,130 --> 00:04:07,010
‫このクラスのインスタンスやオブジェクトをもっとたくさんレベルに持ってくることができるはずです｡

45
00:04:07,370 --> 00:04:08,240
‫そして実際に､ 私たちはそうすることができます｡

46
00:04:08,240 --> 00:04:17,210
‫すでにあるオブジェクトを複製するか､ コンテンツ・ドロワーを開いてコンテンツ・フォルダーのルートで右クリックします｡

47
00:04:17,210 --> 00:04:22,640
‫左側のペインでコンテンツフォルダを選択すると､ 射影機の設計図がありますね｡

48
00:04:22,640 --> 00:04:31,610
‫これをシーンにドラッグすると､ 新しいインスタンスが作成され､ そのブループリントの新しいコピーが作成されます｡

49
00:04:31,610 --> 00:04:34,400
‫でも､ さっきも言ったように､ これはリンクコピーなんです｡

50
00:04:34,400 --> 00:04:43,010
‫BP projectile editorでプロパティに変更を加えると､ すべてのインスタンスで変更されるはずです｡

51
00:04:43,010 --> 00:04:47,090
‫ここでは､ 右側にある詳細ペインが異なります｡

52
00:04:47,090 --> 00:04:49,970
‫これは､ 私たちのレベルで持っている詳細ペインと非常によく似ています｡

53
00:04:49,970 --> 00:04:58,400
‫編集部 ただし､ 左側のペインで実際にコンポーネントをクリックしないと､ そのプロパティは表示されません｡

54
00:04:58,400 --> 00:05:06,620
‫そのため､ ルートアクターレベルで直接見るのに慣れているプロパティのいくつかを見るには､ 静的メッシュコンポーネントまでクリックする必要があるかもしれません｡

55
00:05:06,620 --> 00:05:11,960
‫そこで､ ここでどうすればいいのか注意したいのが､ 素材を変えることです｡

56
00:05:11,960 --> 00:05:16,520
‫ですから､ 現時点では､ このボールの素材はとても白いのです｡

57
00:05:16,520 --> 00:05:18,440
‫これを何かに変えた方がいいかもしれない｡

58
00:05:18,910 --> 00:05:23,860
‫左側のペインでこの静的メッシュコンポーネントを選択し､ 右側の詳細ペインに移動すると､

59
00:05:23,860 --> 00:05:29,110
‫「マテリアルと要素ゼロ」というセクションがあるのがわかると思います｡

60
00:05:29,140 --> 00:05:37,990
‫この上の下向き矢印をクリックすると､ プロジェクトにあるすべての材料のリストが表示され､ どれかを選択して試すことができます｡

61
00:05:37,990 --> 00:05:40,960
‫だから､ この石畳の素材のようなものを試してみるのもいいかもしれませんね｡

62
00:05:40,960 --> 00:05:47,740
‫そして､ キャノンボールでは少し滑稽に見えるのがおわかりいただけると思いますので､ これは使わないことにします｡

63
00:05:47,740 --> 00:05:53,150
‫そこで､ この投射物を砲弾にすることに挑戦してみたいと思います｡

64
00:05:53,170 --> 00:05:56,350
‫さて､ その方法ですが､ まず物理を可能にします｡

65
00:05:56,350 --> 00:06:03,370
‫静的メッシュコンポーネントを選択して､ 物理学のプロパティを見つけ､ 物理学を有効にして､

66
00:06:03,370 --> 00:06:12,040
‫私が選択した現在の小石よりずっと砲弾に適した好みのマテリアルを選択する必要があります｡

67
00:06:12,040 --> 00:06:16,030
‫そして､ 自分のシーンに戻り､ 何が起こるか見てみてください｡

68
00:06:16,030 --> 00:06:18,530
‫そこで何を変えたのか､ 変えなかったのか｡

69
00:06:18,550 --> 00:06:20,470
‫ポーズ､ ビデオ､ どうぞ｡

70
00:06:24,060 --> 00:06:24,540
‫なるほど｡

71
00:06:24,540 --> 00:06:25,410
‫お帰りなさい｡

72
00:06:25,440 --> 00:06:33,390
‫まず､ 再生ボタンを押すと､ この2つのボールは物理演算が有効でないため､ ただ座っているだけになります｡

73
00:06:33,390 --> 00:06:35,060
‫物理演算を有効にしてほしい｡

74
00:06:35,070 --> 00:06:40,650
‫それでは､ 左側のペインで静的メッシュコンポーネントを選択した状態で､ 詳細ペインに移動してみましょう｡

75
00:06:40,650 --> 00:06:48,550
‫そして､ 物理セクションと物理シミュレーションのチェックボックスがあるところまで､ スクロールしていきます｡

76
00:06:48,570 --> 00:06:54,840
‫もう1つ､ ここで変更したいのは､ 材料の部分で､ これはエレメントゼロです｡

77
00:06:54,870 --> 00:07:04,770
‫ドロップダウンをクリックすると､ メタリックなものを探します｡ クロームメタル素材を選ぶと､ 小さなクロームボールを手に入れることができます｡

78
00:07:04,770 --> 00:07:05,940
‫さて､ それは素晴らしいことです｡

79
00:07:05,940 --> 00:07:09,120
‫だから､ 以前のようなつまらない見栄えにはならないのです｡

80
00:07:09,690 --> 00:07:12,630
‫今､ 私たちは保存しようと思えばできますが､ 絶対に必要というわけではありません｡

81
00:07:12,630 --> 00:07:14,460
‫先に進んで再生ボタンを押せばいいんです｡

82
00:07:14,460 --> 00:07:19,020
‫拡大すると､ これらのボールが物理を有効にして､

83
00:07:19,020 --> 00:07:28,200
‫新しいマテリアルで床を転がり回っているのがわかります｡

84
00:07:28,410 --> 00:07:29,400
‫だから､ これは素晴らしいことです｡

85
00:07:29,400 --> 00:07:36,930
‫ゲーム内で同じクラスのインスタンスが複数必要な場合､ これを使えば何度も同じことを繰り返す必要がなくなるので､

86
00:07:36,930 --> 00:07:42,360
‫いろいろと便利です｡

87
00:07:42,360 --> 00:07:43,080
‫素晴らしい内容です｡

88
00:07:43,080 --> 00:07:44,640
‫それでは､ 次回の講義でお会いしましょう｡

