回転したときのエイムオフセット

どうしても解決出来ない問題があるので質問させていただきます。最近カメラを向けた方向に銃を構えてエイムするエイムオフセットを実装したのですが、地面にいる場合は上手く動作するのですが、壁や天井を歩いたり空中で体を回転させるなど、360度全ての角度でエイムすることがある無重力空間のゲームなのですが、地面以外でエイムオフセットが上手く動作しません、(天井にいる場合だと上にカメラを向けると下に銃を構えてしまうなど)もし解決方法がわかる方がいれば教えて頂きたいです。

現在のノードは以下の通りです

GetActorRotation等で取得できるのはワールド座標系であり
ワールド座標系で計算すると、Quaternionの計算によりPitchが90を超える時点でYawが反転するので、想定される仕様ではうまくいきません

InverseTransformRotationを使って、キャラクターから見た相対座標系(ローカル座標系)に変換し、それを使って計算を行ってください

1 Like

返信ありがとうございます。知識不足で申し訳ないのですが、具体的にどのようにして組み込めばいいのかわからなく、教えていただけると幸いです。

こうなります

すごい!理想の動きになりました!
ありがとうございます。
i love you (あなたは1人の人間の人生を救いました。)