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 of AR Minecraft
Search
にー兄さん
March 19, 2022
Technology
0
190
ARマイクラで使った技術を 軽率に解説する/Introducing technologies of AR Minecraft
MS Tech Camp #13にてLT登壇した資料です
にー兄さん
March 19, 2022
Tweet
Share
More Decks by にー兄さん
See All by にー兄さん
UnJSを使って軽率にCLIを作ってみたらめちゃくちゃ便利だった / create CLI with UnJS
drumath2237
0
30
create-babylon-appを軽率にアプデしたい / update create babylon app
drumath2237
1
14
Babylon.js 7注目機能を 軽率にまとめてみる/whats-new-in-babylonjs-v7
drumath2237
1
100
軽率にVFX Graphと Compute Shaderを 組み合わせるテクニック/integrate-vfxgraph-and-compute-shader
drumath2237
1
120
軽率にVue 3で リアルタイム3Dアプリを作れる ライブラリを作ってみた/vue-with-3d-app
drumath2237
3
1.6k
軽率にBabylon.jsを C#で使う技術 / using-babylonjs-with-csharp
drumath2237
1
510
今こそ軽率に理解したい WebXR Device APIとBabylon.jsの話 / understand-webxr-device-api-and-babylonjs
drumath2237
0
60
Vue・Babylon連携ライブラリ BabyuewJSについて / about-babyuewjs
drumath2237
0
120
軽率にBabylon.jsの WebGPUエンジンを使って ComputeShaderに入門した / learn-about-babylonjs-webgpu-computeshader
drumath2237
0
490
Other Decks in Technology
See All in Technology
Datadog Cloud SIEMを使ってAWS環境の脅威を可視化した話/lifeistech-datadog-cloud-siem
gidajun
0
480
Flutter研修【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
160
GoとアクターモデルでES+CQRSを実践! / proto_actor_es_cqrs
ytake
1
150
DDDにおける認可の扱いとKotlinにおける実装パターン / authorization-for-ddd-and-kotlin-implement-pattern
urmot
4
390
AIエージェントを現場に導入する目線とは
masahiro_nishimi
1
1.5k
AOAI Dev Day - Opening Session
yoshidashingo
2
440
初中級者用如何使用backlog -VALE TUDOEDITION-
in0u
0
140
AutomatedLabを使って内部ペンテストを勉強しよう! -やられ社内ネットワークの自動構築-
n_etupirka
1
610
Docker互換のセキュアなコンテナ実行環境「Podman」超入門
devops_vtj
6
3.2k
CTOから見た事業開発とプロダクト開発 / My Perspective on Business and Product Development as CTO
keisuke69
4
960
データベース研修 DB基礎【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
210
サービスの持続的な成長と技術負債について
siva_official
PRO
10
4.4k
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
127
8.7k
Git: the NoSQL Database
bkeepers
PRO
423
64k
Docker and Python
trallard
37
2.9k
BBQ
matthewcrist
82
9k
Building Applications with DynamoDB
mza
89
5.8k
Unsuck your backbone
ammeep
666
57k
The Cost Of JavaScript in 2023
addyosmani
31
4.7k
Fontdeck: Realign not Redesign
paulrobertlloyd
79
5.1k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Optimizing for Happiness
mojombo
373
69k
[RailsConf 2023] Rails as a piece of cake
palkan
35
4.4k
Designing the Hi-DPI Web
ddemaree
276
34k
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