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

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

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

ARCoreは、グーグル社が提供しているAndroid向けのAR(拡張現実)フレームワークです。スマホ内蔵のカメラとIMUセンサー(慣性計測装置)を使って、モーショントラッキングや水平面の検出、光源の推測を行い、ARを実現します。

Photon Cloud

Photon Cloudは、オンラインゲーム開発向けネットワークエンジン。リアルタイムマルチプレイ通信のプラットフォームであるPhotonの一つです。ネットワーク通信によるオンラインゲームを開発・運営するために必要なツールがサーバー環境に構築されています。

Oculus Integration

Oculus Integrationは、OculusのVRコンテンツの開発をサポートする統合パッケージ。VRに必要な機能、コンポーネント、スクリプト、プラグインがパッケージされています。UnityでのOculusアプリ開発の処理を簡単に行うことができ、機能も拡張されます。

Vuforia

Vuforiaは、スマートフォンやタブレット、スマートウォッチなどのウェアラブルデバイスにも対応したAR開発向けライブラリです。Unityに標準でサポートされており、活用できるサンプルも豊富。マーカーやターゲットを認識するトラッキングを得意とします。

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

受付中

Unity,PhotonViewでの同期

Bump_430
Bump_430

総合スコア1

ARCore

ARCoreは、グーグル社が提供しているAndroid向けのAR(拡張現実)フレームワークです。スマホ内蔵のカメラとIMUセンサー(慣性計測装置)を使って、モーショントラッキングや水平面の検出、光源の推測を行い、ARを実現します。

Photon Cloud

Photon Cloudは、オンラインゲーム開発向けネットワークエンジン。リアルタイムマルチプレイ通信のプラットフォームであるPhotonの一つです。ネットワーク通信によるオンラインゲームを開発・運営するために必要なツールがサーバー環境に構築されています。

Oculus Integration

Oculus Integrationは、OculusのVRコンテンツの開発をサポートする統合パッケージ。VRに必要な機能、コンポーネント、スクリプト、プラグインがパッケージされています。UnityでのOculusアプリ開発の処理を簡単に行うことができ、機能も拡張されます。

Vuforia

Vuforiaは、スマートフォンやタブレット、スマートウォッチなどのウェアラブルデバイスにも対応したAR開発向けライブラリです。Unityに標準でサポートされており、活用できるサンプルも豊富。マーカーやターゲットを認識するトラッキングを得意とします。

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

0回答

0リアクション

0クリップ

809閲覧

投稿2021/06/05 15:43

前提・実現したいこと

 以前質問した内容が、Unity Photon スマートフォンの画面が取られるというもので、現在UnityでVRモデルをスマートフォン(Android)を使いARで表示するものを作っています。スマートフォン側の画面が取られてしまうという問題は、あとからカメラを生成することで解決しました。
無事、ARでVRモデルを表示することはできました。最終定期に実現したいことは、VRモデルの動きをそのままAR側で確認することです。

発生している問題・エラーメッセージ

 現在、Oculus Integrationを使用しています。prefabの中ではCenterEyeAnchorというカメラを無効化して起き、Photonに接続した後にカメラを有効化するという流れを採用しています。

GameObject VRAvatar = PhotonNetwork.Instantiate(vrBody.name, new Vector3(0.0f, 0.0f, 0.0f), transform.rotation); //アバターを生成
Debug.Log("avatar:" + VRAvatar);
VRAvatar.transform.Find("OVRCameraRig/TrackingSpace/CenterEyeAnchor").gameObject.SetActive(true); //CenterEyeAnchorを有効化
VRAvatar.transform.parent = target.transform; //Vuforiaのマーカーの子に

ここで問題なのが、腕の動きは再現されているが、頭の動きは再現されていないということです。OqulusQuest2のコントローラーやHMDにはPhotonViewをアタッチし監視しており、FinalIK(VRIK)を利用しモデルを動かしているのですが、何故か腕の動きは再現されても頭が一切動きません。
おそらくVR側でのみCenterEyeAnchorを有効にした結果、AR(スマートフォン)側では当然有効化されておらず、PhotonViewが機能していないと考えています。

どのようにすれば、CenterEyeAnchorの動きをPhotnViewで伝え、頭の動きを再現しつつ、画面は相手の画面を映さないというものを実現できるでしょうか。

該当のソースコード

using UnityEngine;
using Photon.Realtime;
using Photon.Pun;
using UnityEngine.SceneManagement;
using System.Collections;

//ARとVRの二つのモードを処理する

public class XRCastPlatform : MonoBehaviourPunCallbacks
{
[SerializeField] GameObject arRig;
[SerializeField] GameObject arSession;
//[SerializeField] GameObject cameraMesh;

[SerializeField] GameObject arBody; [SerializeField] GameObject vrBody; [SerializeField] GameObject target; //ビルド前にplatformを選択する enum Mode { VR, AR }; [Tooltip("Choose the mode before building, also you should change the XR Plugin Manager settings")] [SerializeField] Mode mode; public static XRCastPlatform instance; void Awake() { //もし接続できなければロビーに戻る //If not connected go to lobby to connect if (!PhotonNetwork.IsConnected) { SceneManager.LoadScene(0); } instance = this; } // Start is called before the first frame update void Start() { if (mode == Mode.VR) { CreateVRBody(); } else if (mode == Mode.AR) { Debug.Log("AR側を生成します"); CreateARBody(); } } void CreateVRBody() { GameObject VRAvatar = PhotonNetwork.Instantiate(vrBody.name, new Vector3(0.0f, 0.0f, 0.0f), transform.rotation); Debug.Log("avatar:" + VRAvatar); VRAvatar.transform.Find("OVRCameraRig/TrackingSpace/CenterEyeAnchor").gameObject.SetActive(true); VRAvatar.transform.parent = target.transform; } void CreateARBody() { GameObject ARAvatar = PhotonNetwork.Instantiate(arBody.name, transform.position, transform.rotation); ARAvatar.transform.Find("ARCamera").gameObject.SetActive(true); }

補足情報(FW/ツールのバージョンなど)

Unity 2020.3.10f1
OculusQuest2
Android(SO-01K)

ARcore
Vuforia

↓VRモデルのprefubです
VRモデルのprefub

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

ARCore

ARCoreは、グーグル社が提供しているAndroid向けのAR(拡張現実)フレームワークです。スマホ内蔵のカメラとIMUセンサー(慣性計測装置)を使って、モーショントラッキングや水平面の検出、光源の推測を行い、ARを実現します。

Photon Cloud

Photon Cloudは、オンラインゲーム開発向けネットワークエンジン。リアルタイムマルチプレイ通信のプラットフォームであるPhotonの一つです。ネットワーク通信によるオンラインゲームを開発・運営するために必要なツールがサーバー環境に構築されています。

Oculus Integration

Oculus Integrationは、OculusのVRコンテンツの開発をサポートする統合パッケージ。VRに必要な機能、コンポーネント、スクリプト、プラグインがパッケージされています。UnityでのOculusアプリ開発の処理を簡単に行うことができ、機能も拡張されます。

Vuforia

Vuforiaは、スマートフォンやタブレット、スマートウォッチなどのウェアラブルデバイスにも対応したAR開発向けライブラリです。Unityに標準でサポートされており、活用できるサンプルも豊富。マーカーやターゲットを認識するトラッキングを得意とします。

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。