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
A-Frameでお手軽WebAR
Search
shinjism
July 30, 2017
Research
1
4.1k
A-Frameでお手軽WebAR
2017.7.22 ARコンテンツ作成勉強会 #AR_Fukuoka のハンズオン資料
2017.8.30 JSライブラリのアップデートに伴い資料を更新
shinjism
July 30, 2017
Tweet
Share
More Decks by shinjism
See All by shinjism
OpenCVでつくろうARスタンプアプリ for iOS
shinjism
0
130
ARコンテンツ作成勉強会:VuforiaでつくるスマホAR+VRアプリ
shinjism
0
720
個人的にお気に入りのVuforia公式サンプル #AR_Fukuoka
shinjism
0
92
日本語でおk?
shinjism
0
220
Other Decks in Research
See All in Research
VisFocus: Prompt-Guided Vision Encoders for OCR-Free Dense Document Understanding
sansan_randd
1
350
データサイエンティストをめぐる環境の違い 2024年版〈一般ビジネスパーソン調査の国際比較〉
datascientistsociety
PRO
0
780
文献紹介:A Multidimensional Framework for Evaluating Lexical Semantic Change with Social Science Applications
a1da4
1
230
言語処理学会30周年記念事業留学支援交流会@YANS2024:「学生のための短期留学」
a1da4
1
260
129 2 th
0325
0
250
Weekly AI Agents News! 8月号 論文のアーカイブ
masatoto
1
220
メタヒューリスティクスに基づく汎用線形整数計画ソルバーの開発
snowberryfield
3
620
Weekly AI Agents News! 9月号 論文のアーカイブ
masatoto
1
150
ニュースメディアにおける事前学習済みモデルの可能性と課題 / IBIS2024
upura
3
680
最近のVisual Odometryと Depth Estimation
sgk
1
310
[2024.08.30] Gemma-Ko, 오픈 언어모델에 한국어 입히기 @ 머신러닝부트캠프2024
beomi
0
800
尺度開発における質的研究アプローチ(自主企画シンポジウム7:認知行動療法における尺度開発のこれから)
litalicolab
0
360
Featured
See All Featured
Unsuck your backbone
ammeep
669
57k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
GraphQLとの向き合い方2022年版
quramy
44
13k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Into the Great Unknown - MozCon
thekraken
33
1.5k
Building Adaptive Systems
keathley
38
2.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
The Invisible Side of Design
smashingmag
298
50k
Designing for Performance
lara
604
68k
Automating Front-end Workflow
addyosmani
1366
200k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Transcript
"'SBNFͰ͓खܰ8FC"3 "3ίϯςϯπ࡞ษڧձ "3@'VLVPLB
ᶄ $MPOFPSEPXOMPBEΛΫϦοΫ ᶃ Լه63-ʹΞΫηε IUUQTHJUIVCDPNTIJOKJTN8FC"34BNQMF ᶅ %PXOMPBE;*1ΛΫϦοΫͯ͠μϯ ϩʔυͨ͠;*1ϑΝΠϧΛσεΫτοϓͳ Ͳͷ͔Γ͍͢ॴʹల։ ͡Ίʹ
d͜ͷࢿྉͰ༻͢Δσʔλͷμϯϩʔυ d
• 1$͔ΒΞΫηε 1$ଂ PS64#ଓͷ8FCΧϝϥ͕ඞཁ https://arjs-sample.glitch.me/ • εϚʔτϑΥϯ͔ΒΞΫηε ݱࡏɺҰ෦"OESPJEͷΈӾཡՄ ͪ͜Βͷ23ίʔυ͔Βˠ ࠓͷςʔϚ
dΠϝʔδΛମݧ͢Δ d
ࠓͷςʔϚ dΠϝʔδΛମݧ͢Δ d • 8FCΧϝϥ͕ىಈͨ͠Βӈͷ ϚʔΧʔʹ͔͟͢ • ίϯςϯπ͕දࣔ͞ΕͨΒٿ ·ͨμοΫΛΫϦοΫ͢Δ ˰
ٿͱμοΫ͕ճస • ಉ͘͡"3@'VLVPLBͷจࣈΛ ΫϦοΫ͢Δ ˰ 8FCϖʔδ͕։͘
࣍ d"'SBNFͷ֓ཁͱ։ൃ४උ d • ඞཁͳͷΛ֬ೝ͠Α͏ • "'SBNFͬͯͳʹʁ • ։ൃͷ४උΛ͠Α͏ •
͓͓͖͍͑ͯͨ͞ϙΠϯτ • ٿମΛදࣔ͠Α͏ • ը૾ΛషΓ͚Α͏ • %ϞσϧΛදࣔ͠Α͏ • ΞχϝʔγϣϯΛͬͯΈΑ͏ • ΠϯλϥΫγϣϯΛ͚ͭΑ͏ • "3ۭؒʹදࣔ͠Α͏ • %ςΩετΛදࣔ͠Α͏ • +BWB4DSJQUͰΠϯλϥΫγϣϯ
࣍ d73ฤ d • ඞཁͳͷΛ֬ೝ͠Α͏ • "'SBNFͬͯͳʹʁ • ։ൃͷ४උΛ͠Α͏ •
͓͓͖͍͑ͯͨ͞ϙΠϯτ • ٿମΛදࣔ͠Α͏ • ը૾ΛషΓ͚Α͏ • %ϞσϧΛදࣔ͠Α͏ • ΞχϝʔγϣϯΛͬͯΈΑ͏ • ΠϯλϥΫγϣϯΛ͚ͭΑ͏ • "3ۭؒʹදࣔ͠Α͏ • %ςΩετΛදࣔ͠Α͏ • +BWB4DSJQUͰΠϯλϥΫγϣϯ
࣍ d73ฤ d • ඞཁͳͷΛ֬ೝ͠Α͏ • "'SBNFͬͯͳʹʁ • ։ൃͷ४උΛ͠Α͏ •
͓͓͖͍͑ͯͨ͞ϙΠϯτ • ٿମΛදࣔ͠Α͏ • ը૾ΛషΓ͚Α͏ • %ϞσϧΛදࣔ͠Α͏ • ΞχϝʔγϣϯΛͬͯΈΑ͏ • ΠϯλϥΫγϣϯΛ͚ͭΑ͏ • "3ۭؒʹදࣔ͠Α͏ • %ςΩετΛදࣔ͠Α͏ • +BWB4DSJQUͰΠϯλϥΫγϣϯ
࣍ d73ฤ d • ඞཁͳͷΛ֬ೝ͠Α͏ • "'SBNFͬͯͳʹʁ • ։ൃͷ४උΛ͠Α͏ •
͓͓͖͍͑ͯͨ͞ϙΠϯτ • ٿମΛදࣔ͠Α͏ • ը૾ΛషΓ͚Α͏ • %ϞσϧΛදࣔ͠Α͏ • ΞχϝʔγϣϯΛͬͯΈΑ͏ • ΠϯλϥΫγϣϯΛ͚ͭΑ͏ • "3ۭؒʹදࣔ͠Α͏ • %ςΩετΛදࣔ͠Α͏ • +BWB4DSJQUͰΠϯλϥΫγϣϯ
࣍ d73ฤ d • ඞཁͳͷΛ֬ೝ͠Α͏ • "'SBNFͬͯͳʹʁ • ։ൃͷ४උΛ͠Α͏ •
͓͓͖͍͑ͯͨ͞ϙΠϯτ • ٿମΛදࣔ͠Α͏ • ը૾ΛషΓ͚Α͏ • %ϞσϧΛදࣔ͠Α͏ • ΞχϝʔγϣϯΛͬͯΈΑ͏ • ΠϯλϥΫγϣϯΛ͚ͭΑ͏ • "3ۭؒʹදࣔ͠Α͏ • %ςΩετΛදࣔ͠Α͏ • +BWB4DSJQUͰΠϯλϥΫγϣϯ
࣍ d"3ฤ d • ඞཁͳͷΛ֬ೝ͠Α͏ • "'SBNFͬͯͳʹʁ • ։ൃͷ४උΛ͠Α͏ •
͓͓͖͍͑ͯͨ͞ϙΠϯτ • ٿମΛදࣔ͠Α͏ • ը૾ΛషΓ͚Α͏ • %ϞσϧΛදࣔ͠Α͏ • ΞχϝʔγϣϯΛͬͯΈΑ͏ • ΠϯλϥΫγϣϯΛ͚ͭΑ͏ • "3ۭؒʹදࣔ͠Α͏ • %ςΩετΛදࣔ͠Α͏ • +BWB4DSJQUͰΠϯλϥΫγϣϯ
ඞཁͳͷΛ֬ೝ͠Α͏ ඞਢͷͷ • ϊʔτ1$ 8JO.BDͲͪΒͰ • 8FCΧϝϥ 1$ࡌ·ͨ64#ଓ • 8FC73Λαϙʔτͨ͠8FCϒϥβ
• 'JSFGPY IUUQTXXXNP[JMMBPSHKBGJSFGPYOFX • (PPHMF$ISPNF IUUQTXXXHPPHMFDPKQDISPNFCSPXTFSEFTLUPQJOEFYIUNM • )5.-ςΩετΛฤू͢ΔΤσΟλ • 'BDFCPPL·ͨ(JUIVCͷΞΧϯτ ͋Δͱخ͍͠ͷ • "OESPJE
"'SBNFͬͯͳʹʁ
"'SBNFͬͯͳʹʁ d"'SBNFͷ֓ཁ d • 8FCϒϥβ্Ͱಈ࡞͢Δ73ίϯςϯπ ͕खܰʹ࡞Ͱ͖ΔΦʔϓϯιʔεϑϨʔ ϜϫʔΫɻ • 8FC73ͱ͍͏༷ʹج͖ͮɺ8FCٕज़ )5.-ͱ+BWB4DSJQU
Ͱ73ίϯςϯπΛ ࡞ɻ • ಛผͳπʔϧෆཁɻ࠷ͰςΩετ ΤσΟλͱ8FC73ରԠͷ8FCϒϥβ 'JSFGPY(PPHMF$ISPNF ͕͋ΕՄɻ • )5$7JWFɺ0DVMVT3JGUͳͲଟͷ73 ϔουηοτΛαϙʔτɻ • ଞʹ1$ͪΖΜɺJ04"OESPJEͰ 73ίϯςϯπͷମݧ͕Մೳɻ
"'SBNFͬͯͳʹʁ d"'SBNFΛମݧͯ͠ΈΑ͏ d ᶃ "'SBNFͰݕࡧɺ·ͨɺ IUUQTBGSBNFJPʹΞΫηε ᶄ )FMMP8FC73ΛΫϦοΫ
"'SBNFͬͯͳʹʁ d"'SBNFΛମݧͯ͠ΈΑ͏ d υϥοάͰࢹ͕มΘΔɻ ্ԼࠨӈΩʔͰલޙࠨӈ ʹҠಈɻ શը໘දࣔ
"'SBNFͬͯͳʹʁ d"'SBNFΛମݧͯ͠ΈΑ͏ d &YBNQMFTͷத͔Β ͍Ζ͍ΖΫϦοΫମݧ
εϚʔτϑΥϯͰମݧͯ͠ΈΑ͏ J04"OESPJE "'SBNFͬͯͳʹʁ d"'SBNFΛମݧͯ͠ΈΑ͏ d
"'SBNFͬͯͳʹʁ d"'SBNFΛମݧͯ͠ΈΑ͏ d εϚϗͷ͖ υϥοάͰࢹ ͕มΘΔɻ εςϨΦදࣔ
"'SBNFͬͯͳʹʁ d"'SBNFͷυΩϡϝϯτ d ެࣜαΠτ • IUUQTBGSBNFJP ެࣜυΩϡϝϯτ • IUUQTBGSBNFJPEPDT ಈ࡞αϯϓϧू
• IUUQTBGSBNFJPFYBNQMFT ίϯϙʔωϯτू • IUUQTBGSBNFJPBGSBNFSFHJTUSZ • IUUQTHJUIVCDPNBGSBNFWSBXFTPNFBGSBNF
։ൃͷ४උΛ͠Α͏
։ൃͷ४උΛ͠Α͏ d(MJUDIͱ d )5.- +BWB4DSJQU ίʔσΟϯά ެ։ ಈ࡞֬ೝ Ξοϓϩʔυ ΤσΟλΠϯετʔϧ
αʔόڥߏங ᶃ ᶄ ᶅ ᶆ "'SBNF ίϯςϯπΛ ެ։͢Δ·Ͱ ௨ৗͷ߹ ख͕͔͔ؒΔʂ ͓͕͔͔ۚΔʂ
։ൃͷ४උΛ͠Α͏ d(MJUDIͱ d (MJUDIΛ͓͏ r (MJUDIͱ • 8FCϒϥβ্Ͱ؆୯ɾखܰʹ8FCΞϓϦ έʔγϣϯΛߏஙͰ͖Δແྉ ݱࡏ
ͷαʔϏεɻ • Πϯλʔωοτ্·ͨϩʔΧϧϚγϯ্ʹ αʔόڥΛߏஙͤͣͱ"'SBNFΞϓϦ ͷ࣮ߦ͕Մೳɻ • ίʔυΤσΟλΛඋ͓͑ͯΓɺଟ͘ͷαϯϓ ϧϓϩδΣΫτ͔ΒҙͷͷΛϦϛοΫε ίϐʔฤू ࣮ͯ͠ߦͰ͖Δɻ • (JUIVC·ͨ'BDFCPPLΞΧϯτ͕͋Ε ͙͢ʹར༻Մೳɻ • ϓϩδΣΫτຖͷεϖʔε͕.#·ͰͳͲ ͷ੍͕͋ΔͨΊɺࠓͷͱ͜Ζࢼ࡞࣮ݧ͖ɻ
։ൃͷ४උΛ͠Α͏ d(MJUDIͱ d )5.-+BWB4DSJQUͷ ίʔσΟϯά͔Β ެ։ɺಈ࡞֬ೝ·Ͱ 8FCϒϥβͰ݁ ͔͠ແྉ 8FCϒϥβͰ(MJUDI ΞΫηε
ᶃ "'SBNF ίϯςϯπΛ ެ։͢Δ·Ͱ (MJUDIͷ߹ ᶄ
։ൃͷ४උΛ͠Α͏ d"'SBNFͷαϯϓϧΛ(MJUDIίϐʔ d ᶃ ΫϦοΫ ᶄ ΫϦοΫ
։ൃͷ४උΛ͠Α͏ d"'SBNFͷαϯϓϧΛ(MJUDIίϐʔ d ᶃ 7&34*0/Λબ "3KTʹରԠ͍ͯ͠Δ࠷৽ όʔδϣϯ ᶅ SFNJYUIFTUBSUFSFYBNQMFPO(MJUDI ΛΫϦοΫ
ᶄ (FUUJOH4UBSUFEΛΫϦοΫ
։ൃͷ४උΛ͠Α͏ d"'SBNFͷαϯϓϧΛ(MJUDIίϐʔ d IUUQTHMJUDIDPNdBGSBNF͕։͍ͯΔ͜ͱΛ֬ೝ "'SBNF1SPKFDUͷϙοϓΞοϓ Πϯυ͕දࣔ͞Ε͍ͯΔ͜ͱΛ ֬ೝ
։ൃͷ४උΛ͠Α͏ d"'SBNFͷαϯϓϧΛ(MJUDIίϐʔ d 3FNJYZPVSPXO ΛΫϦοΫ
։ൃͷ४උΛ͠Α͏ d"'SBNFͷαϯϓϧΛ(MJUDIίϐʔ d ࣗಈతʹ༩͞Εͨ ϓϩδΣΫτ໊ ίϐʔͨ͠ϑΝΠϧ͕ల։͞Ε͍ͯΔɻݱஈ֊Ͱɺ·ͩԾ ͷྖҬʹ͋Γ੍ݶ͕͋ΔͨΊɺαΠϯΠϯͯࣗ͠ͷྖҬͰ ѻ͑ΔΑ͏ʹ͢Δɻ
։ൃͷ४උΛ͠Α͏ d(MJUDIαΠϯΠϯ d ᶄ 4JOHJOXJUI'BDFCPPL·ͨ4JHOJOXJUI(JUIVCΛΫϦοΫɻ 'BDFCPPLͱ(JUIVCͷ͏ͪΞΧϯτΛॴ༗͍ͯ͠ΔํΛબͿɻ ྆ํॴ༗͍ͯ͠Δ߹͖ͳํͰ0,ɻ ᶃ 4JOHJOΛΫϦοΫ
։ൃͷ४උΛ͠Α͏ d(MJUDIαΠϯΠϯ d ᶃ Ϣʔβ໊͔ϝʔϧΞυϨεΛೖྗ ᶄ ύεϫʔυΛೖྗ ᶅ 4JOHJOΛΫϦοΫ ᶆ
"VUIPSJ[F'PH$SFFL ΛΫϦοΫ (JUIVCͰ αΠϯΠϯ
։ൃͷ४උΛ͠Α͏ d(MJUDIαΠϯΠϯ d ᶃ ϝʔϧΞυϨε͔ి൪߸Λೖྗ ᶄ ύεϫʔυΛೖྗ ᶅ ϩάΠϯΛΫϦοΫ ᶆ
˔˔˔ͱͯ͠ϩάΠϯ ΛΫϦοΫ 'BDFCPPL ͰαΠϯΠϯ
։ൃͷ४උΛ͠Α͏ d(MJUDIαΠϯΠϯ d αΠϯΠϯʹޭͨ͠ΒࣗͷϓϩϑΟʔϧ ը૾͕දࣔ͞ΕΔ ͜ͷ͍ྖҬʹબͨ͠ϑΝΠϧͷ༰͕දࣔ ͞ΕΔɻίʔσΟϯά͜ͷྖҬͰߦ͏ɻ ΫϦοΫͯ͠ ϑΝΠϧબ
։ൃͷ४උΛ͠Α͏ dϓϩδΣΫτͷ࣮ߦͱ֬ೝ d ᶃ JOEFYIUNM ΛΫϦοΫ ᶄ JOEFYIUNMͷιʔείʔυΛ ֬ೝɻ αϯϓϧͷιʔείʔυ
։ൃͷ४උΛ͠Α͏ dϓϩδΣΫτͷ࣮ߦͱ֬ೝ d 4IPXΛΫϦοΫͯ͠ ϓϩδΣΫτΛ࣮ߦ
։ൃͷ४උΛ͠Α͏ dϓϩδΣΫτͷ࣮ߦͱ֬ೝ d IUUQTϓϩδΣΫτ໊HMJUDINF͕։͘ɻ J04"OESPJEͷϒϥβͰಉ͡63-ʹ ΞΫηεͯ֬͠ೝͰ͖Δ
<!DOCTYPE html> <html> <head> <title>Hello, WebAR! - A-Frame & AR.js</title>
<meta name="description" content="Hello, WebAR! - A-Frame & AR.js"> <script src="https://aframe.io/releases/0.6.0/aframe.min.js"></script> </head> <body> <a-scene> <a-box position="-1 0.5 -3" rotation="0 45 0" color="#4CC3D9"></a-box> <a-sphere position="0 1.25 -5" radius="1.25" color="#EF2D5E"></a-sphere> <a-cylinder position="1 0.75 -3" radius="0.5" height="1.5" color="#FFC65D"></a-cylinder> <a-plane position="0 0 -4" rotation="-90 0 0" width="4" height="4" color="#7BC8A4"></a-plane> <a-sky color="#ECECEC"></a-sky> </a-scene> </body> </html> ։ൃͷ४උΛ͠Α͏ dϓϩδΣΫτͷ࣮ߦͱ֬ೝ d αϯϓϧͷίʔυͨͬͨ͜Ε͚ͩ ͷ෦͕"'SBNFʹؔ͢Δهड़ɻ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
<!DOCTYPE html> <html> <head> <title>Hello, WebAR! - A-Frame & AR.js</title>
<meta name="description" content="Hello, WebAR! - A-Frame & AR.js"> <script src="https://aframe.io/releases/0.6.0/aframe.min.js"></script> </head> <body> <a-scene> <a-box position="-1 0.5 -3" rotation="0 45 0" color="#4CC3D9"></a-box> <a-sphere position="0 1.25 -5" radius="1.25" color="#EF2D5E"></a-sphere> <a-cylinder position="1 0.75 -3" radius="0.5" height="1.5" color="#FFC65D"></a-cylinder> <a-plane position="0 0 -4" rotation="-90 0 0" width="4" height="4" color="#7BC8A4"></a-plane> <a-sky color="#ECECEC"></a-sky> </a-scene> </body> </html> ։ൃͷ४උΛ͠Α͏ dϓϩδΣΫτͷ࣮ߦͱ֬ೝ d +BWB4DSJQUͷϥΠϒϥϦΛಡΈࠐΉهड़ɻ ͜͜Ͱ"'SBNFͷػೳΛఏڙ͢ΔϥΠϒϥ ϦΛಡΈࠐΜͰ͍Δɻ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
<!DOCTYPE html> <html> <head> <title>Hello, WebAR! - A-Frame & AR.js</title>
<meta name="description" content="Hello, WebAR! - A-Frame & AR.js"> <script src="https://aframe.io/releases/0.6.0/aframe.min.js"></script> </head> <body> <a-scene> <a-box position="-1 0.5 -3" rotation="0 45 0" color="#4CC3D9"></a-box> <a-sphere position="0 1.25 -5" radius="1.25" color="#EF2D5E"></a-sphere> <a-cylinder position="1 0.75 -3" radius="0.5" height="1.5" color="#FFC65D"></a-cylinder> <a-plane position="0 0 -4" rotation="-90 0 0" width="4" height="4" color="#7BC8A4"></a-plane> <a-sky color="#ECECEC"></a-sky> </a-scene> </body> </html> 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ։ൃͷ४උΛ͠Α͏ dϓϩδΣΫτͷ࣮ߦͱ֬ೝ d BTDFOFʙBTDFOFͷؒʹ Ծۭؒʹදࣔ͢ΔͷΛهड़͢Δɻ
<!DOCTYPE html> <html> <head> <title>Hello, WebAR! - A-Frame & AR.js</title>
<meta name="description" content="Hello, WebAR! - A-Frame & AR.js"> <script src="https://aframe.io/releases/0.6.0/aframe.min.js"></script> </head> <body> <a-scene> <a-box position="-1 0.5 -3" rotation="0 45 0" color="#4CC3D9"></a-box> <a-sphere position="0 1.25 -5" radius="1.25" color="#EF2D5E"></a-sphere> <a-cylinder position="1 0.75 -3" radius="0.5" height="1.5" color="#FFC65D"></a-cylinder> <a-plane position="0 0 -4" rotation="-90 0 0" width="4" height="4" color="#7BC8A4"></a-plane> <a-sky color="#ECECEC"></a-sky> </a-scene> </body> </html> 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ։ൃͷ४උΛ͠Α͏ dϓϩδΣΫτͷ࣮ߦͱ֬ೝ d
<!DOCTYPE html> <html> <head> <title>Hello, WebAR! - A-Frame & AR.js</title>
<meta name="description" content="Hello, WebAR! - A-Frame & AR.js"> <script src="https://aframe.io/releases/0.6.0/aframe.min.js"></script> </head> <body> <a-scene> <a-box position="-1 0.5 -3" rotation="0 45 0" color="#4CC3D9"></a-box> <a-sphere position="0 1.25 -5" radius="1.25" color="#EF2D5E"></a-sphere> <a-cylinder position="1 0.75 -3" radius="0.5" height="1.5" color="#FFC65D"></a-cylinder> <a-plane position="0 0 -4" rotation="-90 0 0" width="4" height="4" color="#7BC8A4"></a-plane> <a-sky color="#ECECEC"></a-sky> </a-scene> </body> </html> 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ։ൃͷ४උΛ͠Α͏ dϓϩδΣΫτͷ࣮ߦͱ֬ೝ d
։ൃͷ४උΛ͠Α͏ dϓϩδΣΫτͷ࣮ߦͱ֬ೝ d λϒΛด࣮ͯ͡ߦதͷ ϓϩδΣΫτΛऴྃ
։ൃͷ४උΛ͠Α͏ dϓϩδΣΫτͷ࣮ߦͱ֬ೝ d ฤूը໘ͷλϒʹ͍ͬͯΕ0,
։ൃͷ४උΛ͠Α͏ dϓϩδΣΫτ໊ͷมߋ d ᶄ ͍֮͑͢ϓϩδΣΫτ໊ʹมߋ ଞͷϓϩδΣΫτ໊ͱॏෳ͠ͳ͍ͷ ᶃ ϓϩδΣΫτ໊ΛΫϦοΫ ᶅ &4$ΩʔͰϓϩδΣΫτ໊ͷมߋΛ
ऴΘΔ
͓͓͖͍͑ͯͨ͞ϙΠϯτ
͓͓͖͍͑ͯͨ͞ϙΠϯτ dΑ͘͏༻ޠ d 4DFOF γʔϯ ࡾ࣍ݩͷମΛஔ͢ΔԾۭؒͦͷ ͷɻ $BNFSB Χϝϥ ࡾ࣍ݩͷԾۭؒΛͲ͔͜ΒݟΔ͔ɺ
ࢹΛઃఆ͢ΔͨΊͷͷɻγʔϯ ʹσϑΥϧτͰඋΘ͍ͬͯΔɻ -JHIU ϥΠτ র໌͕ͳ͍ͱ҉ͯ͘Կݟ͑ͳ͍ͨΊɺ ޫݯͱͯ͠ϥΠτΛઃఆ͢Δɻγʔϯ ʹσϑΥϧτͰඋΘ͍ͬͯΔɻ
͓͓͖͍͑ͯͨ͞ϙΠϯτ dΑ͘͏༻ޠ d &OUJUZ ΤϯςΟςΟ ࡾ࣍ݩͷԾۭؒʹଘࡏ͢Δମɻ ओʹܗঢ়ͱ֎؍ͷΈ߹ΘͤͰදݱ͞ ΕΔɻ 1SJNJUJWF ϓϦϛςΟϒ
ٿମཱํମͳͲɺओʹجຊతͳܗঢ় ͷମΛ؆ܿͳखଓ͖Ͱѻ͍͘͢͠ ͨͷɻ
͓͓͖͍͑ͯͨ͞ϙΠϯτ d"'SBNFͷ࠲ඪܥ d "'SBNFͷ ࠲ඪܥ Z (-) X (+) Y
(+) Z (+) Y (-) X (-) X: 0 Y: 0 Z: 0
͓͓͖͍͑ͯͨ͞ϙΠϯτ d"'SBNFͷҐஔɾճసɾॖई d 1PTJUJPO Ґஔ 9 : ;ͷॱʹεϖʔε۠Γ ͰҐஔΛࢦఆ ୯Ґϝʔτϧ
3PUBUJPO ճస 9 : ;ͷॱʹεϖʔε۠Γ Ͱ֯Λࢦఆ ୯Ґ 4DBMF ॖई 9 : ;ͷॱʹεϖʔε۠Γ ͰഒΛࢦఆ ୯Ґഒ ྫݪ͔Βӈʹϝʔτϧ ྫ:࣠Λத৺ʹճస ྫج४ͱͳΔେ͖͞ͷഒ
ٿମΛදࣔ͠Α͏
ٿମΛදࣔ͠Α͏ dٿମͷஔ d ᶃ JOEFYIUNM ΛΫϦοΫ ᶄ JOEFYIUNMͷιʔείʔυΛ ֬ೝɻ αϯϓϧͷιʔείʔυ
͜ͷྖҬͰίʔσΟϯάΛߦ͏ɻ
ٿମΛදࣔ͠Α͏ dٿମͷஔ d <!DOCTYPE html> <html> <head> <title>Hello, WebAR! -
A-Frame & AR.js</title> <meta name="description" content="Hello, WebAR! - A-Frame & AR.js"> <script src="https://aframe.io/releases/0.6.0/aframe.min.js"></script> </head> <body> <a-scene> <a-box position="-1 0.5 -3" rotation="0 45 0" color="#4CC3D9"></a-box> <a-sphere position="0 1.25 -5" radius="1.25" color="#EF2D5E"></a-sphere> <a-cylinder position="1 0.75 -3" radius="0.5" height="1.5" color="#FFC65D"></a-cylinder> <a-plane position="0 0 -4" rotation="-90 0 0" width="4" height="4" color="#7BC8A4"></a-plane> <a-sky color="#ECECEC"></a-sky> </a-scene> </body> </html> 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ݱࡏɺ࠷৽όʔδϣϯ ͳͷͰɺ͜ΕΑΓݹ͍߹มߋ͓ͯ͘͠ɻ
ٿମΛදࣔ͠Α͏ dٿମͷஔ d <!DOCTYPE html> <html> <head> <title>Hello, WebAR! -
A-Frame & AR.js</title> <meta name="description" content="Hello, WebAR! - A-Frame & AR.js"> <script src="https://aframe.io/releases/0.6.0/aframe.min.js"></script> </head> <body> <a-scene> <a-box position="-1 0.5 -3" rotation="0 45 0" color="#4CC3D9"></a-box> <a-sphere position="0 1.25 -5" radius="1.25" color="#EF2D5E"></a-sphere> <a-cylinder position="1 0.75 -3" radius="0.5" height="1.5" color="#FFC65D"></a-cylinder> <a-plane position="0 0 -4" rotation="-90 0 0" width="4" height="4" color="#7BC8A4"></a-plane> <a-sky color="#ECECEC"></a-sky> </a-scene> </body> </html> 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. BTDFOFʙBTDFOFͷதΛআ
ٿମΛදࣔ͠Α͏ dٿମͷஔ d <!DOCTYPE html> <html> <head> <title>Hello, WebAR! -
A-Frame & AR.js</title> <meta name="description" content="Hello, WebAR! - A-Frame & AR.js"> <script src="https://aframe.io/releases/0.6.0/aframe.min.js"></script> </head> <body> <a-scene> </a-scene> </body> </html> 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. BTDFOFʙBTDFOFͷதʹ ͜Ε͔ΒඞཁͳͷΛهड़͍ͯ͘͠
// 前略 <body> <a-scene> <a-sphere position="0 0 0" rotation="0 0
0" scale="1 1 1" radius="1" color="blue"></a-sphere> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. ٿମΛදࣔ͠Α͏ dٿମͷஔ d X: 0 Y: 0 Z: 0 BTQIFSFʙBTQIFSFΛهड़͠ ٿମͷϓϦϛςΟϒΛՃɻ QPTJUJPOɺSPUBUJPOɺTDBMFͷ֤ YɺZɺ[ͷॱʹεϖʔε۠ΓͰهड़ɻ SBEJVTܘͷ ϝʔτϧ Λهड़ɻ DPMPSͰ৭Λهड़ɻ ˔DPQZBOEQBTUFUYUͷ <੨͍ٿମΛ ஔ> ͔Βίϐϖɻ
ٿମΛදࣔ͠Α͏ dٿମͷஔ d 4IPXΛΫϦοΫ࣮ͯ͠ߦ
ٿମΛදࣔ͠Α͏ dٿମͷஔ d Կग़ͳ͍ɻ<$USM> <"MU> <J> ΩʔΛԡ͢ͱʜ
ٿମΛදࣔ͠Α͏ dٿମͷஔ d "'SBNF*OTQFDUPS ʹΓସΘΔ
ٿମΛදࣔ͠Α͏ dٿମͷஔ d ΧϝϥͷΞΠίϯΛ࣋ͭ BFOUJUZΛΫϦοΫ
ٿମΛදࣔ͠Α͏ dٿମͷஔ d Χϝϥ͕બঢ়ଶʹɻ Α͘ݟΔͱٿମ͕ࢮ֯ͷ Ґஔʹ͋Δɻ
ٿମΛදࣔ͠Α͏ dٿମͷஔ d QPTJUJPO͕ Ͱ ٿମͷਅ্ʹҐஔ͍ͯ͠Δ
ٿମΛදࣔ͠Α͏ dٿମͷஔ d #BDLUP4DFOFΛΫϦοΫ
ٿମΛදࣔ͠Α͏ dٿମͷஔ d ԼҹΩʔΛԡ͠ଓ͚͍ͯΔͱʜ
ٿମΛදࣔ͠Α͏ dٿମͷஔ d खલͷํ͔Βٿମ͕ݱΕΔɻ σϑΥϧτΧϝϥͷࢹʹٿମ͕ೖͬͯ͘Δ·Ͱɺ ΧϝϥΛखલํҠಈͤͨ͜͞ͱʹΑΔͷɻ
ٿମΛදࣔ͠Α͏ dٿମͷஔ d ฤूը໘ͷλϒʹΓସ͑
// 前略 <body> <a-scene> <a-sphere position="2 0 -5" rotation="0 0
0" scale="1 1 1" radius="1.5" color="blue"></a-sphere> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. ٿମΛදࣔ͠Α͏ dٿମͷஔ d BTQIFSFʙBTQIFSFʹ͋Δ QPTJUJPOɺTDBMF ɺSBEJVT ɺDPMPS ͷ֤Λ͍Ζ͍Ζม͑ͯΈ࣮ͯߦ݁Ռ Λ֬ೝ͠ɺײ֮Λ͔ͭΉɻ
ٿମΛදࣔ͠Α͏ dٿମͷஔ d ࣮ߦ݁ՌͷλϒʹΓସ͑
ٿମΛදࣔ͠Α͏ dٿମͷஔ d มߋͨ͠ʹΑͬͯٿମ͕ ༷ʑͳҐஔେ͖͞ɺ৭Ͱ දࣔ͞ΕΔ͜ͱΛ֬ೝ
ٿମΛදࣔ͠Α͏ dٿମͷஔ d ฤूը໘ͷλϒʹΓସ͑
// 前略 <body> <a-scene> <a-sphere position="0 0 0" rotation="0 0
0" scale="1 1 1" radius="1" color="blue"></a-sphere> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. ٿମΛදࣔ͠Α͏ dٿମͷஔ d ׳Ε͖ͯͨΒBTQIFSFʙBTQIFSFͷ QPTJUJPOɺ SPUBUJPOɺ TDBMFɺSBEJVT ্هઃఆʹ͓ͯ͘͠ɻ ޙͷ"3දࣔʹ͚ͯͷઃఆ
// 前略 <body> <a-scene> <a-sphere position="0 0 0" rotation="0 0
0" scale="1 1 1" radius="1" color="blue"></a-sphere> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. ٿମΛදࣔ͠Α͏ dΧϝϥͷஔ d ݱঢ়Ͱ૬มΘΒͣٿମ͕ݟ͑ͳ͍ͷͰΧϝϥ ͷελʔτҐஔΛมߋ͢Δɻ BTQIFSFʙBTQIFSFͷԼʹߦૠೖɻ
// 前略 <body> <a-scene> <a-sphere position="0 0 0" rotation="0 0
0" scale="1 1 1" radius="1" color="blue"></a-sphere> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. ٿମΛදࣔ͠Α͏ dΧϝϥͷஔ d BFOUJUZʙBFOUJUZΛՃͯ͠ΧϝϥػೳͷDBNFSBΛՃɻ σϑΥϧτΧϝϥɺࢹมߋɺΩʔૢ࡞͕ແޮʹͳͬͯ͠·͏ͨΊɺ ࢹมߋͷMPPLDPOUSPMTͱΩʔૢ࡞ͷXBTEDPOUSPMTΛՃɻ ٿମ͕ࢹʹೖΔҐஔʹQPTJUJPOΛઃఆɻ ˔DPQZBOEQBTUFUYUͷ <ΧϝϥΛஔ> ͔Βίϐϖɻ
ٿମΛදࣔ͠Α͏ dΧϝϥͷஔ d ࣮ߦ݁ՌͷλϒʹΓସ͑
ٿମΛදࣔ͠Α͏ dΧϝϥͷஔ d ٿମ͕දࣔ ͞ΕͨΒ0,
ٿମΛදࣔ͠Α͏ dΧϝϥͷஔ d ฤूը໘ͷλϒʹΓସ͑
ը૾ΛషΓ͚Α͏
ը૾ΛషΓ͚Α͏ dషΓ͚Δը૾ͷΞοϓϩʔυ d ᶃ "TTFUT ΛΫϦοΫ ᶄ "EE"TTFU ΛΫϦοΫ ᶅ
$PNQVUFSˠ ΛΫϦοΫ
ը૾ΛషΓ͚Α͏ dషΓ͚Δը૾ͷΞοϓϩʔυ d ᶃ ࣄલʹμϯϩʔυɾల։ͨ͠ TBNQMFϑΥϧμͷFBSKQHΛ ΫϦοΫ ᶄ ։͘ΛΫϦοΫ
ը૾ΛషΓ͚Α͏ dషΓ͚Δը૾ͷΞοϓϩʔυ d Ξοϓϩʔυͨ͠ϑΝΠϧͷαϜωΠϧ ͕දࣔ͞ΕͨΒ0,
ը૾ΛషΓ͚Α͏ dٿମͷը૾ͷషΓ͚ d FBSKQHͷαϜωΠϧ ΛΫϦοΫ
ը૾ΛషΓ͚Α͏ dٿମͷը૾ͷషΓ͚ d ᶃ $PQZ6SM ΛΫϦοΫ ᶄ &4$ΩʔΛԡͯ͠ ϙοϓΞοϓΠϯυ Λด͡Δ
ը૾ΛషΓ͚Α͏ dٿମͷը૾ͷషΓ͚ d JOEFYIUNM ΛΫϦοΫ
// 前略 <body> <a-scene> <a-sphere position="0 0 0" rotation="0 0
0" scale="1 1 1" radius="1" color="blue"></a-sphere> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ը૾ΛషΓ͚Α͏ dٿମͷը૾ͷషΓ͚ d Ξοϓϩʔυͨ͠ը૾Λ༻ ͢ΔͨΊͷ४උΛߦ͏ɻ BTQIFSFʙBTQIFSF ͷ্ʹߦૠೖɻ
// 前略 <body> <a-scene> <a-assets> </a-assets> <a-sphere position="0 0 0"
rotation="0 0 0" scale="1 1 1" radius="1" color="blue"></a-sphere> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ը૾ΛషΓ͚Α͏ dٿମͷը૾ͷషΓ͚ d BBTTFUTʙBBTTFUTΛهड़ɻ ͜ͷؒʹը૾%Ϟσϧʹؔ͢ΔใΛ هड़͍ͯ͘͠ɻ
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> </a-assets> <a-sphere
position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" color="blue"></a-sphere> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ը૾ΛషΓ͚Α͏ dٿମͷը૾ͷషΓ͚ d JNHΛهड़ͯ͠Ξοϓϩʔυͨ͠FBSKQHͷ༻Λએݴɻ JEҰҙͷ໊শ TSDίϐʔ͓͍ͯͨ͠FBSKQHͷ63-ΛషΓ͚
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> </a-assets> <a-sphere
position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" color="blue"></a-sphere> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ը૾ΛషΓ͚Α͏ dٿମͷը૾ͷషΓ͚ d ٿମʹը૾ΛషΓ͚ΔͨΊɺ৭ͷࢦఆෆཁʹͳΔɻ BTQIFSFʙBTQIFSFͷDPMPSΛআɻ
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> </a-assets> <a-sphere
position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ը૾ΛషΓ͚Α͏ dٿମͷը૾ͷషΓ͚ d ΘΓʹTSDΛՃͯ͠FBSKQHͷJEͱؔ࿈ ͚Δɻ͜͜ͰJEͷલʹγϟʔϓه߸ Λ͚ͭΔɻ
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> </a-assets> <a-sphere
position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ը૾ΛషΓ͚Α͏ dٿମͷը૾ͷషΓ͚ d ٿମͱFBSKQH͕JEʹ Αͬͯؔ࿈͍ͨɻ
࣮ߦ݁ՌͷλϒʹΓସ͑ ը૾ΛషΓ͚Α͏ dٿମͷը૾ͷషΓ͚ d
ٿ͕දࣔ͞ΕͨΒ0, ը૾ΛషΓ͚Α͏ dٿମͷը૾ͷషΓ͚ d
࣮ߦ݁ՌͷλϒΛดͯ͡ ฤूը໘ͷλϒΔ ը૾ΛషΓ͚Α͏ dٿମͷը૾ͷషΓ͚ d
%ϞσϧΛදࣔ͠Α͏
%ϞσϧΛදࣔ͠Α͏ d༻͢Δ%Ϟσϧ 0#+ ͷϑΝΠϧߏ d 0#+ ܗঢ়Λද͢ϑΝΠϧ 1/(+1((*' ৭֎؍ɾ࣭ײΛද͢ը૾ ϑΝΠϧ
ͭͷϑΝΠϧΛ͋Θͤͯ %ϞσϧΛදࣔ .5- ը૾ϑΝΠϧͷ৭͕ܗঢ় ͷͲͷҐஔʹ૬͢Δ͔ ؔੑΛද͢ϑΝΠϧ
%ϞσϧΛදࣔ͠Α͏ d0#+ϑΝΠϧͱ1/(ϑΝΠϧͷΞοϓϩʔυ d ᶃ "TTFUT ΛΫϦοΫ ᶄ "EE"TTFU ΛΫϦοΫ ᶅ
$PNQVUFSˠ ΛΫϦοΫ
%ϞσϧΛදࣔ͠Α͏ d0#+ϑΝΠϧͱ1/(ϑΝΠϧͷΞοϓϩʔυ d ᶃ ࣄલʹμϯϩʔυɾల։ͨ͠ TBNQMFϑΥϧμͷEVDLPCKͱ EVDL@UFYUVSFQOHΛΫϦοΫ ᶄ ։͘ΛΫϦοΫ
%ϞσϧΛදࣔ͠Α͏ d0#+ϑΝΠϧͱ1/(ϑΝΠϧͷΞοϓϩʔυ d Ξοϓϩʔυͨ͠ϑΝΠϧͷαϜωΠϧ ͕දࣔ͞ΕͨΒ0,
%ϞσϧΛදࣔ͠Α͏ d.5-ϑΝΠϧͷฤूͱΞοϓϩʔυ d EVDLNUMʹը૾ϑΝΠϧͷॴΛΒͤΔඞཁ ͕͋ΔͨΊ63-ΛௐΔɻ EVDL@UFYUVSFQOHͷαϜωΠϧΛΫϦοΫɻ
%ϞσϧΛදࣔ͠Α͏ d.5-ϑΝΠϧͷฤूͱΞοϓϩʔυ d ᶃ $PQZ6SM ΛΫϦοΫ ᶄ &4$ΩʔΛԡͯ͠ϙοϓ ΞοϓΠϯυΛด͡Δ
%ϞσϧΛදࣔ͠Α͏ d.5-ϑΝΠϧͷฤूͱΞοϓϩʔυ d ࣄલʹμϯϩʔυɾల։ͨ͠TBNQMFϑΥϧμ ͷEVDLNUMΛςΩετΤσΟλͰ։͘
// 前略 newmtl body Ns 96.078431 Ka 1.000000 1.000000 1.000000
Kd 0.800000 0.800000 0.000000 Ks 0.500000 0.500000 0.500000 Ke 0.000000 0.000000 0.000000 Ni 1.000000 d 1.000000 illum 2 map_Kd https://cdn.glitch.com/f87d2f49-ea88-4c64-bf8b- 9d0d5ba378e7%2Fduck_texture.png?1500398467350 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ࠷ޙͷߦͷNBQ@,EΑΓޙΖͷ63-Λআͯ͠ʜ %ϞσϧΛදࣔ͠Α͏ d.5-ϑΝΠϧͷฤूͱΞοϓϩʔυ d
// 前略 newmtl body Ns 96.078431 Ka 1.000000 1.000000 1.000000
Kd 0.800000 0.800000 0.000000 Ks 0.500000 0.500000 0.500000 Ke 0.000000 0.000000 0.000000 Ni 1.000000 d 1.000000 illum 2 map_Kd duck_textture.pngのURL 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ίϐʔ͓͍ͯͨ͠EVDL@UFYUVSFQOHͷ63-ΛషΓ͚ޙɺ EVDLNUMΛ্ॻ͖อଘ %ϞσϧΛදࣔ͠Α͏ d.5-ϑΝΠϧͷฤूͱΞοϓϩʔυ d
ᶃ "TTFUT ΛΫϦοΫ ᶄ "EE"TTFU ΛΫϦοΫ ᶅ $PNQVUFSˠ ΛΫϦοΫ %ϞσϧΛදࣔ͠Α͏
d.5-ϑΝΠϧͷฤूͱΞοϓϩʔυ d
ᶃ ࣄલʹμϯϩʔυɾల։ͨ͠ TBNQMFϑΥϧμ͔Βฤूɾอଘ ࡁΈͷEVDLNUMΛΫϦοΫ ᶄ ։͘ΛΫϦοΫ %ϞσϧΛදࣔ͠Α͏ d.5-ϑΝΠϧͷฤूͱΞοϓϩʔυ d
ͭͷϑΝΠϧ͕ἧ͍ͬͯΕ0, %ϞσϧΛදࣔ͠Α͏ d.5-ϑΝΠϧͷฤूͱΞοϓϩʔυ d
%ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷஔ d %ϞσϧΛࢀর͢ΔͨΊ63-ΛௐΔɻ EVDLPCKͷαϜωΠϧΛΫϦοΫɻ
ᶃ $PQZ6SM ΛΫϦοΫ ᶄ &4$ΩʔΛԡͯ͠ϙοϓ ΞοϓΠϯυΛด͡Δ %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷஔ d
ᶃ JOEFYIUNM ΛΫϦοΫ %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷஔ d
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> </a-assets> <a-sphere
position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. FBSKQHͷJNHͷ࣍ͷߦͰΞοϓϩʔυ ͨ͠EVDLPCKͷ༻Λએݴ͢Δɻ %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷஔ d
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> <a-asset-item id="duck-obj"
src="duck.objのURL"></a-asset-item> </a-assets> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷஔ d BBTTFUJUFNʙBBTTFUJUFNΛهड़ɻ JEҰҙͷ໊শ TSDίϐʔ͓͍ͯͨ͠EVDLPCKͷ63-ΛషΓ͚
ᶃ BTTFUTΛΫϦοΫ %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷஔ d
%Ϟσϧʹؔ࿈͚Δը૾ใΛࢀর͢Δ ͨΊ63-ΛௐΔɻEVDLNUMͷαϜωΠϧ ΛΫϦοΫɻ %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷஔ d
ᶃ $PQZ6SM ΛΫϦοΫ ᶄ &4$ΩʔΛԡͯ͠ϙοϓ ΞοϓΠϯυΛด͡Δ %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷஔ d
ᶃ JOEFYIUNM ΛΫϦοΫ %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷஔ d
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> <a-asset-item id="duck-obj"
src="duck.objのURL"></a-asset-item> </a-assets> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷஔ d EVDLPCKͷBBTTFUJUFNʙBBTTFUJUFNͷ࣍ͷ ߦͰΞοϓϩʔυͨ͠EVDLNUMͷ༻Λએݴ͢Δɻ
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> <a-asset-item id="duck-obj"
src="duck.objのURL"></a-asset-item> <a-asset-item id="duck-mtl" src="duck.mtlのURL"></a-asset-item> </a-assets> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷஔ d BBTTFUJUFNʙBBTTFUJUFNΛهड़ɻ JEҰҙͷ໊শ TSDίϐʔ͓͍ͯͨ͠EVDLNUMͷ63-ΛషΓ͚
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> <a-asset-item id="duck-obj"
src="duck.objのURL"></a-asset-item> <a-asset-item id="duck-mtl" src="duck.mtlのURL"></a-asset-item> </a-assets> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷஔ d %ϞσϧͷදࣔͰඞཁͱͳΔϑΝΠϧએݴ͕ͨ͠ɺ·ͩ ஔʹؔ͢Δهड़͕ͳ͍ɻ %ϞσϧΛஔ͢ΔͨΊBTQIFSFʙBTQIFSFͷ Լʹߦૠೖ͠
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> <a-asset-item id="duck-obj"
src="duck.objのURL"></a-asset-item> <a-asset-item id="duck-mtl" src="duck.mtlのURL"></a-asset-item> </a-assets> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷஔ d BPCKNPEFMʙBPCKNPEFMΛՃɻ TSDʹEVDLPCKͷJEΛɺNUMʹEVDLNUMͷJEΛͦΕͧΕ ؔ࿈͚ΔɻJEͷઌ಄ʹγϟʔϓه߸ Λ͚ͭΔ͜ͱɻ ˔DPQZBOEQBTUFUYUͷ <μοΫΛஔ> ͔Βίϐϖɻ
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> <a-asset-item id="duck-obj"
src="duck.objのURL"></a-asset-item> <a-asset-item id="duck-mtl" src="duck.mtlのURL"></a-asset-item> </a-assets> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷஔ d ஔͨ͠%ϞσϧͱEVDLPCK͕JEʹΑͬͯ ؔ࿈͍ͨɻ
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> <a-asset-item id="duck-obj"
src="duck.objのURL"></a-asset-item> <a-asset-item id="duck-mtl" src="duck.mtlのURL"></a-asset-item> </a-assets> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷஔ d ಉ༷ʹ%ϞσϧͱEVDLNUMؔ࿈͍ͨɻ
4IPXΛΫϦοΫ࣮ͯ͠ߦ %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷஔ d
μοΫ͕දࣔ͞ΕͨΒ 0, %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷஔ d
μοΫ͕ޙΖ͖ɻ લΛ͔͍ͤͨɻ %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷճస d
ฤूը໘ͷλϒʹΓସ͑ %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷճస d
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> <a-asset-item id="duck-obj"
src="duck.objのURL"></a-asset-item> <a-asset-item id="duck-mtl" src="duck.mtlのURL"></a-asset-item> </a-assets> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷճస d ͖Λม͑ΔͨΊʹBPCKNPEFMʙBPCKNPEFM ͷSPUBUJPOΛมߋ͢Δɻ
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> <a-asset-item id="duck-obj"
src="duck.objのURL"></a-asset-item> <a-asset-item id="duck-mtl" src="duck.mtlのURL"></a-asset-item> </a-assets> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 180 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷճస d :࣠ ਨํͷ࣠ Λճసͤͯ͞લ͖ʹɻ
࣮ߦ݁ՌͷλϒʹΓସ͑ %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷճస d
μοΫ͕લ͖ʹදࣔ ͞ΕͨΒ0, %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷճస d
࣮ߦ݁ՌͷλϒΛดͯ͡ ฤूը໘ͷλϒΔ %ϞσϧΛදࣔ͠Α͏ d%Ϟσϧͷճస d
ΞχϝʔγϣϯΛͬͯΈΑ͏
ΞχϝʔγϣϯΛͬͯΈΑ͏ dΞχϝʔγϣϯͷΠϝʔδ d ࣗస͢Δٿͷपғ ΛμοΫ͕ެస͢Δ Πϝʔδɻ ճసεϐʔυಉ͡ɻ μοΫ ٿ
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> <a-asset-item id="duck-obj"
src="duck.objのURL"></a-asset-item> <a-asset-item id="duck-mtl" src="duck.mtlのURL"></a-asset-item> </a-assets> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 180 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ٿͱμοΫΛಉ͡Ͱɺಉ͡ํʹճసͤ͞ΔΊɺ ݸผͰͳ͘·ͱΊͯճస͍ͤͨ͞ɻ ΞχϝʔγϣϯΛͬͯΈΑ͏ dΞχϝʔγϣϯͷద༻ d
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> <a-asset-item id="duck-obj"
src="duck.objのURL"></a-asset-item> <a-asset-item id="duck-mtl" src="duck.mtlのURL"></a-asset-item> </a-assets> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 180 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. BTQIFSFʙBTQIFSFͱ BPCKNPEFMʙBPCKNPEFMͷ લޙʹߦͣͭૠೖͯ͠ ΞχϝʔγϣϯΛͬͯΈΑ͏ dΞχϝʔγϣϯͷద༻ d
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> <a-asset-item id="duck-obj"
src="duck.objのURL"></a-asset-item> <a-asset-item id="duck-mtl" src="duck.mtlのURL"></a-asset-item> </a-assets> <a-entity> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 180 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. BFOUJUZʙBFOUJUZͰׅͬͯ·ͱΊΔɻ ͜ͷBFOUJUZʙBFOUJUZʹΞχϝʔγϣϯΛద༻͢Δ͜ ͱͰɺ·ͱ·ΓͷߏཁૉͰ͋ΔٿͱμοΫʹΞχϝʔγϣϯ ͕ద༻͞ΕΔɻ ΞχϝʔγϣϯΛͬͯΈΑ͏ dΞχϝʔγϣϯͷద༻ d
// 前略 <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> <a-asset-item id="duck-obj" src="duck.objのURL"></a-asset-item> <a-asset-item
id="duck-mtl" src="duck.mtlのURL"></a-asset-item> </a-assets> <a-entity> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 180 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> // 以下省略 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. BFOUJUZʙBFOUJUZͷ࠷ॳʹ ߦૠೖͯ͠ ΞχϝʔγϣϯΛͬͯΈΑ͏ dΞχϝʔγϣϯͷద༻ d
// 前略 <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> <a-asset-item id="duck-obj" src="duck.objのURL"></a-asset-item> <a-asset-item
id="duck-mtl" src="duck.mtlのURL"></a-asset-item> </a-assets> <a-entity> <a-animation attribute="rotation" from="0 0 0" to="0 360 0" dur="3000" easing="linear" repeat="true"></a-animation> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 180 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> // 以下省略 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ΞχϝʔγϣϯΛͬͯΈΑ͏ dΞχϝʔγϣϯͷద༻ d BBOJNBUJPOʙBBOJNBUJPOΛهड़ɻ ˔DPQZBOEQBTUFUYUͷ <Ξχϝʔγϣϯͷద༻> ͔Βίϐϖɻ
ͻͱ·ͣ4IPXΛΫϦοΫ ࣮ͯ͠ߦ ΞχϝʔγϣϯΛͬͯΈΑ͏ dΞχϝʔγϣϯͷద༻ d
ٿͱμοΫ͕ճస ͍ͯ͠Ε0, ΞχϝʔγϣϯΛͬͯΈΑ͏ dΞχϝʔγϣϯͷద༻ d
μοΫ͕ޙΖ͖ʹ ճస͍ͯ͠Δɻ ΞχϝʔγϣϯΛͬͯΈΑ͏ dμοΫͷ͖Λมߋ d
ฤूը໘ͷλϒʹΓସ͑ ΞχϝʔγϣϯΛͬͯΈΑ͏ dμοΫͷ͖Λมߋ d
// 前略 <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> <a-asset-item id="duck-obj" src="duck.objのURL"></a-asset-item> <a-asset-item
id="duck-mtl" src="duck.mtlのURL"></a-asset-item> </a-assets> <a-entity> <a-animation attribute="rotation" from="0 0 0" to="0 360 0" dur="3000" easing="linear" repeat="true"></a-animation> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 180 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> // 以下省略 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ΞχϝʔγϣϯΛͬͯΈΑ͏ dμοΫͷ͖Λมߋ d μοΫΛਐߦํ͔͍ͤͨ
// 前略 <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> <a-asset-item id="duck-obj" src="duck.objのURL"></a-asset-item> <a-asset-item
id="duck-mtl" src="duck.mtlのURL"></a-asset-item> </a-assets> <a-entity> <a-animation attribute="rotation" from="0 0 0" to="0 360 0" dur="3000" easing="linear" repeat="true"></a-animation> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> // 以下省略 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ΞχϝʔγϣϯΛͬͯΈΑ͏ dμοΫͷ͖Λมߋ d :࣠ͷճసΛݩʹͲ͢
࣮ߦ݁ՌͷλϒʹΓସ͑ ΞχϝʔγϣϯΛͬͯΈΑ͏ dμοΫͷ͖Λมߋ d
μοΫ͕લ͖Ͱ प͍ͬͯΕ0, ΞχϝʔγϣϯΛͬͯΈΑ͏ dμοΫͷ͖Λมߋ d
࣮ߦ݁ՌͷλϒΛดͯ͡ ฤूը໘ͷλϒΔ ΞχϝʔγϣϯΛͬͯΈΑ͏ dμοΫͷ͖Λมߋ d
// 前略 <a-entity> <a-animation attribute="rotation" from="0 0 0" to="0 360
0" dur="3000" easing="linear" repeat="true"></a-animation> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> // 以下省略 15. 16. 17. 18. 19. ΞχϝʔγϣϯΛͬͯΈΑ͏ dΞχϝʔγϣϯͷղઆ d BUUSJCVUFSPUBUJPO ճసʹ͍ͭͯͷΞχϝʔγϣϯ GSPN Ξχϝʔγϣϯ։࢝࣌ͷճస֯ UP Ξχϝʔγϣϯऴྃ࣌ͷճస֯ EVS Ξχϝʔγϣϯ։͔࢝Βऴྃ·Ͱʹཁ͢Δ࣌ؒ ඵ ඵ୯ҐͰࢦఆ FBTJOHMJOFBS ؇ٸͳ͠ SFQFBUUSVF ܁Γฦ͋͠Γ
ΠϯλϥΫγϣϯΛ͚ͭΑ͏
ΠϯλϥΫγϣϯΛ͚ͭΑ͏ dΫϦοΫݕϥΠϒϥϦͷಡΈࠐΈ d // 前略 <head> <title>Hello, WebAR! - A-Frame
& AR.js</title> <meta name="description" content="Hello, WebAR! - A-Frame & AR.js"> <script src="https://aframe.io/releases/0.6.0/aframe.min.js"></script> </head> // 以下省略 3. 4. 5. 6. 7. 8. ϚεΫϦοΫݕʹରԠ͢ΔϥΠϒϥϦΛಡΈࠐΉɻ IFBEʙIFBEͷ࠷ޙʹߦૠೖɻ
ΠϯλϥΫγϣϯΛ͚ͭΑ͏ dΫϦοΫݕϥΠϒϥϦͷಡΈࠐΈ d // 前略 <head> <title>Hello, WebAR! - A-Frame
& AR.js</title> <meta name="description" content="Hello, WebAR! - A-Frame & AR.js"> <script src="https://aframe.io/releases/0.6.0/aframe.min.js"></script> <script src="https://rawgit.com/mayognaise/aframe-mouse-cursor- component/master/dist/aframe-mouse-cursor-component.js"></script> </head> // 以下省略 3. 4. 5. 6. 7. 8. TDSJQUʙTDSJQUΛهड़ͯ͠BGSBNFNPVTFDVSTPSDPNQPOFOU ಡΈࠐΈɻ ˔DPQZBOEQBTUFUYUͷ <ΫϦοΫΛݕ͢ΔϥΠϒϥϦ> ͔Βίϐϖɻ
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> <a-asset-item id="duck-obj"
src="duck.objのURL"></a-asset-item> <a-asset-item id="duck-mtl" src="duck.mtlのURL"></a-asset-item> </a-assets> <a-entity> <a-animation attribute="rotation" from="0 0 0" to="0 360 0" dur="3000" easing="linear" repeat="true"></a-animation> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> <a-entity camera look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ΠϯλϥΫγϣϯΛ͚ͭΑ͏ dΫϦοΫݕͷ༗ޮԽ d ϥΠϒϥϦΛಡΈࠐΜͩͷͰΫϦοΫͷݕΛ༗ޮԽ͍ͨ͠ɻ DBNFSBΛ࣋ͭBFOUJUZʙBFOUJUZʹରͯ͠
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> <a-asset-item id="duck-obj"
src="duck.objのURL"></a-asset-item> <a-asset-item id="duck-mtl" src="duck.mtlのURL"></a-asset-item> </a-assets> <a-entity> <a-animation attribute="rotation" from="0 0 0" to="0 360 0" dur="3000" easing="linear" repeat="true"></a-animation> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> <a-entity camera mouse-cursor look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ΠϯλϥΫγϣϯΛ͚ͭΑ͏ dΫϦοΫݕͷ༗ޮԽ d NPVTFDVSTPSΛՃ͠༗ޮԽ
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> <a-asset-item id="duck-obj"
src="duck.objのURL"></a-asset-item> <a-asset-item id="duck-mtl" src="duck.mtlのURL"></a-asset-item> </a-assets> <a-entity> <a-animation attribute="rotation" from="0 0 0" to="0 360 0" dur="3000" easing="linear" repeat="true"></a-animation> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> <a-entity camera mouse-cursor look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ΠϯλϥΫγϣϯΛ͚ͭΑ͏ dΫϦοΫʹΑΔΞχϝʔγϣϯ։࢝ d ٿ͔μοΫΛΫϦοΫͨ͠ΒΞχϝʔγϣϯΛ։͍࢝ͨ͠ɻ BBOJNBUJPOʙBBOJNBUJPOʹରͯ͠
// 前略 <body> <a-scene> <a-assets> <img id="earth-jpg" src="ear.jpgのURL"> <a-asset-item id="duck-obj"
src="duck.objのURL"></a-asset-item> <a-asset-item id="duck-mtl" src="duck.mtlのURL"></a-asset-item> </a-assets> <a-entity> <a-animation begin="click" attribute="rotation" from="0 0 0" to="0 360 0" dur="3000" easing="linear" repeat="true"></a-animation> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> <a-entity camera mouse-cursor look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ΠϯλϥΫγϣϯΛ͚ͭΑ͏ dΫϦοΫʹΑΔΞχϝʔγϣϯ։࢝ d CFHJOΛՃͯ͠Ξχϝʔγϣϯ։࢝݅ ΛDMJDL ΫϦοΫ࣌ ʹ͢Δɻ
4IPXΛΫϦοΫ࣮ͯ͠ߦ ΠϯλϥΫγϣϯΛ͚ͭΑ͏ dΫϦοΫʹΑΔΞχϝʔγϣϯ։࢝ d
ٿPSμοΫΛΫϦοΫͯ͠Ξχϝʔγϣϯ ͕ελʔτͨ͠Β0, ΠϯλϥΫγϣϯΛ͚ͭΑ͏ dΫϦοΫʹΑΔΞχϝʔγϣϯ։࢝ d
࣮ߦ݁ՌͷλϒΛดͯ͡ ฤूը໘ͷλϒΔ ΠϯλϥΫγϣϯΛ͚ͭΑ͏ dΫϦοΫʹΑΔΞχϝʔγϣϯ։࢝ d
"3ۭؒʹදࣔ͠Α͏
"3ۭؒʹදࣔ͠Α͏ d"'SBNFʹΑΔ8FC"3ͷ࣮ݱ d "3KTͱ • "'SBNFຊདྷ8FC73ٕज़ɻʹ8FC"3ϥΠϒ ϥϦ"3KT͕ొ͠ɺ73͚ͩͰͳ͘"3ۙʹɻ • IUUQTHJUIVCDPNKFSPNFFUJFOOF"3KT •
IUUQTHJUIVCDPNKFSPNFFUJFOOF"3KTUSFF NBTUFSBGSBNF • 8FC(-ٴͼ8FC35$ʹରԠ͍ͯ͠ΕεϚʔτϑΥϯ Ͱར༻Մೳ J04ͷ8FC35$ରԠ7FS͔Βͷ༧ఆ • +4"35PPM,JU දత"3ϥΠϒϥϦ"35PPM,JUͷ +BWB4DSJQU൛ ʹΑΔϚʔΧʔܕͷ"3ɻ • "3KTͰར༻Ͱ͖ΔϚʔΧʔͷछྨز͔ͭ͋Δ͕ɺࠓճ )JSPͱ͍͏λΠϓͷ"3ϚʔΧʔΛ༻ɻ
// 前略 <head> <title>Hello, WebAR! - A-Frame & AR.js</title> <meta
name="description" content="Hello, WebAR! - A-Frame & AR.js"> <script src="https://aframe.io/releases/0.6.0/aframe.min.js"></script> <script src="https://rawgit.com/mayognaise/aframe-mouse-cursor- component/master/dist/aframe-mouse-cursor-component.js"></script> </head> // 以下省略 3. 4. 5. 6. 7. 8. 9. "3KTͷϥΠϒϥϦΛಡΈࠐΉɻ IFBEʙIFBEͷ࠷ޙʹߦૠೖɻ "3ۭؒʹදࣔ͠Α͏ d"3KTͷϥΠϒϥϦಡΈࠐΈ d
// 前略 <head> <title>Hello, WebAR! - A-Frame & AR.js</title> <meta
name="description" content="Hello, WebAR! - A-Frame & AR.js"> <script src="https://aframe.io/releases/0.6.0/aframe.min.js"></script> <script src="https://rawgit.com/mayognaise/aframe-mouse-cursor- component/master/dist/aframe-mouse-cursor-component.js"></script> <script src="https://rawgit.com/jeromeetienne/AR.js/master/aframe/build/aframe- ar.js"></script> </head> // 以下省略 3. 4. 5. 6. 7. 8. 9. "3ۭؒʹදࣔ͠Α͏ d"3KTͷϥΠϒϥϦಡΈࠐΈ d TDSJQUʙTDSJQUΛهड़ͯ͠"3KTಡΈࠐΈɻ ˔DPQZBOEQBTUFUYUͷ <"3ʹରԠ͢ΔϥΠϒϥϦ> ͔Βίϐϖɻ
// 前略 <body> <a-scene> // 中略 <a-entity> <a-animation begin="click" attribute="rotation"
from="0 0 0" to="0 360 0" dur="3000" easing="linear" repeat="true"></a-animation> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> <a-entity camera mouse-cursor look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 10. 11. 17. 18. 19. 20. 21. 22. 23. 24. 8FCΧϝϥ͔ΒϦΞϧλΠϜͷө૾Λऔಘͯ͠ϒϥβ্ʹ දࣔ͢ΔɻBTDFOFʙBTDFOFʹ "3ۭؒʹදࣔ͠Α͏ d8FCΧϝϥͷө૾Λදࣔ d
// 前略 <body> <a-scene arjs="sourceType: webcam; detectionMode: mono; maxDetectionRate: 30;
canvasWidth: 240; canvasHeight: 180; debugUIEnabled: false;"> // 中略 <a-entity> <a-animation begin="click" attribute="rotation" from="0 0 0" to="0 360 0" dur="3000" easing="linear" repeat="true"></a-animation> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> <a-entity camera mouse-cursor look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 10. 11. 17. 18. 19. 20. 21. 22. 23. 24. "3ۭؒʹදࣔ͠Α͏ d8FCΧϝϥͷө૾Λදࣔ d BSKTͷهड़ΛՃ͢Δɻ ˔DPQZBOEQBTUFUYUͷ <"3ϚʔΧʔͷಡऔ݅> ͔Βίϐϖɻ
// 前略 <body> <a-scene arjs="sourceType: webcam; detectionMode: mono; maxDetectionRate: 30;
canvasWidth: 240; canvasHeight: 180; debugUIEnabled: false;"> // 中略 <a-entity> <a-animation begin="click" attribute="rotation" from="0 0 0" to="0 360 0" dur="3000" easing="linear" repeat="true"></a-animation> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> <a-entity camera mouse-cursor look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 10. 11. 17. 18. 19. 20. 21. 22. 23. 24. "3ۭؒʹදࣔ͠Α͏ d8FCΧϝϥͷө૾Λදࣔ d BSKT "3ϚʔΧʔಡΈऔΓͷͨΊͷ݅Λઃఆ͢Δ ԼهϞόΠϧσό Πε͚ͷෛՙΛ͑ͨઃఆ TPVSDF5ZQFXFCDBN ˠ ΣϒΧϝϥͷө૾Λ༻͢Δ EFUFDUJPO.PEFNPOP ˠ നࠇϞʔυͰϚʔΧʔݕग़Λߦ͏ NBY%FUFDUJPO3BUF ˠ ඵʹ͖ͭճͷϚʔΧʔݕग़ΛࢼΈΔ DBOWBT8JEUI ˠ ϚʔΧʔݕग़ͷͨΊͷը૾ղ૾ ෯ DBOWBT)FJHIU ˠ ϚʔΧʔݕग़ͷͨΊͷը૾ղ૾ ߴ͞ EFCVH6*&OBCMFEGBMTF ˠ σόοάใඇදࣔ
// 前略 <body> <a-scene arjs="sourceType: webcam; detectionMode: mono; maxDetectionRate: 30;
canvasWidth: 240; canvasHeight: 180; debugUIEnabled: false;"> // 中略 <a-entity> <a-animation begin="click" attribute="rotation" from="0 0 0" to="0 360 0" dur="3000" easing="linear" repeat="true"></a-animation> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> <a-entity camera mouse-cursor look-controls wasd-controls position="0 0 5"></a-entity> </a-scene> </body> // 以下省略 10. 11. 17. 18. 19. 20. 21. 22. 23. 24. "3ۭؒʹදࣔ͠Α͏ d8FCΧϝϥͷө૾Λදࣔ d 8FCΧϝϥΛ༻͢Δ͜ͱʹΑͬͯࢹૢ࡞Ωʔૢ࡞ɺ Ґஔͷݻఆ͕ෆཁʹͳΔͨΊɺMPPLDPOUSPMTɺXBTE DPOUSPMTɺQPTJUJPOΛআɻ
// 前略 <body> <a-scene arjs="sourceType: webcam; detectionMode: mono; maxDetectionRate: 30;
canvasWidth: 240; canvasHeight: 180; debugUIEnabled: false;"> // 中略 <a-entity> <a-animation begin="click" attribute="rotation" from="0 0 0" to="0 360 0" dur="3000" easing="linear" repeat="true"></a-animation> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> <a-entity camera mouse-cursor></a-entity> </a-scene> </body> // 以下省略 10. 11. 17. 18. 19. 20. 21. 22. 23. 24. "3ۭؒʹදࣔ͠Α͏ d8FCΧϝϥͷө૾Λදࣔ d DBNFSBͱNPVTFDVSTPSআͤͣͯ͠ ͓͘͜ͱɻ
4IPXΛΫϦοΫ࣮ͯ͠ߦ "3ۭؒʹදࣔ͠Α͏ d8FCΧϝϥͷө૾Λදࣔ d
"3ۭؒʹදࣔ͠Α͏ d8FCΧϝϥͷө૾Λදࣔ d ϒϥβʹ8FCΧϝϥͷө૾͕ දࣔ͞ΕͨΒ0,ɻ ͜ͷஈ֊ͰϚʔΧʔʹ͔͟͠ ͯԿදࣔ͞Εͳ͍ɻ
"3ۭؒʹදࣔ͠Α͏ dө૾ͷॎԣൺΛௐ d ڥʹΑͬͯө૾ͷॎԣൺ ่͕Εͯ͠·͏߹͕͋Δͷ Ͱௐ͢Δɻ
࣮ߦ݁ՌͷλϒΛดͯ͡ ฤूը໘ͷλϒΔ "3ۭؒʹදࣔ͠Α͏ dө૾ͷॎԣൺΛௐ d
// 前略 <body> <a-scene arjs="sourceType: webcam; detectionMode: mono; maxDetectionRate: 30;
canvasWidth: 240; canvasHeight: 180; debugUIEnabled: false;"> // 中略 <a-entity> <a-animation begin="click" attribute="rotation" from="0 0 0" to="0 360 0" dur="3000" easing="linear" repeat="true"></a-animation> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> <a-entity camera mouse-cursor></a-entity> </a-scene> </body> // 以下省略 10. 11. 17. 18. 19. 20. 21. 22. 23. 24. BTDFOFʙBTDFOFʹ "3ۭؒʹදࣔ͠Α͏ dө૾ͷॎԣൺΛௐ d
// 前略 <body> <a-scene embedded arjs="sourceType: webcam; detectionMode: mono; maxDetectionRate:
30; canvasWidth: 240; canvasHeight: 180; debugUIEnabled: false;"> // 中略 <a-entity> <a-animation begin="click" attribute="rotation" from="0 0 0" to="0 360 0" dur="3000" easing="linear" repeat="true"></a-animation> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> <a-entity camera mouse-cursor></a-entity> </a-scene> </body> // 以下省略 10. 11. 17. 18. 19. 20. 21. 22. 23. 24. "3ۭؒʹදࣔ͠Α͏ dө૾ͷॎԣൺΛௐ d FNCFEEFEΛՃɻ͜ΕΛࢦఆ͠ͳ͍ͱ8FCΧϝϥ ͔Βͷө૾ͷॎԣൺ่͕ΕΔ͜ͱ͕͋Δɻ
4IPXΛΫϦοΫ࣮ͯ͠ߦ "3ۭؒʹදࣔ͠Α͏ dө૾ͷॎԣൺΛௐ d
8FCΧϝϥͷө૾ͷॎԣൺ่͕ΕΔ ͜ͱͳ͘දࣔ͞Ε͍ͯΕ0,ɻ "3ۭؒʹදࣔ͠Α͏ dө૾ͷॎԣൺΛௐ d
࣮ߦ݁ՌͷλϒΛดͯ͡ ฤूը໘ͷλϒΔ "3ۭؒʹදࣔ͠Α͏ dө૾ͷॎԣൺΛௐ d
// 前略 <body> <a-scene embedded arjs="sourceType: webcam; detectionMode: mono; maxDetectionRate:
30; canvasWidth: 240; canvasHeight: 180; debugUIEnabled: false;"> // 中略 <a-entity> <a-animation begin="click" attribute="rotation" from="0 0 0" to="0 360 0" dur="3000" easing="linear" repeat="true"></a-animation> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> <a-entity camera mouse-cursor></a-entity> </a-scene> </body> // 以下省略 10. 11. 17. 18. 19. 20. 21. 22. 23. 24. "3ۭؒʹදࣔ͠Α͏ d"3ϚʔΧʔʹ͔ͯ͟͠ίϯςϯπදࣔ d ݱঢ়Ͱ8FCΧϝϥΛ"3ϚʔΧʔʹ͔ͯ͟͠ ίϯςϯπͱ"3ϚʔΧʔͷؔ࿈͚͕Ͱ͖͍ͯ ͳ͍ͨΊԿى͜Βͳ͍ɻ Ξχϝʔγϣϯ࣌ʹׅͬͨٿͱμοΫͷ·ͱ· ΓΛɺ"3ϚʔΧʔͱؔ࿈͚Δඞཁ͕͋Δɻ
// 前略 <body> <a-scene embedded arjs="sourceType: webcam; detectionMode: mono; maxDetectionRate:
30; canvasWidth: 240; canvasHeight: 180; debugUIEnabled: false;"> // 中略 <a-entity> <a-animation begin="click" attribute="rotation" from="0 0 0" to="0 360 0" dur="3000" easing="linear" repeat="true"></a-animation> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> <a-entity camera mouse-cursor></a-entity> </a-scene> </body> // 以下省略 10. 11. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. "3ۭؒʹදࣔ͠Α͏ d"3ϚʔΧʔʹ͔ͯ͟͠ίϯςϯπදࣔ d ٿͱμοΫͷ·ͱ·ΓBFOUJUZʙBFOUJUZͷ ্ԼʹͦΕͧΕߦͣͭૠೖͯ͠
// 前略 <body> <a-scene embedded arjs="sourceType: webcam; detectionMode: mono; maxDetectionRate:
30; canvasWidth: 240; canvasHeight: 180; debugUIEnabled: false;"> // 中略 <a-marker preset="hiro"> <a-entity> <a-animation begin="click" attribute="rotation" from="0 0 0" to="0 360 0" dur="3000" easing="linear" repeat="true"></a-animation> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> </a-marker> <a-entity camera mouse-cursor></a-entity> </a-scene> </body> // 以下省略 10. 11. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. "3ۭؒʹදࣔ͠Α͏ d"3ϚʔΧʔʹ͔ͯ͟͠ίϯςϯπදࣔ d BNBSLFSʙBNBSLFSͰғΉ͜ͱʹΑΓؔ࿈͚Δɻ ·ͨɺݕ͢Δ"3ϚʔΧʔͷλΠϓΛ)JSPʹ͢ΔͨΊQSFTFU ΛՃ͢Δɻ
4IPXΛΫϦοΫ࣮ͯ͠ߦ "3ۭؒʹදࣔ͠Α͏ d"3ϚʔΧʔʹ͔ͯ͟͠ίϯςϯπදࣔ d
ϚʔΧʔʹ͔ͯ͟͠ٿͱ μοΫ͕දࣔ͞ΕͨΒ0,ɻ "3ۭؒʹදࣔ͠Α͏ d"3ϚʔΧʔʹ͔ͯ͟͠ίϯςϯπදࣔ d
·ͩαΠζҐஔͷௐ͕ ඞཁɻ "3ۭؒʹදࣔ͠Α͏ d"3ίϯςϯπͷҐஔɾαΠζௐ d
࣮ߦ݁ՌͷλϒΛดͯ͡ ฤूը໘ͷλϒΔ "3ۭؒʹදࣔ͠Α͏ d"3ίϯςϯπͷҐஔɾαΠζௐ d
Z (-) X (+) Y (+) Z (+) Y (-)
X (-) X: 0 Y: 0 Z: 0 ϚʔΧʔͱ ࠲ඪͷؔ "3ۭؒʹදࣔ͠Α͏ d"3ίϯςϯπͷҐஔɾαΠζௐ d
ϚʔΧʔͷαΠζ ϝʔτϧ σϑΥϧτ ϝʔτϧ σϑΥϧτ • ϚʔΧʔͷαΠζҰลΛϝʔτϧͱΈ ͳ͢ɻ σϑΥϧτ •
αΠζΛࢦఆ͢Δ߹ɺҰลͷ͞Λ ϝʔτϧ୯ҐͰࢦఆ͢Δɻ "3ۭؒʹදࣔ͠Α͏ d"3ίϯςϯπͷҐஔɾαΠζௐ d
// 前略 <body> <a-scene embedded arjs="sourceType: webcam; detectionMode: mono; maxDetectionRate:
30; canvasWidth: 240; canvasHeight: 180; debugUIEnabled: false;"> // 中略 <a-marker preset="hiro"> <a-entity> <a-animation begin="click" attribute="rotation" from="0 0 0" to="0 360 0" dur="3000" easing="linear" repeat="true"></a-animation> <a-sphere position="0 0 0" rotation="0 0 0" scale="1 1 1" radius="1" src="#earth-jpg"></a-sphere> <a-obj-model position="2 0 0" rotation="0 0 0" scale="0.25 0.25 0.25" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> </a-marker> <a-entity camera mouse-cursor></a-entity> </a-scene> </body> // 以下省略 10. 11. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. "3ۭؒʹදࣔ͠Α͏ d"3ίϯςϯπͷҐஔɾαΠζௐ d ݱ࣌ͰϚʔΧʔʹରͯ͠ٿμοΫ͕େ͖͗͢Δɻ ·ͨٿͷத৺͕ݪʹ͋ΔͨΊɺϚʔΧʔ͕ٿʹຒΕ ͯ͠·͏ɻ
// 前略 <body> <a-scene embedded arjs="sourceType: webcam; detectionMode: mono; maxDetectionRate:
30; canvasWidth: 240; canvasHeight: 180; debugUIEnabled: false;"> // 中略 <a-marker preset="hiro"> <a-entity> <a-animation begin="click" attribute="rotation" from="0 0 0" to="0 360 0" dur="3000" easing="linear" repeat="true"></a-animation> <a-sphere position="0 0.5 0" rotation="0 0 0" scale="1 1 1" radius="0.5" src="#earth-jpg"></a-sphere> <a-obj-model position="1 0.5 0" rotation="0 0 0" scale="0.125 0.125 0.125" src="#duck-obj" mtl="#duck-mtl"></a-obj-model> </a-entity> </a-marker> <a-entity camera mouse-cursor></a-entity> </a-scene> </body> // 以下省略 10. 11. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. "3ۭؒʹදࣔ͠Α͏ d"3ίϯςϯπͷҐஔɾαΠζௐ d ٿ͕ϚʔΧʔͷதʹऩ·ΔαΠζͰɺ͔ͭɺ ϚʔΧʔͷ্ʹͪΐ͏ͲΔ͘Β͍ͷҐஔʹௐɻ μοΫͷαΠζɺҐஔ߹Θͤͯௐɻ
4IPXΛΫϦοΫ࣮ͯ͠ߦ "3ۭؒʹදࣔ͠Α͏ d"3ίϯςϯπͷҐஔɾαΠζௐ d
"3ۭؒʹදࣔ͠Α͏ d"3ίϯςϯπͷҐஔɾαΠζௐ d ٿ͕ϚʔΧʔ্ʹ͓͞·Δ͘Β͍ͷ ҐஔɾαΠζͰɺμοΫఔΑ͘ௐ Ͱ͖͍ͯΕ0,
࣮ߦ݁ՌͷλϒΛดͯ͡ ฤूը໘ͷλϒΔ "3ۭؒʹදࣔ͠Α͏ d"3ίϯςϯπͷҐஔɾαΠζௐ d
%ςΩετΛදࣔ͠Α͏
// 前略 <head> <title>Hello, WebAR! - A-Frame & AR.js</title> <meta
name="description" content="Hello, WebAR! - A-Frame & AR.js"> <script src="https://aframe.io/releases/0.6.0/aframe.min.js"></script> <script src="https://rawgit.com/mayognaise/aframe-mouse-cursor- component/master/dist/aframe-mouse-cursor-component.js"></script> <script src="https://rawgit.com/jeromeetienne/AR.js/master/aframe/build/aframe- ar.js"></script> </head> // 以下省略 3. 4. 5. 6. 7. 8. 9. 10. %ςΩετΛදࣔ͠Α͏ d%ςΩετදࣔϥΠϒϥϦͷಡΈࠐΈ d %ςΩετΛදࣔ͢ΔͨΊͷϥΠϒϥϦΛಡΈࠐΉɻ IFBEʙIFBEͷ࠷ޙʹߦૠೖɻ
// 前略 <head> <title>Hello, WebAR! - A-Frame & AR.js</title> <meta
name="description" content="Hello, WebAR! - A-Frame & AR.js"> <script src="https://aframe.io/releases/0.6.0/aframe.min.js"></script> <script src="https://rawgit.com/mayognaise/aframe-mouse-cursor- component/master/dist/aframe-mouse-cursor-component.js"></script> <script src="https://rawgit.com/jeromeetienne/AR.js/master/aframe/build/aframe- ar.js"></script> <script src="https://rawgit.com/ngokevin/kframe/master/components/text- geometry/dist/aframe-text-geometry-component.js"></script> </head> // 以下省略 3. 4. 5. 6. 7. 8. 9. 10. %ςΩετΛදࣔ͠Α͏ d%ςΩετදࣔϥΠϒϥϦͷಡΈࠐΈ d TDSJQUʙTDSJQUΛهड़ͯ͠BGSBNFUFYUHFPNFUSZDPNQPOFOU ಡΈࠐΈɻ ˔DPQZBOEQBTUFUYUͷ <%ςΩετΛදࣔ͢ΔϥΠϒϥϦ> ͔Βίϐϖɻ
// 前略 <a-scene embedded arjs="sourceType: webcam; detectionMode: mono; maxDetectionRate: 30;
canvasWidth: 240; canvasHeight: 180; debugUIEnabled: false;"> // 中略 <a-marker preset="hiro"> <a-entity> // 中略 </a-entity> </a-marker> <a-entity camera mouse-cursor></a-entity> </a-scene> // 以下省略 12. 18. 19. 23. 24. 25. 26. 27. %ςΩετΛදࣔ͠Α͏ d%ςΩετͷஔ d "3ϚʔΧʔΛݕͨ͠Β%ςΩετ͕දࣔ͞ΕΔΑ͏ʹ͢Δɻ ͨͩ͠ΞχϝʔγϣϯߦΘͳ͍ɻ BNBSLFSʙBNBSLFSͷ࠷ޙʹߦૠೖɻ
// 前略 <a-scene embedded arjs="sourceType: webcam; detectionMode: mono; maxDetectionRate: 30;
canvasWidth: 240; canvasHeight: 180; debugUIEnabled: false;"> // 中略 <a-marker preset="hiro"> <a-entity> // 中略 </a-entity> <a-entity position="-1.2 0 0.75" rotation="-30 0 0" text-geometry="value: #AR_Fukuoka; bevelEnabled: true; bevelSize: 0.016; bevelThickness: 0.016; size: 0.25;" material="color: cyan;"></a-entity> </a-marker> <a-entity camera mouse-cursor></a-entity> </a-scene> // 以下省略 12. 18. 19. 23. 24. 25. 26. 27. %ςΩετΛදࣔ͠Α͏ d%ςΩετͷஔ d BFOUJUZʙBFOUJUZΛՃ͠UFYUHFPNFUSZΛ͚Δɻ WBMVFͷ͖ͳӳࣈΛೖྗɻ σϑΥϧτͰຊޠෆՄ ˔DPQZBOEQBTUFUYUͷ <%ςΩετͷදࣔ> ͔Βίϐϖɻ
4IPXΛΫϦοΫ࣮ͯ͠ߦ %ςΩετΛදࣔ͠Α͏ d%ςΩετͷஔ d
%ςΩετ͕දࣔ ͞ΕͨΒ0, %ςΩετΛදࣔ͠Α͏ d%ςΩετͷஔ d
࣮ߦ݁ՌͷλϒΛดͯ͡ ฤूը໘ͷλϒΔ %ςΩετΛදࣔ͠Α͏ d%ςΩετͷஔ d
// 前略 <a-scene embedded arjs="sourceType: webcam; detectionMode: mono; maxDetectionRate: 30;
canvasWidth: 240; canvasHeight: 180; debugUIEnabled: false;"> // 中略 <a-marker preset="hiro"> <a-entity> // 中略 </a-entity> <a-entity position="-1.2 0 0.75" rotation="-30 0 0" text-geometry="value: #AR_Fukuoka; bevelEnabled: true; bevelSize: 0.016; bevelThickness: 0.016; size: 0.25;" material="color: cyan;"></a-entity> </a-marker> <a-entity camera mouse-cursor></a-entity> </a-scene> // 以下省略 12. 18. 19. 23. 24. 25. 26. 27. %ςΩετΛදࣔ͠Α͏ d%ςΩετͷղઆ d UFYUHFPNFUSZ ςΩετΛཱମతʹදࣔ͢Δɻ WBMVF"3@'VLVPLB ˠ ҙͷจࣈྻ σϑΥϧτϑΥϯτຊޠෆՄ CFWFM&OBCMFEUSVF ˠ ϕϕϧ༗ޮ จࣈͷ֯ΛؙΊΔ CFWFM4J[F ˠ ͕େ͖͍΄Ͳจࣈͷྠֲ͕ଠ͘ͳΔ CFWFM5IJDLOFTT ˠ ͕େ͖͍΄ͲްʹͳΔ TJ[F ˠ ϕϕϧͷαΠζΛม͑ͣจࣈαΠζ͚ͩม͑Δ߹ʹࢦఆ
+BWB4DSJQUͰΠϯλϥΫγϣϯ
// 前略 <a-scene embedded arjs="sourceType: webcam; detectionMode: mono; maxDetectionRate: 30;
canvasWidth: 240; canvasHeight: 180; debugUIEnabled: false;"> // 中略 <a-marker preset="hiro"> <a-entity> // 中略 </a-entity> <a-entity position="-1.2 0 0.75" rotation="-30 0 0" text-geometry="value: #AR_Fukuoka; bevelEnabled: true; bevelSize: 0.016; bevelThickness: 0.016; size: 0.25;" material="color: cyan;"></a-entity> </a-marker> <a-entity camera mouse-cursor></a-entity> </a-scene> // 以下省略 12. 18. 19. 23. 24. 25. 26. 27. +BWB4DSJQUͰΠϯλϥΫγϣϯ d%ςΩετͷΫϦοΫͰ8FCϖʔδΛΦʔϓϯ d ઌʹར༻ͨ͠ΫϦοΫݕϥΠϒϥϦΛԠ༻ͯ͠ɺ %ςΩετͷΫϦοΫ࣌ʹಛఆͷ8FCϖʔδΛ։͘ Α͏ʹ͢Δɻ·ͣઌʹஔͨ͠%ςΩετʹ
// 前略 <a-scene embedded arjs="sourceType: webcam; detectionMode: mono; maxDetectionRate: 30;
canvasWidth: 240; canvasHeight: 180; debugUIEnabled: false;"> // 中略 <a-marker preset="hiro"> <a-entity> // 中略 </a-entity> <a-entity id="arfukuoka" position="-1.2 0 0.75" rotation="-30 0 0" text- geometry="value: #AR_Fukuoka; bevelEnabled: true; bevelSize: 0.016; bevelThickness: 0.016; size: 0.25;" material="color: cyan;"></a-entity> </a-marker> <a-entity camera mouse-cursor></a-entity> </a-scene> // 以下省略 12. 18. 19. 23. 24. 25. 26. 27. JEΛՃͯ͠Ұҙͷ໊শΛ͚ͭΔ +BWB4DSJQUͰΠϯλϥΫγϣϯ d%ςΩετͷΫϦοΫͰ8FCϖʔδΛΦʔϓϯ d
// 前略 <body> <a-scene embedded arjs="sourceType: webcam; detectionMode: mono; maxDetectionRate:
30; canvasWidth: 240; canvasHeight: 180; debugUIEnabled: false;"> // 中略 </a-scene> </body> // 以下省略 11. 12. 27. 28. 29. 30. 31. 32. 29. %ςΩετΫϦοΫ࣌ͷڍಈΛهड़͢Δɻ BTDFOFʙBTDFOFͷԼʹߦૠೖͯ͠ +BWB4DSJQUͰΠϯλϥΫγϣϯ d%ςΩετͷΫϦοΫͰ8FCϖʔδΛΦʔϓϯ d
// 前略 <body> <a-scene embedded arjs="sourceType: webcam; detectionMode: mono; maxDetectionRate:
30; canvasWidth: 240; canvasHeight: 180; debugUIEnabled: false;"> // 中略 </a-scene> <script> document.getElementById("arfukuoka").addEventListener("click", function(evt) { window.open("https://twitter.com/search?q=%23ar_fukuoka", "_blank"); }, false); </script> </body> // 以下省略 11. 12. 27. 28. 29. 30. 31. 32. 29. +BWB4DSJQUͰΠϯλϥΫγϣϯ d%ςΩετͷΫϦοΫͰ8FCϖʔδΛΦʔϓϯ d TDSJQUʙTDSJQUΛՃͯ͠+BWB4DSJQUΛهड़ɻ͜͜Ͱɺ࣍ͷΑ͏ͳ ڍಈͱͳΔɻ JE͕BSGVLVPLBͷཁૉ %ςΩετ ͰΫϦοΫΛݕ͢Δ ࢦఆ63- BS@GVLVPLBͷ5XJUUFSݕࡧ݁Ռϖʔδ Λ৽͍͠λϒͰ։͘ ˔DPQZBOEQBTUFUYUͷ <+BWB4DSJQUͰͷΫϦοΫݕ> ͔Βίϐϖɻ
4IPXΛΫϦοΫ࣮ͯ͠ߦ +BWB4DSJQUͰΠϯλϥΫγϣϯ d%ςΩετͷΫϦοΫͰ8FCϖʔδΛΦʔϓϯ d
%ςΩετΛΫϦοΫ +BWB4DSJQUͰΠϯλϥΫγϣϯ d%ςΩετͷΫϦοΫͰ8FCϖʔδΛΦʔϓϯ d
+BWB4DSJQUͰΠϯλϥΫγϣϯ d%ςΩετͷΫϦοΫͰ8FCϖʔδΛΦʔϓϯ d ৽͍͠λϒͰ8FCϖʔδ ͕։͚0,
ʂ ͓ർΕ༷Ͱͨ͠ɻ