fc2ブログ

凛(kagring)のUE5/UE4とゲーム制作と雑記ブログ

2016 年から UE4 / 2021年から UE5 を触り始めました。勉強したもののメモ用ブログです。ゲーム制作に関するメモや雑記とか色々あります。C++ での Qt、Unity もほんの少しあります。

2022年10月 | ARCHIVE-SELECT | 2022年12月

| PAGE-SELECT |

≫ EDIT

UE5 外部からアニメーションブループリント(Animation Blueprints)のステートマシン(State Machines)のステート(State)遷移時の条件を設定する(Request Transition Event、Query and Mark Transition Event、Transition Rules)

外部からアニメーションブループリント(Animation Blueprints)のステートマシン(Request Transition Event、Query and Mark Transition Event、State Machines)のステート(State)遷移時の条件を設定する方法です。

※UE5.1 からの機能なので注意して下さい。

こちらのツイートがあったので試してみました。
おそらくそのうちスライドなどが公開されると思いますので詳細はそちらに期待ということで!

公式ドキュメントはこちら。

・アニメーションブループリント(Animation Blueprints)
https://docs.unrealengine.com/5.0/ja/animation-blueprints-in-unreal-engine/

・ステートマシン(State Machines)
https://docs.unrealengine.com/5.0/ja/state-machines-in-unreal-engine/

外部からアニメーションブループリントのステートの遷移条件を設定するには
「Request Transition Event」ノードと「Query and Mark Transition Event」ノードを使うようです。

まずは外部から「Request Transition Event」ノードを使って遷移条件を設定します。
外部から遷移ルール操作001
「Target」には「Anim Instance」を設定します。
「Event Name」にはステートの遷移ルールで参照したい名前を設定します。
「Request Timeout」は…リクエストが受理される時間でしょうか(要確認)
「Queue Mode」と「Overwrite Mode」についてはちょっとわからないので調べてみようと思います。

とりあえず「Event Name」と「Request Timeout」を設定するだけでも動いたので試してみました。
こんな感じにノードを作ってみました。
外部から遷移ルール操作000
上記はレベルBPで作成したもので、キャラクターのスケルタルメッシュが持つ「AnimBP」を使って
「Request Transition Event」」ノードを実行
しています。

元となる「AnimBP」にはジャンプをさせるための「JumpStart」というステートがあるのでその名前に合わせています。

次に、この名前を使ってステートを遷移するための条件を設定します。
条件を設定するにはステートの遷移ルールで「Query and Mark Transition Event」ノードを参照します。
外部から遷移ルール操作003
「Event Name」には遷移条件として使いたい名前を設定します。
前述の「Request Transition Event」を使った名前が一致すると「Return Value」が「true」になるようです。

というわけで外部からの処理でジャンプするように条件を設定してみました。
外部から遷移ルール操作002
元からある変数を使った条件に「Request Transition Event」を追加してみました。

実行してみた結果はこんな感じになりました。

キーボードの「A」を押すごとにキャラクターがジャンプしているので上手くいっているようです。

これでいちいち専用の変数を用意したりしなくてよくなるのはすごく良いですね!

| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑

| PAGE-SELECT |