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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Ryuichi Jinushi
September 23, 2019
Programming
0
1k
マップゲーム 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
56
マップゲーム SDK AROW とその運用を支える AWS の構成 / AROW with AWS
ryuj
0
90
少人数の SDK 開発を支えるテストの話 / tests for small group development
ryuj
0
510
位置情報を用いたモバイルゲームが 気軽に作れる 3D リアルマップサービス 「AROW」について (実践編) / how to AROW practice at Gotanda.unity #11
ryuj
0
66
技術書のすゝめ / suggestion of technical book
ryuj
0
79
Other Decks in Programming
See All in Programming
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
400
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
200
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
190
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
1.1k
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
180
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
110
Implementation Patterns
denyspoltorak
0
280
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
250
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.8k
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
140
Package Management Learnings from Homebrew
mikemcquaid
0
200
Apache Iceberg V3 and migration to V3
tomtanaka
0
150
Featured
See All Featured
Scaling GitHub
holman
464
140k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
150
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.6k
Designing for Performance
lara
610
70k
The browser strikes back
jonoalderson
0
360
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
580
Building the Perfect Custom Keyboard
takai
2
680
Speed Design
sergeychernyshev
33
1.5k
So, you think you're a good person
axbom
PRO
2
1.9k
Raft: Consensus for Rubyists
vanstee
141
7.3k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
110
The World Runs on Bad Software
bkeepers
PRO
72
12k
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. ご清聴 ありがとうございました!