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 にー兄さん
軽率にプログラミング言語のシンタックスについて考えてみよう / lets-think-about-programming-lang-syntax
drumath2237
0
18
エンジニアが軽率に趣味から始める、OSS貢献を軸とした個人活動 / oss-contribution-as-a-hoby-project
drumath2237
0
31
Babylon.js 8.0のアプデ情報を 軽率にキャッチアップ / catch-up-babylonjs-8
drumath2237
0
130
フォークギター with VFXの 制作を軽率に振り返ろう! / look back fork guitar with vfx
drumath2237
0
27
軽率に始まった Babylon.js勉強会運営の 1年間をふりかえって / look back babylonjs japan activity
drumath2237
0
52
利己的利他、 あるいは軽率2.0に備えよ。 / prepare-for-keisotsu-2.0
drumath2237
0
40
軽率にAndroidXRのJetpack SceneCoreを使って3Dモデルを表示してみる / androidxr-scenecore-3dmodels
drumath2237
0
110
あなたの知らないWebXR Device APIの話を軽率に / about-webxr-device-api-you-dont-know
drumath2237
0
32
UnJSを使って軽率にCLIを作ってみたらめちゃくちゃ便利だった / create CLI with UnJS
drumath2237
4
1.6k
Other Decks in Technology
See All in Technology
MySQL5.6から8.4へ 戦いの記録
kyoshidaxx
1
300
自律的なスケーリング手法FASTにおけるVPoEとしてのアカウンタビリティ / dev-productivity-con-2025
yoshikiiida
0
320
AWS Organizations 新機能!マルチパーティ承認の紹介
yhana
1
220
Lambda Web Adapterについて自分なりに理解してみた
smt7174
5
140
さくらのIaaS基盤のモニタリングとOpenTelemetry/OSC Hokkaido 2025
fujiwara3
2
240
GeminiとNotebookLMによる金融実務の業務革新
abenben
0
240
Model Mondays S2E03: SLMs & Reasoning
nitya
0
240
あなたの声を届けよう! 女性エンジニア登壇の意義とアウトプット実践ガイド #wttjp / Call for Your Voice
kondoyuko
4
500
Liquid Glass革新とSwiftUI/UIKit進化
fumiyasac0921
0
300
LangChain Interrupt & LangChain Ambassadors meetingレポート
os1ma
2
220
KubeCon + CloudNativeCon Japan 2025 Recap by CA
ponkio_o
PRO
0
240
GitHub Copilot の概要
tomokusaba
1
150
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Being A Developer After 40
akosma
90
590k
GraphQLとの向き合い方2022年版
quramy
49
14k
Code Reviewing Like a Champion
maltzj
524
40k
A Modern Web Designer's Workflow
chriscoyier
694
190k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
24k
A better future with KSS
kneath
239
17k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
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