UE5.4でGetReflectionVectorノードを使ってライントレースを反射させたいです。
「このようなノードを組んでいます」反射面のアクタBP
カスタムイベントのHitResultは、プレイヤーが飛ばしたレイの結果です。
Hitした(写真BPの)アクタのNormalからReflectionを計算してレイを反射させたいのですが、
下の写真のようにアクタの向きを変えても一定の方向にしか反射しません。
ひとつわかっている点として、下の画像のようにHitResultのNormalがワールド原点になぜかあります。
「このようなデバッグノードを組んでいます」
なにか不足しているところや、間違っているるところがありましたらご教授していただきたいです。
私の力不足でとても身勝手な願いですが、宜しくお願いいたします。
T_Sumisaki
(T_Sumisaki)
2
計算が違います
ImpactPointをReflectionVector分移動させたもの(足したもの)を700倍する、のではなく
ImpactPointに、ReflectionVectorを700倍したものを足す、という計算が正しいです
視線の先を計算する際に、なぜForwardVectorに掛け算をするかというと、ForwardVectorがUnitVector(長さ1のVector)であるからです
UnitVectorは方向を示す情報のみを扱う場合に使われます
ReflectionVectorもUnitVectorで出力されるので、それをその方向に必要な分だけ伸ばす、というのが本来必要な計算です
ひとつわかっている点として、下の画像のようにHitResultのNormalがワールド原点になぜかあります。
これも同様に、NormalはUnitVectorです
なので、ワールド座標として扱うと、ほぼワールド原点と変わらない、という結果になります
興味があれば、ぜひベクトル計算について勉強してみてください
お世話になっております。
ご指摘していただいた点を直したら、ちゃんと反射できました!
ベクトルの計算をもっと勉強しないとですね…
この度は本当にありがとうございました!
system
(system)
Closed
4
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.