質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

3回答

6160閲覧

HMDって首動かしていろんな空間見るものだけど画面固定したい

ehuronkon35

総合スコア33

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2018/08/06 03:18

編集2018/08/10 03:36

FOVE0向けのプログラムをUnityを使って作成しています。

その際にカメラを設定しておき、そこからHMDに接続してVR空間に映し出すといった感じだと思います。

そのなかでいろんな空間を見ることができるのがVR、HMDの面白さだと思うのですが、自分が作ろうとしているプログラムは画面を固定したいのです。なので首を動かしても同じ映像が流れるようなプログラムを作りたい!!
イメージ説明
FOVE0
このような画面をHMDで首を動かしてもこの状態になるようにしたいです!
現在のカメラはFOVE向けの仕様になっています。
イメージ説明
2Dで作れば簡単にできると思うのですが、それを3Dで行いたいのです。
是非教えていただければと思います。
CameraControllerの中身は
using UnityEngine;
using UnityEngine.VR;
using System.Collections;

public class CameraController : MonoBehaviour
{

void Update() { // TODO: ここで固定したい位置があれば指定しておく Vector3 basePos = Vector3.zero; Quaternion baseRot = Quaternion.identity; // VR.InputTracking から hmd の位置を取得 Vector3 trackingPos = UnityEngine.XR.InputTracking.GetLocalPosition(UnityEngine.XR.XRNode.CenterEye); Quaternion trackingRot = UnityEngine.XR.InputTracking.GetLocalRotation(UnityEngine.XR.XRNode.CenterEye); //カメラの角度と反対方向へ傾ける //transform.rotation = transform.rotation * Quaternion.Inverse( //ローカル回転をワールド回転にしている //transform.rotation * UnityEngine.XR.InputTracking.GetLocalRotation(UnityEngine.XR.XRNode.CenterEye) //); //transform.rotation = Quaternion.identity; // CameraController 自体のrotationを位置に反映 //trackingPos = transform.rotation * trackingPos; transform.localRotation = baseRot * trackingRot; // 固定したい位置から hmd の位置を // 差し引いて実質 hmd の移動を無効化する transform.localPosition = basePos - trackingPos; //transform.localPosition = Vector3.zero; //transform.localRotation = Quaternion.identity; //transform.localScale = Vector3.one; }

}
これです。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

シーンに表示される全オブジェクトをカメラの子に設定すればいいんじゃないでしょうか。
そうすればカメラを回せば同じだけオブジェクトも回るので結果、視点の向きを変えても目の前に見えるものが変わらないと思います。

眼の前に表示させる内容によっては、重力方向や照明の向きもリアルタイムに変更してやらないと変な挙動になると思いますが。

投稿2018/08/06 03:50

編集2018/08/06 03:51
ku__ra__ge

総合スコア4524

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ehuronkon35

2018/08/07 05:28

子オブジェクトに設定した際に何かスクリプトを埋め込む必要はありますか?
ku__ra__ge

2018/08/07 07:18

重力方向や照明の向きを変化させないなら必要ないと思います。
ehuronkon35

2018/08/10 03:45

子オブジェクトに設定しても変化はありませんでした。
guest

0

ちょっと質問の意図が明確じゃないので、どうアドバイスしていいか分からないのですが、そもそもやりたいこと(達成したこと)ってなんでしょうか?

HMDに3D映像を出したい、というのはわかったのですが、技術的な意図ではなく、体験としてどういうことを提供したいか、を先に説明するともっと適切なアドバイスが得られると思います。

(VR映画館みたいな感じで見せるのもまた違うんですかね?)

投稿2018/08/06 23:05

edo_m18

総合スコア2283

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ehuronkon35

2018/08/07 05:30

映画の3Dのような感覚です。 首を動かしても映像がそのまま流れるようなプログラムにしたいです。 Unity初心者なのでいまいち説明が出来ずすいません。 よろしくお願いします。
guest

0

それってVR(ジャイロ)じゃなくて単なる3Dでは?

投稿2018/08/06 03:22

yambejp

総合スコア114819

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ehuronkon35

2018/08/06 03:26

Unityで作成した映像をHMDに映し出したいんです。 その映像のことをVRっていうと思ってました。 そうです。単なる3Dの映像です。 それするためにはどうすればいいのかわからないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問