﻿1
00:00:04,470 --> 00:00:05,310
‫こんにちは､ ようこそ｡

2
00:00:05,310 --> 00:00:11,280
‫この講義では､ アニメーションのステートマシンを完成させ､ より多くのステートを作成し､

3
00:00:11,280 --> 00:00:16,320
‫最初のジャンプ状態にジャンプするアニメーションを作成します｡

4
00:00:16,320 --> 00:00:21,840
‫ご覧のとおり､ 私のジャンプにはもう少し春があります｡ 自動遷移や､ あるステートマシンを別のステートマシンの中に入れ子にする方法など､

5
00:00:21,840 --> 00:00:28,830
‫これから広告デスアニメーションについて学んでいきます｡

6
00:00:28,830 --> 00:00:31,980
‫では､ さっそく潜入してみましょう｡

7
00:00:32,430 --> 00:00:41,070
‫そこで､ 前回の講義でお約束したように､ is airborne変数をゲームプレイにフックアップしてみましょう｡

8
00:00:41,100 --> 00:00:48,570
‫さて､ これから行う方法は､ ポーンや特にシューターキャラクターから取得することです｡

9
00:00:48,810 --> 00:00:54,840
‫キャラクターが空気かどうか､ 本質的に見極めたいのです｡

10
00:00:55,200 --> 00:01:01,620
‫そして､ これを実現する唯一の方法は､ 基本的にキャラクターの動きのコンポーネントであると私は考えています｡

11
00:01:01,620 --> 00:01:02,820
‫では､ どういうことか､ お見せしましょう｡

12
00:01:02,820 --> 00:01:07,800
‫シューターキャラクターにキャストしているキャストノードに移動して､ このノードからドラッグすることができます｡

13
00:01:07,800 --> 00:01:12,660
‫実際､ 私たちができることは､ この特定のインスタンスでより一般的なキャストであり､

14
00:01:12,660 --> 00:01:16,080
‫is deadに関連する特定の情報は必要ないからです｡

15
00:01:16,380 --> 00:01:30,360
‫つまり､ ポーンの所有者であるこのピンを､ この場合はキャラクタにキャストするのです｡

16
00:01:30,360 --> 00:01:39,690
‫次に､ シーケンスノードに新しい実行ピンを追加し､ それをキャラクタにドラッグダウンして､ キャラクタからそのキャラクタピンからドラッグオフすることにします｡

17
00:01:39,690 --> 00:01:46,200
‫そして､ 基本的には空中戦の線上にあるものを探しますが､

18
00:01:46,230 --> 00:01:53,850
‫そこには何もありません｡

19
00:01:53,850 --> 00:01:56,400
‫何かはわかったが､ それだけではない｡

20
00:01:56,400 --> 00:01:58,410
‫落ちているところを探したらどうだろう？

21
00:01:58,410 --> 00:01:59,100
‫これでよしとする｡

22
00:01:59,100 --> 00:02:00,720
‫が降ってきたんです｡

23
00:02:00,720 --> 00:02:06,930
‫そして､ それをクリックすると､ 自動的にそのキャラクターからキャラクターの移動コンポーネントを取得して､

24
00:02:06,930 --> 00:02:10,860
‫私たちが落下しているかどうかを確認できることがわかります｡

25
00:02:11,310 --> 00:02:18,150
‫そして､ この値を渡して､ is airborneの値を設定します｡ 明らかに､ キャラクターへのキャストが成功した場合のみ､

26
00:02:18,150 --> 00:02:22,200
‫この値を設定することになります｡

27
00:02:22,200 --> 00:02:25,470
‫そこで､ その実行ピンをフックしてみましょう｡

28
00:02:25,860 --> 00:02:27,450
‫それをコンパイルして行けばいいのです｡

29
00:02:27,450 --> 00:02:31,590
‫当然､ プレビューに変化はないので､ 試しにプレイして行くしかない｡

