SlideShare a Scribd company logo
Enviar búsqueda
Cargar
Iniciar sesión
Registrarse
はじめようARCore:自己位置推定・平面検出・FaceTracking
Denunciar
Takashi Yoshinaga
Seguir
14 de Mar de 2019
•
0 recomendaciones
•
33,876 vistas
1
de
136
はじめようARCore:自己位置推定・平面検出・FaceTracking
14 de Mar de 2019
•
0 recomendaciones
•
33,876 vistas
Denunciar
Tecnología
UnityやARCore初心者向けのチュートリアル資料。 ※3/9に開催したハンズオン資料の修正版です
Takashi Yoshinaga
Seguir
Recomendados
HoloLens2とMeta QuestではじめるWebXR
Takashi Yoshinaga
1.1K vistas
•
92 diapositivas
OpenCVでつくろうARスタンプアプリ in 熊本
Takashi Yoshinaga
820 vistas
•
164 diapositivas
MRTKをNreal Lightに対応させてみた
Takashi Yoshinaga
1.2K vistas
•
25 diapositivas
A-Frameで始めるWebXRとハンドトラッキング (HoloLens2/Oculus Quest対応)
Takashi Yoshinaga
1.5K vistas
•
88 diapositivas
Nreal Lightハンズオン
Takashi Yoshinaga
6.2K vistas
•
193 diapositivas
OpenCVで作るスタンプAR
Takashi Yoshinaga
1.7K vistas
•
163 diapositivas
Más contenido relacionado
La actualidad más candente
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...
Takahiro Miyaura
596 vistas
•
29 diapositivas
はじめようARCore in 札幌
Takashi Yoshinaga
1.7K vistas
•
168 diapositivas
AI x WebAR: MediaPipeのハンドトラッキングを使ってみよう
Takashi Yoshinaga
1.4K vistas
•
88 diapositivas
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
エピック・ゲームズ・ジャパン Epic Games Japan
10.3K vistas
•
79 diapositivas
Immersal を活用した AR クラウドなシステム開発とハンズオン!
NishoMatsusita
1.2K vistas
•
59 diapositivas
Android/iOS端末におけるエッジ推論のチューニング
Deep Learning Lab(ディープラーニング・ラボ)
9K vistas
•
33 diapositivas
La actualidad más candente
(20)
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...
Takahiro Miyaura
•
596 vistas
はじめようARCore in 札幌
Takashi Yoshinaga
•
1.7K vistas
AI x WebAR: MediaPipeのハンドトラッキングを使ってみよう
Takashi Yoshinaga
•
1.4K vistas
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
エピック・ゲームズ・ジャパン Epic Games Japan
•
10.3K vistas
Immersal を活用した AR クラウドなシステム開発とハンズオン!
NishoMatsusita
•
1.2K vistas
Android/iOS端末におけるエッジ推論のチューニング
Deep Learning Lab(ディープラーニング・ラボ)
•
9K vistas
猫でも分かるUE4を使ったARコンテンツ作り方 初級編 ver 1.0.0
エピック・ゲームズ・ジャパン Epic Games Japan
•
15.7K vistas
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
Unity Technologies Japan K.K.
•
44.3K vistas
スマホと簡易ヘッドセットAryzonで光学シースルーAR
Takashi Yoshinaga
•
1.4K vistas
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
Takahito Tejima
•
36K vistas
OpenCV/ARCore/Unityで作る塗り絵AR
Takashi Yoshinaga
•
6.3K vistas
UnityとVuforiaで始めるAR開発
Takashi Yoshinaga
•
11.9K vistas
【Unity道場 建築スペシャル2】点群ビジュアライゼーション
UnityTechnologiesJapan002
•
5.3K vistas
ARマーカーを利用したHoloLens同士の位置合わせ
Takahiro Miyaura
•
3K vistas
GPU最適化入門
Takahiro KOGUCHI
•
19.1K vistas
MRTK V2.3 Spatial Awareness
Yuichi Ishii
•
529 vistas
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
Unity Technologies Japan K.K.
•
42.8K vistas
LiDAR点群と画像とのマッピング
Takuya Minagawa
•
10.2K vistas
AI x WebAR MediaPipeの顔認識を使ってみよう! in 織りなすラボ
Takashi Yoshinaga
•
1.7K vistas
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
Takashi Yoshinaga
•
1.2K vistas
Similar a はじめようARCore:自己位置推定・平面検出・FaceTracking
はじめようARCore: Motion Tracking & Image Tracking編
Takashi Yoshinaga
4.4K vistas
•
112 diapositivas
ARコンテンツ作成勉強会 in 宮崎: はじめようARCore
Takashi Yoshinaga
4.2K vistas
•
115 diapositivas
はじめようArcore (修正版)
Takashi Yoshinaga
10.5K vistas
•
148 diapositivas
HoloLensハンズオン@ももち浜TECHカフェ vol.2
Takashi Yoshinaga
207 vistas
•
77 diapositivas
KinectでAR空間に入り込もう
Takashi Yoshinaga
1.3K vistas
•
54 diapositivas
ノンプログラミングで始める AR 開発入門
Takashi Yoshinaga
3.5K vistas
•
123 diapositivas
Similar a はじめようARCore:自己位置推定・平面検出・FaceTracking
(20)
はじめようARCore: Motion Tracking & Image Tracking編
Takashi Yoshinaga
•
4.4K vistas
ARコンテンツ作成勉強会 in 宮崎: はじめようARCore
Takashi Yoshinaga
•
4.2K vistas
はじめようArcore (修正版)
Takashi Yoshinaga
•
10.5K vistas
HoloLensハンズオン@ももち浜TECHカフェ vol.2
Takashi Yoshinaga
•
207 vistas
KinectでAR空間に入り込もう
Takashi Yoshinaga
•
1.3K vistas
ノンプログラミングで始める AR 開発入門
Takashi Yoshinaga
•
3.5K vistas
第19回SOIL水曜セミナー:RGB-DカメラでAR空間に入り込もう
Takashi Yoshinaga
•
825 vistas
OpenCVとRGB-Dセンサで作ろう壁面タッチパネル
Takashi Yoshinaga
•
2.7K vistas
ARコンテンツ作成勉強会( #AR_Fukuoka )紹介
Takashi Yoshinaga
•
381 vistas
Fukuoka LT 2019: AR Fukuoka
Takashi Yoshinaga
•
717 vistas
OpenCVとARCoreで作るスタンプAR in 宮崎
Takashi Yoshinaga
•
1.2K vistas
HoloLensハンズオン:ハンドトラッキング&音声入力編
Takashi Yoshinaga
•
29.4K vistas
はじめようARCore
Takashi Yoshinaga
•
4.6K vistas
Holo-SDKハンズオン:はじめようヘッドトラッキングを用いた3D表現
Takashi Yoshinaga
•
914 vistas
Unity道場京都スペシャル トゥーンシェーディングとノンフォトリアリスティック風絵づくり入門_
Unity Technologies Japan K.K.
•
5.4K vistas
スマートフォン勉強会関西#16(iOS,Android,WP7マルチタッチ)
Tomonori Ohba
•
708 vistas
HoloLensハンズオン@ももち浜TECHカフェ vol.1
Takashi Yoshinaga
•
222 vistas
Unity勉強会ハンズオン
Kodai Yano
•
3.1K vistas
RAD Studio勉強会@大阪 「スマートデバイスで簡易画面署名 etc (iOS / Android 、 IntraWeb)」
yoshiwara
•
910 vistas
天王寺動物園×コミューン
Junya Higashiyama
•
633 vistas
Más de Takashi Yoshinaga
【準備編】OculusQuest/HoloLens2対応WebXR開発
Takashi Yoshinaga
473 vistas
•
46 diapositivas
iPad LiDARでエンジニアカフェを3Dスキャン
Takashi Yoshinaga
1.4K vistas
•
15 diapositivas
Web技術ではじめようAR/VRアプリ開発
Takashi Yoshinaga
644 vistas
•
17 diapositivas
【準備編!】HoloLens 2/Oculus Quest対応WebXRハンズオン
Takashi Yoshinaga
702 vistas
•
45 diapositivas
FUKUOKA Engineers Day 2021 発表資料:AR Fukuoka & HoloBox紹介
Takashi Yoshinaga
932 vistas
•
29 diapositivas
Voxon Photonics VX1で遊んでみた
Takashi Yoshinaga
528 vistas
•
11 diapositivas
Más de Takashi Yoshinaga
(20)
【準備編】OculusQuest/HoloLens2対応WebXR開発
Takashi Yoshinaga
•
473 vistas
iPad LiDARでエンジニアカフェを3Dスキャン
Takashi Yoshinaga
•
1.4K vistas
Web技術ではじめようAR/VRアプリ開発
Takashi Yoshinaga
•
644 vistas
【準備編!】HoloLens 2/Oculus Quest対応WebXRハンズオン
Takashi Yoshinaga
•
702 vistas
FUKUOKA Engineers Day 2021 発表資料:AR Fukuoka & HoloBox紹介
Takashi Yoshinaga
•
932 vistas
Voxon Photonics VX1で遊んでみた
Takashi Yoshinaga
•
528 vistas
AR-Frame x AR.js入門
Takashi Yoshinaga
•
2K vistas
AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!
Takashi Yoshinaga
•
1.2K vistas
コロナ禍中のコミュニティ活動
Takashi Yoshinaga
•
300 vistas
Project HoloBox
Takashi Yoshinaga
•
332 vistas
AR Fukuoka紹介2020
Takashi Yoshinaga
•
315 vistas
iPad LiDARで作ってみた in AR Fukuoka 忘年会2020
Takashi Yoshinaga
•
296 vistas
MRTKで始めるAR開発 (HoloLens 1 and 2, ARCore, ARkit)
Takashi Yoshinaga
•
577 vistas
OSC2020 Fukuoka: インストールいらず、WebAR入門
Takashi Yoshinaga
•
862 vistas
Oculus Quest 1&2 開発のはじめの一歩 with A-Frame WebVR
Takashi Yoshinaga
•
443 vistas
Spatial Copy & Paste @HoloLensゆるっとLT会
Takashi Yoshinaga
•
396 vistas
AI x WebAR! MediaPipeの顔認識を使ってみよう!
Takashi Yoshinaga
•
726 vistas
エンジニアカフェ1周年イベント:WebAR/VR開発入門
Takashi Yoshinaga
•
664 vistas
[Netlify版] 0から始めようWebAR/VR入門ハンズオン with 織りなすラボ
Takashi Yoshinaga
•
557 vistas
[Glitch版] 0から始めようWebAR/VR入門ハンズオン with 織りなすラボ
Takashi Yoshinaga
•
903 vistas
Último
テスト自動化.pdf
ssuserf8ea02
16 vistas
•
26 diapositivas
20230912JSSST大会基調講演_丸山.pdf
Hiroshi Maruyama
163 vistas
•
58 diapositivas
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
Tomoaki Tada
23 vistas
•
20 diapositivas
20230921_IoTLT_vol103_kitazaki_v1.pdf
Ayachika Kitazaki
73 vistas
•
16 diapositivas
松下研究室紹介_関西大学高槻キャンパスオープンキャンパス
Matsushita Laboratory
25 vistas
•
23 diapositivas
gtk4_gem_usage.pdf
ssuser0ef4681
11 vistas
•
6 diapositivas
Último
(9)
テスト自動化.pdf
ssuserf8ea02
•
16 vistas
20230912JSSST大会基調講演_丸山.pdf
Hiroshi Maruyama
•
163 vistas
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
Tomoaki Tada
•
23 vistas
20230921_IoTLT_vol103_kitazaki_v1.pdf
Ayachika Kitazaki
•
73 vistas
松下研究室紹介_関西大学高槻キャンパスオープンキャンパス
Matsushita Laboratory
•
25 vistas
gtk4_gem_usage.pdf
ssuser0ef4681
•
11 vistas
遠隔お酌IoTLT2309.pptx
Yoshiaki Ito
•
49 vistas
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
NTT DATA Technology & Innovation
•
24 vistas
IGDA Japan SIG Audio #20-1 室内・野外でのマイク収録と整音.pdf
IGDA Japan SIG-Audio
•
94 vistas
はじめようARCore:自己位置推定・平面検出・FaceTracking
1.
ARコンテンツ作成勉強会 はじめようARCore
2.
自己紹介 氏名:吉永崇(Takashi Yoshinaga) 所属:九州先端科学技術研究所(ISIT) 専門:ARを用いた医療支援や運動計測 コミュニティ:ARコンテンツ作成勉強会 主催
3.
ARコンテンツ作成勉強会の紹介 2013年5月に勉強会をスタートし、100回以上開催 ARコンテンツの作り方をハンズオン形式で学ぶ
人数は5~10名程度の少人数で実施 参加条件はAR/VRに興味がある人(知識不要) 各地で開催 (福岡、熊本、宮崎、長崎、大分、 鹿児島、山口、広島、関東)
4.
Twitterと勉強会ページで情報を発信しています #AR_Fukuoka Googleで「AR勉強会」で検索
5.
ARCore Googleが提供する次世代ARプラットフォーム。普通のスマホでマーカーレスARを実現。 【主要機能】 (1) 自己位置推定 (Motion
Tracking) (2) 平面認識 (Environmental Understanding) (3) 明るさ推定 (Light Estimation) (4) マーカー認識 (Augmented Image) (5) 空間共有 (Cloud Anchor) (6) 顔認識 (Augmented Faces) ← New!
6.
今日の内容 (1/2) Googleが提供する次世代ARプラットフォーム。普通のスマホでマーカーレスARを実現。 【主要機能】 (1) 自己位置推定
(Motion Tracking) (2) 平面認識 (Environmental Understanding) (3) 明るさ推定 (Light Estimation) (4) マーカー認識 (Augmented Image) (5) 空間共有 (Cloud Anchor) (6) 顔認識 (Augmented Faces) ← New!
7.
マーカー認識や空間共有についてはこちらをどうぞ https://www.slideshare.net/ssuserc0d7f b/arcore-108717431
8.
事前準備 • Unity2017.4.15 or
later • ARCore SDK 1.7 https://github.com/google-ar/arcore- unity-sdk/releases/tag/v1.7.0 • Sample http://arfukuoka.lolipop.jp/arcore_pan asonic/sample.zip
9.
今日の内容 (2/2) ① CGを表示
② 平面検出とCGの配置 ③ 空間にドローイング ④ 顔認識
10.
開発ツール:Unity Unityとは マルチプラットフォーム対応のゲームエンジンおよび開発環境 GUI上で視覚的にCGを配置したり機能を追加したりできる
C#によるプログラミングで細かい挙動も記述可能 アセットストアで高品質なCGやアニメーションを入手できる
11.
Unityのプロジェクトを作成 (1/2) Unityを起動後、画面右上のNEWをクリック New
12.
Unityのプロジェクトを作成 (2/2) プロジェクト名・保存場所・3Dを指定してCreate project 3D 最後にクリック プロジェクト名 保存場所
13.
まずはUnityの簡単な使い方
14.
Unityの操作画面(概要) ゲーム空間の設計画面
15.
ゲーム空間にCGを追加しよう 右クリック 3DObject → Cube
16.
実行してみよう クリックして実行 クリックして終了 カメラから見た空間
17.
オブジェクトの位置・向き・サイズを調整 クリックして選択 移動 回転 拡大・縮小
18.
Scene(設計画面)の視点を変えよう [←] [→]で左右移動 [↑][↓]でズームイン/アウト [Alt]+ドラッグで回転 +ドラッグで上下左右
19.
CGの詳細情報の編集:位置の指定 オブジェクトの詳細の表示・追加・変更 はInspectorで行う 例えば、TransformのPositionを 変更すると位置が変わる Positionを0
0 0に変更
20.
CGの詳細情報の編集:色の設定 (1/3) ②右クリック ③Create マテリアル(色や質感の設定)を作成 ④Material ①Assets
21.
CGの詳細情報の編集:色の設定 (2/3) 作成したマテリアルの色(Albedo)を設定 (2) Albedoの右側をクリックし、色を選択 (1)作成したマテリアルをクリック
22.
CGの詳細情報の編集:色の設定 (3/3) オブジェクト(Cube)のマテリアルを開き、作成したマテリアルを割り当て (2) Materialsの横の▼ (1)Cube (3)
Element0に ドラッグ&ドロップ
23.
確認 色が反映されていればOK。あとから色の変更も可能。
24.
CGの詳細情報の編集:挙動の追加 スクリプト(プログラム)を記述することによりオブジェクトの挙動を表現 (2) Add Component (1)Cube
25.
CGの詳細情報の編集:挙動の追加 New Script スクリプト名 Create and
Add
26.
CGの詳細情報の編集:挙動の追加 スクリプトが追加された
27.
CGの詳細情報の編集:挙動の追加 ここをダブルクリック
28.
スクリプトを使って立方体を回転 public class NewBehaviourScript
: MonoBehaviour { // 初期化のために初回に一回だけ実行される void Start () { } // 毎フレーム(数10ミリ秒おきに)実行される void Update () { } }
29.
スクリプトを使って立方体を回転 public class NewBehaviourScript
: MonoBehaviour { // 初期化のために初回に一回だけ実行される void Start () { } // 毎フレーム(数10ミリ秒おきに)実行される void Update () { //毎フレームY軸を中心に1度ずつ回転 transform.Rotate(0, 1, 0, Space.Self); } }
30.
一旦、現状を保存 ①File ②Save Scene as...
31.
一旦、現状を保存 ①新規フォルダー ③sample1フォルダを開き コンテンツ名を入力 (例:sample1) ④保存 以降はCtrl + Sで現状のコンテンツ(Scene)を保存 ②新しいフォルダ名をSample1に変更
32.
不要なCGの削除 Delete Cubeを選択して[Delete]キー
33.
Next: 自己位置推定(Motion Tracking)
34.
ARCoreのインポート ①Assets ②Import Package → Custom
Package ③arcore-unity-sdk-xxx ④開く
35.
ARCore用のカメラの設定(1/2) Main Cameraを削除
36.
ARCore用のカメラの設定(2/2) ①GoogleARCore → Prefabs ②
ARCore Device ③ドラッグ&ドロップ
37.
表示オブジェクトの追加(1/2) ①GoogleARCore → Examples
→ Common → Prefabs ② Andy Green Diffuse ③ドラッグ&ドロップ
38.
表示オブジェクトの追加(2/2) ①AndyGreenDiffuse ② Positionの yを-0.1[m] zを0.5[m] ③ Scaleを1~3くらいに (20~60cmくらい) ※ARCoreではアプリ立ち上げ時のスマホの位置が0
0 0となります
39.
実機にインストール
40.
ビルドの準備 ①File ② Build Settings
41.
ビルドの準備 ②Switch Platform ① Android
42.
ビルドの準備 ②Player Settings ① Internal※ ※ 今後はInternalは無くなる 予定。Gradleについても 調査して後日共有します。
43.
ビルドの準備 ①Product Nameを入力 ② Resolution
and Presentation ③ Default OrientationをLandscape Left ※画面を自動で回転させたくない場合のみ向きを固定
44.
ビルドの準備 ① Other Settings ②
Multithreaded Renderingをオフ※ ※最新版ではオフにしなくてもOKのようなので、ビルドエラーにならないならオンのままで問題なし
45.
ビルドの準備 ①Package Nameを設定 例) com.arfukuoka.test1 ②
Minimum API Levelを Android 7.0に設定
46.
ビルドの準備 ①XR Settings ② ARCore
Supportedをオン
47.
ビルドと実機インストール ①File ② Build &
Run
48.
ビルドと実機インストール ①インストーラー(apk)の名前を設定 ② 保存
49.
動作確認
50.
Next: 平面検出(Environmental Understanding)
51.
Environmental Understandingを有効化(1/5) ①Sample1
52.
Environmental Understandingを有効化(2/5) ①右クリック ②Create ③GoogleARCore ④SessionConfig
53.
Environmental Understandingを有効化(3/5) ファイル名を変更(例:sample1)
54.
Environmental Understandingを有効化(4/5) ①sample1.assetをクリック 【Plane Finding
Mode】 (1)Disabled:平面認識なし (2)Horizontal And Vertical: 水平面と垂直面を認識 (3)Horizontal: 水平面のみ認識 (4)Vertical 垂直面のみ認識 今回は(2)~(4)から好きなのを選択
55.
Environmental Understandingを有効化(5/5) ①ARCore Deviceをクリック ②Sample1フォルダ ③sample1.asset ④Session
Configに ドラッグ&ドロップ
56.
認識した平面の可視化 (1/4) ①空白を右クリック ② Create
Empty
57.
認識した平面の可視化 (2/4) ①GameObjectの名前を Controllerに変更
58.
認識した平面の可視化 (3/4) ①Controllerをクリック ②AddComponent ③Detected Plane
Generator
59.
認識した平面の可視化 (4/4) ①GoogleARCore →
Examples → Common → Prefabs ③DetectedPlaneVisualizer ②Controller ④Detected Plane Prefabにドラッグ&ドロップ
60.
動作確認 水平面 垂直面
61.
タップした平面にCGを置く ①Controller ②Add Component
62.
タップした平面にCGを置く ①New Script ③Create and
Add ②PutScript
63.
タップした平面にCGを置く ①Controller ②PutScriptを ダブルクリック
64.
スクリプトの記述 using System.Collections; using System.Collections.Generic; using
UnityEngine; using GoogleARCore; public class PutScript : MonoBehaviour { public GameObject andy; //CG(Andy)を扱う変数 void Start () { } void Update () { //タップの検出 //タップした画面の座標と3D空間座標の対応付け //Andyをその位置に置く } }
65.
スクリプトの記述 void Update ()
{ //タッチしていないならreturn if (Input.touchCount < 1 ){ return; } Touch touch = Input.GetTouch(0); //画面をなぞっていなければreturn if (touch.phase != TouchPhase.Moved ){ return;} //タップした座標にAndyを移動。 TrackableHit hit; TrackableHitFlags filter = TrackableHitFlags.PlaneWithinPolygon; Frame.Raycast(touch.position.x, touch.position.y, filter, out hit) } touch.position hit Moved→画面をなぞる 平面を構成するポリゴンの 内側をタップ判定の対象に
66.
スクリプトの記述 void Update ()
{ //タッチしていないならreturn if (Input.touchCount < 1 ){ return; } Touch touch = Input.GetTouch(0); //画面をなぞっていなければreturn if (touch.phase != TouchPhase.Moved ){ return;} //タップした座標にAndyを移動。 TrackableHit hit; TrackableHitFlags filter = TrackableHitFlags.PlaneWithinPolygon; if(Frame.Raycast(touch.position.x, touch.position.y, filter, out hit) ) { //Andyの3D座標を指定するコードを記述(次頁) } } touch.position hit Moved→画面をなぞる 平面を構成するポリゴンの 内側をタップ判定の対象に
67.
スクリプトの記述 if (Frame.Raycast(touch.position.x, touch.position.y,
filter, out hit)) { //平面にヒットしたならAndyを置く if (hit.Trackable is DetectedPlane) { //Andyの位置・姿勢を指定 andy.transform.position = hit.Pose.position; andy.transform.rotation = hit.Pose.rotation; andy.transform.Rotate(0, 180, 0, Space.Self); //Anchorを設定 var anchor = hit.Trackable.CreateAnchor(hit.Pose); andy.transform.parent = anchor.transform; } } ※Anchor設定は指を離したときだけで十分。今回はコード量を減らすため同時に行っている
68.
スクリプトとGameObjectのAndyの対応付け ②AndyGreenDiffuse ①Controller ③PutScriptのAndy にドラッグ&ドロップ
69.
動作確認
70.
Next:空間ドローイング
71.
その前にCtrl+Sで現状を保存
72.
下準備 (1/6) Sample1を選択し、Ctrl +D
73.
下準備 (2/6) ②ファイル名をそれぞれsample2に変更①sample2
74.
下準備 (3/6) ①sample2.unityをダブルクリック ②sample2になったことを確認
75.
下準備 (4/6) ①ARCoreDevice ②sample2.asset ③Session Configに ドラッグ&ドロップ
76.
下準備 (5/6) Andy Dffuseを削除
77.
下準備 (6/6) ①Controller ②PutScript右の ③Remove Component
78.
平面認識機能が働くことを確認
79.
TrailRendererを用いた線描画 ①右クリック ②Create Empty
80.
TrailRendererを用いた線描画 ①GameObject ②Add Component
81.
TrailRendererを用いた線描画 Trailと入力 【Trail Renderer】 ■Material 前半で作ったマテリアル をElementに追加 ■Time Infinityに変更 ■MinVertexDistance 0.03 ■Width 0.01 Trail Rendererを ダブルクリック
82.
TrailRendererを用いた線描画 ShaderをSprites/Defaultに変更 ①GameObject
83.
動作確認 ①Scene GameObjectをマウスで移動すると軌跡が残る ②GameObject
84.
TrailRendererを用いた線描画 ②GameObject ①Sample2 ③ドラッグ&ドロップ
85.
TrailRendererを用いた線描画 GameObject削除
86.
TrailRendererを用いた線描画 ①Controller ②AddComponent
87.
TrailRendererを用いた線描画 ①New Script ③Create and
Add ②DrawScript
88.
TrailRendererを用いた線描画 ①Controller ②DrawScriptを ダブルクリック
89.
スクリプトの記述 using System.Collections; using System.Collections.Generic; using
UnityEngine; using GoogleARCore; public class DrawScript : MonoBehaviour { public GameObject obj; //軌跡を描くオブジェクトの元データ GameObject drawObj; //実際の軌跡描画に使うオブジェクト void Start () { } void Update () { //タップの検出 //タップ開始時に線を描くオブジェクトを生成 //その後はスマホの位置にオブジェクトを追従させて線描画 } }
90.
スクリプトの記述 void Update ()
{ if (Input.touchCount == 1) { //カメラ手前10cmの位置を取得 Vector3 p = Camera.main.transform.TransformPoint(0,0,0.1f); //タッチスタート if ( Input.GetTouch(0).phase == TouchPhase.Began) { drawObj = GameObject.Instantiate(obj, p, Quaternion.identity); } //押下中 else if (Input.GetTouch(0).phase == TouchPhase.Stationary){ drawObj.transform.position = p; } } }
91.
変数とCGの対応付け ②Controller ①Sample2 ④Objにドラッグ&ドロップ ③GameObject
92.
動作確認
93.
線を消す List<GameObject> lines =
new List<GameObject>(); void Update () { if (Input.touchCount == 1) {//カメラ手前10cmの位置を取得 Vector3 p = Camera.main.transform.TransformPoint(0,0,0.1f);//タ if ( Input.GetTouch(0).phase == TouchPhase.Began) { drawObj = GameObject.Instantiate(obj, p, Quaternion.identity); GameObject tmp = GameObject.Instantiate(obj, p, Quaternion.identity); lines.Add(tmp); drawObj = tmp; } //押下中 else if (Input.GetTouch(0).phase == TouchPhase.Stationary){ drawObj.transform.position = p; } } }
94.
線を消す void Update ()
{ if (Input.touchCount == 1) { //線の描画をする/カメラ手前10cmの位置を取得 } else if (Input.touchCount == 2) { if (Input.GetTouch(0).phase == TouchPhase.Ended) { for(int i = 0; i < lines.Count; i++) { Destroy(lines[i]); lines[i] = null; } lines.Clear(); } } }
95.
Next:顔認識(Augmented Faces)
96.
Next Step その前にCtrl+Sで現状を保存
97.
下準備 (1/6) Sample2を選択し、Ctrl +D
98.
下準備 (2/6) ②ファイル名をそれぞれsample3に変更①sample3
99.
下準備 (3/6) ①sample3.unityをダブルクリック ②sample3になったことを確認
100.
下準備 (4/6) ①ARCoreDevice ②sample3.asset ③Session Configに ドラッグ&ドロップ
101.
下準備 (5/6) GameObject削除
102.
下準備 (6/6) Controllerを削除
103.
フロントカメラを使用 ①ARCoreDevice ②Device Camera Direction をFront
Facingに変更
104.
顔認識を許可 ②sample3.asset①sample3 ③Augmented Face Mode
105.
顔にメッシュを貼り付ける ②CreateEmpty ①右クリック
106.
顔にメッシュを貼り付ける GameObjectの名前をFaceMeshに変更
107.
顔にメッシュを貼り付ける ①FaceMesh ②Add Component
108.
顔にメッシュを貼り付ける ①Faceで検索 ②ARCore Augmented Face Mesh
Filter
109.
顔にメッシュを貼り付ける Auto Bindをオン ※検出した顔に自動的にメッシュをアタッチする
110.
メッシュの見た目の設定 ①FaceMesh ②Add Coponent
111.
メッシュの見た目の設定 ②Mesh ③MeshRenderer ①消す
112.
メッシュの見た目の設定 ①Sample3 ③Create ②右クリック ④Material
113.
メッシュの見た目の設定 NewMaterialができていればOK
114.
Augmented Faces ②NewMaterial ①FaceMesh ②Materials内のElement0にドラッグ&ドロップ
115.
動作確認
116.
顔メッシュにテクスチャ画像を適用 ③Texture ※Transparentを選べば 透過画像も使用可能 ②Unlit ①Shader
117.
顔メッシュにテクスチャ画像を適用 ③ドラッグ&ドロップ ①Sampleフォルダ ①Sample3
118.
顔メッシュにテクスチャ画像を適用 ①NewMaterial
119.
顔メッシュにテクスチャ画像を適用 ②ドラッグ&ドロップ ①Mesh
120.
動作確認 & Memo マス目と出力結果を見比べれば顔の中の位置とのおよその対応付けが可能
121.
顔のパーツの位置情報を使用 FOREHEAD_LEFT FOREHEAD_RIGHT NOSE_TIP 今のところ、取得できるのはFOREHEAD_LEFT/RIGHTとNOSE_TIPの3点
122.
顔のパーツの位置情報を使用 ②CreateEmpty ①右クリック
123.
顔のパーツの位置情報を使用 ①GameObjectの名前をFacePartsに変更
124.
顔のパーツの位置情報を使用 ①FaceParts ②Add Compornent
125.
顔のパーツの位置情報を使用 ①Faceで検索 ②ARCore Augmented Face Rig
126.
顔のパーツの位置情報を使用 ①Auto Bind
127.
顔のパーツの位置情報を使用 ①FacePartsを開く ②NOSE_TIP,FOREHEAD_LFT/RIHGT が追加されていることを確認
128.
顔のパーツの位置情報を使用 ①NOSE_TIPを右クリック ②3D Object ③Sphere
129.
顔のパーツの位置情報を使用 ①Sphere ②Transformを編集 Position: 全て 0 Scale:
全て 0.04
130.
顔のパーツの位置情報を使用 同じ要領でFOREHEADの RIGHTとLEFTの子要素にも Sphereを追加
131.
顔のパーツの位置情報を使用
132.
パーツの位置の調整 ① FOREHEAD_LEFT の子要素のSphereを選択 ② PositionのY=-0.04
133.
パーツの位置の調整 ① FOREHEAD_RIGHT の子要素のSphereを選択 ② PositionのY=-0.04
135.
今日の内容 Googleが提供する次世代ARプラットフォーム。普通のスマホでマーカーレスARを実現。 【主要機能】 (1) 自己位置推定 (Motion
Tracking) (2) 平面認識 (Environmental Understanding) (3) 明るさ推定 (Light Estimation) (4) マーカー認識 (Augmented Image) (5) 空間共有 (Cloud Anchor) (6) 顔認識 (Augmented Faces) ← New!
136.
Fin.