404.3K Views
November 16, 22
スライド概要
本スライドににはGif 動画を大量に使用しているため、パワポ版 での確認を強く推奨いたします
https://epicgames.ent.box.com/file/1066094333959?s=4kxbg3otcpm99roc29i1sxuwz3xbzpi6
【UE5】UE5のアニメーションに関する新機能をサクッと試せるサンプルを公開しました!
https://pafuhana1213.hatenablog.com/entry/2022/12/13/000758
講演動画
https://www.youtube.com/watch?v=FzTqrUlXg50
【講演内容】
Unreal Engine 5ではNanite, Lumen, World Partitionなど注目を集める機能が追加されましたが、実はアニメーションに関しても強力な機能・改善が多数追加されているんです!
本講演ではそれらの基本的な知識や、それらを使うことでアニメーションの品質・制作効率、そしてワークフローがどのように変わるのかについてご紹介する予定です。UEのアニメーション機能に関する基本的な知識があることを前提としているため難易度を中辛としていますが、ご紹介する機能は便利だけでなく簡単に使えるものばかりですので是非ご参加いただけますと幸いです。
http://cedec-kyushu.jp/2022/session/28.html
Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/
UE5.0, 5.1 における アニメーションの新機能について 猫でも分かる CEDEC+KYUSHU 2022 Epic Games Japan Kazuya Okada
本スライドにには 講演当時は隠していたものを含みます また、Gif動画を大量に使用しているため、 講演動画またはパワポ版での確認を 強く推奨いたします
自己紹介 Epic Games Japan 岡田 和也 Twitter:おかず ( @pafuhana1213 ) UEを使っている企業様への技術サポートや 勉強会などでの講演が主なお仕事 最近、ジャンプ+の「長谷川智広の帰って きたデジタル作画奮闘記~アンリアルエン ジン編~」という作品に数コマ出ました ©週刊少年ジャンプ編集部\集英社
はじめに UE5関連の話題となると 大抵は以下の3つですが… Nanite: 膨大な数のメッシュを配置可能 Lumen: リアルタイムな グローバルイルミネーション World Partition: オープンワールドなど 広大な環境を実現する機能
アニメーション もすごいんだぞ!!!
近年のゲーム開発における課題 グラフィックが高品質になればなるほど アニメーションの粗・違和感が 目立ちやすくなる キャラクタの移動量・速度と アニメーションが一致していない際に 足滑りなど 発生する
アニメーションの違和感への対策と問題 様々な場面・条件に対応するために 大量のアニメーションを用意しよう! ▶ 製作コスト・環境の問題 アニメーションが持つ移動・回転量によって キャラクタの動きを完全に制御しよう! ▶ ゲームプレイ側に支障が出てくる (調整しづらい、手触りが悪い など) プログラミングで…いい感じに…調整して! ▶ たいへん
というなかで、求められてきた機能 違和感のない・少ない アニメーションを 実現する機能 これまで以上の 大規模開発に耐えうる アニメーションシステム アセット製作コストの削減 ゲームプレイ側との両立 作業効率・柔軟性・拡張性 高パフォーマンス
Unreal Engine 5 で実現すること 複雑なアニメーション技術 を誰でも使える形で提供 社内外からの フィードバックを元に システムを大改良 社内タイトルで培われた手法 業界最先端の技術 プロシージャルアニメーション Animation BPの柔軟・拡張性の強化 さらなるマルチスレッド化 痒かったところに手を届かせる!
本講演・資料の注意点 その1 Unreal Engine(UE)のアニメーション機能の基礎を ある程度知ってることを前提としています 想定している対象層・者 ● エンジン標準のテンプレートレベルの Animation BP(Anim BP)なら理解・実装できる ● ルートモーションを伴う Anim Montageを使ったことがある ● アニメーション機能に直接・間接的に関わる プログラマとアーティスト
基本的な用語やAnim BPについて学びたい方へ 公式ドキュメント ● スケルタルメッシュのアニメーション システム Dev Community ● Unreal Engine 5でのはじめてのゲーム制作 ● サードパーソン キャラクタをゼロから作ってみよう Youtube ● 猫でも分かる UE4を使ったゲーム開発 超初級編 #5 Animation ブループリントの使い方を学ぼう! ● UE4版の内容のため、 最新のものとは一部異なる可能性があります コミュニティ ● UE5攻略 - α版 / Animation
本講演・資料の注意点 その2 紹介したい機能が大量にあり時間が全く足りないので 各機能の詳細(具体的な実装手順、各パラメータの意味など)は割愛します 機能紹介・解説の最後に 参考リンクをまとめていますので そちらをご確認ください もっと詳しく解説して!などありましたら @pafuhana1213 宛にお願いします! 会場の展示ブース①にもいますので是非
機能のステータスの違いに関して 実制作への 導入 動作保証 後方互換性 破壊的変更 オススメ しません なし なし あり ベータ 慎重に 自己責任で なし あり なし Production Ready ぜひ! あり あり なし Experimental 実験的 Beta 正式リリース
本日のお品書き 1. Locomotion & Interactions アニメーション品質向上・制作コスト削減 1. Runtime Framework Animation BP・デバッグ機能の強化 2. IK Rig & Retargeting フルボディIK、アニメーション流用 3. Control Rig プロシージャルアニメーション、エンジン上でのアニメーション制作 4. 現在開発中の新機能について
Locomotion & Interactions
Locomotion & Interactions Paragon における技術を誰でも使える形で提供 より高品質なアニメーションを実現するだけでなく 少ないデータで様々な挙動を実現することで作業コストを削減 当時の技術講演
Locomotion Interactions
Motion Warping
UE4では… ルートボーンの移動・回転を伴うアニメーション(Root Motion)の 補正ができなかったため、異なる環境・条件での使い回しが大変でした…
無限に増えるアニメーションアセット ギミックの高さ 長さ 角度 キャラの種類 低 短 -15 度 男性 中 中 0度 女性 高 長 +15 度 モンスター …
無理やり補正するのも可能でしたが…大変! C++でアニメーションの移動・回転情報を取得して… それと対象オブジェクトとの位置関係を元にどのように補正するか計算して… その他にも色々…
Motion Warping 対象オブジェクトとの位置・向きに応じて アニメーションの移動・回転量を補正する機能 レベル上のオブジェクトに干渉するような動きを かんたんに実装できるように!
アニメーションの移動・回転量を補正し、様々な条件に対応
セットアップ・実装はかんたん! 1. Motion Warpingによる補正を行う区間を設定 2. Motion Warpingによる補正のゴール位置・向きを設定 ① ② OR
City Sampleでの使用例 Vehicle_HeroCar_Enter_C_Montage
5.1での追加・変更点 ① 移動処理の 補正形式が選択可能に 従来の線形補間では 違和感があった場面で 有効!
5.1での追加・変更点 ② ルートボーンの移動情報が含まれていないアニメーションでも Motion Warpingを適用できるオプションを追加 Add translation Easing FuncをCustomに設定し Float Curveで移動処理を制御 1.0 0.0 1.0
ステータス・参考資料 ステータス ● 5.0:Experimental ● 5.1:Beta 公式ドキュメント ● モーションワープ Youtube ● Motion Warping and Full-Body IK | Inside Unreal ● Motion Warpingでパルクールを実装する【逆引きUE】 スライド・記事 ● Unreal Engine 5 早期アクセス Animation Update (p67から) ● [UE5] MotionWarping Shallow Dive
Locomotion Interactions
Pose Warping - Locomotion –
Pose Warping キャラクタの移動・回転速度や地面の情報に応じて 関連するボーンの動きを補正する機能 少ないアニメーションデータから幅広い表現を実現
Stride Warping - Locomotion / Pose Warping -
これまでの課題 複数のアニメーションをブレンドした結果が 違和感のある動き・ポーズになることがあります
極端な例ですが、歩幅と移動速度が合わない場合 歩き始めや移動速度が一定以上になると 足滑りが発生して、違和感のある動きになってしまう…
違和感を軽減するのは可能ですが…大変! アニメーションを 大量に用意…? ブレンド率・移動速度を 細かく調整…? それらの対応を 大量のキャラ毎に…?
Stride Warping 移動速度に応じて、歩幅を調整することで 少ないアニメーションデータで、足滑りなどの違和感を軽減 Walkモーション単品に補正をかけた様子
セットアップ・実装はかんたん! セットアップ 足に関連する IK・FKボーンを設定 実行中 キャラクタの 現在の移動速度を設定
注意点! 複数のアニメーションをブレンドした際の 違和感を軽減するのが主な用途 Walk モーションを Run モーションとして代用するようなものではありません!
Stride Warping の 担当範囲 後述の Distance Matching が担当
記事「Lyra アニメーションを UE5 ゲームに適応する方法について」より 再生レート / ストライド ワープの調整に対する 業界標準は、最大で 15 ~ 20% の増減幅です これを超える値にするとビジュアル品質が 大きく低下することになるため、 足をスライドさせる方が 良いとされる場合が多いでしょう
荒ぶりを抑えるTips Stride Scale Modifier Stride Warpingによる補正量を 制限・補間するオプション 補正が荒ぶるときは 有効・調整するのがオススメ! (特に、Clamp Max)
Orientation Warping - Locomotion / Pose Warping -
これまでの課題 様々な移動方法に対応するために 各方向ごとにアニメーションを用意することに…
Orientation Warping 移動方向に応じて腰・背骨を調整することで Blendspaceを用意しなくても、移動方向とアニメーションの向きを一致
セットアップ・実装はかんたん! セットアップ 腰・足に関連する IK・FKボーンを設定 実行中 キャラクタの 現在の移動速度・方向を設定
ぷちTips Orienation Warpingは 待機、動き始め、ストップなどあまり効果が出ない場面では alpha値を調整して動作しないようにすると良いです Analyzing Lyra's Animation | Inside Unreal 1:07:46 より
Slope Warping - Locomotion / Pose Warping -
Slope Warping 地面の傾きに応じて腰・足(IK Bone)を調整。IK Boneを元に補正を行う Leg IKノードと併用することで、Foot IKをより手軽に実現 補正前 Slope Warping Slope Warping & LegIK
セットアップ・実装はかんたん! セットアップ 腰・足に関連する IK・FKボーンを設定 Slope Warping Leg IK
注意点 傾き情報のみを利用するため、階段や凸凹がある地面との相性は悪い そういった環境に対応したい場合は 地面に対してレイを飛ばす手法を使う必要があります UE5マネキン標準のFoot IK
ABP_Manny / CR_Mannequin_BasicFootIK 1. 左右の足でSphere Traceを実行し、 床の高さを取得 2. 1の結果に対して 補間処理を実行 3. 足のIKボーンと 腰のボーンの Z値を補正 4. 足と腰に対して FullBodyIKを実行
使い分けの例(あくまで例で正解ではない) 移動中 or カメラから遠い: ある程度ごまかせるので、 Slope Warping(低コスト) 停止中 or カメラから近い: 接地感が目立つので、 UE5マネキン版Foot IK(高コスト) 補正なし (UE5標準 + Stopアニメーション)
やってみた 補正なし 補正あり
Slope Warpingの効果 Slope Warping:無効 Slope Warping:有効
どんな実装をしたのか 雑調整… 現在の移動速度を元に、補正処理を切り替え Slope Warping用(左)と Sphere Trace 用(右)の コリジョンを別々に用意
5.0ではここで話が終わりましたが… 5.1では Foot Placementノードが FootIK機能に追加されました!
Foot Placementノード UE5マネキン版Foot IKと同様の機能を 1つのAnimGraphノードで提供! ● レイを使った地面の検出 ● 腰のFKボーンと、足のIKボーンの制御 Control Rigのセットアップが不要になっただけでなく 強力な新機能 と 豊富な調整パラメータを提供!
Foot Placement の Lock機能 足の位置・向きを 固