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

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

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

ARKitは、iPhone/iPad向けのARアプリ用フレームワーク。iOS11以降に標準搭載されています。これを用いたARアプリは、特殊なデバイスがなくてもiPhone/iPadの単眼カメラを使用して動作することが可能です。

ARCore

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

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Unity

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

Q&A

解決済

1回答

1985閲覧

ARFoundation +image tracking 外部にある画像を認識したい

pofinpouty

総合スコア20

ARKit

ARKitは、iPhone/iPad向けのARアプリ用フレームワーク。iOS11以降に標準搭載されています。これを用いたARアプリは、特殊なデバイスがなくてもiPhone/iPadの単眼カメラを使用して動作することが可能です。

ARCore

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

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Unity

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

0グッド

0クリップ

投稿2021/06/28 23:33

編集2021/07/12 02:30

ARFoundation +ARKitでimage trackingのを試しています。
image trackingサンプル
サンプルだとこのように「Reference image library」に直接画像を設定することによりマーカー認識できるようになると思うのですが、これを外部から設定できるようにしたいです。
画像読み込み方法の参考
こちらを参考にまずはResources.Loadの方法で画像を読み込めるようにAsset > Rerources > sample(画像)としました。
Reference image libraryのスクリプトを直接編集することができないため、実行時に参照ライブラリに画像を追加できるという「Dynamic Library」のスクリプトに記述しました。
以下コードです。

void Start(){ ARTrackedImageManager mARTrackedImageManager = gameObject.GetComponent<ARTrackedImageManager>(); //MutableRuntimeReferenceImageLibrary myRuntimeReferenceImageLibrary = mARTrackedImageManager.CreateRuntimeLibrary() as MutableRuntimeReferenceImageLibrary; var texture = Resources.Load("sample") as Texture2D; Debug.Log("Texture name:"+ texture.name); if (mARTrackedImageManager.referenceLibrary is MutableRuntimeReferenceImageLibrary myRuntimeReferenceImageLibrary) { myRuntimeReferenceImageLibrary.ScheduleAddImageWithValidationJob(texture, "sample", 0.5f); if(myRuntimeReferenceImageLibrary != null) { Debug.Log("myRuntimeReferenceImageLibrary:" + myRuntimeReferenceImageLibrary.count); Debug.Log("supportedTextureFormatCount:" + myRuntimeReferenceImageLibrary.supportedTextureFormatCount); mARTrackedImageManager.referenceLibrary = myRuntimeReferenceImageLibrary; } Debug.Log("入らない"); //mARTrackedImageManager.maxNumberOfMovingImages = 1; //mARTrackedImageManager.trackedImagePrefab = m_TrackedImagePrefab; mARTrackedImageManager.enabled = true; } }

エラーは起きていないのですが、「myRuntimeReferenceImageLibrary.count」が0のままで、
Resourcesフォルダに格納したsample画像が読み込まれておりません…
texture.nameは取れているので読み込みできていると思っていたのですが、どのようにしたら実現できるのでしょうか?

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

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

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

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

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

tsuki01

2021/06/30 11:47 編集

一つ確実にお答えできるのは、Mac上のファイルは参照できません。 ARKitはiOS端末上で動作するので、当然実行時にMac上のファイルが参照できないです。 私自身「reference image library」の仕組みなどを理解していないため、これ以上の回答が(他の解決策が)出ない状態となります。。
pofinpouty

2021/06/30 13:57

回答ありがとうございます! なるほど…Unity自体では外部フォルダの参照をしている記事があったのでできそうだったのですが無理なんですね… ご存知でしたらお聞きしたいのですが、実機テストしているiOSのアプリから参照するということも難しいでしょうか? ゆくゆくはアプリからwebサーバーにアクセスして画像認識したいと考えていたのですが…
tsuki01

2021/06/30 14:17

そうですね、Macアプリなら可能かもしれませんが、iOSアプリとなるとMac上の参照のしようがないので出来ないです。 やりたいこととしては、動的に(アプリ実行中に)認識対象のマーカーを変更したいということでしょうか? そうなると、質問者さんが追記しているリンク内の機能を使えば可能かもしれません。 ※リンク先の「Using reference image libraries with asset bundles」の部分にAssetBundleが使える様な記述があるので。 イメージ的には、ReferenceimagelibraryをAssetBundleとしてアーカイブファイル化 ー> AssetBundleをサーバーからダウンロードしてアプリでロード ー> AssetBudle内のReferenceimagelibraryを参照 みたな流れかもしれません。 正直私も理解しきれてないので、間違っていること言ってたらすみません。。 AssetBundleのイメージは以下とか参考になるかもです。 https://qiita.com/k7a/items/d27640ac0276214fc850
pofinpouty

2021/07/01 03:48

お返事ありがとうございます! 最終的にはサーバーに接続して自由に変更したいなと思っているのですが、それを実現するまでの知識もなかったので前回のような質問をさせていただきました。 Assetbandleの記述ありがとうございます!確認してみたいと思います。
pofinpouty

2021/07/07 03:18

Asset Bandleの記事、拝見させていただきました。 まだサーバができていなく、それ以前の問題であるということと、 質問内容で実現できないMacファイルを参照しようとしていたなど勘違いなどがあったため、質問内容をもう一度見直したいと思います… 内容がまとまり次第編集させていただきます。
guest

回答1

0

自己解決

Complete()を使うことで解決しました。

投稿2021/07/09 19:24

編集2021/07/12 02:30
pofinpouty

総合スコア20

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問