Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【超入門】AR 技術の"さわり"だけ学んでみる

Avatar for Yuto Yuto
October 31, 2025

【超入門】AR 技術の"さわり"だけ学んでみる

Avatar for Yuto

Yuto

October 31, 2025
Tweet

More Decks by Yuto

Other Decks in Programming

Transcript

  1. 目次 • AR とは • AR 開発における基本的かつメジャーな技術 • AR 機能を提供してくれる二大フレームワーク

    • ネイティブアプリ開発における3Dコンテンツの描画 • 3Dコンテンツの作成 • スマホ標準搭載の簡易版 AR 機能 • Unity アプリと iOS/Android ネイティブアプリとの関係性 • AR アプリ作成時の技術構成
  2. 目次 • AR とは • AR 開発における基本的かつメジャーな技術 • AR 機能を提供してくれる二大フレームワーク

    • ネイティブアプリ開発における3Dコンテンツの描画 • 3Dコンテンツの作成 • スマホ標準搭載の簡易版 AR 機能 • Unity アプリと iOS/Android ネイティブアプリとの関係性 • AR アプリ作成時の技術構成
  3. AR 機能を提供してくれる二大フレームワーク 違いや特徴 • 対応プラットフォーム • ARCore: Google製: Android以外も可(マルチプラットフォーム) •

    ARKit: Apple製: iOS • 対応デバイス • ARCore: 幅広い端末に対応。アクティブな端末の約90%の端末でARCoreが有効 • ARKit: iOS端末のみ。Pro 機種のみで有効な機能もあり • 強み • ARCore: GoogleMap API を活用した位置情報系のAR 機能 • ARKit: iOSに最適化・洗練された機能。Pro 機種端末での高機能センサー(LiDAR)
  4. AR 機能を提供してくれる二大フレームワーク まとめ • ARCore( Google ) / ARKit(Apple) •

    AR技術の根幹・土台 • ARCore や ARKit の主な機能 • モーショントラッキング • 環境認識 • 光の推定
  5. 目次 • AR とは • AR 開発における基本的かつメジャーな技術 • AR 機能を提供してくれる二大フレームワーク

    • ネイティブアプリ開発における3Dコンテンツの描画 • 3Dコンテンツの作成 • スマホ標準搭載の簡易版 AR 機能 • Unity アプリと iOS/Android ネイティブアプリとの関係性 • AR アプリ作成時の技術構成
  6. ネイティブアプリにおける3Dコンテンツの描画 Android(Kotlin) / iOS(Swift) でのネイティブアプリ開発時に使用する 描画フレームワーク • SceneView(Kotlin) • Google

    非公式、OSSライブラリ • 基本的な AR + 描画機能を提供 • RealityKit (Swift) • Apple 公式 • 高度な(カスタマイズ性の高い)描画設定が可能
  7. ネイティブアプリにおける3Dコンテンツの描画 • SceneView(Kotlin) • Google 非公式、OSSライブラリ • 基本的な AR +

    描画機能を提供 特徴 • 描画に特化したライブラリ • コミュニティによるOSSライブラリであり、将来性的な部分での不安はあり • 元々は公式ライブラリがあったが、 2020年にサポート終了 • 公式側としては、AR 開発については Unity での開発を推奨の流れに
  8. ネイティブアプリにおける3Dコンテンツの描画 現在、3D の経験を持たないユーザーが採用しやすいように ARCore の Android SDK を変更する計画はありません。 Sceneform のリポジトリをアーカイブ化し、当社が

    Sceneform の積極的なメンテナンスを終了したことを明確にしました。 1.16 リリース時にオープンソース化したため、有用と判断された場合は引き続きご利用いただけます。 これは、必要な追加機能をリポジトリにフォークして追加することも可能であることを意味します。 ただし新規プロジェクトを構築する場合は、Unity ARCore SDK for Android の利用をご検討ください。Unity を用いて 3D 空間でオブジェクトをレンダリングし、ARCore アプリを容易に作成できます。
  9. ネイティブアプリにおける3Dコンテンツの描画 • RealityKit (Swift) • Apple 公式 • 高度な(カスタマイズ性の高い)描画設定が可能 特徴

    • 物理演算、アニメーション、空間オーディオなど、高度なレンダリング設定が可能 • Apple純正ツールは慣れるまでに学習コストはかかる • GUI 操作(iPhone/iPad)可能な Reality Composer というアプリも公式で提供されて いるが、どこまで高度な設定が可能なのかは不明
  10. ネイティブアプリにおける3Dコンテンツの描画 まとめ • Android/Kotlin : SceneView ライブラリ • Google 非公式、OSSライブラリ

    • 基本的な AR + 描画機能を提供 • 公式側は、ARCoreの開発については Unity を推奨の流れあり • iOS/Swift : RealityKit ライブラリ(SDK) • Apple 公式 • Apple純正ツールは慣れるまでに学習コストはかかるものの、高度な(カスタマイ ズ性の高い)描画設定が可能
  11. 目次 • AR とは • AR 開発における基本的かつメジャーな技術 • AR 機能を提供してくれる二大フレームワーク

    • ネイティブアプリ開発における3Dコンテンツの描画 • 3Dコンテンツの作成 • スマホ標準搭載の簡易版 AR 機能 • Unity アプリと iOS/Android ネイティブアプリとの関係性 • AR アプリ作成時の技術構成
  12. 目次 • AR とは • AR 開発における基本的かつメジャーな技術 • AR 機能を提供してくれる二大フレームワーク

    • ネイティブアプリ開発における3Dコンテンツの描画 • 3Dコンテンツの作成 • スマホ標準搭載の簡易版 AR 機能 • Unity アプリと iOS/Android ネイティブアプリとの関係性 • AR アプリ作成時の技術構成
  13. スマホ標準搭載の簡易版 AR 機能 • Scene Viewer(Android / Googleアプリ) • AR

    Quick Look(iOS / Safariアプリ) • Web ブラウザやアプリから AR コンテンツを表示できる、Android / iOS 端末の標準搭載の機能 • フル機能の AR アプリを開発するコストをかけずに、シンプルかつ手軽に AR コンテンツを提供したい場合に有効
  14. スマホ標準搭載の簡易版 AR 機能 まとめ • Scene Viewer(Android / Googleアプリ) •

    AR Quick Look(iOS / Safariアプリ) • Web ブラウザやアプリから AR コンテンツを表示できる、Android / iOS 端末の標準搭載の機能 • フル機能の AR アプリを開発するコストをかけずに、シンプルかつ手軽に AR コンテンツを提供したい場合に有効
  15. 目次 • AR とは • AR 開発における基本的かつメジャーな技術 • AR 機能を提供してくれる二大フレームワーク

    • ネイティブアプリ開発における3Dコンテンツの描画 • 3Dコンテンツの作成 • スマホ標準搭載の簡易版 AR 機能 • Unity アプリと iOS/Android ネイティブアプリとの関係性 • AR アプリ作成時の技術構成
  16. 目次 • AR とは • AR 開発における基本的かつメジャーな技術 • AR 機能を提供してくれる二大フレームワーク

    • ネイティブアプリ開発における3Dコンテンツの描画 • 3Dコンテンツの作成 • スマホ標準搭載の簡易版 AR 機能 • Unity アプリと iOS/Android ネイティブアプリとの関係性 • AR アプリ作成時の技術構成
  17. AR アプリ作成時の技術構成 1. Kotlin + ARCore 2. Swfit + ARKit

    3. Unity + AR Foundation 4. Kotlin / Swift + Unity
  18. AR アプリ作成時の技術構成 1. Kotlin + ARCore 2. Swfit + ARKit

    • シンプル目なAR機能向き • OSに最適化されているとはいえ凝ったAR機能はUnityの方が対応しやすいかも • ARCoreではUnityが推奨されていることもり、マルチプラットフォームの性質 を鑑みると、Unity開発の方が効率は良いかも? • AndroidはUnityでAR部分作って、iOSだけARKit っていうのもなぁ、という気持ちもあり • ただ、Unity自体が巨大なプラットフォームなので、過多 & 必要以上感もあり
  19. AR アプリ作成時の技術構成 3. Unity + AR Foundation • 高度なAR機能を実現したい場合 •

    マルチプラットフォームなので大部分は単一のコードベースで両OS対応可能 • ゲーム/AR 要素がメインのアプリだとよいが、静的な一般的なモバイルアプリ には不向きな点も多々
  20. AR アプリ作成時の技術構成 4. Kotlin / Swift + Unity • 基本は静的なモバイルアプリとしつつ、一部画面だけ高度なAR機能を実現

    したい場合 • Unityとネイティブ側で責務を分けれるので、開発チームも分けれる • ネイティブアプリから呼び出す(組み込む)設定がかなり面倒となる想定 • 保守性や開発効率が高くなる反面、ビルドエラー対応がかなり増える想定 • ※ 実際にテンプレPJ同士を連携するだけでも既にややこしかった。。。