スクリーン座標からワールド座標の変換についてお聞きします。
指定のスクリーン座標に、カメラから一定距離離れた位置にアクタを表示したくて
DeprojectScreenToWorldを使って処理を作ったのですが、
座標の値が大きくない環境(X,Y,Zが0~10000程度)だと
問題なく同じスクリーン座標に表示されますが、100000以上の大きい値の場合、
カメラの角度を変えた時に、表示位置が指定したスクリーン座標から時々ずれてしまいます。
座標の値が大きくなるほどずれが大きくなるようです。
以下の手順で実装すれば同じ事象を確認出来ます。
1.UE4を起動し、BlueprintのBlankプロジェクトを作成。
2.ParentClassがActorのBlueprintを作成し、名前を「DisplayActor」にする。
3.DisplayActorのBlueprintを開いて、DefaultSceneRoot配下にCubeをComponentとして追加する。
4.Cubeのスケールをx,y,z全て0.4にする。(見やすさのため)
5.ClassDefaultsのTickGroupをPostUpdateWorkにする。
6.EventGraphを画像の通りに実装する。
7.新しいレベルを作成し、DisplayActorを何処でもいいので配置する。
8.PlayerStartのLocationのXを「1000000」にする。(大きい方がズレを確認しやすいため)
9.カメラの角度をマウスなどで動かした時に、アクタの表示位置が指定したスクリーン位置から時々ずれてしまうのが確認出来ます。
どのようにすれば座標の値が大きい場合もぶれなく表示出来ますでしょうか。 以上よろしくお願い致します。