SlideShare a Scribd company logo
1 of 21
ARCoreアプリを作ってみよう
Ichi-kato
ARCore
Ichi-kato
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
ARCore
Ichi-kato
ARCore
Ichi-kato
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
目次
 自己紹介
 ARアプリの完成イメージ
 ARCoreとは
 Sceneformとは
 実際にARアプリ作ってみよう
 参考URL
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
About Me
 加藤一郎
 Android歴:1年ちょっと
 趣味:キャンプ、旅行、社会人
バスケ
 所属:ヤフー株式会社
ヤフオク! Androidエンジニア
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
ARアプリの完成イメージ
https://github.com/ichi-kato/ar-sample
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
簡単にARアプリを作るために
 ARCore
 Sceneform
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
簡単にARアプリを作るために
 ARCore
 Sceneform
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
ARCoreとは
 Google製のプラットフォーム
 拡張現実体験を簡単に構築できる
 主な機能
・モーショントラッキング
・現実世界を理解
・光推定
画像引用: https://developers.google.com/ar/discover/concepts
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
簡単にARアプリを作るために
 ARCore
 Sceneform
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
Sceneformとは
 簡単に3Dオブジェクトをレンダリングできる
 OpenGLの知識は必要なし
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
実際に作ってみよう
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
事前準備
 Android studio 3.1以降
 ARCore対応のAndroid端末
もしくはエミュレータ( v27.2.9 以降)
注:
エミュレータの場合は下記の作業が必要です。
https://developers.google.com/ar/develop/java/emulator#update-arcore
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
ライブラリの追加
Build.gradle
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
implementation 'com.google.ar.sceneform.ux:sceneform-
ux:1.7.0'
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
AndroidManifest
<uses-permission android:name="android.permission.CAMERA"
/>
<uses-feature android:name="android.hardware.camera.ar"
android:required="true" />
<meta-data android:name="com.google.ar.core"
android:value="required" />
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
ArFragmentを配置してみよう
<fragment
android:name="com.google.ar.sceneform.ux.ArFragment"
android:id="@+id/ux_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
ArFragmentを配置してみよう
private lateinit var fragment: ArFragment
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
fragment =
supportFragmentManager.findFragmentById(R.id.ux_fragment) as
ArFragment}
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
3Dモデルの追加
・Sceneformプラグインを追加
PreferencesからGoogle Sceneform Tools (Beta)
・プラグインを使い「.obj」をインポートする
(objファイルをapkに含めないために、sampledata内に置く事)
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
モデルを置くためのギャラリーを
セット
<fragment android:name=“com.google.ar.sceneform.ux.ArFragment”
android:id=“@+id/ux_fragment”
・・・
</fragment>
<LinearLayout
android:id="@+id/gallery_layout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/ux_fragment"
app:layout_constraintVertical_chainStyle="spread"
app:layout_constraintVertical_weight="1"/>
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
ギャラリーの初期化
・ ギャラリーにシーンを追加する
andy.setOnClickListener { addObject(Uri.parse("andy.sfb")) }
・オブジェクトを3D空間に置く位置を決定する
frame.hitTest(pt.x.toFloat(), pt.y.toFloat())
・3Dモデルをロードする
ModelRenderable.builder()
.setSource(fragment.context, model)
.build()
・3Dモデルをシーンに置く
node.renderable = renderable
node.setParent(anchorNode)
fragment.arSceneView.scene.addChild(anchorNode)
ソースコード: https://github.com/ichi-kato/ar-sample/blob/master/app/src/main/java/com/example/arcoresample/MainActivity.kt
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
感想
 ARCoreのおかげで簡単にARアプリを作れちゃう!
 Sceneformを使うと3Dモデルに関する知識が不要
 他にもたくさんのことができるので、色々試したい
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
参考
https://developers.google.com/ar/?hl=ja
https://developers.google.com/ar/develop/java
/quickstart?hl=ja
https://ktaka.github.io/codelab/sceneform-ar-
ja/#0
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.
THANK YOU
Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

More Related Content

What's hot

Voxon Photonics VX1 で遊んでみた
Voxon Photonics VX1で遊んでみたVoxon Photonics VX1で遊んでみた
Voxon Photonics VX1 で遊んでみたTakashi Yoshinaga
 
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説貴仁 大和屋
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!Tetsutaro Watanabe
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門大樹 小倉
 
OpenIDConnectを活用したgBizID(法人共通認証基盤)の現状と今後の展望 - OpenID Summit 2020
OpenIDConnectを活用したgBizID(法人共通認証基盤)の現状と今後の展望 - OpenID Summit 2020OpenIDConnectを活用したgBizID(法人共通認証基盤)の現状と今後の展望 - OpenID Summit 2020
OpenIDConnectを活用したgBizID(法人共通認証基盤)の現状と今後の展望 - OpenID Summit 2020OpenID Foundation Japan
 
