こちらの記事[[UE4] スプライン移動するキャラクターを作る|株式会社ヒストリア]を参考にループしたスプライン上を動くアセットを作成しました。移動方向はスイッチにて切り替えができるようにしてありスイッチの状態に応じて正負の方向に移動できます。しかし記事の中にある正数の方向には何周でもループしたスプライン上を移動できるのですが、負数の方向には、正数方向に移動した分だけしか戻ることができず、スタート地点より負数の方向に進めません。負数の方向でスタートした時にはアセットはスタート地点で止まったままになります。負数の方向にも正数方向に移動しなくてもスタート地点を超えてループ移動できるようにするにはどこを改造すればいいのでしょうか?色々試してみたのですが、全く効果がなく困っています。ご教授いただけないでしょうか?
アセット側のBPです。負数方向の移動用に上段に―1を掛ける計算を追加してます。
スプラインのほうは記事通りブランチで逆転するようにしてます
jgoamakf
(HIRAMATSU, Yoshifumi)
2
紹介されている記事の前回の記事の、そのまた前回の記事 [UE4] スプライン上を動く足場の作り方|株式会社ヒストリア でGetCurrentLocation 関数というのを作っています。
この関数で使っているSplineの Get Location at Distance Along Spline 関数は、Distanceが負のときは始点を返します。
そこで、例えば Spline の長さが100で GetCurrentLocation への入力が -30 の時、LocalLengthを70にするように修正できればよいのではないかと思います。
ご返答ありがとうございます。やはり記載いただいている個所を変更できればいいんですよね、、。多分ここじゃないかとあたりはついていたのですが、、。問題解決できないんですよね。
jgoamakf
(HIRAMATSU, Yoshifumi)
4
こんな感じでどうでしょう?横に長いので2つのスクリーンショットに分けています
ヒストリア社のブログに書いてあったブループリントは手元で動かしてないので
想定通り動くかは良く分からないのですが、私の前の投稿の「-30の時は70を出力」は
上手く行ってる気がするんですよね
ありがとうございます。組み込んでみたところマイナス方向にも行けるようになりました。値が負の時にLengthにSPLINEの長さを足すっていう部分が思いつきませんでした。マイナス方向なのでついつい引き算で値を作れないか色々やってしまっていました。助かりました。