﻿1
00:00:04,530 --> 00:00:05,310
‫こんにちは､ ようこそ｡

2
00:00:05,310 --> 00:00:11,370
‫この講義では､ ステートマシンと呼ばれるアニメーションのブループリントの新しい部分を紹介します｡

3
00:00:11,370 --> 00:00:12,780
‫とても便利な部分です｡

4
00:00:12,780 --> 00:00:22,740
‫そして､ このブールスイッチを押すと､ ジャンプ状態に移行し､ その後､ 接地状態に戻ることができるようになるのです｡

5
00:00:22,740 --> 00:00:27,090
‫では､ これらの仕組みと､ これを自分たちで作る方法を紹介しましょう｡

6
00:00:28,050 --> 00:00:28,290
‫なるほど｡

7
00:00:28,290 --> 00:00:33,480
‫そのため､ ジャンプすると空中で走ってしまうという､ 実に奇妙な動作になってしまい､

8
00:00:33,480 --> 00:00:36,270
‫明らかに見栄えが悪くなってしまいます｡

9
00:00:36,480 --> 00:00:42,570
‫さて､ これを解決するためには､ アニメーション・ステート・マシンと呼ばれる全く新しいアニメーションの概念を学ぶ必要があります｡

10
00:00:42,570 --> 00:00:44,640
‫ですから､ これはアニメーションの設計図に属するものです｡

11
00:00:44,640 --> 00:00:48,300
‫だから､ まだの方は､ ぜひその気にさせてください｡

12
00:00:48,540 --> 00:00:55,740
‫そして､ アニメーションのグラフでは､ これまでのところ､ すべてこのノードを介して行われてきました｡

13
00:00:55,860 --> 00:01:01,020
‫さて､ 今回ご紹介したいのは､ 新しいもの､ つまりステートマシンと呼ばれるものを追加する方法です｡

14
00:01:01,110 --> 00:01:07,110
‫右クリックして､ アニメーショングラフの中から､ ステートマシンを探します｡

15
00:01:07,110 --> 00:01:11,620
‫そして､ この広告､ 新しいステートマシンは､ ここでの1つの選択肢であることがおわかりいただけると思います｡

16
00:01:11,640 --> 00:01:15,380
‫さて､ この他にも方法があることを紹介したいと思います｡

17
00:01:15,390 --> 00:01:17,910
‫右クリックでずっと戻ると

18
00:01:17,910 --> 00:01:24,720
‫アニメーショングラフを右クリックして､ 新しいステートマシンを検索すると､ このオプションが表示されます｡

19
00:01:24,720 --> 00:01:31,470
‫ここでクリックすると､ 新しいノードが作成されます｡ このノードには､ 1つのアニメーションPOの出力ピンがあり､ My

20
00:01:31,740 --> 00:01:39,360
‫Blueprintの左側のペインでは､ アニメーショングラフの下に､ 新しいステートマシンが作成されているのがわかります｡

21
00:01:39,360 --> 00:01:47,670
‫新しいステートマシンをダブルクリックするか､ アニメーショングラフの上でクリックすると､ この新しいウィンドウが表示されるのがわかると思います｡

22
00:01:47,670 --> 00:01:48,900
‫つまり､ まだ別のものなんですね｡

23
00:01:48,900 --> 00:01:53,850
‫アニメーショングラフ､ イベントグラフ､ そしてステートマシングラフができました｡

24
00:01:54,510 --> 00:01:55,980
‫実はこれ､ 名前を変えることができるんです｡

25
00:01:55,980 --> 00:02:01,770
‫そこで､ My Blueprintでステートマシンをクリックし､ 2を押すことで､ より良い名前を付けることができます｡

26
00:02:01,770 --> 00:02:05,730
‫そして､ これはロコモーションと呼ぶことができます｡ なぜなら､ これはロコモーションについてのすべてだからです｡

27
00:02:05,730 --> 00:02:07,710
‫それから､ ステートマシンは何をするものなのでしょうか？

28
00:02:07,710 --> 00:02:11,880
‫ステートマシンは､ 最も単純なもので､ 右クリックしたときの集合体です｡

29
00:02:11,880 --> 00:02:14,190
‫実は､ ここにはいくつかのオプションがあることがおわかりいただけると思います｡

30
00:02:14,190 --> 00:02:15,690
‫コメントあり､ 導線あり｡

31
00:02:15,690 --> 00:02:19,950
‫しかし､ 最も重要なのは､ それが機械に満ちている状態であると述べていることです｡

32
00:02:19,950 --> 00:02:22,860
‫そして､ ここにいくつかの州を加えて､ イメージを膨らませることができます｡

33
00:02:22,860 --> 00:02:25,050
‫だから､ 州､ 州1､ 州2があるんです｡

34
00:02:25,350 --> 00:02:29,670
‫そして､ この境界線からドラッグすると､ トランジションと呼ばれるものが作成されます｡

35
00:02:29,670 --> 00:02:32,550
‫つまり､ 状態間の遷移を作ることができるわけです｡

36
00:02:32,820 --> 00:02:38,730
‫そして､ このエントリーピンは､ 基本的にどの状態を開始すべきかを教えてくれるものです｡

37
00:02:39,120 --> 00:02:39,440
‫なるほど｡

38
00:02:39,450 --> 00:02:40,830
‫では､ 少し話を戻しましょう｡

39
00:02:40,830 --> 00:02:42,300
‫これはどういうことなのでしょうか？

40
00:02:42,960 --> 00:02:55,350
‫それぞれの状態をダブルクリックすると出力ピンがあり､ その出力ピンはアニメーショングラフと同じようにアニメーションポーズの構築に使用できます｡

41
00:02:55,350 --> 00:03:00,150
‫つまり､ 最もシンプルな形として､ ここにアニメーションを貼り付けることになるかもしれません｡

42
00:03:00,150 --> 00:03:03,540
‫だから､ 例えば古いアニメーションの再生可能なものを選んでください｡

43
00:03:03,540 --> 00:03:09,540
‫そしてこれが､ ステートマシンがある状態にあるときに再生されるアニメーションです｡

44
00:03:09,930 --> 00:03:11,820
‫さて､ どのようにして所定の状態になるのでしょうか｡

45
00:03:11,820 --> 00:03:15,060
‫まあ､ エントリーノードがその状態を指しているので､ ある状態になるのかもしれません｡

46
00:03:15,060 --> 00:03:16,710
‫というのが､ デフォルトの状態です｡

47
00:03:16,710 --> 00:03:18,060
‫そこがスタート地点です｡

48
00:03:18,270 --> 00:03:21,990
‫しかし､ その場合も同様に､ 一連の遷移を経てある状態に至るかもしれません｡

49
00:03:22,350 --> 00:03:27,390
‫トランジションにはそれぞれプロパティがあり､ トランジションをダブルクリックすると､ またそれが表示されますね｡

50
00:03:27,390 --> 00:03:32,340
‫ノードエディタがポップアップ表示され､ ある種のブーリアン特性を持つことができます｡

51
00:03:32,340 --> 00:03:41,820
‫だから､ "is dead "のようなものがあれば､ "is dead "をここに取り込んで､ "is dead "が真実であることを示すことができるかもしれません｡

52
00:03:41,850 --> 00:03:48,120
‫この元の状態にいれば遷移を行い､ 死んでいれば状態1に遷移して､

53
00:03:48,120 --> 00:03:52,200
‫状態1でアニメーションを再生し始めます｡

54
00:03:52,200 --> 00:03:59,070
‫そして､ 状態1からの遷移が何らかの理由で真であれば､ 状態2への遷移を行うかもしれません｡

55
00:03:59,610 --> 00:04:05,880
‫さて､ これは理論的にはとても良いことなのですが､ 実際のランニングにどのように役立つのでしょうか？

56
00:04:06,300 --> 00:04:11,130
‫まあ､ 例えば､ 接地しているという状態が欲しいかもしれませんね｡

57
00:04:11,760 --> 00:04:16,440
‫そして､ 接地した状態で､ 地上での運動性能を発揮するのです｡

58
00:04:16,440 --> 00:04:21,520
‫では､ アニメーションのグラフに戻ると､ 接地された運動量はどうなっているのでしょうか？

59
00:04:21,540 --> 00:04:23,940
‫基本的にここがすべてです｡