OpenSSHの認証に証明書を使う
OpenSSHの認証に証明書を使うOpenSSHの認証に証明書を使う
OpenSSHの認証に証明書を使うHironobu Saitoh
 
Azure kinect DKハンズオン
Azure kinect DKハンズオンAzure kinect DKハンズオン
Azure kinect DKハンズオンTakashi Yoshinaga
 
大規模トラフィックにどのように備えて負荷対策を実施しているのか?
大規模トラフィックにどのように備えて負荷対策を実施しているのか?大規模トラフィックにどのように備えて負荷対策を実施しているのか?
大規模トラフィックにどのように備えて負荷対策を実施しているのか?Yusuke Shirakawa
 
Azure Object Anchors のQuick Startで理解を深めたい
Azure Object Anchors のQuick Startで理解を深めたいAzure Object Anchors のQuick Startで理解を深めたい
Azure Object Anchors のQuick Startで理解を深めたいTakahiro Miyaura
 
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するTakahito Tejima
 
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013Ryo Sakamoto
 
元OracleMasterPlatinumがCloudSpanner触ってみた
元OracleMasterPlatinumがCloudSpanner触ってみた元OracleMasterPlatinumがCloudSpanner触ってみた
元OracleMasterPlatinumがCloudSpanner触ってみたKumano Ryo
 
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォームAutoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォームTakuya Azumi
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例Fixstars Corporation
 

What's hot (20)

Voxon Photonics VX1 で遊んでみた
Voxon Photonics VX1で遊んでみたVoxon Photonics VX1で遊んでみた
Voxon Photonics VX1 で遊んでみた
 
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説
 
Guide To AGPL
Guide To AGPLGuide To AGPL
Guide To AGPL
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
OpenIDConnectを活用したgBizID(法人共通認証基盤)の現状と今後の展望 - OpenID Summit 2020
OpenIDConnectを活用したgBizID(法人共通認証基盤)の現状と今後の展望 - OpenID Summit 2020OpenIDConnectを活用したgBizID(法人共通認証基盤)の現状と今後の展望 - OpenID Summit 2020
OpenIDConnectを活用したgBizID(法人共通認証基盤)の現状と今後の展望 - OpenID Summit 2020
 
5分でわかる Sensor SDK
5分でわかる Sensor SDK5分でわかる Sensor SDK
5分でわかる Sensor SDK
 
OpenSSHの認証に証明書を使う
OpenSSHの認証に証明書を使うOpenSSHの認証に証明書を使う
OpenSSHの認証に証明書を使う
 
Azure kinect DKハンズオン
Azure kinect DKハンズオンAzure kinect DKハンズオン
Azure kinect DKハンズオン
 
大規模トラフィックにどのように備えて負荷対策を実施しているのか?
大規模トラフィックにどのように備えて負荷対策を実施しているのか?大規模トラフィックにどのように備えて負荷対策を実施しているのか?
大規模トラフィックにどのように備えて負荷対策を実施しているのか?
 
Azure Object Anchors のQuick Startで理解を深めたい
Azure Object Anchors のQuick Startで理解を深めたいAzure Object Anchors のQuick Startで理解を深めたい
Azure Object Anchors のQuick Startで理解を深めたい
 
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
 
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
 
GitLabのAutoDevOpsを試してみた
GitLabのAutoDevOpsを試してみたGitLabのAutoDevOpsを試してみた
GitLabのAutoDevOpsを試してみた
 
元OracleMasterPlatinumがCloudSpanner触ってみた
元OracleMasterPlatinumがCloudSpanner触ってみた元OracleMasterPlatinumがCloudSpanner触ってみた
元OracleMasterPlatinumがCloudSpanner触ってみた
 
Gstreamer Basics
Gstreamer BasicsGstreamer Basics
Gstreamer Basics
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
Fbx解説 (1 構文編) (1)
Fbx解説 (1  構文編) (1)Fbx解説 (1  構文編) (1)
Fbx解説 (1 構文編) (1)
 
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォームAutoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
Autoware: ROSを用いた一般道自動運転向けソフトウェアプラットフォーム
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
 

Similar to ARCoreアプリを作ってみよう

Ionicを使ってスマホアプリを作ってみた
Ionicを使ってスマホアプリを作ってみたIonicを使ってスマホアプリを作ってみた
Ionicを使ってスマホアプリを作ってみた虎の穴 開発室
 
Androidエンジニアになってからの1年間の感想と振り返り
Androidエンジニアになってからの1年間の感想と振り返りAndroidエンジニアになってからの1年間の感想と振り返り
Androidエンジニアになってからの1年間の感想と振り返りichirokato5
 
