10.5K Views
September 07, 24
スライド概要
富山ビジネス専門学校 ゲームカンファレンスでの講演資料です。
Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/
UnrealEngine5 のアニメーション基礎講座 Senior Software Engineer, Developer Relations Takashi Suzuki 2024 Epic Games Japan
State of Unreal | GDC 2024 https://www.youtube.com/watch?v=0H63U0V11HI Unreal Engine 5.4: Animation Deep Dive | GDC 2024 https://www.youtube.com/watch?v=u9Z8CK561_Y
FK/IK スケルトン リターゲット モーション マッチング アニメーション ブループリント コントロールリグ ブレンド
Begin Play | Animation @ EPIC Developer Community https://dev.epicgames.com/community/learning/tutorials/Pd0b/unreal-engine-begin-play-animation
Animation Ecosystem for Game Development https://dev.epicgames.com/community/learning/courses/2Lz/unreal-engine-animation-ecosystem-for-g ame-development/yp13/unreal-engine-animation-ecosystem-for-game-development-overview
https://www.youtube.com/watch?v= FzTqrUlXg50 猫でも分かる UE5.0, 5.1 におけるアニメーションの新機能について https://www.youtube.com/watch?v=FzTqrUlXg50
猫でも分かる Control Rig UE4.25 版 https://www.youtube.com/watch?v=loN69BeLba4
Game Animation サンプル https://www.unrealengine.com/marketplace/en-US/product/game-animation-sample
外部ツール インポート アセット 編集 制御 利用
インポート 外部からデータを取り込む アセット アニメーションで扱う中心的アセットたち 目次 制御 アニメーションを組み合わせてキャラクターを動かす 編集 エディター内編集 TIPS 最適化など
インポート 外部からデータを取り込む アセット アニメーションで扱う中心的アセットたち 目次 制御 アニメーションを組み合わせてキャラクターを動かす 編集 エディター内編集 TIPS デバッグや最適化など
FBX インポート Live Link インポート Alembic Interchange Framework
FBX インポート ● DCCツールから出力した FBXファイルをプロジェクトに取り入れる ○ スケルトン ○ メッシュ ○ アニメーション ○ モーフターゲット ○ カーブ
Interchange フレームワーク ● ● ● アセットインポート /エクスポートのカスタムフレームワーク ランタイムでも動作可能 UE5.4 で正式リリーズ済み
インポート 外部からデータを取り込む アセット アニメーションで扱う中心的アセットたち 目次 制御 アニメーションを組み合わせてキャラクターを動かす 編集 エディター内編集 TIPS 最適化など
アセット スケルトン アニメーション シーケンス スケルタルメッシュ
スケルトン
スケルトン アセット メタデータ ミラーリング ソケット 通知 バーチャル ボーン ブレンド マスク カーブ ブレンド プロファイル リターゲット 互換スケルトン IK リターゲット 二足歩行の~ IKリグ
ソケット /バーチャルボーン ● ● スケルトンに追加できる仮想のボーン Socket ○ 武器等のアタッチ利用する ○ オフセット調整 ○ Epic Developer Community > learnning ■ Animation Ecosystem for Game Development ● Virtual Bone ○ スケルトン中の他のボーンに自動的に追従 ■ 例) Root の下にぶら下がっているが位置は左手に追従 ○ IKなどで利用 ○ 多くのボーンを経由する末端のボーンは複雑なモーション制御のブ レが伝播してふらふらと漂ってしまう (泳ぐ)ことがあるが、ツリー内で 複雑な制御が加えられない場所にバーチャルボーンを配置すること で、ボーンを複雑な制御から守ることができる
カーブ ● 浮動小数点のパラメータを追加 ○ マテリアルパラメータへの自動設定 ○ モーフターゲットへの影響制御 ○ ポーズアセットでの参照 ○ ゲームロジックでの参照 ● スケルトンでのカーブ ○ モーフターゲットやマテリアルで 利用する場合スケルトン内に定義を書いて チェックを入れる必要がある
アニメーションのリターゲット ● スケルトンに紐づいているアニメーションを 別のスケルトンでも利用できるようにすること ● UE4 ○ ○ ○ ● UE5 ○ ○ ○ 同一スケルトンでのリターゲット 異なるスケルトンでのリターゲット (リターゲットマネージャ ) CopyPoseFromMesh 互換スケルトン IKリターゲッタ RetargetPoseFromMesh
同じスケルトンでの リターゲット ● スケルトンを共有するしている場合アニメーションを流用できる ● 色々なスケルタルメッシュを一つのスケルトンにマージしていく ○ スケルトンボーン数の肥大化 ■ スケルトンエディタでの操作性の低下 ■ エディタでのアニメーションロード速度の低下 ● 単純な体格の違いはリターゲットオプションの調整で解決 スケルタルメッシュ アニメーション スケルトン スケルタルメッシュ
【UE4】 リターゲットマネージャ ● UE5にはありません ● スケルトン > リターゲットマネージャ ● 静的にアニメーションをリターゲット
互換スケルトン ● 似通ったスケルトンを指定することで エンジンが勝手に解釈して 同じスケルトンとして扱われる ● アセット詳細 > Compatible Skletons
IK リターゲッタ ● リターゲット設定アセット ● 変換元のIKRigと変換先IKRig設定 ● 静的またはランタイムでのリターゲットに利用 ○ アセットブラウザ > アニメーション選択 > 選択したアニメーションをエクスポート IKリターゲッタ アニメーション スケルトン IKRig IKRig スケルトン アニメーション
IK リグ ● ソルバ設定 ● リターゲットチェイン設定 ○ 変換対象の IKRigを参照しながら設定 ● フルボディ IKで望ましくない動きをする時は 「フルボディIKボーンの設定」で調整
二足歩行キャラクターの リターゲット ● ● ● ● ● UE5.4~ スケルタルメッシュを指定 出力エンジンが解釈可能なら IKRigを自動生成 ○ FKnownTemplateHierarchies アニメーションの変換 IKリターゲッタの出力
Retarget Pose From Mesh ● ● ● ● ● ランタイムで IKRetargetアセットを利用してリターゲット 参照元のスケルタルメッシュコンポーネントが必要 リターゲッタ画面で正しく動いていれば動作 アニメーションアセットの増加無し 追加のIK解決コスト
Copy Pose From Mesh ● ● ● UE4時代から 名前を使って同じ体格を持つ別のスケルタルメッシュの姿勢をコ ピー 同じスケルトンを共有している必要はない がボーン名は合わ せること
同じスケルトン (スケルトン合成 ) UE4&5 インポート時に操作 スケルトンの 肥大化に注意 互換スケルトン UE5 スケルトンの詳細 簡単! アニメーションリターゲッタ UE4 IKリターゲッタ UE5 静的に アニメーション変換 IKRigが必要 二足歩行 ~略~リターゲット UE5.4 Retarget Pose From Mesh UE5 Copy Pose From Mesh UE4&5 IKRigを作成可能 ランタイム (ABPノード) コピー元コンポーネントを 指定する IKRigが必要 ボーン名を合わせる
アニメーションシーケンス
アニメーションシーケンス アセット 通知 ルートモーション 圧縮 アニメーション モディフィア 加算 アニメーション 同期マーカー
アニメーション通知 /通知ステート ● ● アニメーションの特定のタイミング または範囲を指定して特定の処理を行う AnimNotify / AnimNotifyStateを 継承した C++クラス/ブループリント ○ 音声の再生 ○ VFXの生成 ○ モーションワープの制御 ○ 同期マーカー ○ プロジェクトの自作処理 ■ 攻撃判定の追加 ■ 入力受付 ■ などなど・・・
アニメーションモディフィア ● ● AnimationModifierを継承した C++/ブループリント ○ ありがちな機能はエンジンに C++実装がある アニメーションを解釈して自動処理を行う ○ アニメーション通知 /通知ステート ■ 足音や同期マーカーなど ○ カーブの出力
ルートモーション ● ● ルートボーンの移動量を移動量として扱う ゲームスレッドの負荷 が上がるので 大量のスケルタルメッシュを扱ったり ネットワーク対応タイトルの場合にに注意が必要
移動 移動 移動 アニメ 更新 アニメ 更新 アニメ 更新 ゲームスレッド アニメーション評価 アニメーション評価 ワーカースレッド アニメーション評価 ワーカースレッド ルートモーション無し ルートモーションあり 移動 移動 移動 アニメーション更新 &評価 アニメーション更新 &評価 アニメーション更新 &評価 ゲームスレッド ワーカースレッド
圧縮設定 ● ACL(Animation Completion Library) ○ UE4.25 ~ UE5.2 ■ マーケットプレースまたは githubから取得 ○ UE5.3 ■ エンジンプラグイン化 ○ UE5.4 ■ デフォルト設定 されるように ○ 設定で圧縮率やキーフレームの削減を設定できる
その他のアセット - Pose Asset ● アニメーションシーケンスから作成 ○ 1フレーム = 1Pose ○ 作成ダイアログで名前リストを指定 ● 一つまたは 複数の ポーズをブレンド ○ フェイシャルモーション ○ 関節を理想的な動作に補正
スケルタルメッシュ
スケルタルメッシュ アセット マテリアル 物理アセット モーフターゲット LOD クロス シミュレーション Deformer
物理アセット ● ● ● 物理界での形状指定 コリジョン形状同士の制約条件 (コンストレイント )の設定 用途 ○ コリジョン判定用 ○ 全身の物理シミュレーション用 ○ RBAN(リジッドボディアニムノード )
数値入力 形状(ボディ/Shape) 手動追加 自動生成
クロスシミュレーション ● ● ● 頂点単位のシミュレーション ボーンベースのアニメーションと組み合わせても良い UE5.3以降PanelCloth機能に移行 ○ https://dev.epicgames.com/documentation/ja-jp/unreal-engine/panel-cloth-edit or-overview Panel Cloth
インポート 外部からデータを取り込む アセット アニメーションで扱う中心的アセットたち 目次 制御 アニメーションを組み合わせてキャラクターを動かす 編集 エディター内編集 TIPS デバッグや最適化など
アニメーション モンタージュ 制御 アニメーション ブループリント コントロールリグ
アニメーションモンタージュ ● ● ● AnimSequenceを並べて一連のモーションとして扱う セクション設定 ○ ループ ○ セクションジャンプ スロットノードを通じて姿勢に影響を与える
セクション制御 ● ● ● セクション指定 ○ ループ ○ ジャンプ セクションのジャンプは MontageNotifyなどから行う事もできる もちろん独自の通知から行っても良い
モーションワーピング ● モーションワーピング通知ステートと モーションワーピングコンポーネントを 組み合わせてモンタージュ再生中に位置を補間
制御 アニメーションブループリント ポストプロセス ABP ブレンドノード リンク アニメレイヤー 慣性ブレンディング ブレンドスペース アニメーション シェアリング ブレンドノード モンタージュ スロット RBAN ステートマシン ボーンキャッシュ
アニメーション ブループリント ● ● ● ● UAnimInstance を継承したアニメーション用のブループリント 二つのノードグラフ ○ UpdateAnimation ○ AnimGraph スケルトンを指定して作成 ->ABP
Update Animation ● ● ● 必要な情報を ABPに取り込む ノードグラフ ○ 通常のブループリントで呼び出せるノードを利用できる ○ SkeletalMeshComponentのTick時に呼ばれる ゲームスレッドで実行される ○ 重いUpdateAnimationはゲーム全体のパフォーマンスを低下 ○ 特にスケルタルメッシュを沢山扱うタイトルでは問題になりやすい
Update Animation ● ● ● 必要な情報を ABPに取り込む ノードグラフ ○ 通常のブループリントで呼び出せるノードを利用できる ○ SkeletalMeshComponentのTick時に呼ばれる ゲームスレッドで実行 されていた ○ 重いUpdateAnimationはゲーム全体のパフォーマンスを低下 ○ 特にスケルタルメッシュを沢山扱うタイトルでは問題に なりやすかった TIPS セクションで 最新の状況をお伝えします
AnimGraph ● ノードグラフで定義された アニメーション評価や アニメーションブレンドを処理して 最終的なキャラクターポーズを作り出す
テンプレート ABP ● ● ● ● スケルトンを指定しない ABP AnimGraphではすべてのアニメーションシーケンスが 指定できるが指定しなくてもいい 継承クラスは AnimGraph を実装出来ない ○ 固有実装は LinkedAnimLayer や PostProcessABP を検討 アニメーションを指定するだけで十分という シンプルなキャラクター制御に向く ○ ザコ敵等
アセットオーバーライド ● ● ● テンプレート ABPまたは一般的な ABPを継承した ABPで利用できる Asset Override Editor ウィンドウ アニメーション指定などをオーバーライド
PostProcess ABP ● ● スケルタルメッシュアセットに追加の ABPを設定 InputPoseノードでメインの ABPのポーズを受け取る
メイン ABP : 評価 メイン ABP : 更新 ポストプロセス ABP : 更新 ポストプロセス ABP : 評価
補助ボーン & ポストプロセス無し
AnimGraph ノード紹介
再生ノード ● 各種プレイヤー
SequencePlayer 配 置 ● ● アニメーションシーケンスを評価する ドラッグアンドドロップで作成
ピンで公開 ● ● ABPノードのほとんどのプロパティは ノードの引数ピン に変更することができる アセットをデータアセットなどの外部データ構造から 取り込む ○ データドリブンな ABPを設計
PoseDriver ● ● ● ソースボーンの 回転の範囲 からポーズアセットを駆動する カーブを駆動することも可能 肩や股関節などの自由度の高い関節の補助骨の操作に利用
ブレンドノード ● ● 各種プレイヤー https://dev.epicgames.com/documentation/ja-jp/unr eal-engine/animation-blueprint-blend-nodes-in-unr eal-engine
ブレンドマスク ブレンドプロファイル ● ● ● スケルトンのツリーでボーン毎の設定を編集 ブレンドマスク ○ LayeredBlendPerBoneノードに付与 ○ ボーン毎にブレンド率スケール設定 ブレンドプロファイル ○ ボーン毎のブレンド速度設定 ○ アニメーションモンタージュ / 各種ブレンドノード
慣性ブレンディング / デッドブレンディング ● ● アニメーション感のスムーズな遷移を行うため機能 デッドブレンディング (UE5.3~)は、慣性ブレンディングの代替ノード ○ 速度と距離からブレンド比を計算 ■ 速度と距離が逆になる場合も考慮されている ■ 大きく異なるポーズの遷移時に関節が壊れることはない ○ 複数の遷移リクエスト ○ 慣性ブレンドに比べて硬く見えるかも
ボーン制御ノード ● 各種IKなど
RigidBody ノード (RBAN) ● ● ● コンポーネントの固有空間 内でボーンに物理シミュレーショ ン 必要な形状だけを持った物理アセットを設定 SimulationSpace ○ 大きすぎる動きをスケール&制約してシミュレー ションを安定化させる ○ ComponentSpace ■ アクターの移動量を加工して伝播 ○ BaseBoneSpace ■ 基底ボーンまでのアニメーション アクターの移動量を合わせて加工して伝播 ○ WorldSpace ■ 移動量を加工しない
RigidBody ノード設定 ● ● aaa The Gritty Reality of Real-Time Cloth and Rigid-Body Character Physics https://youtu.be/4NkNBImONJU?t=1892 RBAN Echo Ponytail Tutorial https://dev.epicgames.com/community/learning/tutorials/dLxx/unreal-engine-rban-echo-ponytail-tutorial
構造化ノード ● ● 各種プレイヤー https://dev.epicgames.com/documentation/ja-jp/unr eal-engine/animation-blueprint-copy-bone-in-unrea l-engine
ステートマシン 条件 によって ● ● ステート が変化していく 各ステート内にグラフがある ○ 入れ子構造
Anim Preview Editor ● ABP内の変数を変更してアニメーションをプレビュー
ステートマシンの入れ子構造 ● ● 条件 によってステート が変化していく 入れ子構造 ステートマシンの入れ子構造
ステートエイリアス ● ● ● ステートのジャンプ先 どのステートからジャンプできるか チェックボックスで指定 ステートエイリアスの判定にも 負荷があることに注意
ブレンドスペース ● 1次元または 2次元のグラフ上に アニメーションを配置してブレンド ○ 360度の歩行モーション ○ 静止 - 歩き - 走りなどの遷移 ● 長らくブレンドスペースはアセット ● ブレンドスペースノード がUE5から追加 ○ 各ポイント毎にグラフ が記述可能に ■ 入れ子構造
リンクされたアニメーションレイヤー ● ● ● AnimGraph中に配置し別の ABPのアニムグラフで置き換える ランタイムで付け外しが可能 基本のテンプレート ABP+キャラ固有の ABP の組み合わせが実現できる
アニメーションレイヤー インターフェイス ● ● ブループリントインターフェイスと非常によく似ている アニメレイヤーインターフェイスアセットを作成しレイヤーを定義する
アニメーションレイヤー割り当て ● 呼び出し元・派生先の両方 のABPにアニメーションレイヤーを割り当てる
アニメーションレイヤー 実装 ● 呼び出し元・派生先の両方の ABPにアニメレイヤーを割り当て る
ポーズキャッシュ (save cached pose) ● ● ● 入力された姿勢を一時保存するノード ノードのスパゲティ化を防ぐ 疑似的にポーズの複製 が可能
コントロールリグ ノード ● ● コントロールリグを ABP内で評価する 選択したコントローラーをピンとして ノードに露出させる
コントロールリグ
コントロールリグ ● ● ● ● ノードグラフで主にコントローラーの制御を通じて 骨格を制御する仕組み アニムグラフでの操作に比べて軽量 プロシージャルアニメーション ○ FootIk ○ LookAt ○ 補助骨制御 MayaなどのDCCツールで作られているアニメーション作成用 リグ ○ UnrealEditor上でアニメーション編集
コントロールリグの例 CR_Mannequin_BasicFootI K ● ● ● ● コントローラー無し 腰と足のバーチャルボーンを地面へのトレースを使って加工 足のIK用ボーンを参照としてフルボディ IK ABPで使われることを想定
コントロールリグの例 CR_Mannequin_Body ● ● 多数のコントロール シーケンサーなどで使われることを想定
コントロールリグの例 CR_Mannequin_Procedural ● ● メインのボーンから多数の 補助ボーン を動かしている ABP_Manny_PostProcessから使われている
コントロールリグの例 Face_ControlBoard_ CtrlRig ● MetaHumanの標準フェイスリグ
モジュラーコントロールリグ ● ● ● ControlRigを作るもう一つの方法 互換性があれば非常に簡単にリグを作成できる リググラフ無し モジュール式コントロールリグ @ Unreal Engine 5.4、あの新機能を追え! https://www.docswell.com/s/EpicGamesJapan/KQR34N-ue-meetup-osaka-02#p58
インポート 外部からデータを取り込む アセット アニメーションで扱う中心的アセットたち 目次 制御 アニメーションを組み合わせてキャラクターを動かす 編集 エディター内編集 TIPS デバッグや最適化など
シーケンサー 編集 アニメーション モード
LevelSequence (シーケンサー ) ● ● 広義の意味でアニメーション 全てのアクター /コンポーネントをタイムラインで制御 【初心者向け】UE5 シーケンサーと Movie Render Queue の使い方 猫でもわかる UE5 シーケンサー自動生成! https://www.youtube.com/watch?v=-qKSJLNLV94 https://www.docswell.com/s/squadstars/ZVVDDJ-2024-03-26-012103
アニメーションモード ● ● ● エンジン内でアニメーション編集 コントロールリグによる操作 アニメーション編集サポート用のパネル
アニメーションシーケンス編集 ● ● エディター内でアニメーションを作成&編集 ○ アニメーションシーケンスエディタ > 「シーケンサーで編集開始」 ○ ダイアログで「 コントロールリグにベイク 」 ○ レベルシーケンス上にキーが打たれて編集可能に ○ キーボードの Sキーでキー追加 コントロールリグを D&Dでも
アニメーション書き出し ● ● スケルタルメッシュトラックで右クリック アニメーションシーケンスをベイクで書き出し
リンクされたアニメーションシー ケンス ● ● ● アニメーションシーケンスとアニメーションモード編集画面がリンク 自動でアニメーションシーケンスを更新 アニメーションシーケンスからレベルシーケンスを開くことで編集
インポート 外部からデータを取り込む アセット アニメーションで扱う中心的アセットたち 目次 制御 アニメーションを組み合わせてキャラクターを動かす 編集 エディター内編集 TIPS パフォーマンスなど
モジュラーキャラクター構成 ● ● 組み合わせでキャラクターを構成する 衣装替え
モジュラーキャラクター構成 ● モジュラー キャラクターで作業する ○ ● https://dev.epicgames.com/documentation/ja-jp/unreal-engine/working-with-modular-characters-in-unreal-engine スケルトンをマージしなければいけない場合に注意が必要 ○ 衣装毎 /キャラクター毎に独自のボーン構造 を持っているケース ■ ボーンベースのクロスシミュレーション ○ EPICとしては一つのスケルトンの ボーン数が 1000 を超える構成はオススメしていません ○ エディタの起動やエディタ上でのアニメーション読み込み速度が極端に低下する可能性 ○ メインのスケルタルメッシュは基本ボーンのみのシンプルなスケルトンを使って Copy Pose From Meshを利用する構成を検討
FastPath ● 複雑な演算ノードが繋がっていると VMの実行速度が低下する
Thread Safe Update Animation ● ● ● プロジェクトセッティング > 基本設定 > マルチスレッドアニメーションの更新を許可 にチェック ThreadSafe版UpdateAnimationに処理を移行 ○ BlueprintThreadSafeUpdateAnimation ■ Thread Safe 属性付き関数のみが呼び出せる ○ NativeThreadSafeUpdateAnimation UpdateAnimationがワーカースレッドで実行
ThreadSafe 関数 ● ● ● ● ブループリント ○ 関数の詳細 > Advanced > ThreadSafe C++ ○ BluepirntThreadSafe メタデータ エンジンの関数でスレッドセーフとマークされている 関数は多くない 自己責任で ThreadSafe 関数を自作 ○ 参照先の書き込みタイミングで アクセスしないように注意が必要 UFUNCTION(BlueprintPure, Category = "ThreadSafeAPI", meta = (BlueprintThreadSafe)) static FVector GetVelocityFromAnimInstance(UAnimInstance* InInstance);
プロパティアクセス ● ● ● ● ● AnimIntance/Actor/Componentのプロパティにダイレクトアク セス UpdateAnimation / AnimGraphのどちらでも利用可能 UpdateAnimation で自前でプロパティの取り込み不要 このノード自体は ThreadSafe Call Site ○ ThreadSafe ■ コピーは行われない 真のダイレクトアクセス ○ ThreadSafeでない場合 ■ 指定のタイミングで 変数のコピーが行われる CallSite
完全なThreadSafe UFUNCTION(BlueprintPure, Category = "ThreadSafeMyCharacterAPI", meta = (BlueprintThreadSafe)) static APawn* GetPawnFromAnimInstance(UAnimInstance * InInstance); UFUNCTION(BlueprintPure, Category = "ThreadSafeMyCharacterAPI", meta = (BlueprintThreadSafe)) static FVector GetVelocityFromAnimInstance(UAnimInstance* InInstance); UFUNCTION(BlueprintPure, Category = "ThreadSafeMyCharacterAPI", meta = (BlueprintThreadSafe)) static FVector GetAccelerationFromAnimInstance(UAnimInstance* InInstance); UFUNCTION(BlueprintPure, Category = "ThreadSafeMyCharacterAPI", meta = (BlueprintThreadSafe)) static bool IsFallingFromAnimInstance(UAnimInstance* InInstance);
APawn* UMyThreadSafeLib::GetPawnFromAnimInstance(UAnimInstance* InInstance)
{
AActor* Actor = InInstance->GetOwningActor();
APawn* OutCharacter = Cast<APawn>(Actor);
return OutCharacter;
}
FVector UMyThreadSafeLib::GetVelocityFromAnimInstance(UAnimInstance* InInstance)
{
if (APawn* Pawn = GetPawnFromAnimInstance(InInstance))
{
return Pawn->GetVelocity();
}
return FVector::ZeroVector;
}
FVector UMyThreadSafeLib::GetAccelerationFromAnimInstance(UAnimInstance* InInstance)
{
if (APawn* Pawn = GetPawnFromAnimInstance(InInstance))
{
if (UCharacterMovementComponent* CMove = Cast<UCharacterMovementComponent>(Pawn->GetMovementComponent()))
{
return CMove->GetCurrentAcceleration();
}
}
return FVector::ZeroVector;
}
bool UMyThreadSafeLib::IsFallingFromAnimInstance(UAnimInstance* InInstance)
{
if (APawn* Pawn = GetPawnFromAnimInstance(InInstance))
{
if (UCharacterMovementComponent* CMove = Cast<UCharacterMovementComponent>(Pawn->GetMovementComponent()))
{
return CMove->IsFalling();
}
}
return false;
}
スレッドセーフ性は実装者が責任を負う
❢
Chooser / MotionMatching ● ● CEDEC2024で解説セッションがあります! CEDEC Youtubeチャンネルをチェック! その動き、機械が見つけます!? モーション・マッチングで、やるぜ働き方改革! https://cedec.cesa.or.jp/2024/session/detail/s66614158a2fa9/
まとめ ● アニメーション関連の機能はどんどん増加して追いかけるのも大変 しかし簡単に機能を利用できるような改良も常に導入され便利に進化し続けている ○ 互換スケルトン ○ 二足歩行キャラクターのリターゲット ○ コントロールリグ ○ リンクアニメレイヤー ○ デッドブレンディング ● エンジン内でのアニメーション編集機能を利用してゲームがリリースできるように ● パフォーマンス改善用の機能を理解してゲームのボトルネックにならないように気を付ける ○ RootMotionの過度の利用 ○ ControlRigの軽量VM ○ FastPath ○ ThreadSafeUpdateAnimation ○ UnrealInsights
Thank you! — Epic Games Japan 2024