30
00:02:31,590 --> 00:02:40,410
‫では､ ジャンプしてみましょう｡ この落下する変数が即座にtrueになり､ 非常にうまく機能しているのがわかると思います｡

31
00:02:40,410 --> 00:02:46,260
‫ジャンプして着地して､ ジャンプして着地して､ 敵をやっつけることができたのは明らかです｡

32
00:02:47,160 --> 00:02:51,960
‫では､ 次にアニメーショングラフをもう少し複雑にしてみたいと思います｡

33
00:02:51,960 --> 00:02:56,340
‫つまり､ ロコモーションのステートマシンでは､ ここに2つの状態があるわけです｡

34
00:02:56,340 --> 00:03:05,730
‫でも､ 本当にやりたいのは､ ジャンプのアニメーションと､ 空中にいるときのアニメーション､ そして地上に降りたときの着地のアニメーションを再生することなんです｡

35
00:03:06,240 --> 00:03:09,570
‫そのためには､ ステートマシンの状態をもう少し増やす必要がある｡

36
00:03:09,570 --> 00:03:10,650
‫では､ 先に進みましょう｡

37
00:03:10,650 --> 00:03:14,010
‫私は一連の状態のうちの1つをやるので､ 最後の1つをやってください｡

38
00:03:14,460 --> 00:03:17,430
‫そこで､ まず最初に､ ジャンプ状態にすることにしました｡

39
00:03:18,560 --> 00:03:22,270
‫そしてそれは､ 私たちを軌道に乗せるアニメーションを演じることになるのです｡

40
00:03:22,280 --> 00:03:26,660
‫では､ ジャンプ状態にして､ 出力アニメーションのポーズにしましょう｡

41
00:03:26,660 --> 00:03:28,400
‫新しいアニメーションをリンクさせるのです｡

42
00:03:28,400 --> 00:03:29,270
‫ジャンプを探そう｡

43
00:03:29,270 --> 00:03:32,210
‫コンバットでサブ固定したやつを全部募集します｡

44
00:03:32,510 --> 00:03:35,450
‫そこで､ ジャンプスタート戦闘を探します｡

45
00:03:35,450 --> 00:03:36,280
‫これでよしとする｡

46
00:03:36,290 --> 00:03:37,520
‫そして､ それが私たちの願いでもあるのです｡

47
00:03:37,520 --> 00:03:43,010
‫次に､ ロコモーションのステートマシンに戻り､ いくつかのトランジションをフックしたいと思います｡

48
00:03:43,010 --> 00:03:45,620
‫だから､ 接地からジャンプに移行するんです｡

49
00:03:45,740 --> 00:03:48,500
‫空気を読めばそうなりますよね｡

50
00:03:48,500 --> 00:03:52,100
‫だから､ 空気中に置くと､ そこに空気が入ってしまうのです｡

51
00:03:52,130 --> 00:03:55,670
‫残念ながら､ 移行を変更する方法は見当たりません｡

52
00:03:55,670 --> 00:04:00,200
‫ですから､ ここでは両方とも古いトランジションを削除すればいいのです｡

53
00:04:00,560 --> 00:04:06,380
‫それから､ ジャンプからis airborneへの遷移が必要ですが､ そのための変数やステートがありません｡

54
00:04:06,380 --> 00:04:09,830
‫では､ ジャンプから彼の空気に移行するのはいつになるのでしょうか？

55
00:04:09,830 --> 00:04:13,100
‫まあ､ ジャンプのアニメーションが終わったときにやりたいんですけどね｡

56
00:04:13,100 --> 00:04:17,060
‫ジャンプが終わったら､ ジャンプのアニメーションを見てもらうとわかるのですが､

57
00:04:17,060 --> 00:04:20,240
‫このように足を地面から浮かせているのがわかります｡

58
00:04:20,240 --> 00:04:26,870
‫そして､ 頂点アニメーションが終了した時点で､ 基本的に頂点アニメーションに移行するようにします｡

59
00:04:26,870 --> 00:04:29,540
‫幸いなことに､ トランジションにはそのためのオプションが用意されています｡

