﻿1
00:00:10,570 --> 00:00:11,650
‫お帰りなさい｡

2
00:00:11,680 --> 00:00:14,650
‫このビデオでは､ 音を再生することに関心があります｡

3
00:00:14,890 --> 00:00:18,430
‫弾を発射するときに何か音を出したいのです｡

4
00:00:18,580 --> 00:00:23,380
‫投擲物が何かに当たったときと､ こちらのポーンが死んだとき｡

5
00:00:23,590 --> 00:00:25,060
‫では､ さっそく飛び込んでみましょう｡

6
00:00:25,540 --> 00:00:32,770
‫今､ EDにいます｡ assetsフォルダに行くと､ オーディオフォルダがあり､

7
00:00:32,770 --> 00:00:38,350
‫2種類のサウンドがあります｡

8
00:00:38,350 --> 00:00:44,170
‫ドスンという音を使い､ ポーンが死んだらエクスプロードという音声を使います｡

9
00:00:44,170 --> 00:00:48,520
‫また､ 弾丸を発射するときのドスンという音を再利用することもできます｡

10
00:00:48,550 --> 00:00:54,590
‫次に､ これらのサウンドアセットを表す2つの変数をプロジェクタイルに設定します｡

11
00:00:54,610 --> 00:01:01,210
‫さて､ このプライベート・セクションに､ いくつかの変数を追加して､ このクラスを前方に宣言します｡

12
00:01:01,210 --> 00:01:06,820
‫さて､ これから使うクラスはyou sound baseで､ これはポインタになります｡

13
00:01:06,820 --> 00:01:09,580
‫今､ 私はこの打ち上げを音と呼ぶことにします｡

14
00:01:09,760 --> 00:01:15,250
‫これは､ 弾丸を発射するときに鳴らす音を表現することになります｡

15
00:01:15,280 --> 00:01:19,570
‫さて､ sound baseは､ 音に使えるクラスですね｡

16
00:01:19,570 --> 00:01:26,650
‫これをブループリントに公開すると､ サウンド フォルダにあるサウンド アセットを使用して設定できます｡

17
00:01:26,650 --> 00:01:30,910
‫そこで､ これを公開できるように､ Uプロパティを与えることにします｡

18
00:01:30,910 --> 00:01:36,100
‫そして､ どこでも編集できるようにして､ 戦闘のカテゴリに配置するつもりです｡

19
00:01:36,100 --> 00:01:39,550
‫だから､ 他の戦闘変数と一緒になっているんです｡

20
00:01:39,850 --> 00:01:45,460
‫あとは､ 弾が何かに当たったときに､ サウンドベースの変数を使いたいですね｡

21
00:01:45,460 --> 00:01:49,090
‫つまり､ これもUサウンドベースのポインターになるわけです｡

22
00:01:49,090 --> 00:01:55,300
‫これをヒット音と呼び､ 発射音と同じyouプロパティを与えることにします｡

23
00:01:55,300 --> 00:02:03,760
‫今､ 私はヒット音のためにあなたのサウンドベースを前方に宣言していないことに注意してください......私はすでにここであなたのサウンドベースを前方に宣言しているからです｡

24
00:02:03,760 --> 00:02:10,720
‫つまり､ ある行で型を前方宣言してしまえば､ その型はファイル内でそれ以降に使うことができるのです｡

25
00:02:10,720 --> 00:02:16,420
‫そのため､ 人によっては､ この一番上にわざわざ前置詞を置く人もいます｡

26
00:02:16,420 --> 00:02:17,950
‫それも一つの方法です｡

27
00:02:17,950 --> 00:02:26,350
‫つまり､ class, you sound baseと書いておけば､ 前方宣言が行われ､ このファイル内の前方宣言以降の任意の場所でuse

28
00:02:26,350 --> 00:02:32,710
‫sound base型を使用することができます｡

29
00:02:32,710 --> 00:02:34,420
‫それも一つの方法なんですね｡

30
00:02:34,420 --> 00:02:43,180
‫そこで､ 両方の方法を示すために､ ここではサウンドベースを下にフォワード宣言するのではなく､ 上にフォワード宣言することにします｡

31
00:02:43,330 --> 00:02:48,830
‫そこで､ 今度は発射体hに音響ベース変数を使用することにしました｡

32
00:02:48,970 --> 00:02:55,210
‫ベースポーンクラスにサウンドベースを追加したいのですが､ これはベースポーンが破壊されたときのためのものです｡

