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
ARマイクラで使った技術を 軽率に解説する/Introducing technologies ...
Search
にー兄さん
March 19, 2022
Technology
0
210
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
20
軽率にプログラミング言語のシンタックスについて考えてみよう / lets-think-about-programming-lang-syntax
drumath2237
0
64
エンジニアが軽率に趣味から始める、OSS貢献を軸とした個人活動 / oss-contribution-as-a-hoby-project
drumath2237
0
40
Babylon.js 8.0のアプデ情報を 軽率にキャッチアップ / catch-up-babylonjs-8
drumath2237
0
220
フォークギター with VFXの 制作を軽率に振り返ろう! / look back fork guitar with vfx
drumath2237
0
47
軽率に始まった Babylon.js勉強会運営の 1年間をふりかえって / look back babylonjs japan activity
drumath2237
0
75
利己的利他、 あるいは軽率2.0に備えよ。 / prepare-for-keisotsu-2.0
drumath2237
0
59
軽率にAndroidXRのJetpack SceneCoreを使って3Dモデルを表示してみる / androidxr-scenecore-3dmodels
drumath2237
0
140
あなたの知らないWebXR Device APIの話を軽率に / about-webxr-device-api-you-dont-know
drumath2237
0
69
Other Decks in Technology
See All in Technology
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
43k
いまからでも遅くない!SSL/TLS証明書超入門(It's not too late to start! SSL/TLS Certificates: The Absolute Beginner's Guide)
norimuraz
0
260
dbtとBigQuery MLで実現する リクルートの営業支援基盤のモデル開発と保守運用
recruitengineers
PRO
3
100
データ戦略部門 紹介資料
sansan33
PRO
1
3.8k
それでも私が品質保証プロセスを作り続ける理由 #テストラジオ / Why I still continue to create QA process
pineapplecandy
0
110
incident_commander_demaecan__1_.pdf
demaecan
0
160
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3k
新規事業におけるGORM+SQLx併用アーキテクチャ
hacomono
PRO
0
320
生成AI時代のセキュアコーディングとDevSecOps
yuriemori
0
120
プロダクトのコードから見るGoによるデザインパターンの実践 #go_night_talk
bengo4com
1
2.6k
Git in Team
kawaguti
PRO
3
380
ガバメントクラウドの概要と自治体事例(名古屋市)
techniczna
3
240
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
246
12k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Designing for Performance
lara
610
69k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Embracing the Ebb and Flow
colly
88
4.9k
jQuery: Nuts, Bolts and Bling
dougneiner
65
7.9k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
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