60
00:04:29,540 --> 00:04:34,070
‫トランジションに入るのではなく､ 選択すると､ その詳細ペインを見ることができます｡

61
00:04:34,460 --> 00:04:36,020
‫そして､ ここにはひとつの選択肢がある｡

62
00:04:36,810 --> 00:04:42,630
‫これを拡大すると､ 状態での連続したプレーヤーに基づく自動ルールが書かれています｡

63
00:04:42,900 --> 00:04:48,270
‫これをチェックすると､ 基本的には､ ジャンプがほぼ終了した時点で､ 次のアニメーションに移行し始めますが､

64
00:04:48,270 --> 00:04:54,900
‫その移行タイミングとクロスフェードの長さを実際にコントロールすることができます｡

65
00:04:54,900 --> 00:05:01,320
‫ここでブレンドの設定で､ ブレンドのデュレーションが約0になっているのがわかります｡  2ですが､ この2人は特にうまく移行しているので､

66
00:05:01,320 --> 00:05:06,330
‫0にします｡ 01.

67
00:05:06,330 --> 00:05:08,580
‫だから､ その移行を本当に短くしようと思っているんです｡

68
00:05:08,790 --> 00:05:10,560
‫では､ その様子を見てみましょう｡

69
00:05:10,560 --> 00:05:12,150
‫だから､ イズエアボーンに入るんです｡

70
00:05:12,150 --> 00:05:16,710
‫あのジャンプのアニメーションを再生して､ そのまま空中浮遊状態になるんです｡

71
00:05:16,710 --> 00:05:18,090
‫アニメーションが完成したら

72
00:05:18,090 --> 00:05:21,060
‫もう1回やってみよう､ もう1回やってみよう｡

73
00:05:21,060 --> 00:05:29,040
‫それが問題で､ 空中状態から地上状態に戻るトランジションがないため､ それが課題になりそうです｡

74
00:05:29,040 --> 00:05:33,450
‫つまり､ 着陸アニメーションを再生する着陸状態を追加するのです｡

75
00:05:33,450 --> 00:05:36,720
‫そこで､ 新しい状態を追加し､ 着陸に最も適したアニメーションを追加します｡

76
00:05:36,720 --> 00:05:41,400
‫ご意見としては､ ジャンプの接頭辞とコンバットの接尾辞がついたものを探すとよいかもしれませんね｡

77
00:05:41,580 --> 00:05:46,290
‫そして､ ブーリアン上のエアボーンから､ この着陸状態に移行するわけです｡

78
00:05:46,440 --> 00:05:52,920
‫そして､ その着陸状態から､ 着陸アニメーションが終了した時点で接地状態に移行するのです｡

79
00:05:53,780 --> 00:05:55,940
‫遊んでみてください､ どんな感じか確かめてみてください｡

80
00:05:55,970 --> 00:05:56,820
‫気持ちいいですか？

81
00:05:56,840 --> 00:05:58,070
‫正しく見えるか？

82
00:05:58,160 --> 00:06:04,520
‫そして､ その移行時間を微調整することで､ 物事がより良く感じられるかどうか調べてみるのもいいかもしれません｡

83
00:06:04,550 --> 00:06:08,450
‫ビデオを一時停止して､ ステートマシンを使って遊んでみてください｡

84
00:06:10,560 --> 00:06:10,910
‫なるほど｡

85
00:06:10,920 --> 00:06:11,560
‫お帰りなさい｡

86
00:06:11,580 --> 00:06:12,770
‫では､ これに挑戦してみよう｡

87
00:06:12,780 --> 00:06:14,790
‫ここに新しい状態を追加していきます｡

88
00:06:14,820 --> 00:06:16,500
‫着地と言うことになるのでしょう｡

89
00:06:17,350 --> 00:06:21,390
‫そして､ この着地状態で､ 中に入ると､ そのためのアニメーションが必要になります｡

