---
title: UnrealEngine5のアニメーション基礎講座
tags:  #ue5  
author: [エピック ゲームズ ジャパン](https://www.docswell.com/user/EpicGamesJapan)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/47ZG31X9E3.jpg?width=480
description: 富山ビジネス専門学校 ゲームカンファレンスでの講演資料です。
published: September 07, 24
canonical: https://www.docswell.com/s/EpicGamesJapan/KYDDVR-2024-09-07-003958
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/47ZG31X9E3.jpg)

UnrealEngine5 のアニメーション基礎講座
Senior Software Engineer, Developer Relations
Takashi Suzuki
2024 Epic Games Japan


# Page. 2

![Page Image](https://bcdn.docswell.com/page/YJ6YXL4D7V.jpg)

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


# Page. 3

![Page Image](https://bcdn.docswell.com/page/GJ5GX1Q8J4.jpg)

FK/IK
スケルトン
リターゲット
モーション
マッチング
アニメーション
ブループリント
コントロールリグ
ブレンド


# Page. 4

![Page Image](https://bcdn.docswell.com/page/LE3RX1VG75.jpg)



# Page. 5

![Page Image](https://bcdn.docswell.com/page/8EDY2X8NEG.jpg)

Begin Play | Animation @ EPIC Developer Community
https://dev.epicgames.com/community/learning/tutorials/Pd0b/unreal-engine-begin-play-animation


# Page. 6

![Page Image](https://bcdn.docswell.com/page/V7P61P8NJ8.jpg)

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


# Page. 7

![Page Image](https://bcdn.docswell.com/page/2JV3Y2NYEQ.jpg)

https://www.youtube.com/watch?v=
FzTqrUlXg50
猫でも分かる UE5.0, 5.1 におけるアニメーションの新機能について
https://www.youtube.com/watch?v=FzTqrUlXg50


# Page. 8

![Page Image](https://bcdn.docswell.com/page/5EG39RKW7L.jpg)

猫でも分かる Control Rig UE4.25 版
https://www.youtube.com/watch?v=loN69BeLba4


# Page. 9

![Page Image](https://bcdn.docswell.com/page/4JQ5WVNQ7P.jpg)

Game Animation サンプル
https://www.unrealengine.com/marketplace/en-US/product/game-animation-sample


# Page. 10

![Page Image](https://bcdn.docswell.com/page/K749KMGYE1.jpg)

外部ツール
インポート
アセット
編集
制御
利用


# Page. 11

![Page Image](https://bcdn.docswell.com/page/LJ1KX8DN7G.jpg)

インポート
外部からデータを取り込む
アセット
アニメーションで扱う中心的アセットたち
目次
制御
アニメーションを組み合わせてキャラクターを動かす
編集
エディター内編集
TIPS
最適化など


# Page. 12

![Page Image](https://bcdn.docswell.com/page/GJWDNZ8M72.jpg)

インポート
外部からデータを取り込む
アセット
アニメーションで扱う中心的アセットたち
目次
制御
アニメーションを組み合わせてキャラクターを動かす
編集
エディター内編集
TIPS
デバッグや最適化など


# Page. 13

![Page Image](https://bcdn.docswell.com/page/4EZG318MJ3.jpg)

FBX インポート
Live Link
インポート
Alembic
Interchange
Framework


# Page. 14

![Page Image](https://bcdn.docswell.com/page/Y76YXLP5EV.jpg)

FBX インポート
●
DCCツールから出力した FBXファイルをプロジェクトに取り入れる
○
スケルトン
○
メッシュ
○
アニメーション
○
モーフターゲット
○
カーブ


# Page. 15

![Page Image](https://bcdn.docswell.com/page/G75GX1KG74.jpg)

Interchange フレームワーク
●
●
●
アセットインポート /エクスポートのカスタムフレームワーク
ランタイムでも動作可能
UE5.4 で正式リリーズ済み


# Page. 16

![Page Image](https://bcdn.docswell.com/page/9J2YX1WDJR.jpg)

インポート
外部からデータを取り込む
アセット
アニメーションで扱う中心的アセットたち
目次
制御
アニメーションを組み合わせてキャラクターを動かす
編集
エディター内編集
TIPS
最適化など


# Page. 17

![Page Image](https://bcdn.docswell.com/page/DEYG8ZLMEM.jpg)

アセット
スケルトン
アニメーション
シーケンス
スケルタルメッシュ


# Page. 18

![Page Image](https://bcdn.docswell.com/page/VJNGQ34378.jpg)

スケルトン


# Page. 19

![Page Image](https://bcdn.docswell.com/page/YE9WD9QPE3.jpg)

スケルトン
アセット
メタデータ
ミラーリング
ソケット
通知
バーチャル
ボーン
ブレンド
マスク
カーブ
ブレンド
プロファイル
リターゲット
互換スケルトン
IK リターゲット
二足歩行の~
IKリグ


# Page. 20

![Page Image](https://bcdn.docswell.com/page/GE8N39GX7D.jpg)

ソケット /バーチャルボーン
●
●
スケルトンに追加できる仮想のボーン
Socket
○
武器等のアタッチ利用する
○
オフセット調整
○
Epic Developer Community &gt; learnning
■
Animation Ecosystem for Game Development
●
Virtual Bone
○
スケルトン中の他のボーンに自動的に追従
■
例) Root の下にぶら下がっているが位置は左手に追従
○
IKなどで利用
○
多くのボーンを経由する末端のボーンは複雑なモーション制御のブ
レが伝播してふらふらと漂ってしまう (泳ぐ)ことがあるが、ツリー内で
複雑な制御が加えられない場所にバーチャルボーンを配置すること
で、ボーンを複雑な制御から守ることができる


# Page. 21

![Page Image](https://bcdn.docswell.com/page/LELPVWGN7R.jpg)

カーブ
●
浮動小数点のパラメータを追加
○
マテリアルパラメータへの自動設定
○
モーフターゲットへの影響制御
○
ポーズアセットでの参照
○
ゲームロジックでの参照
●
スケルトンでのカーブ
○
モーフターゲットやマテリアルで
利用する場合スケルトン内に定義を書いて
チェックを入れる必要がある


# Page. 22

![Page Image](https://bcdn.docswell.com/page/4JM4G9QQ7W.jpg)

アニメーションのリターゲット
●
スケルトンに紐づいているアニメーションを
別のスケルトンでも利用できるようにすること
●
UE4
○
○
○
●
UE5
○
○
○
同一スケルトンでのリターゲット
異なるスケルトンでのリターゲット
(リターゲットマネージャ )
CopyPoseFromMesh
互換スケルトン
IKリターゲッタ
RetargetPoseFromMesh


# Page. 23

![Page Image](https://bcdn.docswell.com/page/PJRWZG8K79.jpg)

同じスケルトンでの
リターゲット
●
スケルトンを共有するしている場合アニメーションを流用できる
●
色々なスケルタルメッシュを一つのスケルトンにマージしていく
○
スケルトンボーン数の肥大化
■
スケルトンエディタでの操作性の低下
■
エディタでのアニメーションロード速度の低下
●
単純な体格の違いはリターゲットオプションの調整で解決
スケルタルメッシュ
アニメーション
スケルトン
スケルタルメッシュ


# Page. 24

![Page Image](https://bcdn.docswell.com/page/PEXP9X857X.jpg)

【UE4】
リターゲットマネージャ
●
UE5にはありません
●
スケルトン &gt; リターゲットマネージャ
●
静的にアニメーションをリターゲット


# Page. 25

![Page Image](https://bcdn.docswell.com/page/3EKDPWKRJD.jpg)

互換スケルトン
●
似通ったスケルトンを指定することで
エンジンが勝手に解釈して
同じスケルトンとして扱われる
●
アセット詳細 &gt; Compatible Skletons


# Page. 26

![Page Image](https://bcdn.docswell.com/page/L73RX1ZGJ5.jpg)

IK リターゲッタ
●
リターゲット設定アセット
●
変換元のIKRigと変換先IKRig設定
●
静的またはランタイムでのリターゲットに利用
○
アセットブラウザ &gt; アニメーション選択 &gt;
選択したアニメーションをエクスポート
IKリターゲッタ
アニメーション
スケルトン
IKRig
IKRig
スケルトン
アニメーション


# Page. 27

![Page Image](https://bcdn.docswell.com/page/87DY2XRN7G.jpg)

IK リグ
●
ソルバ設定
●
リターゲットチェイン設定
○
変換対象の IKRigを参照しながら設定
●
フルボディ IKで望ましくない動きをする時は
「フルボディＩＫボーンの設定」で調整


# Page. 28

![Page Image](https://bcdn.docswell.com/page/VJP61PWNE8.jpg)

二足歩行キャラクターの
リターゲット
●
●
●
●
●
UE5.4~
スケルタルメッシュを指定
出力エンジンが解釈可能なら IKRigを自動生成
○
FKnownTemplateHierarchies
アニメーションの変換
IKリターゲッタの出力


# Page. 29

![Page Image](https://bcdn.docswell.com/page/2EV3Y28Y7Q.jpg)

Retarget Pose From Mesh
●
●
●
●
●
ランタイムで IKRetargetアセットを利用してリターゲット
参照元のスケルタルメッシュコンポーネントが必要
リターゲッタ画面で正しく動いていれば動作
アニメーションアセットの増加無し
追加のIK解決コスト


# Page. 30

![Page Image](https://bcdn.docswell.com/page/57G39R5WJL.jpg)

Copy Pose From Mesh
●
●
●
UE4時代から
名前を使って同じ体格を持つ別のスケルタルメッシュの姿勢をコ
ピー
同じスケルトンを共有している必要はない がボーン名は合わ
せること


# Page. 31

![Page Image](https://bcdn.docswell.com/page/4EQ5WVZQJP.jpg)

同じスケルトン (スケルトン合成 )
UE4&amp;5
インポート時に操作
スケルトンの
肥大化に注意
互換スケルトン
UE5
スケルトンの詳細
簡単！
アニメーションリターゲッタ
UE4
IKリターゲッタ
UE5
静的に
アニメーション変換
IKRigが必要
二足歩行 ~略~リターゲット
UE5.4
Retarget Pose From Mesh
UE5
Copy Pose From Mesh
UE4&amp;5
IKRigを作成可能
ランタイム (ABPノード)
コピー元コンポーネントを
指定する
IKRigが必要
ボーン名を合わせる


# Page. 32

![Page Image](https://bcdn.docswell.com/page/KJ49KM3Y71.jpg)

アニメーションシーケンス


# Page. 33

![Page Image](https://bcdn.docswell.com/page/LE1KX81NJG.jpg)

アニメーションシーケンス
アセット
通知
ルートモーション
圧縮
アニメーション
モディフィア
加算
アニメーション
同期マーカー


# Page. 34

![Page Image](https://bcdn.docswell.com/page/GEWDNZ9MJ2.jpg)

アニメーション通知
/通知ステート
●
●
アニメーションの特定のタイミング
または範囲を指定して特定の処理を行う
AnimNotify / AnimNotifyStateを
継承した C++クラス/ブループリント
○
音声の再生
○
VFXの生成
○
モーションワープの制御
○
同期マーカー
○
プロジェクトの自作処理
■
攻撃判定の追加
■
入力受付
■
などなど・・・


# Page. 35

![Page Image](https://bcdn.docswell.com/page/47ZG319ME3.jpg)

アニメーションモディフィア
●
●
AnimationModifierを継承した C++/ブループリント
○
ありがちな機能はエンジンに C++実装がある
アニメーションを解釈して自動処理を行う
○
アニメーション通知 /通知ステート
■
足音や同期マーカーなど
○
カーブの出力


# Page. 36

![Page Image](https://bcdn.docswell.com/page/YJ6YXLK57V.jpg)



# Page. 37

![Page Image](https://bcdn.docswell.com/page/GJ5GX1PGJ4.jpg)

ルートモーション
●
●
ルートボーンの移動量を移動量として扱う
ゲームスレッドの負荷 が上がるので
大量のスケルタルメッシュを扱ったり
ネットワーク対応タイトルの場合にに注意が必要


# Page. 38

![Page Image](https://bcdn.docswell.com/page/9E2YX16DER.jpg)

移動
移動
移動
アニメ
更新
アニメ
更新
アニメ
更新
ゲームスレッド
アニメーション評価
アニメーション評価
ワーカースレッド
アニメーション評価
ワーカースレッド
ルートモーション無し
ルートモーションあり
移動
移動
移動
アニメーション更新 &amp;評価
アニメーション更新 &amp;評価
アニメーション更新 &amp;評価
ゲームスレッド
ワーカースレッド


# Page. 39

![Page Image](https://bcdn.docswell.com/page/D7YG8Z9M7M.jpg)

圧縮設定
●
ACL(Animation Completion Library)
○
UE4.25 ~ UE5.2
■
マーケットプレースまたは githubから取得
○
UE5.3
■
エンジンプラグイン化
○
UE5.4
■
デフォルト設定 されるように
○
設定で圧縮率やキーフレームの削減を設定できる


# Page. 40

![Page Image](https://bcdn.docswell.com/page/VENGQ3L3J8.jpg)

その他のアセット
- Pose Asset
●
アニメーションシーケンスから作成
○
1フレーム = 1Pose
○
作成ダイアログで名前リストを指定
●
一つまたは 複数の ポーズをブレンド
○
フェイシャルモーション
○
関節を理想的な動作に補正


# Page. 41

![Page Image](https://bcdn.docswell.com/page/Y79WD94P73.jpg)

スケルタルメッシュ


# Page. 42

![Page Image](https://bcdn.docswell.com/page/G78N39QXJD.jpg)

スケルタルメッシュ
アセット
マテリアル
物理アセット
モーフターゲット
LOD
クロス
シミュレーション
Deformer


# Page. 43

![Page Image](https://bcdn.docswell.com/page/L7LPVWXNJR.jpg)

物理アセット
●
●
●
物理界での形状指定
コリジョン形状同士の制約条件
(コンストレイント )の設定
用途
○
コリジョン判定用
○
全身の物理シミュレーション用
○
RBAN(リジッドボディアニムノード )


# Page. 44

![Page Image](https://bcdn.docswell.com/page/4EM4G9LQJW.jpg)

数値入力
形状(ボディ/Shape)
手動追加
自動生成


# Page. 45

![Page Image](https://bcdn.docswell.com/page/PERWZGKKJ9.jpg)



# Page. 46

![Page Image](https://bcdn.docswell.com/page/P7XP9XL5JX.jpg)

クロスシミュレーション
●
●
●
頂点単位のシミュレーション
ボーンベースのアニメーションと組み合わせても良い
UE5.3以降PanelCloth機能に移行
○
https://dev.epicgames.com/documentation/ja-jp/unreal-engine/panel-cloth-edit
or-overview
Panel Cloth


# Page. 47

![Page Image](https://bcdn.docswell.com/page/37KDPWLRED.jpg)

インポート
外部からデータを取り込む
アセット
アニメーションで扱う中心的アセットたち
目次
制御
アニメーションを組み合わせてキャラクターを動かす
編集
エディター内編集
TIPS
デバッグや最適化など


# Page. 48

![Page Image](https://bcdn.docswell.com/page/LJ3RX13GE5.jpg)

アニメーション
モンタージュ
制御
アニメーション
ブループリント
コントロールリグ


# Page. 49

![Page Image](https://bcdn.docswell.com/page/8JDY2X4NJG.jpg)

アニメーションモンタージュ
●
●
●
AnimSequenceを並べて一連のモーションとして扱う
セクション設定
○
ループ
○
セクションジャンプ
スロットノードを通じて姿勢に影響を与える


# Page. 50

![Page Image](https://bcdn.docswell.com/page/VEP61PMN78.jpg)

セクション制御
●
●
●
セクション指定
○
ループ
○
ジャンプ
セクションのジャンプは MontageNotifyなどから行う事もできる
もちろん独自の通知から行っても良い


# Page. 51

![Page Image](https://bcdn.docswell.com/page/27V3Y29YJQ.jpg)

モーションワーピング
●
モーションワーピング通知ステートと
モーションワーピングコンポーネントを
組み合わせてモンタージュ再生中に位置を補間


# Page. 52

![Page Image](https://bcdn.docswell.com/page/5JG39RZWEL.jpg)

制御
アニメーションブループリント
ポストプロセス
ABP
ブレンドノード
リンク
アニメレイヤー
慣性ブレンディング
ブレンドスペース
アニメーション
シェアリング
ブレンドノード
モンタージュ
スロット
RBAN
ステートマシン
ボーンキャッシュ


# Page. 53

![Page Image](https://bcdn.docswell.com/page/47Q5WVLQEP.jpg)

アニメーション
ブループリント
●
●
●
●
UAnimInstance を継承したアニメーション用のブループリント
二つのノードグラフ
○
UpdateAnimation
○
AnimGraph
スケルトンを指定して作成
-&gt;ABP


# Page. 54

![Page Image](https://bcdn.docswell.com/page/KE49KMDYJ1.jpg)

Update Animation
●
●
●
必要な情報を ABPに取り込む
ノードグラフ
○
通常のブループリントで呼び出せるノードを利用できる
○
SkeletalMeshComponentのTick時に呼ばれる
ゲームスレッドで実行される
○
重いUpdateAnimationはゲーム全体のパフォーマンスを低下
○
特にスケルタルメッシュを沢山扱うタイトルでは問題になりやすい


# Page. 55

![Page Image](https://bcdn.docswell.com/page/L71KX8ZNEG.jpg)

Update Animation
●
●
●
必要な情報を ABPに取り込む
ノードグラフ
○
通常のブループリントで呼び出せるノードを利用できる
○
SkeletalMeshComponentのTick時に呼ばれる
ゲームスレッドで実行 されていた
○
重いUpdateAnimationはゲーム全体のパフォーマンスを低下
○
特にスケルタルメッシュを沢山扱うタイトルでは問題に なりやすかった
TIPS セクションで
最新の状況をお伝えします


# Page. 56

![Page Image](https://bcdn.docswell.com/page/G7WDNZ6ME2.jpg)

AnimGraph
●
ノードグラフで定義された
アニメーション評価や
アニメーションブレンドを処理して
最終的なキャラクターポーズを作り出す


# Page. 57

![Page Image](https://bcdn.docswell.com/page/4JZG31YM73.jpg)

テンプレート ABP
●
●
●
●
スケルトンを指定しない ABP
AnimGraphではすべてのアニメーションシーケンスが
指定できるが指定しなくてもいい
継承クラスは AnimGraph を実装出来ない
○
固有実装は LinkedAnimLayer や
PostProcessABP を検討
アニメーションを指定するだけで十分という
シンプルなキャラクター制御に向く
○
ザコ敵等


# Page. 58

![Page Image](https://bcdn.docswell.com/page/YE6YXLD5JV.jpg)

アセットオーバーライド
●
●
●
テンプレート ABPまたは一般的な ABPを継承した ABPで利用できる
Asset Override Editor ウィンドウ
アニメーション指定などをオーバーライド


# Page. 59

![Page Image](https://bcdn.docswell.com/page/GE5GX13GE4.jpg)

PostProcess ABP
●
●
スケルタルメッシュアセットに追加の ABPを設定
InputPoseノードでメインの ABPのポーズを受け取る


# Page. 60

![Page Image](https://bcdn.docswell.com/page/972YX1ZD7R.jpg)

メイン
ABP : 評価
メイン
ABP : 更新
ポストプロセス
ABP : 更新
ポストプロセス
ABP : 評価


# Page. 61

![Page Image](https://bcdn.docswell.com/page/DJYG8ZRMJM.jpg)

補助ボーン &amp;
ポストプロセス無し


# Page. 62

![Page Image](https://bcdn.docswell.com/page/V7NGQ3D3E8.jpg)

AnimGraph ノード紹介


# Page. 63

![Page Image](https://bcdn.docswell.com/page/YJ9WD9GPJ3.jpg)

再生ノード
●
各種プレイヤー


# Page. 64

![Page Image](https://bcdn.docswell.com/page/GJ8N39VXED.jpg)

SequencePlayer 配
置
●
●
アニメーションシーケンスを評価する
ドラッグアンドドロップで作成


# Page. 65

![Page Image](https://bcdn.docswell.com/page/LJLPVW5NER.jpg)

ピンで公開
●
●
ABPノードのほとんどのプロパティは
ノードの引数ピン に変更することができる
アセットをデータアセットなどの外部データ構造から
取り込む
○
データドリブンな ABPを設計


# Page. 66

![Page Image](https://bcdn.docswell.com/page/47M4G93QEW.jpg)

PoseDriver
●
●
●
ソースボーンの 回転の範囲 からポーズアセットを駆動する
カーブを駆動することも可能
肩や股関節などの自由度の高い関節の補助骨の操作に利用


# Page. 67

![Page Image](https://bcdn.docswell.com/page/P7RWZGQKE9.jpg)

ブレンドノード
●
●
各種プレイヤー
https://dev.epicgames.com/documentation/ja-jp/unr
eal-engine/animation-blueprint-blend-nodes-in-unr
eal-engine


# Page. 68

![Page Image](https://bcdn.docswell.com/page/PJXP9X55EX.jpg)

ブレンドマスク
ブレンドプロファイル
●
●
●
スケルトンのツリーでボーン毎の設定を編集
ブレンドマスク
○
LayeredBlendPerBoneノードに付与
○
ボーン毎にブレンド率スケール設定
ブレンドプロファイル
○
ボーン毎のブレンド速度設定
○
アニメーションモンタージュ /
各種ブレンドノード


# Page. 69

![Page Image](https://bcdn.docswell.com/page/3JKDPW6R7D.jpg)

慣性ブレンディング / デッドブレンディング
●
●
アニメーション感のスムーズな遷移を行うため機能
デッドブレンディング (UE5.3~)は、慣性ブレンディングの代替ノード
○
速度と距離からブレンド比を計算
■
速度と距離が逆になる場合も考慮されている
■
大きく異なるポーズの遷移時に関節が壊れることはない
○
複数の遷移リクエスト
○
慣性ブレンドに比べて硬く見えるかも


# Page. 70

![Page Image](https://bcdn.docswell.com/page/LE3RX16G75.jpg)

ボーン制御ノード
●
各種ＩＫなど


# Page. 71

![Page Image](https://bcdn.docswell.com/page/8EDY2XVNEG.jpg)

RigidBody ノード
(RBAN)
●
●
●
コンポーネントの固有空間 内でボーンに物理シミュレーショ
ン
必要な形状だけを持った物理アセットを設定
SimulationSpace
○
大きすぎる動きをスケール＆制約してシミュレー
ションを安定化させる
○
ComponentSpace
■
アクターの移動量を加工して伝播
○
BaseBoneSpace
■
基底ボーンまでのアニメーション
アクターの移動量を合わせて加工して伝播
○
WorldSpace
■
移動量を加工しない


# Page. 72

![Page Image](https://bcdn.docswell.com/page/V7P61PVNJ8.jpg)

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


# Page. 73

![Page Image](https://bcdn.docswell.com/page/2JV3Y2ZYEQ.jpg)

構造化ノード
●
●
各種プレイヤー
https://dev.epicgames.com/documentation/ja-jp/unr
eal-engine/animation-blueprint-copy-bone-in-unrea
l-engine


# Page. 74

![Page Image](https://bcdn.docswell.com/page/5EG39R4W7L.jpg)

ステートマシン
条件 によって
●
●
ステート が変化していく
各ステート内にグラフがある
○
入れ子構造


# Page. 75

![Page Image](https://bcdn.docswell.com/page/4JQ5WVGQ7P.jpg)

Anim Preview Editor
●
ABP内の変数を変更してアニメーションをプレビュー


# Page. 76

![Page Image](https://bcdn.docswell.com/page/K749KM5YE1.jpg)

ステートマシンの入れ子構造
●
●
条件 によってステート が変化していく
入れ子構造
ステートマシンの入れ子構造


# Page. 77

![Page Image](https://bcdn.docswell.com/page/LJ1KX8WN7G.jpg)

ステートエイリアス
●
●
●
ステートのジャンプ先
どのステートからジャンプできるか
チェックボックスで指定
ステートエイリアスの判定にも
負荷があることに注意


# Page. 78

![Page Image](https://bcdn.docswell.com/page/GJWDNZRM72.jpg)



# Page. 79

![Page Image](https://bcdn.docswell.com/page/4EZG31RMJ3.jpg)

ブレンドスペース
●
1次元または 2次元のグラフ上に
アニメーションを配置してブレンド
○
360度の歩行モーション
○
静止 - 歩き - 走りなどの遷移
●
長らくブレンドスペースはアセット
●
ブレンドスペースノード がUE5から追加
○
各ポイント毎にグラフ が記述可能に
■
入れ子構造


# Page. 80

![Page Image](https://bcdn.docswell.com/page/Y76YXLR5EV.jpg)

リンクされたアニメーションレイヤー
●
●
●
AnimGraph中に配置し別の ABPのアニムグラフで置き換える
ランタイムで付け外しが可能
基本のテンプレート ABP＋キャラ固有の ABP の組み合わせが実現できる


# Page. 81

![Page Image](https://bcdn.docswell.com/page/G75GX18G74.jpg)

アニメーションレイヤー
インターフェイス
●
●
ブループリントインターフェイスと非常によく似ている
アニメレイヤーインターフェイスアセットを作成しレイヤーを定義する


# Page. 82

![Page Image](https://bcdn.docswell.com/page/9J2YX1KDJR.jpg)

アニメーションレイヤー割り当て
●
呼び出し元・派生先の両方 のABPにアニメーションレイヤーを割り当てる


# Page. 83

![Page Image](https://bcdn.docswell.com/page/DEYG8ZNMEM.jpg)

アニメーションレイヤー
実装
●
呼び出し元・派生先の両方の ABPにアニメレイヤーを割り当て
る


# Page. 84

![Page Image](https://bcdn.docswell.com/page/VJNGQ3X378.jpg)



# Page. 85

![Page Image](https://bcdn.docswell.com/page/YE9WD98PE3.jpg)



# Page. 86

![Page Image](https://bcdn.docswell.com/page/GE8N398X7D.jpg)



# Page. 87

![Page Image](https://bcdn.docswell.com/page/LELPVWRN7R.jpg)

ポーズキャッシュ
(save cached pose)
●
●
●
入力された姿勢を一時保存するノード
ノードのスパゲティ化を防ぐ
疑似的にポーズの複製 が可能


# Page. 88

![Page Image](https://bcdn.docswell.com/page/4JM4G9RQ7W.jpg)

コントロールリグ
ノード
●
●
コントロールリグを ABP内で評価する
選択したコントローラーをピンとして
ノードに露出させる


# Page. 89

![Page Image](https://bcdn.docswell.com/page/PJRWZGRK79.jpg)

コントロールリグ


# Page. 90

![Page Image](https://bcdn.docswell.com/page/PEXP9XR57X.jpg)

コントロールリグ
●
●
●
●
ノードグラフで主にコントローラーの制御を通じて
骨格を制御する仕組み
アニムグラフでの操作に比べて軽量
プロシージャルアニメーション
○
FootIk
○
LookAt
○
補助骨制御
MayaなどのDCCツールで作られているアニメーション作成用
リグ
○
UnrealEditor上でアニメーション編集


# Page. 91

![Page Image](https://bcdn.docswell.com/page/3EKDPWRRJD.jpg)

コントロールリグの例
CR_Mannequin_BasicFootI
K
●
●
●
●
コントローラー無し
腰と足のバーチャルボーンを地面へのトレースを使って加工
足のIK用ボーンを参照としてフルボディ IK
ABPで使われることを想定


# Page. 92

![Page Image](https://bcdn.docswell.com/page/L73RX18GJ5.jpg)

コントロールリグの例
CR_Mannequin_Body
●
●
多数のコントロール
シーケンサーなどで使われることを想定


# Page. 93

![Page Image](https://bcdn.docswell.com/page/87DY2XMN7G.jpg)

コントロールリグの例
CR_Mannequin_Procedural
●
●
メインのボーンから多数の 補助ボーン を動かしている
ABP_Manny_PostProcessから使われている


# Page. 94

![Page Image](https://bcdn.docswell.com/page/VJP61PRNE8.jpg)

コントロールリグの例
Face_ControlBoard_
CtrlRig
●
MetaHumanの標準フェイスリグ


# Page. 95

![Page Image](https://bcdn.docswell.com/page/2EV3Y2RY7Q.jpg)

モジュラーコントロールリグ
●
●
●
ControlRigを作るもう一つの方法
互換性があれば非常に簡単にリグを作成できる
リググラフ無し
モジュール式コントロールリグ @ Unreal Engine 5.4、あの新機能を追え！
https://www.docswell.com/s/EpicGamesJapan/KQR34N-ue-meetup-osaka-02#p58


# Page. 96

![Page Image](https://bcdn.docswell.com/page/57G39RMWJL.jpg)

インポート
外部からデータを取り込む
アセット
アニメーションで扱う中心的アセットたち
目次
制御
アニメーションを組み合わせてキャラクターを動かす
編集
エディター内編集
TIPS
デバッグや最適化など


# Page. 97

![Page Image](https://bcdn.docswell.com/page/4EQ5WVRQJP.jpg)

シーケンサー
編集
アニメーション
モード


# Page. 98

![Page Image](https://bcdn.docswell.com/page/KJ49KM8Y71.jpg)

LevelSequence
(シーケンサー )
●
●
広義の意味でアニメーション
全てのアクター /コンポーネントをタイムラインで制御
【初心者向け】UE5 シーケンサーと Movie Render Queue の使い方
猫でもわかる UE5 シーケンサー自動生成！
https://www.youtube.com/watch?v=-qKSJLNLV94
https://www.docswell.com/s/squadstars/ZVVDDJ-2024-03-26-012103


# Page. 99

![Page Image](https://bcdn.docswell.com/page/LE1KX82NJG.jpg)

アニメーションモード
●
●
●
エンジン内でアニメーション編集
コントロールリグによる操作
アニメーション編集サポート用のパネル


# Page. 100

![Page Image](https://bcdn.docswell.com/page/GEWDNZ2MJ2.jpg)



# Page. 101

![Page Image](https://bcdn.docswell.com/page/47ZG31DME3.jpg)

アニメーションシーケンス編集
●
●
エディター内でアニメーションを作成＆編集
○
アニメーションシーケンスエディタ &gt;
「シーケンサーで編集開始」
○
ダイアログで「 コントロールリグにベイク 」
○
レベルシーケンス上にキーが打たれて編集可能に
○
キーボードの Sキーでキー追加
コントロールリグを D＆Dでも


# Page. 102

![Page Image](https://bcdn.docswell.com/page/YJ6YXL157V.jpg)

アニメーション書き出し
●
●
スケルタルメッシュトラックで右クリック
アニメーションシーケンスをベイクで書き出し


# Page. 103

![Page Image](https://bcdn.docswell.com/page/GJ5GX14GJ4.jpg)

リンクされたアニメーションシー
ケンス
●
●
●
アニメーションシーケンスとアニメーションモード編集画面がリンク
自動でアニメーションシーケンスを更新
アニメーションシーケンスからレベルシーケンスを開くことで編集


# Page. 104

![Page Image](https://bcdn.docswell.com/page/LE3RX1GP75.jpg)

インポート
外部からデータを取り込む
アセット
アニメーションで扱う中心的アセットたち
目次
制御
アニメーションを組み合わせてキャラクターを動かす
編集
エディター内編集
TIPS
パフォーマンスなど


# Page. 105

![Page Image](https://bcdn.docswell.com/page/8EDY2X13EG.jpg)

モジュラーキャラクター構成
●
●
組み合わせでキャラクターを構成する
衣装替え


# Page. 106

![Page Image](https://bcdn.docswell.com/page/V7P61PQPJ8.jpg)

モジュラーキャラクター構成
●
モジュラー キャラクターで作業する
○
●
https://dev.epicgames.com/documentation/ja-jp/unreal-engine/working-with-modular-characters-in-unreal-engine
スケルトンをマージしなければいけない場合に注意が必要
○
衣装毎 /キャラクター毎に独自のボーン構造 を持っているケース
■
ボーンベースのクロスシミュレーション
○
EPICとしては一つのスケルトンの ボーン数が 1000 を超える構成はオススメしていません
○
エディタの起動やエディタ上でのアニメーション読み込み速度が極端に低下する可能性
○
メインのスケルタルメッシュは基本ボーンのみのシンプルなスケルトンを使って Copy Pose From
Meshを利用する構成を検討


# Page. 107

![Page Image](https://bcdn.docswell.com/page/2JV3Y25VEQ.jpg)

FastPath
●
複雑な演算ノードが繋がっていると
VMの実行速度が低下する


# Page. 108

![Page Image](https://bcdn.docswell.com/page/5EG39R617L.jpg)

Thread Safe Update
Animation
●
●
●
プロジェクトセッティング &gt; 基本設定 &gt;
マルチスレッドアニメーションの更新を許可 にチェック
ThreadSafe版UpdateAnimationに処理を移行
○
BlueprintThreadSafeUpdateAnimation
■
Thread Safe 属性付き関数のみが呼び出せる
○
NativeThreadSafeUpdateAnimation
UpdateAnimationがワーカースレッドで実行


# Page. 109

![Page Image](https://bcdn.docswell.com/page/4JQ5WV4N7P.jpg)

ThreadSafe 関数
●
●
●
●
ブループリント
○
関数の詳細 &gt; Advanced &gt; ThreadSafe
C++
○
BluepirntThreadSafe メタデータ
エンジンの関数でスレッドセーフとマークされている
関数は多くない
自己責任で ThreadSafe 関数を自作
○
参照先の書き込みタイミングで
アクセスしないように注意が必要
UFUNCTION(BlueprintPure, Category = &quot;ThreadSafeAPI&quot;, meta = (BlueprintThreadSafe))
static FVector GetVelocityFromAnimInstance(UAnimInstance* InInstance);


# Page. 110

![Page Image](https://bcdn.docswell.com/page/K749KMQ3E1.jpg)

プロパティアクセス
●
●
●
●
●
AnimIntance/Actor/Componentのプロパティにダイレクトアク
セス
UpdateAnimation / AnimGraphのどちらでも利用可能
UpdateAnimation で自前でプロパティの取り込み不要
このノード自体は ThreadSafe
Call Site
○
ThreadSafe
■
コピーは行われない
真のダイレクトアクセス
○
ThreadSafeでない場合
■
指定のタイミングで
変数のコピーが行われる
CallSite


# Page. 111

![Page Image](https://bcdn.docswell.com/page/LJ1KX8PZ7G.jpg)

完全なThreadSafe
UFUNCTION(BlueprintPure, Category = &quot;ThreadSafeMyCharacterAPI&quot;, meta = (BlueprintThreadSafe))
static APawn* GetPawnFromAnimInstance(UAnimInstance * InInstance);
UFUNCTION(BlueprintPure, Category = &quot;ThreadSafeMyCharacterAPI&quot;, meta = (BlueprintThreadSafe))
static FVector GetVelocityFromAnimInstance(UAnimInstance* InInstance);
UFUNCTION(BlueprintPure, Category = &quot;ThreadSafeMyCharacterAPI&quot;, meta = (BlueprintThreadSafe))
static FVector GetAccelerationFromAnimInstance(UAnimInstance* InInstance);
UFUNCTION(BlueprintPure, Category = &quot;ThreadSafeMyCharacterAPI&quot;, meta = (BlueprintThreadSafe))
static bool IsFallingFromAnimInstance(UAnimInstance* InInstance);


# Page. 112

![Page Image](https://bcdn.docswell.com/page/GJWDNZ2672.jpg)

APawn* UMyThreadSafeLib::GetPawnFromAnimInstance(UAnimInstance* InInstance)
{
AActor* Actor = InInstance-&gt;GetOwningActor();
APawn* OutCharacter = Cast&lt;APawn&gt;(Actor);
return OutCharacter;
}
FVector UMyThreadSafeLib::GetVelocityFromAnimInstance(UAnimInstance* InInstance)
{
if (APawn* Pawn = GetPawnFromAnimInstance(InInstance))
{
return Pawn-&gt;GetVelocity();
}
return FVector::ZeroVector;
}
FVector UMyThreadSafeLib::GetAccelerationFromAnimInstance(UAnimInstance* InInstance)
{
if (APawn* Pawn = GetPawnFromAnimInstance(InInstance))
{
if (UCharacterMovementComponent* CMove = Cast&lt;UCharacterMovementComponent&gt;(Pawn-&gt;GetMovementComponent()))
{
return CMove-&gt;GetCurrentAcceleration();
}
}
return FVector::ZeroVector;
}
bool UMyThreadSafeLib::IsFallingFromAnimInstance(UAnimInstance* InInstance)
{
if (APawn* Pawn = GetPawnFromAnimInstance(InInstance))
{
if (UCharacterMovementComponent* CMove = Cast&lt;UCharacterMovementComponent&gt;(Pawn-&gt;GetMovementComponent()))
{
return CMove-&gt;IsFalling();
}
}
return false;
}
スレッドセーフ性は実装者が責任を負う
❢


# Page. 113

![Page Image](https://bcdn.docswell.com/page/4EZG31DRJ3.jpg)



# Page. 114

![Page Image](https://bcdn.docswell.com/page/Y76YXL11EV.jpg)

Chooser /
MotionMatching
●
●
CEDEC2024で解説セッションがあります！
CEDEC Youtubeチャンネルをチェック！
その動き、機械が見つけます!? モーション・マッチングで、やるぜ働き方改革！
https://cedec.cesa.or.jp/2024/session/detail/s66614158a2fa9/


# Page. 115

![Page Image](https://bcdn.docswell.com/page/G75GX14L74.jpg)

まとめ
●
アニメーション関連の機能はどんどん増加して追いかけるのも大変
しかし簡単に機能を利用できるような改良も常に導入され便利に進化し続けている
○
互換スケルトン
○
二足歩行キャラクターのリターゲット
○
コントロールリグ
○
リンクアニメレイヤー
○
デッドブレンディング
●
エンジン内でのアニメーション編集機能を利用してゲームがリリースできるように
●
パフォーマンス改善用の機能を理解してゲームのボトルネックにならないように気を付ける
○
RootMotionの過度の利用
○
ControlRigの軽量VM
○
FastPath
○
ThreadSafeUpdateAnimation
○
UnrealInsights


# Page. 116

![Page Image](https://bcdn.docswell.com/page/9J2YX1V3JR.jpg)

Thank you!
— Epic Games Japan
2024


