【UE5ゲーム制作講座】ドッジロールの移動量を変更する色々な方法【モーションワーピング】
Summary
TLDRこのビデオでは、ゲームキャラクターのルートモーションをウォーピング(スケーリング)させる様々な方法について解説しています。最も簡単な方法としてスケールを調整する手法、blueprintでルートモーションモディファイアーを使う手法、ゲームプレイアビリティプラグインを活用する手法などが紹介されています。また、ベクトル計算を使って目的地点を動的に更新する高度な手法も説明されています。各手法の長所と短所が示され、状況に応じた使い分けが提案されています。
Takeaways
- 👣 ルートモーションでキャラクターを移動させる際、曲がってしまう問題への3つの解決策が紹介されている。
- 🔑 1つ目は、ルートモーションのスケールを変更することで、簡単に問題を解決できる。
- ⚙️ 2つ目は、AnimationMontage内のRootMotionModifierというプロパティを使って、ブループリント上でスケールを調整できる。
- 🎮 3つ目は、GameplayAbilitiesプラグインを使って、AnimMontageの再生中にルートモーションのスケールを変更する方法。
- 🧮 最後に、TargetLocationの計算を使って目的地を動的に変更する高度な解決策も紹介されている。
- ⚖️ 各解決策には一長一短があり、状況に応じて使い分ける必要がある。
- 🔄 ループ処理の際は、AnimMontageの終了時にタイマーを止める必要がある点が説明されている。
- ✨ スケール変更以外にも、TargetLocationの計算を使えば目的地に沿った移動が可能になることが示されている。
- 📐 ターゲットロケーションの計算方法と、アクターの現在位置からの相対的な計算方法が詳しく説明されている。
- 🤖 紹介された解決策はいずれもUnreal Engineのブループリントビジュアルスクリプティングに基づいている。
Q & A
今回の動画の主なトピックは何でしたか?
-ルートモーションで移動量を変えるモーション・ワーピングを使った際の問題と、その解決策について説明していました。
ルートモーションのスケールを変更する一番簡単な方法は何でしたか?
-ルートモーションのスケールを変更するには、プレイヤーキャラクターのルートコンポーネントのスケールを直接変更することが一番簡単な方法です。
ルートモーションのスケールを変更する別の方法にはどのようなものがありましたか?
-「アドルートモーションモディファイアー」という関数を使うと、ブループリント上でルートモーション・ワーピングのスケールを調整できます。また、「ゲームプレイアビリティ」プラグインを使って、アニメーションモンタージュのウェイト値を変更することでもスケールを変えられます。
「アドルートモーションモディファイアー」を使う利点は何でしょうか?
-ブループリント上でルートモーション・ワーピングのスケールを直接調整できるため、より細かい制御が可能です。また、開始時間と終了時間を指定してスケールを変更できます。
「ゲームプレイアビリティ」プラグインを使う際の注意点は何でしょうか?
-このプラグインを使う場合、「ゲームプレイアビリティ」プラグインを有効にする必要があり、ゲームプレイアビリティを新規作成し、キャラクターにアビリティシステムコンポーネントを追加する必要があります。
「アドワープデートワープターゲットフロムロケーション&ローテーション」を使ってルートモーションを制御する方法は何でしたか?
-キャラクターの位置とゴール地点の距離を計算し、ゴール地点をプレイヤーの移動に合わせて更新することで、まっすぐ移動できるようにしていました。
上記の方法で注意すべき点は何でしたか?
-アニメーションの再生が終了した時に、ゴール地点の更新処理も終了するように制御する必要がありました。そうしないと、アニメーションが終了した後もゴール地点が更新され続けてしまいます。
今回紹介された3つの方法の一長一短は何でしたか?
-ルートコンポーネントのスケール変更は最もシンプルですが、細かい制御ができません。「アドルートモーションモディファイアー」は細かい制御ができる反面、やや複雑です。「アドワープデートワープターゲット」は動的にゴール地点を更新できますが、アニメーション終了時の制御が必要です。
今回の説明の中で一番重要だと思われる点は何でしたか?
-ルートモーションのスケールを変更することで、移動距離を調整できることが一番重要なポイントだと思われます。3つの方法はそのための異なるアプローチを示していました。
最後にどのような総括がなされましたか?
-3つの方法にはそれぞれ一長一短があるため、状況に応じて使い分けることが重要だと総括されていました。シンプルな調整が必要な場合はルートコンポーネントのスケール変更が適し、より細かい制御が必要な場合は他の2つの方法を使うとよいでしょう。
Outlines
🎥 ルートモーションのスケール調整とワーピング手法の解説
この段落では、キャラクターのルートモーションで移動量を変えるモーション ワーピング手法について説明しています。最も簡単な方法として、ルートモーションのスケールを調整する方法を紹介しています。さらに、アドルートモーションモディファイアーを使って、ブループリント上でワーピングの濃度を調整する方法も解説しています。壁に沿ってまっすぐ移動させるための手順と、異なる手法のメリット・デメリットも触れられています。
🧪 ゲームプレイアビリティを使ったモーションワーピング
この段落では、ゲームプレイアビリティプラグインを使ってモーションワーピングを行う手法を紹介しています。ゲームプレイアビリティを有効にし、アニムリートモーションのスケールを変更することで、キャラクターの移動量を調整できます。この手法では、時間的なタイミングやXYZ軸別の設定が可能になります。実際にこの手法を使ってキャラクターを移動させる様子も示されています。
⚡️ ゴール地点の動的更新によるルートモーションのコントロール
最後の段落では、以前紹介したアドワープデートワープターゲットのロケーションとローテーションを使った手法について触れています。ゴール地点を動的に更新することで、キャラクターをゴール地点に向かってまっすぐ進行させる方法を説明しています。ベクトル計算を用いてゴール地点のロケーションを更新し、キャラクターの向きも調整することでスムーズな移動を実現できます。アニメーション再生の終了時にタイマーを止める方法も記載されています。
Mindmap
Keywords
💡ルートモーション
💡モーションワーピング
💡スケーリング
💡ブループリント
💡アニメーションモンタージュ
💡ゲームプレイアビリティ
💡ロケーション
💡ベクトル
💡タイマー
💡イベント
Highlights
ルートモーションのスケールを変更することで、キャラクターの移動量を調整する方法を紹介する。
スケールを変更する最も簡単な方法は、ルートモーションの再生時にスケール値を直接指定することである。
直接スケール値を指定する方法の欠点は、実際の移動距離を制御しづらいことである。
「AddRootMotionModifier」関数を使うと、ブループリント上でモーション倍率を調整できる。
ゲームプレイアビリティプラグインの「PlayMontageAndWaitForAnimationEnd」ノードを使うと、アニメーションのスケール値を変更できる。
3つの方法を紹介し、ルートモーションにスケール値をかけて再生するという共通点を指摘する。
「UpdateDesiredHomeLocation」関数を使って、キャラクターの移動に合わせてゴール地点を動的に更新する方法を説明する。
ゴール地点の更新には、キャラクターの現在位置と目標距離から次のゴール地点を計算する。
ゴール地点の更新をループさせることで、キャラクターの進行に合わせてゴール地点が動的に変化する。
アニメーションが終了したタイミングでループを止める処理が必要である。
ベクトル計算を使えば、「UpdateDesiredHomeLocation」関数の代わりに同様の効果を得られる。
様々な方法にはそれぞれ一長一短があり、状況に応じて使い分ける必要がある。
スケール値を直接指定する方法がシンプルで分かりやすい場合が多い。
紹介した方法を組み合わせて使うことで、より柔軟な制御が可能になる。
次回の動画でさらなる解説を期待している。
Transcripts
さぁ今日はクレイミックです今日は肘に
紹介したルートモーションで移動量を
変えるモーション warping を
使った時にこんな感じでちょっと曲がって
しまうっていうのがあったのでこれの解決
策を色々と聞いていこうと思いますそれで
は福いきましょうまず一番簡単な方法とし
て
このルートバージョン森ファイアーの
スケールアップになっているのを
スケールにするってがは一番簡単な方法に
なるかと思います牽制するとここに奇形
ルチョ入力するんですけどプー系誘致を
入力したムン時ルート猛暑が大きく動く
ことになりますえスケルトンのルートを見
てみるとこっちの方に動かすと前に進むの
ではいいですねなのでもしを待っていくの
バインダーたいこれを
後とかにしてあげますびっくり消耗した
方法とと特に移動するかっていう目的塩
波動アップデートワープターゲット
from location
ローテーション言う関数を使って設定した
んですけど今回は移動量をもこのつける
だけで決めるのでこれは特に入らなくて
ほんと味を再生するだけね貧困できます
実際に見てみるとこちらは前回のやり方で
これをと目的地にできるの鍵いこうとして
しまうので
ここからどちらロールした時にこうですね
ちょっと見に今がてしまうということに
なるんですけれども
先ほどねーずだと
でしょこれやると分かりましたがね
マッスルんだと思いますもう1回見てみる
とこうからどちらを弄した時に壁に当たっ
た後まっすぐ進ん提供になったと思います
これが一番簡単な解決方法かだと思うん
ですけど少し使いにくい点がくださって
の一つ目が透けるであるということですね
前回はこんな感じで一応直接指定すること
ができたので結構
調整がしやすかったですけどこれだと
受け入れてしか入れられないので a 実際
にどのくらいパンメートルで飛ばしたいの
かお米取る飛ばしたいのかという形で au
さんのはちょっと難しくて
あくまでも天上山てるアニメーションの
受け入れ地になってしまうというところが
少し使いづらい点かなというところとあと
このやり方だと
このフィメイション退治にスケールが事君
家で入力してしまうので変更はして暗いと
っていうところは
ホンダになってきますただ後者に関しては
解決する方法があってそれがこちらにあり
ますこのアドルートモーション
モディファイアース系という関数を使うと
このローション warping の
この通知の濃度これを blueprint
上でせいかすることはできるんですこれは
鵬翔はピグのコンポーネントをとってきて
そこからアドルートモーションと入れると
低下することができます闇に普及ワープの
方もええかできますこれで始める時間と
終わる時間とスケールを入力してあげる
っていう感じですねなぜここに
0.027秒から
1.58秒と書かれているので0.02
new んでよくから1.58伝を入力し
てあげるとスケールちょっと違いがわかり
やすいように ai にしておきましょう
この後にマッサージを再生するだけです
大丈夫これは追加するので
こんな感じの子の低下の濃度はいらないん
ですねなので日号で先制するルート
モーションに関してはぐっ通知の部分は
決してありますもうちょっと比較のために
同じデート国旗していろいろなバージョン
を作っているという感じですねこっちの
プープリント地ねぇ数値を低下させる場合
には大雪その後再生するもっと味は父は
設定してなくて大丈夫
いうことになりますみんなやってみると
いっしょ
here 思いますねこれもちゃんと8
モーションの大きさの編今後がうまく使え
ているということになります肝心の壁に
沿っダートの移動を見てみると
こんな感じでちゃんとまっすぐ移動します
なのでこちらの ok ということになり
ます
なので本当にゲーム中を通して固定値で
いい場合はボディたり入れてしまって
例えばレベルアップとかスキルのレベルに
応じてスケール家を買いたいというときに
はこういう感じで blueprint 上
でへ着くッターンッっていうのがいいのか
あのーと思います次にんこのスケールに
関しては実は猛暑マーキングを使わなくて
も
いったようなことがきっできるんです本
ためにはゲームプレイハビリティ
というプラグインを使うので二重のプラグ
インの聞けばプレイヤーベルチーズを有効
にしましょうそしたら右クリックのゲーム
プレイのティムプレイヤーウィリティ
プールペイントでゲームプレイアビリティ
親に新規作成しますそして作ったゲーム
プレイアビリティーを
こんな感じでアクティベートビリティー
からプレイモンタージュんどウェイトと
いう
濃度を使ってあげます
本た子がなんか地等の理由で終了したため
t 面白いですっていう感じです
そして肝心なのはここに anim リート
モーションとんそれーしょんのつけるって
いうのがあってこれがブートモーションの
スケール値を変更することができるんです
ねここで入力しているのと同じような感じ
になります
ただはこちらと違ってこっちだと時間の脳
タイミングからどのタイミングまで見てる
の設定できたりとか xyz 別々に設定
できたりするんですけどこっちは上の一切
ないこれシンプルな形の設定になってい
ますこれもさんバイトレにして
やってみましょうあとはハードパターン
キャラクターにアビリティシステム
コンポーネントを静観して
て人プレイでた米 t システムの初期艦
フィットスタッドを行ってそのとリバー
be a key generator 業
の作ったアビリティを低下したいましたら
pretty しセブのトライ
activator verity by
クラスという感性で先ほどの
アニメーションモンタージュを再生する
アビリティを実行するという形になります
これで見ても
ちょうどちょうど3倍くらいですかね動画
できてここから壁に沿って動く時も
ちゃんとまっすぐ
ちょっとまっすぐもうた子が再生される
ことはわかるかと思います
という感じで3種類の方法を見てみたん
ですけど
共通しているのがルートモーションに
スケール値をかけて再生するというのが
全部一緒でしたねと言うのでまあ終わって
もいいんですけど
以前紹介したこのアドワープデートワープ
ターゲット風呂ぶーローケーション&
ローテーションを使ったやつだとできない
のかというと一応
できますということで今回はそんなやり方
も説明してみたいと思いますこれが遺伝の
境界車時の様子ですけどこんな感じで
ゴール地点が動かないので
ゴール地点に沿ってルートモーション
動かすのでこんな感じでレジに向かって
しまうのはちょっと問題になりそうという
話をしましたねということはこのゴール
地点が最初はまあここでいいんだけど
かめからずった時にプレイヤーの勝目に
このゴール地点が動いていけば解決するん
じゃないかという風に考えたのでやってみ
ましょうまず
スタートロケーションという
ベクター型の変数を追加しますそして
ますの右も当社時とロケーションに
ファクターの1を入れておきますこの後
アップデートロケーションという
作ったカスタムイベントを読んでこのカス
と b ベッドでゴール地点の一応更新
するという感じですねデモンた地を再生
シティでもん登場再生しつつペット
タイマー倍イベントで定期的にこの
アップデートロケーションを読んであげる
ばここでも読んでいる様子ですゴール地点
を更新するイベントを読んであげるという
形ねぇゴール地ておおおお
敵更新してあげればいいんじゃないかと
いう発想ね fendi スエジャー
タップでとロケーションではどういう形で
ゴール地点を更新しているのかというと
ローテーションはそのまま来たの
ローテーションでいいですね会見しない
までターゲットロケーションなんですけど
ターゲットロケーションはまず
アクターの一今のアクターの位置と
開始してんの
たを取りますあのさのベクトルの長さを
取りますつまり今どのくらい動いたか合計
でどのくらい動いたかっていうのを警察
するわけですねそれから全部で動きたい
距離今回は1,200cm 12m おき
たいとしますそれとこの系酒かはあとどれ
くらい動くかなのであと動きたい距離に
対してたくさんの前方向のベクトルをかけ
てあげればその時もし壁とかがじゃあ何も
なかったら前方向に後なぜ1説明は目標
地点に到達しますよ
ところが計算できるのであとはこれを
アクターの位置と他者をせてあげて
ワールド座標にしてあげるという形で
オール1を欲しいしてあげますこうすると
どちらを始めた後にこうやって
キャラクターが動いていくと徐々にロール
位置が変わっていくのがいいいるかなと
思いますチェーンとゴール市がカールを
見合わせてプレイヤーのローションも
変わっていくので結果としてまっすぐ進む
ようになるという感じですねこれ気に入っ
たんですけどこれルーピングのままその
ままなので本と味が再生し終わってもだと
呼ばれてしまってるんですね裏もよろしく
ないのでその return value
に対してクリアー and in bali
8タイマーバイハンドトゥを
遺書コンプリーぷとか言っちゃうととか
インターラピスととかに読んであげると
このファンタジーが終わった時に行こうの
set timer ばイベントの
イベントも貯まるようになるのでこんな
感じでのモーションが先制されてライナー
はダイバーが有効になるけど
再生され終わると終了するという形になり
ますっていうわけでファンエクトル計算を
使えば
アドワープデートパーティーターゲット
from location の
ローテーションの場合でも一応それっぽく
動かすことができるということがわかって
いただけたかなと思いますあどちらの方向
にも一長一短あると思うので本当に
スケールに打っているだけでするような
感じたものの場合は多分本体でにスケール
を設定するのは一番シンプル可能と思い
ますので作業時て使い分けてもらえたら
いいのかなと思いますっていうわけで今回
ます声でフォローかなと思いますまた次回
この動画で会えると無理生ですそれじゃや
なぁ
[音楽]
5.0 / 5 (0 votes)