33
00:02:55,210 --> 00:02:59,920
‫これはプライベートセクションにあり､ ここで前方に宣言します｡ これはyouサウンドのベースポインタになり､

34
00:02:59,920 --> 00:03:07,210
‫これをdeath soundと呼び､ youプロパティを取得することにします｡

35
00:03:07,240 --> 00:03:10,780
‫下にスクロールして､ よりよく見えるようにします｡

36
00:03:10,810 --> 00:03:12,490
‫どこにでも追加されそうですね｡

37
00:03:14,240 --> 00:03:16,760
‫そして､ これをカテゴリーに入れます｡

38
00:03:18,350 --> 00:03:19,220
‫コンバット

39
00:03:19,700 --> 00:03:26,420
‫それでは､ ベースとプロジェクタイルにサウンドベース変数が使用されたので､ これらをコンパイルして､

40
00:03:26,420 --> 00:03:29,930
‫Blueprintでこれらの変数を見てみましょう｡

41
00:03:29,930 --> 00:03:35,690
‫もちろん､ ちょっと急いでyou propertyを入力したので､ コンパイルエラーになります｡

42
00:03:35,690 --> 00:03:38,420
‫その小文字のyは大文字のyであるべきだ｡

43
00:03:38,420 --> 00:03:46,160
‫こういうのは大文字小文字を区別するので､ そのtypoを修正して再度コンパイルすると､ 今は正常にコンパイルできています｡

44
00:03:46,160 --> 00:03:52,820
‫ではエディタに戻りましょう｡ ここでエディタに入り､ アクターフォルダと BP projectile

45
00:03:52,820 --> 00:03:59,420
‫を開いて､ フル blueprint エディタを開きます｡

46
00:03:59,420 --> 00:04:02,540
‫今､ どこに何があるのかがわかりやすくなりました｡

47
00:04:02,540 --> 00:04:09,050
‫起動音とヒット音は､ どこでも編集可能なので､ ドロップダウンからサウンドアセットを選択すれば､

48
00:04:09,050 --> 00:04:14,390
‫有効なオプションが表示されるだけです｡

49
00:04:14,390 --> 00:04:19,400
‫さて､ ここで注目するのは起動音ですが､ これにはドスンという音声を使用します｡

50
00:04:19,700 --> 00:04:23,000
‫今度はヒット音にもThudオーディオを使ってみます｡

51
00:04:23,000 --> 00:04:24,560
‫しかし､ 私は2つの変数を作りました｡

52
00:04:24,560 --> 00:04:31,010
‫ですから､ もっと効果音に手を入れれば､ 発射音と命中音を使い分けることができます｡

53
00:04:31,010 --> 00:04:33,740
‫だからこれは､ そういうのが好きな人のために設定されているんです｡

54
00:04:33,740 --> 00:04:38,480
‫これで､ 発射音と命中音の処理が完了しました｡

55
00:04:38,480 --> 00:04:41,810
‫というわけで､ コンパイルして保存して､ このまま終了します｡

56
00:04:42,080 --> 00:04:46,280
‫次に､ 池を開いて､ BP池の水槽を開く｡

57
00:04:46,280 --> 00:04:49,250
‫そして､ 戦闘編での私のデスサウンドです｡

58
00:04:49,490 --> 00:04:57,230
‫ドロップダウンをクリックして､ explode audioを使い､ death soundをexplode audioのサウンドアセットに設定します｡

59
00:04:57,260 --> 00:05:04,370
‫コンパイルして保存し､ BP pond tankを閉じてBP pond turretを開きます｡ この変数は､

60
00:05:04,370 --> 00:05:09,320
‫turretも継承するベースpondクラスに置いたからです｡

61
00:05:09,320 --> 00:05:13,940
‫ということで､ ここでもデスサウンドをエクスプロードオーディオに設定することにします｡

62
00:05:13,940 --> 00:05:21,200
‫サウンドアセットは､ 池と弾丸の両方で変数に格納されています｡

63
00:05:21,200 --> 00:05:24,530
‫あとは､ これらの音を実際に演奏してみるだけです｡

64
00:05:24,860 --> 00:05:28,550
‫ゲームプレイのスタティックには､ もうひとつ便利な機能があります｡

65
00:05:28,550 --> 00:05:31,310
‫プレイサウンド・アット・ロケーションといいます｡

