---
title: LIFULL HOME‘S App Night #AR 最速対応をした間取り計測の秘話
tags:  #ar #arkit #home&#039;s #human interface guidelines #lifull #ux #アプリ開発 #エンジニア #テクノロジー  
author: [株式会社LIFULL](https://convert.docswell.com/user/LIFULL)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/DK74LPQR71.jpg?width=480
description: 「LIFULL HOME&#039;S App Night」 講演者：エンジニア 又来 ※同イベントは、株式会社LIFULLが主催するLIFULL HOME&#039;S アプリについて知見や情報を共有するイベントです。   私たちLIFULLはiOS11から追加されたARKitをLIFULL HOME&#039;Sアプリに追加し、iOS11リリースと同時に最速リリースしました。   その後、App Storeの特集枠・Today枠への掲載をはじめ、ARKit事例として複数のWebメディアに取り上げられました。  ノンゲーム会社がARプロジェクトの発足から企画・デザイン・開発〜リリースまでに、どんなことをしたのか、UXってなんだろう？を軸に、企画開発に関わった各職種メンバーが語った登壇資料となります。   ・どういう視点でUXを設計したらよいか悩んでいる  ・iOSの新機能を取り入れたいけど、機能的に追加するだけじゃなくて良いユーザー体験を提供したい  ・興味あるけどARアプリ開発ってどんな感じ？  ・UXを意識したARアプリを作りたいっ！  ・肝心なモデルとかってどんな感じに作っているの？  ・実際にARアプリをリリースしている人の話が聞きたい
published: March 14, 18
canonical: https://convert.docswell.com/s/LIFULL/K2WRE5-%E6%9C%80%E9%80%9F%E5%AF%BE%E5%BF%9C%E3%82%92%E3%81%97%E3%81%9F%E9%96%93%E5%8F%96%E3%82%8A%E8%A8%88%E6%B8%AC%E3%81%AE%E7%A7%98%E8%A9%B1
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/DK74LPQR71.jpg)

&quot;3࠷଎ରԠΛͨؒ͠औΓ‫ܭ‬ଌͷൿ࿩
‫ࣜג‬ձࣾ-*&#039;6-৽69։ൃ෦σόΠειϦϡʔγϣϯ෦
։ൃάϧʔϓ
ຢདྷ‫܆‬


# Page. 2

