Upgrade to Pro — share decks privately, control downloads, hide ads and more …

マップゲーム SDK 競合の話 / arow and other map game sdk

マップゲーム SDK 競合の話 / arow and other map game sdk

こちらで LT したときの資料です。
https://connpass.com/event/139403/

Ryuichi Jinushi

September 23, 2019
Tweet

More Decks by Ryuichi Jinushi

Other Decks in Programming

Transcript

  1. Copyright Drecom Co., Ltd. All Rights Reserved. 自己紹介
 地主龍一(Ryuichi JINUSHI)

    • じぬ / ryuj / @reximology • DRIP 部(新規開発) 最近 • キングダムハーツ3 • オクトパストラベラー • 新しいポインターを買ってもらった
  2. Copyright Drecom Co., Ltd. All Rights Reserved. アジェンダ
 • 概要と全体像の章

    • とりあえず動かす章 • デモと実装を眺める章 • 考察の章
  3. Copyright Drecom Co., Ltd. All Rights Reserved. SDK の現状
 •

    3ヶ月前くらいから存在 • あくまでデモ版 • データは限定的(ニューヨーク・マンハッタンのみ) • プロダクトに用いるなら問い合わせ必須 • ドキュメントは存在 • デモが無いケースがある • 日本語情報は無い
  4. Copyright Drecom Co., Ltd. All Rights Reserved. 概要
 • 建物生成


    • 道生成
 • prefab 置換
 • 小物配置
 Unity SDK
 • マップデータ
 • POI
 • 遊べる場所
 • 適度な分布
 • 場所の属性
 Playable Locations
 API

  5. Copyright Drecom Co., Ltd. All Rights Reserved. 概要
 • 建物生成


    • 道生成
 • prefab 置換
 • 小物配置
 Unity SDK
 • マップデータ
 • POI
 • 遊べる場所
 • 適度な分布
 • 場所の属性
 Playable Locations
 API
 本日はこっちの話

  6. 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. 起動
  7. Copyright Drecom Co., Ltd. All Rights Reserved. 登場人物
 MapService •

    コアとなるクラス • 本日の主役 BasicExample • MapService の呼び出し役 • 使うときコピペする対象 • SDK 本体の機能とは無関係
  8. Copyright Drecom Co., Ltd. All Rights Reserved. MapService
 基準点 •

    InitFloatingOrigin • MoveFloatingOrigin ライフサイクル • WillCreate • DidCreate • DidModify
  9. Copyright Drecom Co., Ltd. All Rights Reserved. MapFeature の種類
 ExtrudedStructure

    建物 ModeledStructure 建物(特殊形状) Segment 道 Region 公園など AreaWater 池 LineWater 川?
  10. 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(); });
  11. Copyright Drecom Co., Ltd. All Rights Reserved. DidCreate でできること
 mapsService.Events.ExtrudedStructureEvents.DidCreate.AddListener(args

    => { // .GameObject で生成物にアクセスできる args.GameObject.AddComponent<MeshCollider>(); });
  12. Copyright Drecom Co., Ltd. All Rights Reserved. デモ
 • 01_BasicExample

    • 02_DynamicLoading • 30_Fencing • KitchenSink
  13. Copyright Drecom Co., Ltd. All Rights Reserved. デモ
 • 01_BasicExample

    :さっきのとほぼ一緒 • 02_DynamicLoading • 30_Fencing • KitchenSink :機能全乗せ
  14. Copyright Drecom Co., Ltd. All Rights Reserved. 02_DynamicLoading
 DynamicMapsService(Example 用のまとめ役)

    • 内部に MapService を内包 • カメラが動いた際の load/unload • センター位置の調整
  15. 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();
  16. Copyright Drecom Co., Ltd. All Rights Reserved. MakeMapLoadRegion()
 • MapLoadRegion

    インスタンスを生成して返す • 生成時、既存の ITileLoader を受け取る • → 既存のマップを編集できる zoom を変えた地図とか作るなら MapService ごと再生成
  17. Copyright Drecom Co., Ltd. All Rights Reserved. 30_Fencing を頑張って起動
 •

    ApiKeyChecker をデタッチ • Fencing Example Script > Dynamic Maps Service に LatLon を設定
  18. 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);
  19. Copyright Drecom Co., Ltd. All Rights Reserved. Google Maps SDK

    の各種機能
 • サクッと動くデモ • 動的ロードのデモ • 建物への接近検知デモ
  20. Copyright Drecom Co., Ltd. All Rights Reserved. AROW の各種機能
 •

    サクッと動くデモ Scene_MoveControlCreatedMap.unity • 動的ロードのデモ Scene_DynamicMapLoad.unity • 建物への接近検知デモ IArowPoiVisitor & ArowPoiObserver
  21. Copyright Drecom Co., Ltd. All Rights Reserved. AROW Open Test

    Version https://arow.world/ 今ならベータ版を無料で使えます!