指定したスプラインの線上をキャラクターに動いてほしくて、こちら (UE4 ガンシューティングゲームを作ろう!その2 スプライン - YumaDogidogi’s blog) を見様見真似でやってみました。
動いてはくれるのですが、スタート位置がまったく別の地点になってしまい、スプライン上ではないところを進んでしまいます。カーブなどもスプラインで描いた通りの動きをしくれるのですが、如何せんスタート位置が違うのでスプラインを引いたところとは全く違う別の場所でうろうろしてしまいます。
ドラッグアンドドロップの位置がだめなのか?と思って色々変えてはみましたがそれも違うようで、こちら ([UE4] スプライン上を動く足場の作り方|株式会社ヒストリア) なども見てみてノードを組み直したりしてみましたが、やはりスタート位置が見当違いの場所になってしまいます。
スタート地点を決めるものが何か必要なのでしょうか?知恵を貸していただけると幸いです。
PierPop
(Pier Pop)
2
記載頂いた両方のブログについてはスプライン上の移動方法が殆ど同じであるため、問題となる要因も同じような気がします。スタート位置が想定と違うのであれば、MoveDistanceに予め値が設定されている(初期設定値の分だけ移動量が予め設定されている状態)可能性がありますが、実際に組んで頂いたの処理の流れが分からないため確定ではないです。
お手数ですが、MoveDistanceに初期値が設定されているか確認して頂くか、実際のブループリントの処理をご提示頂けますと幸いです。
スプラインに関しては、基本的にスプラインノードの基点から始まるため、移動していない状態(Tick処理)を行わない状態でズレが生じていないか確認し、どこでズレが発生しているかを順に追っていくと要因が分かると思います。
宜しくお願いします。
PierPop
(Pier Pop)
3
またリンクのURL終端の括弧")"も含まれているため、こちらも再設定頂けますと幸いです。
PierPop
(Pier Pop)
4
初期値のご確認及び処理を提示頂きありがとうございます。
Pure関数化されていない点や、関数内の処理で幾つか気になる点がありましたが、まずは提示頂いたブログの内容を再現したサンプルプロジェクトを作成してみましたので、差異などがないかをご確認頂ければと思います。
ブログの内容は4.7で作成されたものであるため、現行最新の4.16と関数の内容など変わっている点があります。
サンプルプロジェクトでは4.16でその差分を埋めたサンプルです。
動作としてはレベル上に配置した床がスプラインに沿って移動します。
床のStaticMeshに対して新規で作成したActorComponentをアタッチし、
レベル上のスプラインを参照しています。
Spline関連で作成したアセットはSplineフォルダ内にあります。
-sample Link
https://drive.google.com/file/d/0By3smjcszReCQ0hHY1ZLeTZ1c28/view?usp=sharing
回答ありがとうございます。 括弧直しました。すみません。
MoveDistanceは0.0でした。
[UE4] スプライン移動をコンポーネント化する|株式会社ヒストリア を参考に、コンポーネント化してみた際のBPが下記になります。
この状態で、動いてはくれるけど、スタート位置が違う、というような状況になっています。
サンプルありがとうございます!解決しました。
SplineのBPの方向と回転を決めるノードで全てLocalになっていましたのでWorldに直したらちゃんとスタート位置から進んでくれるようになりました。初歩的すぎるミスで自分で気付くべきでした…申し訳ありません。
Splineの方は組めているという謎の自信からなのか画像を上げ忘れてしまい結果サンプルまで作っていただくことになり…お手数おかけしました。サンプルと照らし合わせていくことでやっと気づくことができました。本当にありがとうございました!