![Page Image](https://bcdn.docswell.com/page/PLJ1L9PVJG.jpg)

ࣗ‫঺ݾ‬հ
w‫ࣜג‬ձࣾ-*&#039;6--
wຢདྷ‫ͨ ܆‬Β͓ 
wJ04&amp;OHJOFFS
wझຯͰਫӭ
w‫ܦ‬ӦֶΛઐ߈
w.VTJD&#039;FT🎉


# Page. 3

![Page Image](https://bcdn.docswell.com/page/8GJWVQ2372.jpg)

ΞδΣϯμ
ARKitͷ͓͞Β͍
ௐ͔ࠪΒ։ൃ·Ͱ
‫ܭ‬ଌͷ࿩
‫ํͤݟ‬
NGஊ


# Page. 4

![Page Image](https://bcdn.docswell.com/page/W4EZ4WDG73.jpg)

&quot;3,JUͷ͓͞Β͍
Ͱ͖Δ͜ͱ։ൃ౰࣌

w ฏ໘‫ݕ‬ग़ˑ
w ϙδγϣϯτϥοΩϯά

w ϙΠϯτΫϥ΢υ ࣍‫Ͱ্ݩ‬ͷ࠲ඪ‫ݕ‬ग़
w पғͷ໌Δ͞ਪఆ

w ‫΁ۭ࣮ؒݱ‬ͷ౰ͨΓ൑ఆ




# Page. 5

![Page Image](https://bcdn.docswell.com/page/KY763G1Q7V.jpg)

&quot;3,JUͷ͓͞Β͍
Ͱ͖ͳ͍͜ͱ

w ‫࣮ݱ‬ͷ෺ମͷԞʹӅΕΔ͜ͱ͕Ͱ͖ͳ͍

w ۭؒશମͷઈରҐஔ೺Ѳ͕೉͍͠

w ‫ۭ࣮ؒݱ‬ͷҐஔͱͷؔ࿈͚ͮ˞‫ݶ‬ఆత
w ϚʔΧʔτϥοΩϯά



# Page. 6

![Page Image](https://bcdn.docswell.com/page/5G75LV42E4.jpg)

ௐ͔ࠪΒ։ൃ·Ͱ


# Page. 7

![Page Image](https://bcdn.docswell.com/page/V9J2L3V17R.jpg)

ެࣜͷαϯϓϧΞϓϦΛࢼ͠ͳ͕Βௐࠪ
ॳΊͯಈ͔ͨ࣌͠͸ʮ͛͢ʔ!!ʯͷҰ‫ݴ‬
ͱʹ͔͘ฏ໘ʹ෺Λஔ͘࢓૊ΈΛௐࠪͨ͠


# Page. 8

![Page Image](https://bcdn.docswell.com/page/5DEYQ1347M.jpg)

࠲ඪ΋؆୯ʹऔಘͰ͖ͨ
/// ‫ੈ࣮ݱ‬քͷ࠲ඪʹม‫׵‬
///
/// - Parameter screenPosition: CGPoint
/// - Returns: SCNVector3
func realWorldVector(screenPosition: CGPoint) -&gt; SCNVector3? {
let results = self.hitTest(screenPosition, types: [.existingPlane])
// Χϝϥʹ͍ۙॱͷ഑ྻ͕औಘͰ͖Δ
guard let result = results.first else {
return nil
}
// SCNVector3
return SCNVector3.positionFromTransform(result.worldTransform)
}


# Page. 9

![Page Image](https://bcdn.docswell.com/page/2VJNK2V6J8.jpg)

&quot;3,JUͰ࠲ඪΛऔಘͯ͠4DFOF,JUͰදࣔ
ARKitͰऔಘͨ͠࠲ඪΛ‫ʹݩ‬Φ
ϒδΣΫτΛ഑ஔ
•
ARͰΦϒδΣΫτΛѻ͏ࡍ
ɾ3Dͷ৔߹ → ARSCNView (AR + SceneKit)
ɾ2Dͷ৔߹ → ARSKView (AR + SpriteKit)


# Page. 10

![Page Image](https://bcdn.docswell.com/page/GYE9V16RJ3.jpg)

‫ܭ‬ଌͷ࿩


# Page. 11

![Page Image](https://bcdn.docswell.com/page/5GE8P4ZGED.jpg)

চͷ্ʹઢΛҾ͘
w ը໘தԝͷচ্ͷ࠲ඪΛऔಘ
w औಘͨ͠࠲ඪʹ఺/PEFΛ௥Ճ
w ྡΓ߹͏఺ಉ࢜Λ‫͙ܨ‬ઢ/PEFΛ௥Ճ
w ࠲ඪʹ޲͔ͬͯϗʔϜζ͘Μ͕૸Δ
ϦΞϧλΠϜʹઢΛҾ࣮͘૷ྫ
• https://github.com/levantAJ/Measure


# Page. 12

![Page Image](https://bcdn.docswell.com/page/MLEL16DXER.jpg)

໘ੵͷ‫ࢉܭ‬
w ଟ֯‫ܗ‬ͷ໘ੵ͸֤఺ͷ࠲ඪΛ࢖ͬͯ‫ࢉܭ‬


# Page. 13

![Page Image](https://bcdn.docswell.com/page/54JMW5P3EW.jpg)

ؒऔΓਤͷ࡞੒
w
̍఺໨ͱ̎఺໨Λͭͳ͙ลΛਫฏʹͳΔΑ͏ʹ࠲ඪΛճస
w
ϑϩʔϦϯάͷը૾Λෑ͖٧ΊͯؒऔΓΒ͠͞Λද‫ݱ‬
ɹɹɹɹ˞ॳ‫ظ‬ͷը૾
ɹɹɹɹ܏͍ͨؒऔΓʹͳͬͯ͠·ͬͨ


# Page. 14

![Page Image](https://bcdn.docswell.com/page/ZPJRY31RE9.jpg)

ؒऔΓ‫ܭ‬ଌ·Ͱͷ·ͱΊ
‫ܭ‬ଌͷ࢓ํ
ؒऔΓͷ‫ࢉܭ‬Λߦ͏ͨΊʹ͸ɺ‫ੈ࣮ݱ‬քͷ࠲ඪΛऔಘͯͦ͠ͷ࠲ඪΛ؅ཧ͢Δඞཁ͕͋Δ
˞‫ܭ‬ଌͷํ๏ʹ͸͍͔ͭ͘ͷλΠϓ͕͋ΔͷͰ஫ҙ
‫ܭ‬ଌͷྲྀΕ
‫ͨݟ‬໨ଆͷॲཧ͸&quot;3,JUͰ‫ܭ‬ଌ͸࠲ඪΛ‫ͯ͠ࢉܭʹݩ‬ඳ͍ࣸͯ͠Δ
 ฏ໘ͷೝࣝ
 λοϓͨ͠Օॴ ฏ໘ ͷ࠲ඪΛ‫ܭ‬ଌ
 ‫ܭ‬ଌͨ͠࠲ඪΛ‫ʹݩ‬໘ੵͱը૾Λ࡞੒


# Page. 15

![Page Image](https://bcdn.docswell.com/page/NPEXG4YY7X.jpg)

͋ͱ͸‫ʹ͚ͩํͤݟ‬஫ྗ


# Page. 16

![Page Image](https://bcdn.docswell.com/page/63EK4Z347D.jpg)

)VNBO*OUFSGBDF(VJEFMJOFT
w
Մೳͳ‫ݶ‬Γɺจ຺ͰώϯτΛఏ‫͢ڙ‬Δ
w
ࢦࣔςΩετΛදࣔ͢Δඞཁ͕͋Δ৔߹͸ɺ਌͠Έ΍͍͢༻‫ޠ‬Λ࢖༻͢Δ
w
໰୊͕ൃੜͨ͠৔߹͸ɺՄೳͳमਖ਼ҊΛ఻͑Δ
ϗʔϜζ͘Μͱͷର࿩Λॏࢹ


# Page. 17

![Page Image](https://bcdn.docswell.com/page/4L73LDGDJ5.jpg)

ৼΓฦΔΞΫγϣϯ
// ಛఆͷNodeʹରͯ͠޲͔ͤΔ͜ͱ΋Մೳ
let constraint = SCNLookAtConstraint(target: SCNNode)
constraint.isGimbalLockEnabled = true
textNode.constraints = [constraint]
স‫ৼͰإ‬ΓฦΔϗʔϜζ͘Μ͕ՄѪ͍☺


# Page. 18

![Page Image](https://bcdn.docswell.com/page/V87DNP12JG.jpg)

ಈ͖΍Ϟσϧɺද৘Λ૊Έ߹Θͤͯද‫ݱ‬
ΫϦεϚεόʔδϣϯ
௨ৗ࣌


# Page. 19

![Page Image](https://bcdn.docswell.com/page/4VJP5NQLJ8.jpg)

͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠


