Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Hapticをカスタマイズしてみよう / ZOZO Tech Talk #6 Customiz...
Search
M"e
May 16, 2022
Programming
2.7k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Hapticをカスタマイズしてみよう / ZOZO Tech Talk #6 Customize Haptic
M"e
May 16, 2022
More Decks by M"e
See All by M"e
UIViewで光の三原色の混ざり合いを表現したい / potatotips 75 Blend Mode
endoumari
1
400
文字列をコピーできるスクリーンショットを作る/iOSDC 2020 LT PDF
endoumari
3
5.8k
ZOZOが採用しているiOSのアーキテクチャについて/zozo-tech-meetup8-ios-architecture
endoumari
0
2.8k
Dribbbleで見つけたコンセプトデザインを実装/potatotips-56-concept-design
endoumari
2
740
iOSエンジニアが悩んだUpボタンについて / 2017 potatotips 45 Up Button
endoumari
1
1.3k
URLエンコードされた Shift_JISのデコードについて / iOSDC 2017 LT SJIS decode
endoumari
1
6.2k
Other Decks in Programming
See All in Programming
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
170
その節約、円になってますか?
isamumumu
1
640
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
150
Google Apps Script で Ruby を動かす
kawahara
0
120
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
180
Claude Team Plan導入・ガイド
tk3fftk
0
250
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
190
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
290
Foundation Models frameworkで画像分析
ryodeveloper
1
320
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
630
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
180
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
130
Featured
See All Featured
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Done Done
chrislema
186
16k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
420
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
650
Context Engineering - Making Every Token Count
addyosmani
9
1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Marketing to machines
jonoalderson
1
5.6k
Producing Creativity
orderedlist
PRO
348
40k
Rails Girls Zürich Keynote
gr2m
96
14k
Writing Fast Ruby
sferik
630
63k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
Transcript
HapticΛΧελϚΠζͯ͠ΈΑ͏ גࣜձࣾZOZO ZOZOTOWN։ൃຊ෦ ZOZOTOWNΞϓϦ෦ iOSϒϩοΫ ԕ౻ ສཬ Copyright © ZOZO,
Inc. 1
© ZOZO, Inc. גࣜձࣾZOZO ZOZOTOWN։ൃຊ෦ ZOZOTOWNΞϓϦ෦ iOSϒϩοΫ ԕ౻ ສཬ Twitter:@re___you
#ZOZOTOWN iOSΞϓϦ։ൃ୲👩💻 #վળ׆ಈͯ͠·͢🛠 #࠷ۙങͬͯΑ͔ͬͨͷApple Watch⌚ 2
© ZOZO, Inc. 3 ࠓͷςʔϚ
© ZOZO, Inc. 4 HapticΛΧελϚΠζͯ͠ΈΑ͏
© ZOZO, Inc. 5 Apple WatchΛ͚͍ͭͯͨΒHapticͷόϦΤʔγϣϯʹؾ͍ͮͨ ☀ ىচΞϥʔϜ ಓҊͷࠨӈͷ ਐߦํ
ϚεΫ࣌ͷ iPhoneͷղআ 🔓 ώμϦɾɾɾώμϦɾɾɾώμϦ ϛΪϛΪϛΪϛΪϛΪϛΪ Χνο ͱͱΜɺͱͱΜɺͱͱΜ
© ZOZO, Inc. 6 Core HapticsొͰ Hapticͷදݱ্
© ZOZO, Inc. 7 Core Hapticsʹ͍ͭͯ
© ZOZO, Inc. 8 UIFeedbackGeneratorͱCore Haptics UIFeedbackGenerator Core Haptics •
iOS 10 ~ • ܾΊΒΕͨHapticύλʔϯͷΈ ࠶ੜՄೳ • ZOZOTOWN͓ؾʹೖΓͱ͔Ͱ ͬͯΔ • iOS 13 ~ • HapticύλʔϯΛΧελϚΠζͰ͖Δ
© ZOZO, Inc. 9 Core HapticsͷΧελϚΠζཁૉ ԻΛ࠶ੜ(.wav) ৮֮
© ZOZO, Inc. 10 Core HapticsͷΧελϚΠζͱ ৮֮ɺԻΛΈ߹Θͤͯ 1ͭͷύλʔϯΛ࡞Δ͜ͱ
© ZOZO, Inc. Core Hapticsͷׂ • Haptic ίϯςϯπͷ࡞ • CHHapticEvent:
৮֮ɺԻ • CHHapticEventParameter: CHHapticEventͷύϥϝʔλʔ • CHHapticPattern: CHHapticEventΛΈ߹Θͤͨͷ • Hapticͷ࠶ੜ • CHHapticPlayer: CHHapticPatternΛ࠶ੜ • CHHapticEngine: CHHapticPlayerΛ࡞ 11
© ZOZO, Inc. 12 Core Hapticsͷίϯςϯπߏ https://developer.apple.com/videos/play/wwdc2019/520 WWDC 2019 520
Introducing Core HapticsΑΓ
© ZOZO, Inc. 13 Core HapticsͰઃఆͰ͖Δ2छྨͷ৮֮ τϯο ϰΡʔʔʔʔʔʔʔʔ https://developer.apple.com/videos/play/wwdc2019/810 Designing
Audio-Haptic ExperiencesΑΓ
© ZOZO, Inc. 14 Core HapticsͰઃఆͰ͖Δ2छྨͷ৮֮ τϯο ϰΡʔʔʔʔʔʔʔʔ - durationΛઃఆͰ͖Δ
- duration͕0ͩͱHaptic͕࠶ੜͰ͖ͳ͍ - durationͷઃఆͳ͍ Designing Audio-Haptic ExperiencesΑΓ
© ZOZO, Inc. TransientͷCHHapticEventParameter 15 Haptic Intensity Haptic Sharpness 0
1 1 ߗ͍ײ͡ ॊΒ͔͍ײ͡
© ZOZO, Inc. ContinuousͷCHHapticEventParameter 16 Haptic Intensity Haptic Sharpness ;ΜΘΓৼಈΛײ͡Δ
͖ͬΓͱৼಈΛײ͡Δ
© ZOZO, Inc. ԻͷCHHapticEventParameter 17 • audioVolume • audioPitch •
audioPan • audioBrightness
© ZOZO, Inc. Hapticͷ࠶ੜ https://developer.apple.com/documentation/corehaptics/chhapticengine HapticίϯςϯπΛ࡞ CHHapticEngineͷυΩϡϝϯτΑΓ
© ZOZO, Inc. 19 Engine४උ class ViewController: UIViewController { //
࠶ੜதʹ։์͞Εͳ͍Α͏ʹϝϯόมʹ͢Δ private let engine: CHHapticEngine! override func viewDidLoad() { super.viewDidLoad() // engineinitviewDidLoad()ͳͲͷૣ͍λΠϛϯάͰ࡞ engine = try! CHHapticEngine(audioSession: AVAudioSession.sharedInstance()) try! engine.start() } }
© ZOZO, Inc. 20 Hapticίϯςϯπ࡞ // Transient Event let transientEvent
= CHHapticEvent(eventType: .hapticTransient, parameters: [ CHHapticEventParameter(parameterID: .hapticIntensity, value: 0.3), CHHapticEventParameter(parameterID: .hapticSharpness, value: 0.3)], relativeTime: 0.2) // Audio Event let audioResourceID = try! engine.registerAudioResource(resourceURL) let audioEvent = CHHapticEvent(audioResourceID: audioResourceID, parameters: [CHHapticEventParameter(parameterID: .audioVolume, value: 0.3)], relativeTime: 0) do { // ΠϕϯτΛͱʹHapticύλʔϯΛ࡞ let pattern = try CHHapticPattern(events: [transientEvent, audioEvent], parameters: []) } catch let error {ɾɾɾ}
© ZOZO, Inc. 21 Haptic࠶ੜ do { let pattern =
try CHHapticPattern(events: [event, audioEvent], parameters: []) let player = try engine.makePlayer(with: pattern) try player?.start(atTime: CHHapticTimeImmediate) } catch let error {ɾɾɾ}
© ZOZO, Inc. 22
© ZOZO, Inc. 23 ΧελϚΠζΛߟ͑ͯΈΔ
© ZOZO, Inc. 24 ʮΛΧʔτʹೖΕΔʯ ࣌Λߟ͑ͯΈΔ ϦϦʔε͠ͳ͍Α ͋͘·Ͱ࣮ݧͶ 👆
© ZOZO, Inc. 25 ʮΛΧʔτʹೖΕΔʯ ࣌Λߟ͑ͯΈΔ ϦϦʔε͠ͳ͍Α ͋͘·Ͱ࣮ݧͶ 👆
© ZOZO, Inc. 26 Designing Audio-Haptic Experiences https://developer.apple.com/videos/play/wwdc2019/810/
© ZOZO, Inc. 27 Appleͷࣄྫ https://developer.apple.com/videos/play/wwdc2019/810/
© ZOZO, Inc. 28 Appleͷࣄྫ Apple Watch ཉ͍͠ɾɾɾ https://developer.apple.com/videos/play/wwdc2019/810/
© ZOZO, Inc. 29 HapticsΛઃܭ͢Δͷʹॏཁͳ3ͭͷ͜ͱ ௐੑ ҼՌؔ ࣮༻ੑ
© ZOZO, Inc. 30 ҼՌؔ ඞཁͳ͜ͱ • ԿʹΑͬͯࣄ͕ى͖͔ͨ໌֬ʹ͢Δ ͳͥඞཁͳͷ͔ •
ҼՌ͕ؔ߹Θͳ͍ͱҧײΛײ͡Δ
© ZOZO, Inc. 31 ҼՌؔ Designing Audio-Haptic ExperiencesΑΓ ྫ) αοΧʔϘʔϧΛऽͬͨͱ͖ͷԻ͕ҧ͏ͱҧײ͕͋Δ
https://developer.apple.com/videos/play/wwdc2019/810/
© ZOZO, Inc. 32 ௐੑ ඞཁͳ͜ͱ • ࢹ֮(Ξχϝʔγϣϯ)ɺௌ֮(Ի)ɺ৮֮ΛҰகͤ͞Δ ͳͥඞཁͳͷ͔ •
ௐ่͕ΕΔͱମݧ͕ଛͳΘΕΔ • ྫ) αοΧʔϘʔϧΛऽΔલʹ৮͕֮ൃੜ͢Δ
© ZOZO, Inc. 33 ࣮༻ੑ ඞཁͳ͜ͱ • ΞϓϦέʔγϣϯͷମݧ͕࣮֬ʹ্͢ΔՕॴʹಋೖ͢Δ ͳͥඞཁͳͷ͔ •
HapticΛՃ͗͢͠Δͱཁ͕բΉ
© ZOZO, Inc. 34 ·ͣΧελϚΠζΛߟ͑Δ্Ͱେࣄͳ͜ͱ https://developer.apple.com/videos/play/wwdc2019/810 ৮֮ɺԻ͕ ͦΕΒ͍͜͠ͱ
© ZOZO, Inc. 35 ΛΧʔτʹೖΕΔ࣌ͷ ৮֮ͷͦΕΒ͠͞ͱʁ
© ZOZO, Inc. 36 https://developer.apple.com/videos/play/wwdc2019/810 ϙϯ ৮͕֮ͦΕΒ͍͠ͱʁ
© ZOZO, Inc. 37 https://developer.apple.com/videos/play/wwdc2019/810 ϙϯ ৮͕֮ͦΕΒ͍͠ͱʁ ୯ൃతͳ৮͕֮1
© ZOZO, Inc. 38 https://developer.apple.com/videos/play/wwdc2019/810 ৮͕֮ͦΕΒ͍͠ͱʁ βοβοβο
© ZOZO, Inc. 39 https://developer.apple.com/videos/play/wwdc2019/810 ৮͕֮ͦΕΒ͍͠ͱʁ βοβοβο ܧଓతͳ৮֮ or ୯ൃతͳ৮͕֮ෳճ
© ZOZO, Inc. 40 https://developer.apple.com/videos/play/wwdc2019/810 ৮͕֮ͦΕΒ͍͠ͱʁ Ψγϟʔϯ ͺΓʔΜ ऑ͍ ~
த͘Β͍ͷ৮֮ ڧ͍৮֮
© ZOZO, Inc. 41 https://developer.apple.com/videos/play/wwdc2019/810 ৮͕֮ͦΕΒ͍͠ͱʁ ΘΒ͔͍৮֮ Ӷ͍৮֮ ΅;ͬ Ψπϯ
© ZOZO, Inc. 42 ৮֮Իࡐ࣭ͱؔ࿈͕͋Γͦ͏
© ZOZO, Inc. 43 ͕͔͜͜Ε৮֮Λ ܾΊ͘͢Γͦ͏ ৮֮Իࡐ࣭ͱؔ࿈͕͋Γͦ͏
© ZOZO, Inc. 44 ΛΧʔτʹೖΕΔ࣌ ͲΜͳԻ͕͢ΔͩΖ͏͔ʁ
© ZOZO, Inc. 45 • ାʹٵ͍ࠐ·ΕΔγϡοͬͯԻ • ϋϯΨʔˠˠΧʔτ(͔͝?)ɺʹ͋ͨΔͱ͢Εɺΰοͱ͔ίϯ ʹͳΔ •
Ϙϑοͯײ͡ • ͷ͜͢ΕΔԻ͔ͳ͋ʮγϡοʯͬͯײ͡ • ͕མͪͨԻ͔ͳ • ϙϑͬײʢϘϑΑΓϙϑʣ • ચ୕ΧΰʹҥྨΛೖΕΔΑ͏ͳʮόαοʯͱ͍͏ײ͡ νʔϜϝϯόʔʹҙݟΛฉ͍ͯΈͨ
© ZOZO, Inc. 46 • ାʹٵ͍ࠐ·ΕΔγϡοͬͯԻ • ϋϯΨʔˠˠΧʔτ(͔͝?)ɺʹ͋ͨΔͱ͢Εɺΰοͱ͔ίϯ ʹͳΔ •
Ϙϑοͯײ͡ • ͷ͜͢ΕΔԻ͔ͳ͋ʮγϡοʯͬͯײ͡ • ͕མͪͨԻ͔ͳ • ϙϑͬײʢϘϑΑΓϙϑʣ • ચ୕ΧΰʹҥྨΛೖΕΔΑ͏ͳʮόαοʯͱ͍͏ײ͡ νʔϜϝϯόʔʹҙݟΛฉ͍ͯΈͨ
© ZOZO, Inc. 47 ୯ൃతͳ৮͕֮߹͍ͦ͏
© ZOZO, Inc. 48 ΧʔτʹೖΕΔԻΛ࠶ݱͯ͠ΈΑ͏ • ϋϯΨʔʹ͔͔ͬͨγϟπ • ΧʔτʹೖΕΔಈ࡞ ڥ
© ZOZO, Inc. 49 ΧʔτʹೖΕΔԻΛ࠶ݱͯ͠ΈΑ͏ • ϋϯΨʔʹ͔͔ͬͨγϟπ • ΧʔτʹೖΕΔಈ࡞ ڥ
γϡοɺΧϯʁ Χϯʁ
© ZOZO, Inc. 50 ԻΛݟͯΈΑ͏
© ZOZO, Inc. 51
© ZOZO, Inc. 52 • 2ͭͷԻ͕ͳ͍ͬͯΔ • খ͍͞Իͱେ͖ͳԻ • ҥࡲΕˠϋϯΨʔ
Իͨ͠Իͷܗ
© ZOZO, Inc. 53 ԻΛࢀߟʹߟ͑Δͱ • ୯ൃతͳ৮֮ • খ͘͞ॊΒ͔͍৮֮ →
1ճΑΓେ͖͘Ӷརͳ৮֮
© ZOZO, Inc. 54
© ZOZO, Inc. 55 Χʔτʹ͕ೖͬͨ ײ֮ͬΆ͍ؾ͕͢Δ
© ZOZO, Inc. 56 ৮֮Λߟ͑Δͷʹ ԻඇৗʹࢀߟʹͳΔ
© ZOZO, Inc. 57 ·ͱΊ • ΧελϚΠζʹCore HapticsΛ͏ • HapticͷઃܭʹʮҼՌؔʯʮௐੑʯʮ࣮༻ੑʯ͕ॏཁ
• ৮֮ԻΛࢀߟʹ͢ΔͱܾΊ͍͢
© ZOZO, Inc. 58 HapticΛΧελϚΠζ͠Α͏ʂ
None
None
None
None
None