LIFULL HOME‘S App Night #AR 最速対応をした間取り計測の秘話

>100 Views

March 14, 18

スライド概要

「LIFULL HOME'S App Night」 講演者:エンジニア 又来
※同イベントは、株式会社LIFULLが主催するLIFULL HOME'S アプリについて知見や情報を共有するイベントです。

私たちLIFULLはiOS11から追加されたARKitをLIFULL HOME'Sアプリに追加し、iOS11リリースと同時に最速リリースしました。

その後、App Storeの特集枠・Today枠への掲載をはじめ、ARKit事例として複数のWebメディアに取り上げられました。
ノンゲーム会社がARプロジェクトの発足から企画・デザイン・開発〜リリースまでに、どんなことをしたのか、UXってなんだろう?を軸に、企画開発に関わった各職種メンバーが語った登壇資料となります。

・どういう視点でUXを設計したらよいか悩んでいる
・iOSの新機能を取り入れたいけど、機能的に追加するだけじゃなくて良いユーザー体験を提供したい
・興味あるけどARアプリ開発ってどんな感じ?
・UXを意識したARアプリを作りたいっ!
・肝心なモデルとかってどんな感じに作っているの?
・実際にARアプリをリリースしている人の話が聞きたい

profile-image

LIFULL HOME'Sを運営する株式会社LIFULLのアカウントです。 LIFULLが主催するエンジニア向けイベント「Ltech」等で公開されたスライド等をこちらで共有しております。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

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

2.

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

3.

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

4.

"3,JUͷ͓͞Β͍ Ͱ͖Δ͜ͱ։ൃ౰࣌  w ฏ໘‫ݕ‬ग़ˑ w ϙδγϣϯτϥοΩϯά  w ϙΠϯτΫϥ΢υ ࣍‫Ͱ্ݩ‬ͷ࠲ඪ‫ݕ‬ग़ w पғͷ໌Δ͞ਪఆ  w ‫΁ۭ࣮ؒݱ‬ͷ౰ͨΓ൑ఆ  

5.

"3,JUͷ͓͞Β͍ Ͱ͖ͳ͍͜ͱ  w ‫࣮ݱ‬ͷ෺ମͷԞʹӅΕΔ͜ͱ͕Ͱ͖ͳ͍  w ۭؒશମͷઈରҐஔ೺Ѳ͕೉͍͠  w ‫ۭ࣮ؒݱ‬ͷҐஔͱͷؔ࿈͚ͮ˞‫ݶ‬ఆత w ϚʔΧʔτϥοΩϯά 

6.

ௐ͔ࠪΒ։ൃ·Ͱ

7.

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

8.
[beta]
࠲ඪ΋؆୯ʹऔಘͰ͖ͨ

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

9.

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

10.

‫ܭ‬ଌͷ࿩

11.

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

12.

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

13.

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

14.

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

15.

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

16.

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

17.

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

18.

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

19.

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