60
00:04:23,940 --> 00:04:30,720
‫アイドル戦闘オフセットを追加する前に､ ロコモーションブレンドスペースがあり､ これが接地オフセットになります｡

61
00:04:30,720 --> 00:04:40,110
‫ここでノードを切り､ ロコモーション（運動）ステートマシンを接続して､ 照準オフセットに渡します｡

62
00:04:40,230 --> 00:04:45,480
‫次に､ ロコモーションのステートマシンで､ 接地状態にして､ ここにノードを貼り付けて､

63
00:04:45,480 --> 00:04:48,600
‫出力ピンに接続します｡

64
00:04:48,750 --> 00:04:52,620
‫では､ ここで何が起こっているのか､ アニメグラフレベルで追ってみましょう｡

65
00:04:53,130 --> 00:04:58,320
‫まず､ アニメーションのロコモーションのステートマシンを動かしています｡

66
00:04:58,500 --> 00:05:04,380
‫そして､ まだ接続していませんが､ エントリーピンが接地状態を指しているので､ 自動的に接地状態になり､

67
00:05:04,380 --> 00:05:08,520
‫そこに入って､ よし､ ブレンド空間ができたと判断して､ 変数を使ってブレンドし､

68
00:05:08,520 --> 00:05:12,390
‫これを出力するのです｡

69
00:05:12,390 --> 00:05:16,140
‫それがステートマシン全体の出力となる｡

70
00:05:16,140 --> 00:05:21,120
‫そして､ それが戦闘アニメーションにつながり､ 死亡アニメーションにつながり､

71
00:05:21,120 --> 00:05:23,490
‫最終的な出力につながるのです｡

72
00:05:23,820 --> 00:05:32,580
‫というのも､ ステートマシンの状態は1つだけだからです｡

73
00:05:33,270 --> 00:05:36,780
‫しかし､ もし私たちがジャンプしているのなら､ 新しい状態を導入することができます｡

74
00:05:36,780 --> 00:05:44,760
‫そのために､ 広告の状態を設定し､ その状態としてエアボーンを設定します｡

75
00:05:44,760 --> 00:05:48,990
‫基本的には､ アニメグラフのアップでそれらのアニメーションを切り替えています｡

76
00:05:48,990 --> 00:05:56,070
‫このレベルでは､ このノードがAirborne状態のときに､ 異なるアニメーションの再生に切り替わることを意味しています｡

77
00:05:56,070 --> 00:06:00,450
‫そこで､ 「Airborne State」に入り､ ここでアニメーションが選択されていることを確認したいと思います｡

78
00:06:00,450 --> 00:06:05,640
‫だから､ その結果ピンを引き抜いて､ ジャンプを探すだけです｡

79
00:06:05,640 --> 00:06:12,630
‫特に､ ジャンプの頂点である「戦闘」を探します｡

80
00:06:12,630 --> 00:06:23,430
‫これは､ ジャンプの頂点になるため､ 「頂点」を目指しています｡

81
00:06:23,520 --> 00:06:28,110
‫エアボーンステートに行くには､ そこに至るトランジションがないので､ どうしようもないのです｡

82
00:06:28,410 --> 00:06:34,950
‫そこで､ 接地状態の境界線から空中状態までドラッグして､ ここでトランジションを作成したいので､

83
00:06:34,950 --> 00:06:38,340
‫ダブルクリックします｡

84
00:06:38,340 --> 00:06:42,090
‫そして､ 現在持っていない変数を元にトランジションを行うだけです｡

85
00:06:42,090 --> 00:06:50,610
‫ブループリントで変数を追加し､ ここにブーリアン変数としてis airborneを設定すると､

86
00:06:50,610 --> 00:06:58,050
‫このノードエディタでそれを引き出して､ 接地遷移させることができます｡

87
00:06:58,710 --> 00:07:05,910
‫そして､ このトランジションは空中にいるときに可能で､ 空中から地上に出るときは逆のトランジションが必要だということを示すために､

88
00:07:06,270 --> 00:07:11,490
‫それをフックします｡

89
00:07:11,640 --> 00:07:19,410
‫このノードをダブルクリックすると､ ノットノードが作成され､

