‫こんにちは､ ようこそ｡
‫この講義では､ アニメーションのステートマシンを完成させ､ より多くのステートを作成し､
‫最初のジャンプ状態にジャンプするアニメーションを作成します｡
‫ご覧のとおり､ 私のジャンプにはもう少し春があります｡ 自動遷移や､ あるステートマシンを別のステートマシンの中に入れ子にする方法など､
‫これから広告デスアニメーションについて学んでいきます｡
‫では､ さっそく潜入してみましょう｡
‫そこで､ 前回の講義でお約束したように､ is airborne変数をゲームプレイにフックアップしてみましょう｡
‫さて､ これから行う方法は､ ポーンや特にシューターキャラクターから取得することです｡
‫キャラクターが空気かどうか､ 本質的に見極めたいのです｡
‫そして､ これを実現する唯一の方法は､ 基本的にキャラクターの動きのコンポーネントであると私は考えています｡
‫では､ どういうことか､ お見せしましょう｡
‫シューターキャラクターにキャストしているキャストノードに移動して､ このノードからドラッグすることができます｡
‫実際､ 私たちができることは､ この特定のインスタンスでより一般的なキャストであり､
‫is deadに関連する特定の情報は必要ないからです｡
‫つまり､ ポーンの所有者であるこのピンを､ この場合はキャラクタにキャストするのです｡
‫次に､ シーケンスノードに新しい実行ピンを追加し､ それをキャラクタにドラッグダウンして､ キャラクタからそのキャラクタピンからドラッグオフすることにします｡
‫そして､ 基本的には空中戦の線上にあるものを探しますが､
‫そこには何もありません｡
‫何かはわかったが､ それだけではない｡
‫落ちているところを探したらどうだろう？
‫これでよしとする｡
‫が降ってきたんです｡
‫そして､ それをクリックすると､ 自動的にそのキャラクターからキャラクターの移動コンポーネントを取得して､
‫私たちが落下しているかどうかを確認できることがわかります｡
‫そして､ この値を渡して､ is airborneの値を設定します｡ 明らかに､ キャラクターへのキャストが成功した場合のみ､
‫この値を設定することになります｡
‫そこで､ その実行ピンをフックしてみましょう｡
‫それをコンパイルして行けばいいのです｡
‫当然､ プレビューに変化はないので､ 試しにプレイして行くしかない｡
‫では､ ジャンプしてみましょう｡ この落下する変数が即座にtrueになり､ 非常にうまく機能しているのがわかると思います｡
‫ジャンプして着地して､ ジャンプして着地して､ 敵をやっつけることができたのは明らかです｡
‫では､ 次にアニメーショングラフをもう少し複雑にしてみたいと思います｡
‫つまり､ ロコモーションのステートマシンでは､ ここに2つの状態があるわけです｡
‫でも､ 本当にやりたいのは､ ジャンプのアニメーションと､ 空中にいるときのアニメーション､ そして地上に降りたときの着地のアニメーションを再生することなんです｡
‫そのためには､ ステートマシンの状態をもう少し増やす必要がある｡
‫では､ 先に進みましょう｡
‫私は一連の状態のうちの1つをやるので､ 最後の1つをやってください｡
‫そこで､ まず最初に､ ジャンプ状態にすることにしました｡
‫そしてそれは､ 私たちを軌道に乗せるアニメーションを演じることになるのです｡
‫では､ ジャンプ状態にして､ 出力アニメーションのポーズにしましょう｡
‫新しいアニメーションをリンクさせるのです｡
‫ジャンプを探そう｡
‫コンバットでサブ固定したやつを全部募集します｡
‫そこで､ ジャンプスタート戦闘を探します｡
‫これでよしとする｡
‫そして､ それが私たちの願いでもあるのです｡
‫次に､ ロコモーションのステートマシンに戻り､ いくつかのトランジションをフックしたいと思います｡
‫だから､ 接地からジャンプに移行するんです｡
‫空気を読めばそうなりますよね｡
‫だから､ 空気中に置くと､ そこに空気が入ってしまうのです｡
‫残念ながら､ 移行を変更する方法は見当たりません｡
‫ですから､ ここでは両方とも古いトランジションを削除すればいいのです｡
‫それから､ ジャンプからis airborneへの遷移が必要ですが､ そのための変数やステートがありません｡
‫では､ ジャンプから彼の空気に移行するのはいつになるのでしょうか？
‫まあ､ ジャンプのアニメーションが終わったときにやりたいんですけどね｡
‫ジャンプが終わったら､ ジャンプのアニメーションを見てもらうとわかるのですが､
‫このように足を地面から浮かせているのがわかります｡
‫そして､ 頂点アニメーションが終了した時点で､ 基本的に頂点アニメーションに移行するようにします｡
‫幸いなことに､ トランジションにはそのためのオプションが用意されています｡
‫トランジションに入るのではなく､ 選択すると､ その詳細ペインを見ることができます｡
‫そして､ ここにはひとつの選択肢がある｡
‫これを拡大すると､ 状態での連続したプレーヤーに基づく自動ルールが書かれています｡
‫これをチェックすると､ 基本的には､ ジャンプがほぼ終了した時点で､ 次のアニメーションに移行し始めますが､
‫その移行タイミングとクロスフェードの長さを実際にコントロールすることができます｡
‫ここでブレンドの設定で､ ブレンドのデュレーションが約0になっているのがわかります｡ 2ですが､ この2人は特にうまく移行しているので､
‫0にします｡ 01.
‫だから､ その移行を本当に短くしようと思っているんです｡
‫では､ その様子を見てみましょう｡
‫だから､ イズエアボーンに入るんです｡
‫あのジャンプのアニメーションを再生して､ そのまま空中浮遊状態になるんです｡
‫アニメーションが完成したら
‫もう1回やってみよう､ もう1回やってみよう｡
‫それが問題で､ 空中状態から地上状態に戻るトランジションがないため､ それが課題になりそうです｡
‫つまり､ 着陸アニメーションを再生する着陸状態を追加するのです｡
‫そこで､ 新しい状態を追加し､ 着陸に最も適したアニメーションを追加します｡
‫ご意見としては､ ジャンプの接頭辞とコンバットの接尾辞がついたものを探すとよいかもしれませんね｡
‫そして､ ブーリアン上のエアボーンから､ この着陸状態に移行するわけです｡
‫そして､ その着陸状態から､ 着陸アニメーションが終了した時点で接地状態に移行するのです｡
‫遊んでみてください､ どんな感じか確かめてみてください｡
‫気持ちいいですか？
‫正しく見えるか？
‫そして､ その移行時間を微調整することで､ 物事がより良く感じられるかどうか調べてみるのもいいかもしれません｡
‫ビデオを一時停止して､ ステートマシンを使って遊んでみてください｡
‫なるほど｡
‫お帰りなさい｡
‫では､ これに挑戦してみよう｡
‫ここに新しい状態を追加していきます｡
‫着地と言うことになるのでしょう｡
‫そして､ この着地状態で､ 中に入ると､ そのためのアニメーションが必要になります｡
‫ジャンプを検索して､ ジャンプ着地戦闘をこのようにします｡ そして､ ロコモーションのステートマシンに戻ります｡
‫空中戦から着陸への移行が必要だ｡
‫それをダブルクリックしましょう｡
‫そして､ これは､ 基本的に空気感染しないので､ ノードではなく､ 空気感染するものであることが必要です｡
‫これが私たちの移行条件ですね｡
‫だから､ 頂点にいるときに､ 一旦not is airborneがチェックされずに､ その後､ 着陸状態になるんです｡
‫そして､ 着陸状態から､ 終了したら接地状態に遷移させたいと考えています｡
‫つまり､ トランジションをクリックして､ 自動ルールのチェックボックスにチェックを入れれば､ 終了時にその通りになるわけです｡
‫では､ それを試してみましょう｡
‫彼のエアボーンに入る｡
‫ジャンプを再生して､ Airborneに入り､ チェックを外す｡
‫着陸して戻ってくる｡
‫もう一回､ やりましょう｡
‫かなり良いようです｡
‫なるほど｡
‫では､ これからどうするかというと､ 飛び跳ねたり､ 着地したりして遊んでみるのです｡
‫なるほど｡
‫これはかなりいい感じです｡
‫着地するときに､ 自分が着地してから走行アニメーションが再生されるまでに少しラグがあるんです｡
‫そこで､ 着陸から接地への移行をクリックし､ 着陸ブレンドの設定を見てみたいと思います｡
‫今､ このデュレーションが0になりました｡ 1.
‫それだけ移行に時間がかかっていて､ どうなっているのかということです｡
‫では､ 着陸の戦闘アニメーションでは､ その着陸の長さはどれくらいですか？
‫戦闘アニメーション？
‫一時停止したら､ ここに沿ってスクロールしてください｡
‫約0であることがわかる｡ 2.
‫つまり､ その時間を全部使って､ その間に地上での運動に移行しているのです｡
‫つまり､ 地面に着地したらすぐに､ ゲームプレイが地面に着地したことを伝えると同時に､
‫足の動きを表示させたいのです｡
‫そのため､ 着陸時のアニメーションはほとんど再生せず､ 接地時のアニメーションにできるだけ早く移行させるようにしています｡
‫ここで微調整できるのは､ 移行モードだけです｡ これは､ 時間の経過とともに､ 着陸と接地がどの程度になるかを示す曲線の形状を決定するようなものです｡
‫そして､ これらの選択肢をいろいろと試し､ どれが一番自分に合っているかを確認することができるのです｡
‫私にとっては､ できるだけ早い段階で､ できるだけ接地した状態を示し､ しかも耳障りな感じがしない､ 指数関数的なアウトが一番しっくりくるのです｡
‫今､ 空中にいる状態から地上に戻ると､ かなり早く地上に出ているように感じられると思いますが､
‫これは私たちが望むところです｡
‫だから､ 先に再生を押して､ その方が気持ちいいかどうかを確認するんだ｡
‫そうですね､ 地面を叩いている時の反応が少し良くなった気がします｡ まさに私が求めていたものです｡
‫さて､ 実際には､ もっと多くのアニメーションをここで扱うことができれば､ 着陸した状態に対して､ ブレンドスペースを設けて回復アニメーションを作成することも可能でしょう｡
‫ですから､ 地面にぶつかった強さによっては､ 回復アニメーションを再生するかもしれませんし､
‫移動方向によってブレンドされるかもしれません｡
‫だから､ 着地はドスンと重くても､ ちょっと左によろけるとかね｡
‫さて､ アニメーションがないからといって､ ここで取り上げるようなことではありません｡
‫でも､ 理屈の上ではそうなるかもしれませんね｡
‫さて､ 最後のミニチャレンジですが､ 現在､ 死のアニメーションのために､ boolによるブレンドポーズが行われています｡
‫これは､ 死のための新しいステートマシンで行うことができます｡
‫このアニメーショングラフをリファクタリングして､ boolによるブレンドポーズの代わりに､ 死のためのステートマシンで動作するようにできるかどうか試してみてください｡
‫だから､ そのチャレンジに応えてくれることを期待しています｡
‫これから行うのは､ 右クリックで全く新しいステートマシンを作成することです｡
‫このステートマシンの名前をdeathかそれに似たものに変更して､ そのステートマシンに入り､
‫2つの状態を追加します｡
‫一方は生きている状態､ もう一方は死んでいる状態になるのです｡
‫そして､ いくつかのトランジションを追加していきます｡
‫だから､ 生から死への移行､ それが起こるのです｡
‫ダブルクリックすると､ このようにis dead is trueの時に起こるんです｡
‫そして､ aliveに戻るトランジションが必要かもしれません｡ 少なくともテスト目的であれば､ not
‫booleanを持ち､ is deadを持つので､ 基本的にis not deadです｡
‫反対方向に戻るんです｡
‫アライブ状態であることをデフォルトにしたい｡
‫なるほどね｡
‫そして､ 再生するためのアニメーションが必要です｡
‫だから､ 「デッド」については､ すでにそのデスアニメーションがあるんです｡
‫そこで､ アニメーショングラフに戻ってこれを切り出し､ 死んだ状態に戻って､ その死のアニメーションをここに貼り付けます｡
‫それから､ 私たちのライブの状態で｡
‫そこで何を再生したいのか？
‫まあ､ 実はそれ以外も遊びたいんですけどね｡
‫セットの狙いを弾きたい｡
‫ロコモーションを再生したい｡
‫だから､ 全部カットするんです｡
‫そして､ ここが面白いところです｡
‫これで､ ステートマシンの中でステートマシンが動いていることになりますが､ これは完全に可能です｡
‫そして､ アニメーショングラフに戻り､ ここにあるすべてのノードを削除して､
‫死の状態マシンを出力にパイプするだけでよいのです｡
‫そして､ これはトップレベルの状態を2つ持っているからうまくいくのです｡
‫基本的には､ 生きているか死んでいるかのどちらかだと言っているんです｡
‫死んだら死んだで､ デスアニメーションが流れるだけ｡
‫しかし､ 生きていれば､ この照準オフセットを行い､ ロコモーションのステートマシンを行い､
‫そのステートマシンには独自のセットがあります｡
‫つまり､ ステートマシンの上にステートマシンを重ねているわけです｡
‫それがいかに強力なものであるか､ ご理解いただけると幸いです｡
‫だから､ 今できることは死ぬことであり､ それは実行中の他のすべてを上書きすることです｡
‫もはやロコモーションのステートマシンを動かしているわけではありません｡
‫もし､ 私が死んだら､ ライブのアニメーションの実行に戻りますが､ 以前はできなかった､ 私たちの死を決定的に再生することができます｡
‫アニメーション・ステート・マシンの状態を離れると､ その中のアニメーションがリセットされ､ 最初に戻ってしまうからです｡
‫だから､ ここは死守するために本当に便利な機能なんです｡
‫つまり､ この講義で学んだことは､ より複雑なステートマシンとステートマシンを相互に作る方法です｡
‫また､ 自動遷移については､ 一連の遷移をより簡単に実現するための方法について見てきました｡
‫そして､ 次の講義でお会いしましょう｡