90
00:06:21,400 --> 00:06:30,730
‫ジャンプを検索して､ ジャンプ着地戦闘をこのようにします｡ そして､ ロコモーションのステートマシンに戻ります｡

91
00:06:30,730 --> 00:06:33,820
‫空中戦から着陸への移行が必要だ｡

92
00:06:33,820 --> 00:06:35,170
‫それをダブルクリックしましょう｡

93
00:06:35,170 --> 00:06:46,390
‫そして､ これは､ 基本的に空気感染しないので､ ノードではなく､ 空気感染するものであることが必要です｡

94
00:06:46,510 --> 00:06:48,580
‫これが私たちの移行条件ですね｡

95
00:06:48,580 --> 00:06:54,880
‫だから､ 頂点にいるときに､ 一旦not is airborneがチェックされずに､ その後､ 着陸状態になるんです｡

96
00:06:55,030 --> 00:06:59,110
‫そして､ 着陸状態から､ 終了したら接地状態に遷移させたいと考えています｡

97
00:06:59,110 --> 00:07:05,800
‫つまり､ トランジションをクリックして､ 自動ルールのチェックボックスにチェックを入れれば､ 終了時にその通りになるわけです｡

98
00:07:05,800 --> 00:07:06,940
‫では､ それを試してみましょう｡

99
00:07:06,940 --> 00:07:08,350
‫彼のエアボーンに入る｡

100
00:07:08,350 --> 00:07:12,280
‫ジャンプを再生して､ Airborneに入り､ チェックを外す｡

101
00:07:12,280 --> 00:07:14,620
‫着陸して戻ってくる｡

102
00:07:14,710 --> 00:07:15,760
‫もう一回､ やりましょう｡

103
00:07:16,430 --> 00:07:17,600
‫かなり良いようです｡

104
00:07:17,630 --> 00:07:18,080
‫なるほど｡

105
00:07:18,080 --> 00:07:24,300
‫では､ これからどうするかというと､ 飛び跳ねたり､ 着地したりして遊んでみるのです｡

106
00:07:24,330 --> 00:07:24,680
‫なるほど｡

107
00:07:24,710 --> 00:07:26,030
‫これはかなりいい感じです｡

108
00:07:26,060 --> 00:07:32,600
‫着地するときに､ 自分が着地してから走行アニメーションが再生されるまでに少しラグがあるんです｡

109
00:07:32,600 --> 00:07:39,440
‫そこで､ 着陸から接地への移行をクリックし､ 着陸ブレンドの設定を見てみたいと思います｡

110
00:07:39,890 --> 00:07:43,220
‫今､ このデュレーションが0になりました｡  1.

111
00:07:43,310 --> 00:07:48,650
‫それだけ移行に時間がかかっていて､ どうなっているのかということです｡

112
00:07:48,650 --> 00:07:53,360
‫では､ 着陸の戦闘アニメーションでは､ その着陸の長さはどれくらいですか？

113
00:07:53,360 --> 00:07:54,590
‫戦闘アニメーション？

114
00:07:54,620 --> 00:07:57,260
‫一時停止したら､ ここに沿ってスクロールしてください｡

115
00:07:57,350 --> 00:08:00,770
‫約0であることがわかる｡  2.

116
00:08:00,770 --> 00:08:10,040
‫つまり､ その時間を全部使って､ その間に地上での運動に移行しているのです｡

117
00:08:10,040 --> 00:08:15,530
‫つまり､ 地面に着地したらすぐに､ ゲームプレイが地面に着地したことを伝えると同時に､

118
00:08:15,530 --> 00:08:22,820
‫足の動きを表示させたいのです｡

119
00:08:22,970 --> 00:08:35,120
‫そのため､ 着陸時のアニメーションはほとんど再生せず､ 接地時のアニメーションにできるだけ早く移行させるようにしています｡

120
00:08:35,150 --> 00:08:48,890
‫ここで微調整できるのは､ 移行モードだけです｡ これは､ 時間の経過とともに､ 着陸と接地がどの程度になるかを示す曲線の形状を決定するようなものです｡

