[UE5][Blender]VATを作成し読み込む
VATはVartex Animation Textureという頂点変形アニメーションのことで
頂点の移動値を画像で出力することで軽いデータで取り廻せるアニメーションのこと
手順としては
・Blenderでアニメーションを作成
・VAT用テクスチャを作成
・UE5で読み込み、アニメーション
の流れ
Blenderのアドオンで『unreal_tools』が必要
https://github.com/JoshRBogart/unreal_tools?files=1
Blenderでアニメーションをつける
事前準備
フレームレートを設定する
UEと統一しておく
![](https://assets.st-note.com/img/1691993026356-lzQvZbhHyc.png?width=1200)
環境のユニットサイズを調整する
Unit Scaleを0.01に設定する
![](https://assets.st-note.com/img/1691993329812-gbElbyfeWr.png)
パースビューのEndを拡大する
Unitを小さくすると遠方の表示が削られてしまい、作業がしづらいのでEndを大きめに変更しておく
![](https://assets.st-note.com/img/1691993582985-g6M9PZNfX1.png)
VATを作成する
キーフレームをインサートする"Iキー"でアニメーションを登録する
今回は1~60Fで移動するアニメーション
![](https://assets.st-note.com/img/1691993887838-wjVrtNQqBR.png?width=1200)
登録したフレーム数に合わせUnrealToolsを調整
![](https://assets.st-note.com/img/1691993739258-Waq7S0BAVL.png)
Process Anim Meshesを押すとアニメーションがついていない『export_mesh』が追加される
![](https://assets.st-note.com/img/1691994167795-Vjdm3qaJpY.png)
UVエディターを表示し、画像一覧を見ると
『normals』『offsets』が追加されている
![](https://assets.st-note.com/img/1691994404318-D5m1SRfSfx.png?width=1200)
画像の保存
UVエディターのサイドバーにImageがあるので、作成された画像をSaveしていく(まだソフト上にしかないので保存しないと消える)
normalsの保存形式はBMP
![](https://assets.st-note.com/img/1691994961512-MKlNOy7DDM.png)
offsetsの保存形式はEXRのFloat(Half)
![](https://assets.st-note.com/img/1691994876564-Wj7bJYmp6B.png)
export_meshのFBX出力(標準機能のExport)
![](https://assets.st-note.com/img/1692942680343-6sanEWkhX9.png)
Forwardで軸設定
UEで動かす
出力したデータをUE5に読み込む
それぞれ読み込んだデータは設定の変更する箇所があるので、変更点は以下に書いておく
メッシュの設定
Generate Missing Collision:OFF
Remove Degenerates:OFF
Generate Lightmap UVs:OFF
Combine Meshes:ON
Material Import Method:マテリアルを作成
Import Texture:OFF
※ただし、オブジェクトに複数のマテリアルを紐づけている場合は『マテリアル作成』ではなく『Create New Material』を選択する方がよい
![](https://assets.st-note.com/img/1693549984280-g52O6j1NmK.png?width=1200)
![](https://assets.st-note.com/img/1693550036761-lNFQWsXvMJ.png?width=1200)
テクスチャの設定をする
offsetsテクスチャ
ミップ全般設定:No Mip Maps
Texture Group:UI
Never Stream:ON
圧縮設定:HDR
sRGB:OFF
Filter:隣接した項目を選択
![](https://assets.st-note.com/img/1692006652097-lGsIw1jeHY.png?width=1200)
normalsテクスチャ
ミップ全般設定:No Mip Maps
Texture Group:UI
Never Stream:ON
圧縮設定:VectorDisplacementmap
sRGB:OFF
Filter:隣接した項目を選択
![](https://assets.st-note.com/img/1692007006965-hqMYSHxtCZ.png?width=1200)
スケルタルメッシュの設定
縮退を取り除く:OFF
最大精度のUVを使用:ON
距離フィールド解像度スケール:0
調整が終わったら『変更を適用』
![](https://assets.st-note.com/img/1693886503314-iwu1MYY9B8.png?width=1200)
マテリアルの設定
新規マテリアルに作成した2テクスチャを両方読み込み『テクスチャオブジェクトに変換』を行う
![](https://assets.st-note.com/img/1693874513949-ThjvpgRtlW.png?width=1200)
マテリアルの結果ノードを選択>詳細>マテリアル>Num Customized UVs>4
![](https://assets.st-note.com/img/1692007470289-OsCKOlI24Q.png?width=1200)
MS_VertexAnimationTools_MorphTargetsを追加し、以下のように接続
Number of Morph Targets(S)には、Blenderのタイムラインの合計フレーム数を入れる
今回はBlenderで作ったアニメーションが60フレームだったので、60を入れる
アニメーションが短かったり長かったり数値はデータにより変更
![](https://assets.st-note.com/img/1693892992618-W2iv57o31o.png?width=1200)
さらにMorph Animation(S)に対し、TimeとMultiplyをつないだものを接続すると動きのスピード調整もできる
![](https://assets.st-note.com/img/1693893028042-yChvbqCwCx.png?width=1200)
VAT設定は以上で、あとはカラーを入れたければベースカラーやエミッシブカラーを使い色を付ければ完成
![](https://assets.st-note.com/img/1693893046878-fTcwTQrbed.png?width=1200)
作成したマテリアルをスケルタルメッシュに適用し、レベルに配置するとアニメーションがついた状態でオブジェクトが動く
![](https://assets.st-note.com/img/1693893865949-6xNzrwR3G7.png?width=1200)
キャッシュ問題が
VATでアニメーションをする際に
キャッシュ範囲を越えた動きをしてしまうと、影が取り残されたり描画が変に見えることがある
![](https://assets.st-note.com/img/1693895455725-pyRUoh85k4.png?width=1200)
キャッシュ範囲を確認するにはライティングモード>仮想シャドウマップ>キャッシュされたページ
![](https://assets.st-note.com/img/1693895657705-smbVTZu8Ek.png?width=1200)
変更するとキャッシュ範囲がわかるようになる
今回は青の部分がキャッシュが更新されている範囲となっている
逆にそれ以外は影が取り残されるということ
![](https://assets.st-note.com/img/1693895670914-Key9QKDrjK.png?width=1200)
キャッシュ範囲を変更するには、VATオブジェクトを選択し
詳細>レンダリング>Bounds Scale>任意の数値へ変更
これで更新範囲が広がり、影も正しく描画されるようになる
![](https://assets.st-note.com/img/1693895854600-siTeExOp5A.png?width=1200)
![](https://assets.st-note.com/img/1693895936670-mgv1cRjtuX.png?width=1200)
![](https://assets.st-note.com/img/1693895970927-zEQvklhMlu.png?width=1200)
参考
この記事が気に入ったらサポートをしてみませんか?