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
93
日本語でおk?
shinjism
0
220
Other Decks in Research
See All in Research
Introducing Research Units of Matsuo-Iwasawa Laboratory
matsuolab
0
1.4k
論文読み会 KDD2024 | Relevance meets Diversity: A User-Centric Framework for Knowledge Exploration through Recommendations
cocomoff
0
120
データサイエンティストをめぐる環境の違い 2024年版〈一般ビジネスパーソン調査の国際比較〉
datascientistsociety
PRO
0
820
ニュースメディアにおける事前学習済みモデルの可能性と課題 / IBIS2024
upura
3
700
Composed image retrieval for remote sensing
satai
2
130
文化が形作る音楽推薦の消費と、その逆
kuri8ive
0
210
20240918 交通くまもとーく 未来の鉄道網編(太田恒平)
trafficbrain
0
380
第79回 産総研人工知能セミナー 発表資料
agiats
2
180
The Fellowship of Trust in AI
tomzimmermann
0
160
テキストマイニングことはじめー基本的な考え方からメディアディスコース研究への応用まで
langstat
1
150
言語と数理の交差点:テキストの埋め込みと構造のモデル化 (IBIS 2024 チュートリアル)
yukiar
4
940
Weekly AI Agents News! 10月号 論文のアーカイブ
masatoto
1
410
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
66
11k
Rails Girls Zürich Keynote
gr2m
94
13k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
Code Review Best Practice
trishagee
65
17k
Designing Experiences People Love
moore
138
23k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
A better future with KSS
kneath
238
17k
Why Our Code Smells
bkeepers
PRO
335
57k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
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,
ʂ ͓ർΕ༷Ͱͨ͠ɻ