スマホ業界とエンジニアのキャリア形成
スマホ業界とエンジニアのキャリア形成スマホ業界とエンジニアのキャリア形成
スマホ業界とエンジニアのキャリア形成Namito Satoyama
 
キャラクターを使ったユーザーコミュニケーション 〜けんさくとえんじんの秘密〜 #ヤフー名古屋
キャラクターを使ったユーザーコミュニケーション 〜けんさくとえんじんの秘密〜 #ヤフー名古屋キャラクターを使ったユーザーコミュニケーション 〜けんさくとえんじんの秘密〜 #ヤフー名古屋
キャラクターを使ったユーザーコミュニケーション 〜けんさくとえんじんの秘密〜 #ヤフー名古屋Yahoo!デベロッパーネットワーク
 
インクルーシブなサービス改善 〜当事者の声を取り込む〜 #accfes
インクルーシブなサービス改善 〜当事者の声を取り込む〜 #accfesインクルーシブなサービス改善 〜当事者の声を取り込む〜 #accfes
インクルーシブなサービス改善 〜当事者の声を取り込む〜 #accfesYahoo!デベロッパーネットワーク
 
誰でもできるGoogleアシスタント開発
誰でもできるGoogleアシスタント開発誰でもできるGoogleアシスタント開発
誰でもできるGoogleアシスタント開発Namito Satoyama
 
天神おしごと学校 AR技術を使ったミライの仕事
天神おしごと学校 AR技術を使ったミライの仕事天神おしごと学校 AR技術を使ったミライの仕事
天神おしごと学校 AR技術を使ったミライの仕事Yusuke Matsumoto
 
AR/VR/MRとは&エンタメ寄り事例紹介
AR/VR/MRとは&エンタメ寄り事例紹介AR/VR/MRとは&エンタメ寄り事例紹介
AR/VR/MRとは&エンタメ寄り事例紹介Shingo Mori
 
ヤフーにおけるGoの一例紹介
ヤフーにおけるGoの一例紹介ヤフーにおけるGoの一例紹介
ヤフーにおけるGoの一例紹介ichirokato5
 
How to create android's c to c EC APP !
How to create android's c to c EC APP !How to create android's c to c EC APP !
How to create android's c to c EC APP !Saiki Iijima
 
Introduction to AR Foundation
Introduction to AR FoundationIntroduction to AR Foundation
Introduction to AR FoundationHirokazu Egashira
 
クリエイターの才能と情熱を解き放つ!そのためにヤフーが名古屋でやりたいこと #ヤフー名古屋
クリエイターの才能と情熱を解き放つ!そのためにヤフーが名古屋でやりたいこと #ヤフー名古屋クリエイターの才能と情熱を解き放つ!そのためにヤフーが名古屋でやりたいこと #ヤフー名古屋
クリエイターの才能と情熱を解き放つ!そのためにヤフーが名古屋でやりたいこと #ヤフー名古屋Yahoo!デベロッパーネットワーク
 
ライブ配信コンテンツ「ワイキュー」でやったこと
ライブ配信コンテンツ「ワイキュー」でやったことライブ配信コンテンツ「ワイキュー」でやったこと
ライブ配信コンテンツ「ワイキュー」でやったことSaoriSomeya
 
Athenz & SPIFFE, Tatsuya Yano, Yahoo Japan
Athenz & SPIFFE, Tatsuya Yano, Yahoo JapanAthenz & SPIFFE, Tatsuya Yano, Yahoo Japan
Athenz & SPIFFE, Tatsuya Yano, Yahoo JapanYahoo Developer Network
 

Similar to ARCoreアプリを作ってみよう (20)

Ionicを使ってスマホアプリを作ってみた
Ionicを使ってスマホアプリを作ってみたIonicを使ってスマホアプリを作ってみた
Ionicを使ってスマホアプリを作ってみた
 
Androidエンジニアになってからの1年間の感想と振り返り
Androidエンジニアになってからの1年間の感想と振り返りAndroidエンジニアになってからの1年間の感想と振り返り
Androidエンジニアになってからの1年間の感想と振り返り
 
スマホ業界とエンジニアのキャリア形成
スマホ業界とエンジニアのキャリア形成スマホ業界とエンジニアのキャリア形成
スマホ業界とエンジニアのキャリア形成
 
キャラクターを使ったユーザーコミュニケーション 〜けんさくとえんじんの秘密〜 #ヤフー名古屋
キャラクターを使ったユーザーコミュニケーション 〜けんさくとえんじんの秘密〜 #ヤフー名古屋キャラクターを使ったユーザーコミュニケーション 〜けんさくとえんじんの秘密〜 #ヤフー名古屋
キャラクターを使ったユーザーコミュニケーション 〜けんさくとえんじんの秘密〜 #ヤフー名古屋
 
