夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

Azure Object Anchorを動かす。 (モデルアップロードまで)

本日はAzure 枠です。

〇Azure Object Anchorとは?

Azure Object Anchor(以下AOA)は『3Dコンテンツを物理的世界のオブジェクトに自動的に位置合わせして固定する複合現実感サービス』です。

azure.microsoft.com

似たような名前のAzureのサービスに[Azure Spatial Anchor(以下ASA)]がありますが、ASAが空間座標をクラウド経由で複数のデバイスと共有するのに対して、AOAはあらかじめアップロードしてある3Dモデルと現実のオブジェクトを一致させる立体的なQRコードのようなサービスです。

先行事例として自動車メーカーでプライベートプレビュー(非公開試験)が行われており、日本のTOYOTA自動車がこれに参加していたようです。

"Object Anchors enables technicians to service vehicles more quickly. With dynamic 3D model alignment, it has removed the need for QR codes, eliminated the risk of manual model alignment error, making maintenance procedures more efficient."

「AOAにより技術者がより迅速に車両を整備することを可能にします。ダイナミックな3Dモデルのアライメントにより、QRコードの必要性がなくなり、手動でのモデルのアライメントミスのリスクがなくなり、メンテナンス手順がより効率的になりました。"」(Azureのページより引用)

f:id:Holomoto-Sumire:20210316074222p:plain
AzureAOAのページより引用

 現実の物体に対して認識してトリガーを起こすことができるため、上記であげられているように製造業のメンテナンス等が主なユーズケースになるとは思いますが、コンシュマー向けにも、例えば探し物ゲームや、ASAと組み合わせた道案内、教育等様々な場面での使用が考えられます。

2021年3月現在プレビュー段階になります。(プレビュー段階では料金が発生しません。)

〇クイックスタート

以下の手順に沿って初めてのAOAアプリを作成します。

docs.microsoft.com

①Azureポータルにサインインします。

login.microsoftonline.com

②「リソースを作成」を選択し新規のリソースを作成します。

f:id:Holomoto-Sumire:20210315101619j:plain

③オブジェクトアンカーを検索します。

f:id:Holomoto-Sumire:20210315101855j:plain

④[作成]を選択し必要情報を入力します。

f:id:Holomoto-Sumire:20210315102142j:plain

[Location]は2021年3月現在では西アメリカのみ選択可能です。

⑤デプロイが完了すると次のような画面へ移ります。

f:id:Holomoto-Sumire:20210315102500j:plain

⑥[リソースへ移動]を選択します。

f:id:Holomoto-Sumire:20210315102548j:plain

〇サンプルプロジェクトの入手

①gitで次のコマンドを実行してサンプルプロジェクトを取得します。

git clone https://github.com/Azure/azure-object-anchors.git

②azure-object-anchors\quickstarts\conversionから[Conversion.sln]をVisualStudioで開きます。

f:id:Holomoto-Sumire:20210315104459j:plain

③ソリューションエクスプローラーから[Configuration.cs]を開きます。

f:id:Holomoto-Sumire:20210315104858j:plain

④[ConversionQuickstart]の[AccountId]、[AccountKey]、[AccountDomain]の計4か所の"Set-me"を書き換えます

namespace ConversionQuickstart
{
    public class Configuration
    {
        // Azure Object Anchors account identifier
        public string AccountId = "set-me";

        // Azure Object Anchors account primary key
        public string AccountKey = "set-me";

        // Azure Object Anchors account domain
        public string AccountDomain = "set-me";

[AccountId]にはAOAのポータルからアカウントIDをコピーして貼り付けます。

f:id:Holomoto-Sumire:20210315105922j:plain

[AccountDomain]にはドメインIDをコピーして貼り付けます。

f:id:Holomoto-Sumire:20210315110009j:plain

[AccountKey]にはポータルのサイドバーから[アクセスキー]を選択し[主キー]を貼り付けます。

f:id:Holomoto-Sumire:20210315110110j:plain

また、次のフィールドは3Dモデルの情報を指定します。

[InputAssetPath]・・・ローカルコンピュータからアップロードする3Dモデルのパスを指定します。fbx、ply、obj、glb、gltfが対応しています。 

今回は寸法を計測して作成したけん玉の3Dモデルを指定しました。

f:id:Holomoto-Sumire:20210316075101j:plain

⑤プロジェクトをビルドします。

f:id:Holomoto-Sumire:20210315111428j:plain

上記のような文が表示されますが、quickstartには何も記載されていませんのでエンターキーで飛ばしました。

アップロードには成功したようですがその後の変換でエラーが表示されました。

[ ClientErrorDetails: Failed to generate trajectory: Asset dimensions are not within the supported range (1E-05m - 10m) (Parameter 'plyFile')]

どうやらオブジェクトが小さすぎる とのことでしたオブジェクトは0.5m~10mの間になければならないようです。

けん玉は0.3mほどなので残念ながらアップロードできませんでした。

手元に30cmを超える大きさのオブジェクトと3Dモデルを用意していないため次回改めてアップロードしていきます。

この大きさ制限というものは今後ネックになりそうです。製造業等はCADやBIMなどで既に現実のものと一致するデータを所有していることが多いためこの問題は製造業では起こりにくそうです。