90
00:07:19,410 --> 00:07:25,850
‫ブーリアン演算が否定されます｡

91
00:07:25,860 --> 00:07:32,280
‫最後に､ 右側にあるアニメーション・プレビュー・エディタ・タブで､ このスイッチを切り替えると､

92
00:07:32,280 --> 00:07:38,310
‫空中のアニメーションを再生する空中の状態になります｡

93
00:07:38,310 --> 00:07:46,500
‫さらに､ もう一度反転させると､ 地上での運動に戻り､ このすべてが狙い通りのピッチで動作していることがわかります｡

94
00:07:46,500 --> 00:07:50,820
‫エイムピッチを上に向けて動かすと､ エアボーンに当たるんです｡

95
00:07:50,820 --> 00:07:54,530
‫私たちは､ 目指すべき方向を目指し続けていることがおわかりいただけると思います｡

96
00:07:54,540 --> 00:08:00,750
‫さて､ ステートマシンをこのようにセットアップすることとは別に､ もしまだついてきていないのなら､

97
00:08:00,750 --> 00:08:07,470
‫あなたにミニ・チャレンジをしてもらいたいことがあります｡

98
00:08:07,470 --> 00:08:15,360
‫クリックが空中にある瞬間､ このアニメーション､ 空中のアニメーションがグリッチでループする奇妙な現象が発生します｡

99
00:08:15,360 --> 00:08:18,810
‫このアニメーションがループしないようにできるかどうか見てみましょう｡

100
00:08:18,810 --> 00:08:23,640
‫ですから､ アニメの設計図を見ながら､ そのプロパティを見つけられるかどうか､ かなり難しいかもしれませんが､

101
00:08:23,640 --> 00:08:24,870
‫見つけてみてください｡

102
00:08:25,170 --> 00:08:25,680
‫お帰りなさい｡

103
00:08:25,680 --> 00:08:28,260
‫だから､ あなたがこれを試しに行ってくれることを期待しています｡

104
00:08:28,260 --> 00:08:30,510
‫では､ 何から考えればいいのでしょうか｡

105
00:08:30,510 --> 00:08:33,120
‫この青写真をもとに､ どのようにナビゲートしていくのか｡

106
00:08:33,690 --> 00:08:39,600
‫まず､ この問題はロコモーションのステートマシンに起因することが分かっています｡

107
00:08:39,840 --> 00:08:46,680
‫では､ そこに入ってみましょう｡ 今演奏しているのは､ エアボーン状態であることがわかります｡

108
00:08:46,680 --> 00:08:55,260
‫ジャンプ頂点戦闘がぐるぐる回っていて､ 明らかにこの問題を引き起こしているのがわかると思います｡

109
00:08:55,470 --> 00:09:03,540
‫そのアニメーションをクリックして詳細を見ると､ このループアニメーションのプロパティが設定されていることがわかります｡

110
00:09:03,990 --> 00:09:11,460
‫このチェックを外して､ アニメーションのブループリントを再コンパイルすると､ 空中にいることになります｡

111
00:09:11,730 --> 00:09:25,830
‫ジャンプの頂点が一度だけ再生され､ その後､ ボックスのチェックを外すまでそのアニメーションを保持し､ ロコモーションのステートマシンに戻るのがわかります｡

112
00:09:25,830 --> 00:09:29,070
‫もし､ 私たちにスピードがあったら､ 私たちが動いていたら､ このすべてがうまくいくか見てみましょう｡

113
00:09:29,070 --> 00:09:36,030
‫ここで､ 私たちは走っているのですが､ 私たちが空中にいることを追加すると､ 私たちが空中にいなくなるまでジャンプの頂点に入り､

114
00:09:36,030 --> 00:09:40,350
‫その時点で､ 地面を走っていることに戻るように遷移します｡

115
00:09:40,350 --> 00:09:41,400
‫というわけで､ 今回の講義はここまで｡

116
00:09:41,400 --> 00:09:57,690
‫アニメーション・ステート・マシンという全く新しいコンセプトを紹介しました｡

117
00:09:57,690 --> 00:10:02,250
‫次回の講義では､ これをゲームプレイにフックして､ さらに洗練されたものにする予定です｡

