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
マップゲーム SDK 競合の話 / arow and other map game sdk
Search
Ryuichi Jinushi
September 23, 2019
Programming
0
950
マップゲーム SDK 競合の話 / arow and other map game sdk
こちらで LT したときの資料です。
https://connpass.com/event/139403/
Ryuichi Jinushi
September 23, 2019
Tweet
Share
More Decks by Ryuichi Jinushi
See All by Ryuichi Jinushi
非エンジニアにも分かる UniRx(ゆにあーるえっくす)/ UniRx for non-engineers
ryuj
1
53
マップゲーム SDK AROW とその運用を支える AWS の構成 / AROW with AWS
ryuj
0
89
少人数の SDK 開発を支えるテストの話 / tests for small group development
ryuj
0
460
位置情報を用いたモバイルゲームが 気軽に作れる 3D リアルマップサービス 「AROW」について (実践編) / how to AROW practice at Gotanda.unity #11
ryuj
0
64
技術書のすゝめ / suggestion of technical book
ryuj
0
75
Other Decks in Programming
See All in Programming
『毎日の移動』を支えるGoバックエンド内製開発
yutautsugi
2
200
LLMとPlaywright/reg-suitを活用した jQueryリファクタリングの実際
kinocoboy2
4
670
Web フロントエンドエンジニアに開かれる AI Agent プロダクト開発 - Vercel AI SDK を観察して AI Agent と仲良くなろう! #FEC余熱NIGHT
izumin5210
3
410
iOSアプリの信頼性を向上させる取り組み/ios-app-improve-reliability
shino8rayu9
0
150
After go func(): Goroutines Through a Beginner’s Eye
97vaibhav
0
240
プロダクト開発をAI 1stに変革する〜SaaS is dead時代で生き残るために〜 / AI 1st Product Development
kobakei
0
490
Web技術を最大限活用してRAW画像を現像する / Developing RAW Images on the Web
ssssota
2
1.2k
非同期jobをtransaction内で 呼ぶなよ!絶対に呼ぶなよ!
alstrocrack
0
540
Back to the Future: Let me tell you about the ACP protocol
terhechte
0
130
Serena MCPのすすめ
wadakatu
4
900
株式会社 Sun terras カンパニーデック
sunterras
0
230
Local Peer-to-Peer APIはどのように使われていくのか?
hal_spidernight
2
450
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Navigating Team Friction
lara
189
15k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Facilitating Awesome Meetings
lara
56
6.6k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
Code Review Best Practice
trishagee
72
19k
Agile that works and the tools we love
rasmusluckow
331
21k
Making Projects Easy
brettharned
119
6.4k
A better future with KSS
kneath
239
17k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
Transcript
Copyright Drecom Co., Ltd. All Rights Reserved. マップゲーム SDK 競合の話
株式会社ドリコム DRIP 部 地主龍一
Copyright Drecom Co., Ltd. All Rights Reserved. 自己紹介 地主龍一(Ryuichi JINUSHI)
• じぬ / ryuj / @reximology • DRIP 部(新規開発) 最近 • キングダムハーツ3 • オクトパストラベラー • 新しいポインターを買ってもらった
Copyright Drecom Co., Ltd. All Rights Reserved. 昨日の戦利品
Copyright Drecom Co., Ltd. All Rights Reserved. 位置情報と 3D リアルマップを用いた
アプリ開発プラットフォーム
Copyright Drecom Co., Ltd. All Rights Reserved. マップデータ + Unity
SDK AROW の提供物
Copyright Drecom Co., Ltd. All Rights Reserved. Google
Copyright Drecom Co., Ltd. All Rights Reserved. Google Maps Unity
SDK Demo
Copyright Drecom Co., Ltd. All Rights Reserved. 競合 SDK さわって比較してみた話
今日の内容
Copyright Drecom Co., Ltd. All Rights Reserved. アジェンダ • 概要と全体像の章
• とりあえず動かす章 • デモと実装を眺める章 • 考察の章
Copyright Drecom Co., Ltd. All Rights Reserved. SDK の現状 •
3ヶ月前くらいから存在 • あくまでデモ版 • データは限定的(ニューヨーク・マンハッタンのみ) • プロダクトに用いるなら問い合わせ必須 • ドキュメントは存在 • デモが無いケースがある • 日本語情報は無い
Copyright Drecom Co., Ltd. All Rights Reserved. 概要 • 建物生成
• 道生成 • prefab 置換 • 小物配置 Unity SDK • マップデータ • POI • 遊べる場所 • 適度な分布 • 場所の属性 Playable Locations API
Copyright Drecom Co., Ltd. All Rights Reserved. 概要 • 建物生成
• 道生成 • prefab 置換 • 小物配置 Unity SDK • マップデータ • POI • 遊べる場所 • 適度な分布 • 場所の属性 Playable Locations API 本日はこっちの話
Copyright Drecom Co., Ltd. All Rights Reserved. とりあえず動かす章
Copyright Drecom Co., Ltd. All Rights Reserved. 手順(ドキュメント通り) 1. Scene
新規作成 2. Create Empty 追加 3. Maps Services をアタッチ 4. Basic Example をアタッチ 5. LatLon を 40.748128, -73.988519 に設定 6. 起動
Copyright Drecom Co., Ltd. All Rights Reserved. 成果物
Copyright Drecom Co., Ltd. All Rights Reserved. 考察 • ノンプログラミングで地図生成
• 本当は API Key が必要
Copyright Drecom Co., Ltd. All Rights Reserved. 登場人物 MapService •
コアとなるクラス • 本日の主役 BasicExample • MapService の呼び出し役 • 使うときコピペする対象 • SDK 本体の機能とは無関係
Copyright Drecom Co., Ltd. All Rights Reserved. MapService 基準点 •
InitFloatingOrigin • MoveFloatingOrigin ライフサイクル • WillCreate • DidCreate • DidModify
Copyright Drecom Co., Ltd. All Rights Reserved. 地図の構成要素(MapFeature)
Copyright Drecom Co., Ltd. All Rights Reserved. MapFeature の種類 ExtrudedStructure
建物 ModeledStructure 建物(特殊形状) Segment 道 Region 公園など AreaWater 池 LineWater 川?
Copyright Drecom Co., Ltd. All Rights Reserved. WillCreate でできること mapsService.Events.ExtrudedStructureEvents.WillCreate.AddListener(args
=> { // 生成キャンセル args.Cancel = true; // metadata で種類ごとに分岐 var metadata = args.MapFeature.Metadata; switch (metadata.Usage) { case StructureMetadata.UsageType.Restaurant: break; } // 建物のリソースを変更 var builder = new ExtrudedStructureStyle.Builder(); builder.WallMaterial = Resources.Load<Material>("..."); builder.RoofMaterial = Resources.Load<Material>("..."); builder.Prefab = Resources.Load<GameObject>("..."); args.Style = builder.Build(); });
Copyright Drecom Co., Ltd. All Rights Reserved. DidCreate でできること mapsService.Events.ExtrudedStructureEvents.DidCreate.AddListener(args
=> { // .GameObject で生成物にアクセスできる args.GameObject.AddComponent<MeshCollider>(); });
Copyright Drecom Co., Ltd. All Rights Reserved. デモと実装を眺める章
Copyright Drecom Co., Ltd. All Rights Reserved. デモ • 01_BasicExample
• 02_DynamicLoading • 30_Fencing • KitchenSink
Copyright Drecom Co., Ltd. All Rights Reserved. デモ • 01_BasicExample
:さっきのとほぼ一緒 • 02_DynamicLoading • 30_Fencing • KitchenSink :機能全乗せ
Copyright Drecom Co., Ltd. All Rights Reserved. 02_DynamicLoading
Copyright Drecom Co., Ltd. All Rights Reserved. 02_DynamicLoading DynamicMapsService(Example 用のまとめ役)
• 内部に MapService を内包 • カメラが動いた際の load/unload • センター位置の調整
Copyright Drecom Co., Ltd. All Rights Reserved. load/unload の実装 //
load mapsService.MakeMapLoadRegion() .AddViewport(Camera.main, MaxDistance) .Load(RenderingStyles); // unload mapsService.MakeMapLoadRegion() .AddViewport(Camera.main, MaxDistance) .UnloadOutside();
Copyright Drecom Co., Ltd. All Rights Reserved.
Copyright Drecom Co., Ltd. All Rights Reserved. MakeMapLoadRegion() • MapLoadRegion
インスタンスを生成して返す • 生成時、既存の ITileLoader を受け取る • → 既存のマップを編集できる zoom を変えた地図とか作るなら MapService ごと再生成
Copyright Drecom Co., Ltd. All Rights Reserved. 30_Fencing
Copyright Drecom Co., Ltd. All Rights Reserved.
Copyright Drecom Co., Ltd. All Rights Reserved.
Copyright Drecom Co., Ltd. All Rights Reserved.
Copyright Drecom Co., Ltd. All Rights Reserved. ご清聴 ありがとうございました!
Copyright Drecom Co., Ltd. All Rights Reserved. 30_Fencing を頑張って起動 •
ApiKeyChecker をデタッチ • Fencing Example Script > Dynamic Maps Service に LatLon を設定
Copyright Drecom Co., Ltd. All Rights Reserved.
Copyright Drecom Co., Ltd. All Rights Reserved. Fencing • 特定の建物に一定距離近づいたことを検知
• 設定した Layer で当たり判定を取得 var fencingService = GetComponent<FencingServiceComponent>().FencingService; var fencingRule = FencingRule.NewRule() .StructureArea(StructureMetadata.UsageType.Shopping, 20f); fencingService.RegisterRule(fencingRule, FENCING_LAYER);
Copyright Drecom Co., Ltd. All Rights Reserved. 考察の章
Copyright Drecom Co., Ltd. All Rights Reserved. Google Maps SDK
の各種機能 • サクッと動くデモ • 動的ロードのデモ • 建物への接近検知デモ
Copyright Drecom Co., Ltd. All Rights Reserved. AROW の各種機能 •
サクッと動くデモ Scene_MoveControlCreatedMap.unity • 動的ロードのデモ Scene_DynamicMapLoad.unity • 建物への接近検知デモ IArowPoiVisitor & ArowPoiObserver
Copyright Drecom Co., Ltd. All Rights Reserved. 案外 AROW よくね?
Copyright Drecom Co., Ltd. All Rights Reserved. AROW Open Test
Version https://arow.world/ 今ならベータ版を無料で使えます!
Copyright Drecom Co., Ltd. All Rights Reserved. ご清聴 ありがとうございました!