66
00:05:31,310 --> 00:05:37,370
‫さて､ 下にスクロールしていくと､ かなりの数の入力パラメータを取ることがわかりますが､ このような関数の多くと同様に､

67
00:05:37,370 --> 00:05:42,590
‫デフォルト値を持つオプションのパラメータが多数存在することがわかります｡

68
00:05:42,770 --> 00:05:45,680
‫そこで､ コードを掘り下げると､ こんなことがわかります｡

69
00:05:45,950 --> 00:05:51,410
‫というわけで､ プロジェクターCPとここに飛び込んでプレイ開始です｡

70
00:05:51,410 --> 00:06:02,750
‫ゲームプレイ統計､ 位置でサウンドを再生と入力し､ その冒頭の括弧を押すと､ 2つのうちの1つが表示されますね｡

71
00:06:03,020 --> 00:06:07,460
‫さて､ この最初のバージョンでは､ ワールドコンテキストオブジェクトが表示されます｡

72
00:06:07,460 --> 00:06:09,830
‫そのために､ これを通せばいいことはわかっている｡

73
00:06:09,830 --> 00:06:12,110
‫そして次に使用音のベースが必要です｡

74
00:06:12,110 --> 00:06:17,810
‫つまり､ 音の基本変数があり､ 次に位置のFベクトルを取ります｡

75
00:06:17,810 --> 00:06:23,360
‫さて､ 弾の位置で音を鳴らしたい場合は､ get actor locationを使えばよく､

76
00:06:23,360 --> 00:06:26,060
‫それ以外の入力は任意です｡

77
00:06:26,060 --> 00:06:33,830
‫ですから､ もしそれらを調べたいのであれば､ この機能のドキュメントページをもう一度見て､ もう少し調べてみてください｡

78
00:06:33,830 --> 00:06:40,970
‫しかし､ 私たちは最初の3つの入力にしか関心がないので､ あなたを利用できる場所で音を再生する方法を知っているのです｡

79
00:06:40,970 --> 00:06:47,870
‫ゲームプレイスタティックでは､ サウンドを再生する場所として､ ワールドコンテキストオブジェクト､

80
00:06:47,870 --> 00:06:54,110
‫サウンド（サウンドベースを使用）､ 場所（アクターロケーションを取得）を受け取ります｡

81
00:06:54,110 --> 00:07:02,360
‫そのため､ ロケーションでプレイサウンドを呼び出したり､ サウンドが必要なゲームプレイの様々な局面でサウンドを再生することが課題となります｡

82
00:07:02,360 --> 00:07:12,500
‫そこで､ ゲームプレイのスタティクスを呼び出し､ on hit関数で最初にprojectileクラスの位置でサウンドを再生し､ hit sound変数を使用するようにします｡

83
00:07:12,530 --> 00:07:20,840
‫これは､ ifチェックで､ 他のアクターが有効かどうかを確認し､ 他のアクターがthisまたはownerでないことを確認するときに行います｡

84
00:07:20,840 --> 00:07:27,020
‫しかし､ 発射体を破壊する前にそれを呼び出し､ その場所で再生音を呼び出し､ 発射体の再生を開始し､

85
00:07:27,020 --> 00:07:29,630
‫発射音を使用します｡

86
00:07:29,630 --> 00:07:36,650
‫そうすれば､ 弾が発射されたときと､ 弾が次に何かにぶつかったときに音が鳴るようになります｡

87
00:07:36,650 --> 00:07:42,110
‫ベースのポンクラスに入り､ 位置で再生音を呼び出し､ 破壊を処理します｡

88
00:07:42,110 --> 00:07:43,730
‫そして､ デスサウンドを使うんですね｡

89
00:07:43,730 --> 00:07:45,110
‫それが爆発です｡

90
00:07:45,110 --> 00:07:50,000
‫そこで､ ビデオを一時停止し､ これらの呼び出しを追加して､ 今すぐ位置で音を再生することができます｡

91
00:07:53,530 --> 00:07:53,800
‫なるほど｡

92
00:07:53,830 --> 00:07:59,470
‫ではまずProjectile CPに来ましたので､ チャレンジの順番に行きますね｡

93
00:07:59,470 --> 00:08:04,290
‫そこでまず､ オンヒットで､ この下の音を再生してみます｡

94
00:08:04,300 --> 00:08:11,440
‫今､ あなたはおそらく音がヌルになっているかどうかを確認したでしょう｡ もし確認したのなら､ あなたはすでにそうした良いプログラミングの習慣を身につけているので､

