Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ARマイクラで使った技術を 軽率に解説する/Introducing technologies ...
Search
にー兄さん
March 19, 2022
Technology
0
220
ARマイクラで使った技術を 軽率に解説する/Introducing technologies of AR Minecraft
MS Tech Camp #13にてLT登壇した資料です
にー兄さん
March 19, 2022
Tweet
Share
More Decks by にー兄さん
See All by にー兄さん
XRエンジニアの視点から XRのイマと社会実装の実現について考える / thinking-about-xr-popularization
drumath2237
0
29
軽率にプログラミング言語のシンタックスについて考えてみよう / lets-think-about-programming-lang-syntax
drumath2237
0
74
エンジニアが軽率に趣味から始める、OSS貢献を軸とした個人活動 / oss-contribution-as-a-hoby-project
drumath2237
0
43
Babylon.js 8.0のアプデ情報を 軽率にキャッチアップ / catch-up-babylonjs-8
drumath2237
0
260
フォークギター with VFXの 制作を軽率に振り返ろう! / look back fork guitar with vfx
drumath2237
0
56
軽率に始まった Babylon.js勉強会運営の 1年間をふりかえって / look back babylonjs japan activity
drumath2237
0
92
利己的利他、 あるいは軽率2.0に備えよ。 / prepare-for-keisotsu-2.0
drumath2237
0
67
軽率にAndroidXRのJetpack SceneCoreを使って3Dモデルを表示してみる / androidxr-scenecore-3dmodels
drumath2237
0
170
あなたの知らないWebXR Device APIの話を軽率に / about-webxr-device-api-you-dont-know
drumath2237
0
100
Other Decks in Technology
See All in Technology
プロダクトマネジメントの分業が生む「デリバリーの渋滞」を解消するTPMの越境
recruitengineers
PRO
3
460
Introduction to Bill One Development Engineer
sansan33
PRO
0
330
AI (LLM) を活用する上で必須級のMCPをAmazon Q Developerで学ぼう / 20251127 Ikuma Yamashita
shift_evolve
PRO
2
100
私のRails開発環境
yahonda
0
180
AI/MLのマルチテナント基盤を支えるコンテナ技術
pfn
PRO
5
740
Playwrightのソースコードに見る、自動テストを自動で書く技術
yusukeiwaki
9
3.1k
たかが特別な時間の終わり / It's Only the End of Special Time
watany
6
1.7k
ML PM Talk #1 - ML PMの分類に関する考察
lycorptech_jp
PRO
1
550
Multimodal AI Driving Solutions to Societal Challenges
keio_smilab
PRO
1
120
How native lazy objects will change Doctrine and Symfony forever
beberlei
1
390
M5UnifiedとPicoRubyで楽しむM5シリーズ
kishima
0
120
AI時代の開発フローとともに気を付けたいこと
kkamegawa
0
450
Featured
See All Featured
Designing for humans not robots
tammielis
254
26k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.1k
Visualization
eitanlees
150
16k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Automating Front-end Workflow
addyosmani
1371
200k
Navigating Team Friction
lara
191
16k
Faster Mobile Websites
deanohume
310
31k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Transcript
ARマイクラで使った技術を 軽率に解説する にー兄さん(ninisan_drumath) MS Tech Camp #13
にー兄さん(@ninisan_drumath) - 筑波大学 情報科学類(coins18) - HoloLab inc.アルバイト - Microsoft Learn
Student Ambassadors - Iwaken Lab. 趣味はUnity、ギター、コーヒー、VTuberオタ活 唐突な愛猫自慢→
agenda ARマイクラの概要 Unityクライアント Azureバックエンド おわりに
ARマイクラの概要
None
ARマイクラの仕様 - 大学キャンパス内の特定の場所でプレイ - マイクラ的にブロック配置ができる - マルチプレイができる(リアルタイムなブロック配置の検知) - ブロックは現実の場所にずっと保存される
開発のモチベーション - 個人活動 Project TSUin-MIのデモンストレーション - ARクラウドの検証開発
Project TSUin-MI - つくば市全体のARクラウドを構築を目指すプロジェクト - 現状の技術で「どこまで可能か」「どんな価値があるか」 を提示することが目的 - 成果はすべてネットに公開 https://scrapbox.io/project-TSUin-MI/
Unityクライアント
クライアントでやっていること ARにまつわる処理 - Unity ARFoundationによるAR表現 - Immersalによる空間の位置合わせ コンテンツにまつわる処理 - ブロック配置ロジックの実行
- バックエンドサービスとの通信
ブロック配置ロジック 1. カメラ前方からレイを発射 2. 衝突判定 (平面 | ブロック | other)
3. 法線方向にブロック配置
空間の位置合わせ Immersalによる位置合わせを実行 これができるとARでも マルチプレイができるようになる 事前に現実空間を3Dスキャン 画像⇔3次元マップでの照合 (Visual Positionng System)
バックエンドとのやりとり Unity (Androidクライアント) Azure (詳細後述) ブロック配置 (双方向リアルタイム) 全ブロックデータ 3Dマップ上の座標を使う ことでマルチプレイが可
能に
Azureバックエンド
使用したリソースと構成
リアルタイム通信 Azure Web PubSubを使用 WebSocketを使ってソケット通信できる NuGetに.NET Standard 2.0対応のdllがある →つまりUnityで使える もともとSignalR使ってたけど
IL2CPPビルドでこけたので変更 (なんでだろ) Azure Web PubSub
ブロックの保存 FunctionsとCosmosDBの組み合わせ ちゃちゃっと作りたかったので サーバレスで実装 FunctionsのコードはTypeScript GitHub ActionsでCI/CD
おわりに
まとめ - 空間の位置合わせによってARマルチプレイなどが可能になる - バックエンドも(簡単であれば)Azureのサーバーレスで完結 - ARマイクラ楽しい!
参考文献 Immersal https://immersal.com Azure CosmosDBとAzure Functions https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-integrate-store-unstructured-data-c osmosdb?tabs=csharp Azure Web
PubSub https://azure.microsoft.com/ja-jp/services/web-pubsub/ Web PubSubをUnityで使うサンプル https://github.com/drumath2237/PubSub-Android-Test