Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ARマイクラで使った技術を 軽率に解説する/Introducing technologies ...
Search
にー兄さん
March 19, 2022
Technology
240
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ARマイクラで使った技術を 軽率に解説する/Introducing technologies of AR Minecraft
MS Tech Camp #13にてLT登壇した資料です
にー兄さん
March 19, 2022
More Decks by にー兄さん
See All by にー兄さん
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
610
ついにAuraも登場したのでJetpack XR SDKについて今一度語りたい / i wanna talk about xreal aura
drumath2237
0
48
『Ground Truth: How We Create Geometrically Accurate Reconstructions (Niantic Spatial Blog)』 を読む / read Ground Truth: How We Create Geometrically Accurate Reconstructions
drumath2237
0
86
この時代にOSS開発に向き合ってみる / face the oss development in this era
drumath2237
0
69
プログラマの職能が代替可能になりつつあるこの時代でプログラムと向き合う修行を積む / dedicating myself to the discipline of programming
drumath2237
0
140
個人的3D Gaussian Splattingニュースをご紹介 / sharing 3d gaussian splatting news
drumath2237
0
680
Jetpack XR SDKから紐解くAndroid XR開発と技術選定のヒント / about-androidxr-and-jetpack-xr-sdk
drumath2237
1
940
XRエンジニアの視点から XRのイマと社会実装の実現について考える / thinking-about-xr-popularization
drumath2237
0
100
軽率にプログラミング言語のシンタックスについて考えてみよう / lets-think-about-programming-lang-syntax
drumath2237
0
150
Other Decks in Technology
See All in Technology
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
920
AIカンパニーへの転換を支えた、エンジニアの仕事の再定義
kworkdev
PRO
2
1.3k
パスキーの自動テストはどこまでいけるのか
teamlab
PRO
0
260
スプシの手作業からの解脱 ~更新はClaude Codeに、見せ方と使い方はGASアプリに任せる~
kentarofujii
0
150
Optunaの最新リリースv5.0について
pfn
PRO
0
120
パッチ更新でterraform initが落ちた日
grimoh
1
140
V8のArray.prototype.flatを最大約20倍速くするまでと、巨大OSSへの大規模コミットの道のり
riyaamemiya
0
290
Running Kotlin + Quarkus with Lambda
nealle
1
3.8k
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.8k
触りたくないデータに、どう触るか AI時代のRBACアクセスガバナンス
ivry_presentationmaterials
0
270
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.7k
Post AI時代のリファクタリング実践記 / Refactoring in the post AI era
kaminashi
1
250
Featured
See All Featured
Utilizing Notion as your number one productivity tool
mfonobong
4
620
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
The SEO identity crisis: Don't let AI make you average
varn
0
590
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
560
Six Lessons from altMBA
skipperchong
29
4.5k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
300
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Ethics towards AI in product and experience design
skipperchong
2
430
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
540
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
550
Believing is Seeing
oripsolob
1
240
Why Our Code Smells
bkeepers
PRO
340
58k
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