2016-08-29 7 views
1

私は、ゲームの開始時にファイルから読み込まれているアクターの動きのデータを持っています。読み込まれるデータには、アクターが次に移動するべきベクトル位置が含まれます。私は現在、アクタをPositionからPositionへ移動させても問題ありません。ActorにアタッチされたSkeletal Meshにアニメーションを追加するまで、Unreal 4 C++ Actor Movement

私の問題:アイドル、ウォーク、ジョグ、ランニングを再生するアニメーションをどのように動かすべきかを知るにはどうすればよいですか?それは現在、私は位置をlerpingている速度を持っていない:

SetActorLocation(FMath :: Lerp(GetActorLocation()、newPos、0.01)));

距離の移動と速度に基づいて適切なアニメーションを設定する方法についてのご意見はありますか?

アクターの動きをキャラクターに移動する必要がありますので、AddMovementInputを使用して速度を取得することができます。次に、私がそのルートを降りると、私は言う:

この文字を自分の現在の位置からXの次の位置に移動させ、キャラクタにアニメーション選択に使用する正しい速度を与えます。

答えて

0

2次元のベクトル長(GetWorldLocation)の差を正規化し、X変数としてabs(浮動小数点)の結果を使用して、アニメーションBPでアイドル、ウォーク、ジョグを実行するための1Dブレンド空間に入れることはできますか?また、「受け入れ半径」を考慮してください。そうしないと、場所に到達するとすぐにそれを取得してすぐに回転し続けることになります。

ベクターからベクターに移動する理由がわかりません。私は個人的に(MoveToActorまたはMoveToLocation)を使用したでしょう:

AMyPawn->MoveToActor(AMyActor, 90.f,true,true,false,0,true); 

そんなにクリーナー!また、BT/BBを使用してMoveToLocation。

+0

お返事ありがとうございます! 私はいくつかの質問があります: 読み込み中のデータによって制御されるアクタのベースとして使用するクラスはどれですか?俳優/キャラクター/ポーン/ - そしてなぜ? これを移動するにはどうすればよいでしょうか? Lerpの場所?へ引っ越す? –

+0

Def Pawn/Character。実際にはAPawn(Pawn.h + cpp)から継承しているACharacter(Character.h + cpp)を継承するEnemyCharacter(AEnemyCharacter.h + cpp)クラスがあります。キャラクターはすでに動いているロジックを組み込んでいます!彼らは、プレイヤーまたはAIと世界との間のあらゆる物理的な相互作用を担当しています。キャラクターの動きを直接伝えることができ、モーターに電源を供給することができます。 MoveToLocation、MoveToまたはMove Directlyを使用できます。これらはすべて行動ツリーにあります。あなたはまた、異なる敵のターゲットとBlackboardを設定することができます! – ApolloSoftware

関連する問題