UE4 勉強会 in 大阪
アニメーション BP 基礎
UE4 勉強会 in 大阪
自己紹介
● Twitter: com04
● ゲームプログラマー
● 最近はツール作ってる
● 横浜 × 酒 ×UE4
3
自己紹介
● マーケットプレイスに出品しました
− ComMaterialTools
● https://www.unrealengine.com/marketplace/commaterialtools
● マテリアル検索の便利ツール
● 過去スライド
− マテリアル基礎・初級
● https://www.slideshare.net/com044/ue4-80326829
− UE4 でのチーム製作
● https://www.slideshare.net/com044/4ue4-in-ue4
− エンジンの内部挙動について
● https://www.slideshare.net/com044/ue4-in
● マーケットプレイスに出品しました
− ComMaterialTools
● https://www.unrealengine.com/marketplace/commaterialtools
● マテリアル検索の便利ツール
● 過去スライド
− マテリアル基礎・初級
● https://www.slideshare.net/com044/ue4-80326829
− UE4 でのチーム製作
● https://www.slideshare.net/com044/4ue4-in-ue4
− エンジンの内部挙動について
● https://www.slideshare.net/com044/ue4-in
4
もくじ
● アニメーション BP
○ アニムグラフ
● アニメーションシーケンス
● レイヤーブレンド
● ステートマシン
● ブレンドスペース
● モンタージュ
○ モンタージュを利用したコンボアニメーション
● 小ネタ version: UE4.18.3
アニメーション BP
アニメーション BP
スケルタルメッシュのアニメーションを行う BP
アニメーション BP
スケルトンの右クリックから作成できる
アニメーション BP
作ったアニメーション BP は、 Actor や Component
のスケルタルメッシュの詳細欄で設定できる
アニメーション BP
イベントグラフとアニムグラフから構成される
アニメーション BP
イベントグラフは普通の BP と同じような形
● Begin Play → Blueprint Begin Play
● Tick → Blueprint Update Animation
アニメーション BP
アニムグラフ
アニメーション BP- アニムグラフ
アニメーション BP の中で、実際のポーズを作成する
グラフ
アニメーション BP- アニムグラフ
アニムグラフ
● 通常の BP とは違い、実行ピンではなく POSE ピン
になっている
○ アニムグラフ専用のノードで繋ぐ
アニメーション BP- アニムグラフ
アセットブラウザから投げ入れる事でアニメーション
アセットを導入出来る
アニメーション BP
参考
● アニメーション エディタ
○ http://api.unrealengine.com/JPN/Engine/Animation/Persona/Modes/Ani
mation/index.html
● Animation ブループリント
○ http://api.unrealengine.com/JPN/Engine/Animation/AnimBlueprints/ind
ex.html
アニメーションシーケンス
アニメーションシーケンス
アニメーションシーケンス
● インポートしたアニメーションそのまま
アニメーションシーケンス
そのまま再生される
アニメーションシーケンス
アセットを開いた下部の再生欄で再生、停止等をコン
トロールして確認できる
アニメーションシーケンス
参考
● アニメーション シーケンス
○ http://api.unrealengine.com/JPN/Engine/Animation/Sequences/index.h
tml
レイヤーブレンド
レイヤーブレンド
アニムグラフでは、複数のアニメーションを様々な方
法でブレンドする事が出来る
BP と同じ様に書ける
レイヤーブレンド
そのまま再生
レイヤーブレンド
[ ブレンド ]
二つのアニメーションを Alpha 値でブレンドする
レイヤーブレンド
[ ブレンド Poses by bool]
Active Value の Bool 値が True か False かでアニメー
ションが切り替わる
レイヤーブレンド
[ ボーン毎のレイヤードブレンド ]
指定したボーン以下の階層だけをブレンドする
● 上半身だけ、腕だけ、こっちのアニメーション使う。とか出
来る
レイヤーブレンド
[ ボーン毎のレイヤードブレン
ド ]
ノードを選択した後、詳細欄からパラ
メーターを設定できる
● Bone Name: どの Bone からブレ
ンドするか
● Bone Depth: そこから何階層ブレ
ンドするか
レイヤーブレンド
[ ブレンドポーズ(列挙体) ]
列挙体の ID で分岐してアニメーションを再生できる
● 簡易的なモーション分岐に
レイヤーブレンド
[ ブレンドポーズ(列挙体) ]
ノードを右クリックの
「エレメントにピンを追加」から
列挙体のピンを追加出来る
レイヤーブレンド
[ ボーンをトランスフォーム(修正)する ]
指定したボーンに直接トランスフォームを指定して修
正する
● 首だけ回転して相手に向けるとか
レイヤーブレンド
[ ボーンをトランスフォーム(修正)する ]
ノードを選択した後、詳細欄から
パラメーターを設定できる
● Bone to Modify: 修正する Bone
● Translation Mode: 適用方法
○ Ignore: 適用しない
○ Replace Existing: 置き換え
○ Add to Existing: 加算
● Translation Mode: 座標系
レイヤーブレンド
etc,etc…
● Animation ノードの参照
○ http://api.unrealengine.com/JPN/Engine/Animation/NodeRefer
ence/index.html
●レイヤー化されたアニメーションを使用する
○ http://api.unrealengine.com/JPN/Engine/Animation/AnimHowTo/Additiv
eAnimations/index.html
レイヤーブレンド
これらを組み合わせてアニメーションを実装していき
ます
ステートマシン
ステートマシン
状態(=ステート)を遷移してアニメーションを切り
替えていく
ステートマシン
アニムグラフ内で右クリックから「新規のステートマ
シーンを追加」で作成
ステートマシン
ダブルクリックで中に入るとこんな感じ
ステートマシン
主にステートとトランジション(矢印)で構成される
● それぞれダブルクリックで中に入って処理を記述で
きる
ステートマシン
ステート
● 右クリックから「ステートを追加」で追加できる
ステートマシン
ステート
● ダブルクリックで中に入って、このノードにいる時
に再生するアニメーションを設定する
ステートマシン
トランジション
● ステート間を遷移する所に仕込む
● 遷移元のステートノードの端をクリック&ドラッグ
で、遷移先のステートノードの端にドロップする
ステートマシン
トランジション
● この矢印を移動する条件を設定する
○ 丸いマークをダブルクリックして中に入れる
○ True な条件なら矢印が遷移する
ステートマシン
トランジション
●モーションの残り時間とかも取得できる
ステートマシン
ステートと矢印で状態の移り変わりとモーションを指
定していく
ステートマシン
再生しながらステートマシンを開くと現在の再生状態
を見ることが出来る
ステートマシン
参考
● ステートマシン
○ http://api.unrealengine.com/JPN/Engine/Animation/StateMachines/ind
ex.html
ブレンドスペース
ブレンドスペース
複数のアニメーションを渡した数値から補間してブレ
ンドしてくれる
外部から渡す値
ブレンドスペース
横軸のみの1 D と、縦軸も含めた2 D が有る
それぞれ中間点を
補間してくれる
ブレンドスペース
スケルトンを右クリックして作成出来る
ブレンドスペース
適用したい場所にアセットを投げ入れる
● 複数投げ込むとその分アニメーションがブレンドさ
れる
ブレンドスペース
アセット詳細欄の Axis Settings でパラメーター設定
● Name: 名前
● Minumum Axis Value: グラフの最小値
● Maxmum Axis Value: グラフの最大値
ブレンドスペース
アニムグラフに配置できる。
先程設定した変数とグラフから、配置したノード引数
から補間したポーズを返してくれる
ブレンドスペース
例えば、速度によって歩きと走りをいい感じにブレン
ドする
速度 速度
ブレンドスペース
例えば、弓を構えるアニメーションを角度からブレン
ドする
水平角度 水平角度
垂直角度 垂直角度
ブレンドスペース
参考
● Aim Offset
○ http://api.unrealengine.com/JPN/Engine/Animation/AimOffset/index.ht
ml
モンタージュ
モンタージュ
モンタージュで出来ること
● 1つ以上のアニメーションシーケンスを纏めれる
● BP から好きなタイミングで再生が開始できる
● スロット機能で複数種類のモンタージュの内、1つ
だけ再生が出来る
● モーションの分岐が出来る
モンタージュ
スケルトンを右クリックして作
成出来る
モンタージュ
複数のアニメーションを登録する事が出来る
モンタージュ
アニメーションはアセットブラウザからドラッグ&ド
ロップで登録できる
モンタージュ
モンタージュはスロットで管理される
● メニューバーの「ウィンドウ」→「アニメーション
スロットマネージャー」
モンタージュ
種類毎にグループ、スロットを追加する
モンタージュ
スロット
● モンタージュは「このスロットで再生する」となる
○ 複数のモンタージュで同じスロットを指定していると、
どちらか一つしか再生されない
“Attack” スロット
“Attack” スロット
再生
再生
同じスロットで再生
されたので停止する
モンタージュ
モンタージュのエディターで再生スロットを指定でき
る
モンタージュ
アニムグラフでの使用もスロットを指定して適用する
モンタージュ
スロット再生ノードを選択、詳細欄の「 Slot
Name 」でスロットを指定できる
モンタージュ
BP から再生の指定
● AnimInstance (アニメーション BP )で
「 Montage Play 」ノードで再生開始できる
モンタージュ
BP から再生が指定出来るので、このタイミングでア
ニメーション再生させたい!とかに使いやすい
モンタージュ
参考
● Animation Montage
○ https://docs.unrealengine.com/en-us/Engine/Animation/AnimMontage
モンタージュ
モンタージュを利用したコンボアニメーション
モンタージュを利用したコンボアニメーション
モンタージュを再生開始して、一定区間内に攻撃ボタ
ンを押されたら2発目にスキップしてほしい
1発目殴り 2発目殴り 3発目殴り
モンタージュを利用したコンボアニメーション
モンタージュ内のアニメーションの割り方
● どこからどこまでが1発目なのか
モンタージュを利用したコンボアニメーション
セクション
● アニメーションの一塊のようなもの
○ 初期設定だと「 Default 」セクションに全部入っている
モンタージュを利用したコンボアニメーション
セクションの設定
1. モンタージュのタイムラインを右クリックで「新規
モンタージュセクション」
2. 適当なセクション名を入れる
モンタージュを利用したコンボアニメーション
今回は三連続コンボなので下記のように設定
● “Combo1”, “Combo2”, “Combo3”
モンタージュを利用したコンボアニメーション
セクション欄でどのセクションを続けて再生するかを
設定出来る
Combo1 を再生すると全部続けて再生される
Combo1 を再生すると Combo2 も続けて再生さ
れる。 Combo3 は再生されない
Combo1 を再生すると Combo1 だけで終わる
Combo2 を再生すると Combo3 も続けて再生さ
れる
モンタージュを利用したコンボアニメーション
セクションの操作方法
● セクション間の「 × 」ボタンを押すと分離される
● セクションを選択して、上部にあるリストをダブル
クリックすると接続
モンタージュを利用したコンボアニメーション
三連続コンボなので下記の設定に
モンタージュを利用したコンボアニメーション
次のコンボに繋がるタイミングの設定
● 入力受付開始、入力受付終了
○ この間に攻撃ボタン押されたら2発目のアニメーション
に
モンタージュを利用したコンボアニメーション
通知を設定
● 下の方にある通知欄で設定する
● 機能自体はアニメーションシーケンスにも有る
モンタージュを利用したコンボアニメーション
設定すると下記のように
● 入力受付開始タイミングを” InputStart”
● 入力受付終了タイミングを” InputEnd”
モンタージュを利用したコンボアニメーション
アニメーション BP のイベントグラフで組む
モンタージュを利用したコンボアニメーション
通知を設定すると、アニメーション BP のイベントグ
ラフに AnimNotify の名前でイベントが追加されてい
る
● アニメーションが再生されて、先程の通知タイミン
グに来るとこのイベントが呼び出される
モンタージュを利用したコンボアニメーション
イベントグラフで” Montage Jump to Section” で設
定したセクションにモンタージュ再生をスキップでき
る
ここの再生途中でも
指定したセクション名に飛んで
ここから再生する事ができる
モンタージュを利用したコンボアニメーション
実装例
● InputStart ~ InputEnd の間だけ Gate を開ける
● 開けている間に攻撃ボタン押されたら Jump する
モンタージュを利用したコンボアニメーション
● 攻撃ボタンが押されなければ” Combo1” セクショ
ンの最後まで再生
● 攻撃ボタンが押されれば次の” Combo2” のアニメ
ーションに移る
● “Combo2” → “Combo3” も同様にすれば3連撃コ
ンボに
小ネタ
小ネタ
小ネタ - もっと通知
小ネタ - もっと通知
アニメーションシーケンスやモンタージュの通知は、
BP へのイベント通知以外にも色々仕込める
● パーティクルを設定出来る
● サウンドを設定出来る
小ネタ - もっと通知
パーティクルシステムの再生
● 通知タイムラインを右クリックで「 Play Particle
Effect 」を指定する
小ネタ - もっと通知
作成した通知を選択して、詳細パネルで発生させるパ
ーティクルを指定する
● Socket Name 項目でアタッチするソケットも指定
できる
小ネタ - もっと通知
サウンドの再生
● 通知タイムラインを右クリックで「 Play Sound 」
を指定する
小ネタ - もっと通知
後はパーティクルと一緒
小ネタ
小ネタ - トレイル
小ネタ - トレイル
トレイル=軌跡エフェクト
もアニメーションに仕込めます
小ネタ - トレイル
アニメーションの通知欄で右クリックから「通知ステ
ートを追加」→「 Trail 」
● 開始タイミングと終了タイミングが入った通知ステ
ートが追加されます
小ネタ - トレイル
Trail 通知を選択して、詳細欄を設定します
● PSTemplate: Trail パーティクル
● First Socket Name: 軌跡が出始める
位置ソケット名
● Second Socket Name: 軌跡が終わる
位置ソケット名
小ネタ - トレイル
エディター画面でプレビューできます
小ネタ - トレイル
Trail パーティクル
● パーティクルのタイプデータを AnimTrailData に
○ (すれば OK の筈 ... 本題ではないのでまた今度)
まとめ
まとめ
今回の内容でも UE4 のアニメーション機能の極々一
部です
物理、 IK 、 RootMotion 、アニメーション共有など
様々な機能があります
まとめ
ぜひぜひ皆様アニメーション機能を使い倒して知見を
共有してください!(お願いします
参考資料
参考資料
● スケルタルメッシュのアニメーション システム
○ http://api.unrealengine.com/JPN/Engine/Animation/index.html
● 猫でも分かる UE4 の Animation Blueprint の運用
について
○ https://www.slideshare.net/EpicGamesJapan/ue4animation-blueprint
以上!

UE4勉強会 in 大阪 - アニメーション基礎