x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

[Closed] GetRootMotionTransform()の値について

お世話になっております。

現在、AActorを継承したクラスにてCharacterMovementComponentを用いずキャラクターの制御を行っており、 GetRootMotionTransform()でRootMotionの値を取得し、利用しようと考えております。

以下のような手順です。

 1.アクターに対して回転と移動を行うアニメーションシーケンスを再生。

  ※再生されるアニメーションシーケンスのRootBoneEnableは有効状態

 2.対象となるアクターのTickにて、SkeletalMeshコンポーネントのConsumeRootMotion()を使用し、

  パラメーター(FRootMotionMovementParams)を取得。

 3.GetRootMotionTransform()にてTransform値を取得。

毎フレーム、GetRootMotionTransform()の値を取得しておりますが、

アニメーションシーケンス再生後の特定のフレーム(1~3F目)での移動値、回転値の各成分が0となっており、

正しくTransform値が取得できていないようです。(それ以降のタイミングでは取得できております。)

この挙動に関して何かしら解決方法、 もしくは別の取得方法などあればご教示いただければ幸いです。

お手数をお掛け致しますが、どうぞ宜しく御願い致します。

Product Version: Not Selected
Tags:
more ▼

asked Aug 09 '18 at 03:19 PM in Japanese

avatar image

Answers.Archive STAFF
2k 212 318 698

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

The question has been closed Aug 09 '18 at 03:32 PM by Nori Shinoyama for the following reason:

The question is answered, right answer was accepted


1 answer: sort voted first

お世話になっております。

恐縮ですが、問題の切り分けのために以下の点に関して確認させてください。

・別途RootMortionとUROを組み合わせたご質問をいただいておりますが、
 こちらUROを入れた状態で発生している状況でしょうか?

CharacterMovementComponentでの確認になりますが、
こちらでは開始時点からGetRootMotionTransformの値は返ってきているようでした。
GetRootMotionTransformが初期値になってしまっているという状況であれば、
ConsumeRootMotion()がうまく動いていない可能性があります。

こちらの値の取得に関しましては以下の処理が参考になるかと思いますので、
現在実装していただいているものと比較して確認していただければと思います。
.\release-4.19\Engine\Source\Runtime\Engine\Private\Components\CharacterMovementComponent.cpp
alt text

お手数おかけしますが、ご確認のほどよろしくお願いいたします。

more ▼

answered Aug 09 '18 at 03:19 PM

avatar image

Answers.Archive STAFF
2k 212 318 698

avatar image Answers.Archive STAFF Aug 09 '18 at 03:19 PM

ご確認、ありがとうございます。

>UROの状態

こちらに関しましてはUROはOFFの状態で検証しておりました。

>CharacterMovementComponent

添付いただきましたソースをもとに処理を見直したところ、 こちら側の処理のTickPoseとGetRootMotionTransformのタイミングによる可能性が高いのではないかということが分かりました。

参考となる処理のご提示ありがとうございました。

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question