121
00:08:48,890 --> 00:08:53,000
‫そして､ これらの選択肢をいろいろと試し､ どれが一番自分に合っているかを確認することができるのです｡

122
00:08:53,030 --> 00:09:02,460
‫私にとっては､ できるだけ早い段階で､ できるだけ接地した状態を示し､ しかも耳障りな感じがしない､ 指数関数的なアウトが一番しっくりくるのです｡

123
00:09:02,480 --> 00:09:08,690
‫今､ 空中にいる状態から地上に戻ると､ かなり早く地上に出ているように感じられると思いますが､

124
00:09:08,690 --> 00:09:12,210
‫これは私たちが望むところです｡

125
00:09:12,230 --> 00:09:16,520
‫だから､ 先に再生を押して､ その方が気持ちいいかどうかを確認するんだ｡

126
00:09:17,210 --> 00:09:21,290
‫そうですね､ 地面を叩いている時の反応が少し良くなった気がします｡ まさに私が求めていたものです｡

127
00:09:21,440 --> 00:09:31,580
‫さて､ 実際には､ もっと多くのアニメーションをここで扱うことができれば､ 着陸した状態に対して､ ブレンドスペースを設けて回復アニメーションを作成することも可能でしょう｡

128
00:09:31,580 --> 00:09:36,590
‫ですから､ 地面にぶつかった強さによっては､ 回復アニメーションを再生するかもしれませんし､

129
00:09:36,590 --> 00:09:39,380
‫移動方向によってブレンドされるかもしれません｡

130
00:09:39,380 --> 00:09:44,600
‫だから､ 着地はドスンと重くても､ ちょっと左によろけるとかね｡

131
00:09:44,630 --> 00:09:48,770
‫さて､ アニメーションがないからといって､ ここで取り上げるようなことではありません｡

132
00:09:48,770 --> 00:09:51,090
‫でも､ 理屈の上ではそうなるかもしれませんね｡

133
00:09:51,110 --> 00:10:00,710
‫さて､ 最後のミニチャレンジですが､ 現在､ 死のアニメーションのために､ boolによるブレンドポーズが行われています｡

134
00:10:00,800 --> 00:10:04,850
‫これは､ 死のための新しいステートマシンで行うことができます｡

135
00:10:04,970 --> 00:10:14,060
‫このアニメーショングラフをリファクタリングして､ boolによるブレンドポーズの代わりに､ 死のためのステートマシンで動作するようにできるかどうか試してみてください｡

136
00:10:14,300 --> 00:10:16,830
‫だから､ そのチャレンジに応えてくれることを期待しています｡

137
00:10:16,850 --> 00:10:23,510
‫これから行うのは､ 右クリックで全く新しいステートマシンを作成することです｡

138
00:10:23,690 --> 00:10:29,690
‫このステートマシンの名前をdeathかそれに似たものに変更して､ そのステートマシンに入り､

139
00:10:29,690 --> 00:10:32,920
‫2つの状態を追加します｡

140
00:10:32,930 --> 00:10:39,110
‫一方は生きている状態､ もう一方は死んでいる状態になるのです｡

141
00:10:40,160 --> 00:10:42,140
‫そして､ いくつかのトランジションを追加していきます｡

142
00:10:42,140 --> 00:10:45,410
‫だから､ 生から死への移行､ それが起こるのです｡

143
00:10:45,410 --> 00:10:50,840
‫ダブルクリックすると､ このようにis dead is trueの時に起こるんです｡

144
00:10:51,440 --> 00:10:58,970
‫そして､ aliveに戻るトランジションが必要かもしれません｡ 少なくともテスト目的であれば､ not

145
00:10:58,970 --> 00:11:05,560
‫booleanを持ち､ is deadを持つので､ 基本的にis not deadです｡

146
00:11:05,570 --> 00:11:07,550
‫反対方向に戻るんです｡

