お世話になります。
CharacterのMesh(継承)に設定するスケルタルメッシュを、動的にスケルタルメッシュコンポーネントで切り替えたいです。
スケルタルメッシュを別途作成し、それを使おうとすると、モンタージュでのアニメーションが再生されず、継承の方で設定をすると再生されます。
そこで、子階層にコリジョンを持ったスケルタルメッシュコンポーネントをBPで動的にMesh(継承)に当てはめたいのですが、そのようなノードはありますでしょうか?
ご教授頂けると幸いです。
やりたいこととしては、選択されたキャラクターに応じて、meshとコリジョンを動的にBPで切り替えたいです。
コリジョンがソケットに紐付いているため、コンポーネントの差し替えで考えていましたが、他の方法でも実現できそうであればご教授願います。
まず前提として、SkeletonAssetが同一のものでなければ同じAnimBlueprintは使えない、というのを認識してください。
Montageも同様です。
各AnimationAssetがどのSkeletonを対象にしているのかを調べてください。
その上で、SkeletalMeshを変更する場合は Set SkeletalMesh
ノードを使って変更してください。
SkeletonAssetが違う場合はAnimBPもそれに対応するものにしなければならないので、そのノードの直後に Set Anim Instance Class
でAnimBPを指定し直す必要があります。
もちろんAnimBPに合わせて再生するAnimMontageも変更する必要がありますので注意してください
その場合は個別にCollisionComponentを各SocketにAttachし直す必要があります。
自動でできるものではありません。
https://api.unrealengine.com/INT/BlueprintAPI/Utilities/Transformation/AttachToComponent/index.html
ご返信いただき、ありがとうございます。
ご提示いただいたやり方だと、
コリジョンがソケットに紐付いているため
こちらの対策ができず、困っております。
具体的には、対象となるモデルのボーンのあるソケットにコリジョンを紐づけ、その状態を動的に差し替えたいです。
そのため、コンポーネントでの差し替え方法等を模索しています。
ご返信いただき、ありがとうございます。
そのようなノードがあるのですね!
こちらで少し試してみたいと思います。
ありがとうございます。
ご提示頂いたやり方で差し替えを行ったところ、アニメBPに設定した歩行アニメーションは再生されるのですが、モンタージュの方はやはり再生されませんでした。
通常通り、エディタからmeshに設定した場合は再生されるのですが、こちらについてなにか心当たり等ありますでしょうか??
チェックポイントは2点です
- MontageをブレンドするためのスロットはAnimBPに設定されていますか?(もともと再生されているのか)
- Montageに使用しているAnimationは各Skeletonに対応したものでしょうか?(Skeletonが違う場合は再生されない可能性がある)
ご返信いただき、ありがとうございます。
お答えいただいた箇所を元に調査したところ、スケルトンに対応していないものがありました。
ご教授いただき、ありがとうございました!