インクルーシブなサービス改善 〜当事者の声を取り込む〜 #accfes
インクルーシブなサービス改善 〜当事者の声を取り込む〜 #accfesインクルーシブなサービス改善 〜当事者の声を取り込む〜 #accfes
インクルーシブなサービス改善 〜当事者の声を取り込む〜 #accfes
 
誰でもできるGoogleアシスタント開発
誰でもできるGoogleアシスタント開発誰でもできるGoogleアシスタント開発
誰でもできるGoogleアシスタント開発
 
Nhkhackathon yahooapi introduction
Nhkhackathon yahooapi introductionNhkhackathon yahooapi introduction
Nhkhackathon yahooapi introduction
 
天神おしごと学校 AR技術を使ったミライの仕事
天神おしごと学校 AR技術を使ったミライの仕事天神おしごと学校 AR技術を使ったミライの仕事
天神おしごと学校 AR技術を使ったミライの仕事
 
AR/VR/MRとは&エンタメ寄り事例紹介
AR/VR/MRとは&エンタメ寄り事例紹介AR/VR/MRとは&エンタメ寄り事例紹介
AR/VR/MRとは&エンタメ寄り事例紹介
 
YJTC18 B-7 Yahoo! JAPANアプリの作り方
YJTC18 B-7 Yahoo! JAPANアプリの作り方YJTC18 B-7 Yahoo! JAPANアプリの作り方
YJTC18 B-7 Yahoo! JAPANアプリの作り方
 
ヤフーにおけるGoの一例紹介
ヤフーにおけるGoの一例紹介ヤフーにおけるGoの一例紹介
ヤフーにおけるGoの一例紹介
 
How to create android's c to c EC APP !
How to create android's c to c EC APP !How to create android's c to c EC APP !
How to create android's c to c EC APP !
 
Introduction to AR Foundation
Introduction to AR FoundationIntroduction to AR Foundation
Introduction to AR Foundation
 
AlexaPepperTalk
AlexaPepperTalkAlexaPepperTalk
AlexaPepperTalk
 
クリエイターの才能と情熱を解き放つ!そのためにヤフーが名古屋でやりたいこと #ヤフー名古屋
クリエイターの才能と情熱を解き放つ!そのためにヤフーが名古屋でやりたいこと #ヤフー名古屋クリエイターの才能と情熱を解き放つ!そのためにヤフーが名古屋でやりたいこと #ヤフー名古屋
クリエイターの才能と情熱を解き放つ!そのためにヤフーが名古屋でやりたいこと #ヤフー名古屋
 
ライブ配信コンテンツ「ワイキュー」でやったこと
ライブ配信コンテンツ「ワイキュー」でやったことライブ配信コンテンツ「ワイキュー」でやったこと
ライブ配信コンテンツ「ワイキュー」でやったこと
 
Athenz & SPIFFE, Tatsuya Yano, Yahoo Japan
Athenz & SPIFFE, Tatsuya Yano, Yahoo JapanAthenz & SPIFFE, Tatsuya Yano, Yahoo Japan
Athenz & SPIFFE, Tatsuya Yano, Yahoo Japan
 
早稲田ビジネススクール講義 ゲスト YAHOO!Lodge水田千恵
早稲田ビジネススクール講義 ゲスト YAHOO!Lodge水田千恵早稲田ビジネススクール講義 ゲスト YAHOO!Lodge水田千恵
早稲田ビジネススクール講義 ゲスト YAHOO!Lodge水田千恵
 
SPAを選択した理由とその結果 ~Reactを添えて~
SPAを選択した理由とその結果 ~Reactを添えて~SPAを選択した理由とその結果 ~Reactを添えて~
SPAを選択した理由とその結果 ~Reactを添えて~
 
GoogleIO2019updates
GoogleIO2019updatesGoogleIO2019updates
GoogleIO2019updates
 

ARCoreアプリを作ってみよう

Editor's Notes

  1. モーショントラッキング カメラを通して、特徴点と呼ばれる視覚的に異なる特徴を見つけて、時間とともにそれがどのように移動したかを追跡します。 これによって、端末が今自身がどの位置にいて、どこを向いているのかを判定できます。 現実世界を理解 テーブルや壁などの一般的な水平、または垂直面上にあるように見える特徴点のクラスタを探し、それらの面をアプリケーションとして平面として使用できるようにします 光推定 環境の照明についての情報を検出することができます。それによって、仮想オブジェクトに対して光補正を行うことにより、結果臨場感が出ます。
  2. min APIレベルを26以上のプロジェクトで、明示的にJava 8のサポートを追加する必要があります。
  3. アプリケーションがカメラを使うことと、AR機能を使用するにあたってアプリの実行にARCoreが必須という設定。 最後のメタデータのエントリはPlayストア上でARCoreに対応していない端末からは、このアプリが見えないようにしている
  4. Sceneformの使用を開始して平面を検知するため