[過去ログ]
【ゲームエンジン】Unity初心者質問スレBuild4 (1002レス)
【ゲームエンジン】Unity初心者質問スレBuild4 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
955: 名前は開発中のものです。 [] 2020/07/08(水) 14:41:19 ID:T+Uph+2A こんにちは。質問失礼します。 Unity と SteamVR,HTC Vive を使って、VR内でハンドルを回すと物体が移動するようなスクリプトを作ろうとしています。 このスクリプトは、物体 Box にアタッチして使おうとしています。以下、スクリプトの概要を書きます。 最初に、Box の初期位置を Start 内でPos = this.transform.localPosition; によって取得します。次に、 Update 内でハンドルのx軸周りの角度を Angle = Handle.transform.localEulerAngles.x; によって取得し、その角度に応じて Box がz軸方向に動くように this.transform.localPosition = new vector3(Pos.x, Pos.y, Pos.z + Angle); としています。(変数の宣言などは省略しています) このスクリプトによって、ハンドルを回していくと Box がz軸方向に動いていき、ハンドルが1周したところで Angle の値が0になり Box が元の位置に戻る、という挙動を予想していたのですが、どうにも違うのです。 実際のハンドルの角度(VR映像で提示されているもの)と Angle が取得している角度が以下のような関係になっているようです。(Debug.Log で確認しました) ハンドル:0 ~ 90 ~ 180 ~ 270 ~ 360 (0) Angle :0 ~ 90 ~ 0 ~ -90 ~ 0 なぜこうなっているのか原因が分からず困っています。 どなたか心当たりのある方はいらっしゃいませんか。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/955
956: 名前は開発中のものです。 [sage] 2020/07/08(水) 15:17:16 ID:bATir3PU >>955 アングルは角度表示は、取得するたびに変わる可能性があります。 それは、インスペクタの表示はあくまで便宜上の3軸角度で、ほんとうはクォータにオンという型で管理されています。 なので、角度の極値の範囲内ならある程度想定通り動きますが、極値を超えるとあらぬ動きをすることが少なくありません。 クォータニオンを勉強するか、騙し騙しですがアングル角を持っておく方法で対応します。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/956
958: 名前は開発中のものです。 [sage] 2020/07/08(水) 22:35:19 ID:nvaEEUzS >>955 ハンドルの値は取得できるで良い? angleの所を1-cos(ハンドル)でどう? ハンドル:1-cos(ハンドル) 000:0 090:1 180:2 270:1 360:0 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/958
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.779s*