147
00:11:08,120 --> 00:11:10,460
‫アライブ状態であることをデフォルトにしたい｡

148
00:11:10,460 --> 00:11:11,210
‫なるほどね｡

149
00:11:11,210 --> 00:11:12,980
‫そして､ 再生するためのアニメーションが必要です｡

150
00:11:13,220 --> 00:11:15,650
‫だから､ 「デッド」については､ すでにそのデスアニメーションがあるんです｡

151
00:11:15,650 --> 00:11:24,770
‫そこで､ アニメーショングラフに戻ってこれを切り出し､ 死んだ状態に戻って､ その死のアニメーションをここに貼り付けます｡

152
00:11:25,840 --> 00:11:27,220
‫それから､ 私たちのライブの状態で｡

153
00:11:27,220 --> 00:11:28,420
‫そこで何を再生したいのか？

154
00:11:28,450 --> 00:11:30,610
‫まあ､ 実はそれ以外も遊びたいんですけどね｡

155
00:11:30,620 --> 00:11:32,290
‫セットの狙いを弾きたい｡

156
00:11:32,290 --> 00:11:33,930
‫ロコモーションを再生したい｡

157
00:11:33,940 --> 00:11:35,800
‫だから､ 全部カットするんです｡

158
00:11:35,920 --> 00:11:37,600
‫そして､ ここが面白いところです｡

159
00:11:37,600 --> 00:11:42,190
‫これで､ ステートマシンの中でステートマシンが動いていることになりますが､ これは完全に可能です｡

160
00:11:42,190 --> 00:11:50,230
‫そして､ アニメーショングラフに戻り､ ここにあるすべてのノードを削除して､

161
00:11:50,230 --> 00:11:56,710
‫死の状態マシンを出力にパイプするだけでよいのです｡

162
00:11:56,830 --> 00:12:00,370
‫そして､ これはトップレベルの状態を2つ持っているからうまくいくのです｡

163
00:12:00,370 --> 00:12:02,590
‫基本的には､ 生きているか死んでいるかのどちらかだと言っているんです｡

164
00:12:03,040 --> 00:12:05,020
‫死んだら死んだで､ デスアニメーションが流れるだけ｡

165
00:12:05,020 --> 00:12:10,060
‫しかし､ 生きていれば､ この照準オフセットを行い､ ロコモーションのステートマシンを行い､

166
00:12:10,060 --> 00:12:13,000
‫そのステートマシンには独自のセットがあります｡

167
00:12:13,000 --> 00:12:15,310
‫つまり､ ステートマシンの上にステートマシンを重ねているわけです｡

168
00:12:15,310 --> 00:12:17,650
‫それがいかに強力なものであるか､ ご理解いただけると幸いです｡

169
00:12:17,890 --> 00:12:22,030
‫だから､ 今できることは死ぬことであり､ それは実行中の他のすべてを上書きすることです｡

170
00:12:22,030 --> 00:12:25,810
‫もはやロコモーションのステートマシンを動かしているわけではありません｡

171
00:12:25,870 --> 00:12:34,600
‫もし､ 私が死んだら､ ライブのアニメーションの実行に戻りますが､ 以前はできなかった､ 私たちの死を決定的に再生することができます｡

172
00:12:34,600 --> 00:12:43,060
‫アニメーション・ステート・マシンの状態を離れると､ その中のアニメーションがリセットされ､ 最初に戻ってしまうからです｡

173
00:12:43,060 --> 00:12:45,700
‫だから､ ここは死守するために本当に便利な機能なんです｡

174
00:12:45,700 --> 00:12:51,910
‫つまり､ この講義で学んだことは､ より複雑なステートマシンとステートマシンを相互に作る方法です｡

175
00:12:51,910 --> 00:12:58,750
‫また､ 自動遷移については､ 一連の遷移をより簡単に実現するための方法について見てきました｡

176
00:12:58,750 --> 00:13:00,070
‫そして､ 次の講義でお会いしましょう｡

