こんにちわ
題目にもあるようにプレイヤーに特定の注視点(そこを向く)を付与し、それを追従する(follow)機能を実装する方法について悩んでおります。
私の場合プレイヤーは空プロジェクトをプレイした際の無重力飛行カメラです。
特定のカメラである場合は、
↑のようにカメラをターゲットに入れてあげれば、そちら(この場合だとレベル上のキューブ)を向いてくれる(注視点を与える)のは、理解できました。
私の場合はプレイヤー(無重力飛行カメラ)がどこを向いていても、そこへ向き直して欲しいと考えております。
色々調べて↑(F10を押したらプレイヤーが球の方へ向き直してほしい)のように組んではみたのですが、ピクリとも反応しませんでした。
仮にここまで実装できたとしても注視点(球)を向くだけで、球に上下運動するアニメーションが付与されていた場合、球が動き出すスタートの位置にカメラが向くだけで、球の上下運動を追従(follow)はしてくれませんでした。
(固定のカメラで注視点を実装した時に確認しました)
(注視点があるのでアニメーション再生前はカメラの真ん中に映ってくれている)
(しかしfollowはしてくれないので、上下運動のアニメーションがついていると見切れてしまう)
分からない点は、
・固定カメラではなく「プレイヤー(無重力飛行カメラ)に注視点を与える方法
・「プレイヤー(無重力飛行カメラ)」にアニメーションが付いているものを追従(follow)させる方法
の2つです。
アニメーションではなく、Axis Events等(Wキーを押したら前へ~みたいな直接の移動)で動かした場合はfollowしてくれるのですが、BPにUse Animation Asset で割り当てているアニメーションは追従してくれません。
どちらに関することでも構わないので、アイデアやノードの組み方で思いつく事がある方はご教授頂けると幸いです。
宜しくお願い致します。
unaunagi
(unaunagi)
2
上下運動については、おそらくアクター自体は動いてなくて、
キューブのコンポーネントだけが動いてる状態なんだと思います。
なので、移動をアクターごとにするか、コンポーネントのgetWorldLocationを向ければ解決します。
問題はプレイヤーの向き変更の方なんですが、
これはちょっと調べてみた感じでは原因がわかりませんでした。
多分DefaultPawnが何かしら特殊な処理をしてるんじゃないかと。
やり方は合ってると思うので、他のキャラクターとかだったら大丈夫なはずなんですが。
ご回答有難うございます。
返答を頂いてから色々試したのですが解決できませんでした。
「コンポーネントのgetWorldLocationを向ければ解決します。」の部分なのですが↓の
のような組み方で合っていますでしょうか?
この方法で試したのですがアニメーションの追従は作動しませんでした ><
どうしてもMayaで制作したアニメーションを適用しなければならないので、アニメーションの再生はBP化したジオメトリがUse Animation Assetのアニメーションモードで指定のアニメーションアセットを読み込んで動く…という流れは変更できないのできません。
このアニメーションアセットを読み込んでのアニメーションの再生の場合でも、「移動をアクターごと」にすることはできますでしょうか?
unaunagi
(unaunagi)
4
Mayaで作ったアニメーションでしたか。
アニメーションの再生だと、アクターもコンポーネントも元の位置から動いてないので、別の方法が必要です
アニメーションをするということは、対象はスケルタルメッシュだと思うのですが、
視野の中心になる場所に、ソケットを追加しておく方法が考えられます。
アニメに合わせてソケットが動くはずなので、位置を getSocketLocation で調べて、その場所を向かせます。
アニメーションの動きを元にして、アクターごと動くようする、ルートモーションという方法もあります。
これならMayaで作ったアニメでもいけると思うんですが、まだ使いこなせてないので、詳細はわからないです。
これでアクター自体が動かせれば、普通に getActorLocation の方向を向かせればいいです。
ジョイントにソケットを付けてgetSocketLocationから位置取りをする方法にて、アニメーションの追従が出来ました!
本当に助かりました、有難うございます m( … )m