95
00:08:11,440 --> 00:08:14,100
‫賞賛に値すると思います｡

96
00:08:14,110 --> 00:08:16,120
‫さて､ そうでなかったとしても､ それはそれでよいのです｡

97
00:08:16,150 --> 00:08:16,990
‫どうぞ､ やってください｡

98
00:08:16,990 --> 00:08:17,290
‫今すぐ

99
00:08:17,290 --> 00:08:24,550
‫新しいゲームプレイ静止画関数を呼び出す前に､ ヒット音が有効かどうかを確認することにしています｡

100
00:08:24,550 --> 00:08:25,450
‫だから､ あなたになるんです｡

101
00:08:25,450 --> 00:08:32,650
‫ゲームプレイの静止画は位置で音を再生します｡ まず､ これになるワールドコンテキストオブジェクトが必要です｡

102
00:08:32,650 --> 00:08:37,660
‫次に､ ヒット音そのものが必要ですが､ これをアクターの位置で再生します｡

103
00:08:37,660 --> 00:08:42,670
‫そのため､ アクターの位置を取得することで､ 3つ目のパラメータを満たすことができます｡

104
00:08:43,090 --> 00:08:44,260
‫よし､ 完璧だ｡

105
00:08:44,260 --> 00:08:47,170
‫次に､ 音を鳴らして再生を開始する必要があります｡

106
00:08:47,170 --> 00:08:49,000
‫では､ 上に戻ってプレイを始めましょう｡

107
00:08:49,000 --> 00:08:54,010
‫そして今回は､ 起動音が有効かどうかを確認します｡

108
00:08:54,010 --> 00:09:04,030
‫つまり､ サウンドを起動したら､ その場所でサウンドを再生するというゲームプレイの静的操作を行うわけですが､ もちろんワールドコンテキストオブジェクトが必要です｡

109
00:09:04,030 --> 00:09:10,570
‫この使用音のベースが起動音になり､ これをアクターの位置で再生することになるのです｡

110
00:09:10,570 --> 00:09:17,140
‫だから､ アクターロケーションを取得し､ それが音を再生するの世話をし､ 再生を開始します｡

111
00:09:17,140 --> 00:09:23,830
‫そこで､ 最後にベース -- クラスでサウンドを再生し､ 破壊を処理することになります｡

112
00:09:23,830 --> 00:09:30,100
‫そして今､ 映像や音響効果を扱っているのは､ これをやったからここをやれと言う必要はない｡

113
00:09:30,100 --> 00:09:34,120
‫そこでまず､ デスサウンドが有効かどうかを確認します｡

114
00:09:34,120 --> 00:09:41,380
‫もしそうなら､ ワールドコンテキストオブジェクトがある場所で音を再生するゲームプレイスタティクスを呼び出すことができます｡

115
00:09:41,380 --> 00:09:52,330
‫それがこのデスサウンドとなるサウンドベースになり､ アクターロケーションを取得することで､ このデスサウンドのロケーションを満足させることができるのです｡

116
00:09:52,450 --> 00:09:53,770
‫オックすごい｡

117
00:09:53,770 --> 00:09:58,570
‫それでは､ コンパイルに成功したコードをご紹介します｡

118
00:09:58,600 --> 00:10:02,200
‫ここでエディタに戻り､ プレイテストをしてみましょう｡

119
00:10:02,200 --> 00:10:05,590
‫だから､ 再生ボタンを押してタイマーを待つことにしている｡

120
00:10:14,030 --> 00:10:16,930
‫つまり､ まとめると､ 今は音が出るようになったということです｡

121
00:10:16,940 --> 00:10:24,560
‫発射体の命中時と発射時の音を鳴らし､ ポーンの死亡時の音を鳴らしているんだ｡

122
00:10:24,830 --> 00:10:30,560
‫このように､ セクションプランを振り返ってみると､ ほぼすべての項目にチェックが入っていることがわかります｡

123
00:10:30,560 --> 00:10:34,610
‫煙や爆発､ 音などの特殊効果もまだ残っています｡

124
00:10:34,610 --> 00:10:43,730
‫あとは､ このゲームに磨きをかけ､ 見た目や操作性を確認して､ このセクションを終了したいと思います｡

125
00:10:43,730 --> 00:10:46,580
‫では､ 次のビデオでお会いしましょう｡

