私は車を操縦するために回転式リモコン(回転のみを知っている)を使用するゲームを作成しています。私はQuaternion
(これはコントローラの出力です)をステアリングホイールの回転に変換することに問題があります。これは私が試したすべてのものに最も近い作業です(transform.localRotationはステアリングホイールの回転です):クォータニオンの回転をハンドルの動きに変換するにはどうすればいいですか?
void Update() {
transform.localRotation = GvrController.Orientation;
transform.localRotation = new Quaternion(0.0f, 0.0f, transform.localRotation.z, transform.localRotation.w);
}
これは明らかに良い解決策ではなく、うまく機能しません。私がやろうとしていることを非常に簡単に視覚化しています: コントローラのデフォルトの向きは、写真のように前方を向いています。
基本的には、回転の原因となる軸以外の軸(画像上の軸1)をすべてスキップしてステアリングホイールに適用する方法が問題です。私はこれをどうやってできるのか知っていますか?
EDIT: 適切な視覚化がなければ問題を説明することは難しいので、コントローラーの写真を撮って軸を描きました。
これは、コントローラのデフォルトの方向です:
そして、これは、それがそれにマーク軸で開催されています方法です:
これはおそらく、入力と予想される出力を与えて、コントローラがあなたに与える回転をよりよく理解するのに役立ちます。 – FINDarkside
これはデバッグが面倒です。おおよその予想される出力角度でテストを記録し、MatlabやPython Spyderのようなプログラミング環境で正しい数式を "リバースエンジニアリング"し、希望の言語/フレームワークに移植することをお勧めします。 – NikoNyrh
オイラー変換を使って録音してもらえますか? –