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

マルチプレイできるHoloLensゲーム作った話

 マルチプレイできるHoloLensゲーム作った話

「札幌HoloLens ミートアップ vol.2 ~夏編~」の発表資料です。
HoloLens向けに『Boxello』というゲームを作った話です。

ストア
https://www.microsoft.com/en-us/p/boxello/9n74ts7n0l2j

動画
https://www.youtube.com/watch?v=TWiBa2AjgDA

1abc6d5a9efeae182b35d95836ba70e5?s=128

Keizo Nagamine

July 21, 2018
Tweet

Transcript

  1. マルチプレイできる マルチプレイできる HoloLens HoloLens アプリ アプリ作った話 作った話 長峰慶三 ゲーム ゲーム

  2. 自己紹介 自己紹介 長峰慶三( @KzoNag ) 福岡から来ました! Jollystics という会社にいます おもにUnity 、ときどきXamarin

    など スマホアプリ インタラクティブ(Kinect とか XR (やりたい FMCN 福岡XR 部→8 月4 ~5 日にVTuber ハッカソン
  3. HoloLens でゲームといえば HoloLens でゲームといえば

  4. https://www.microsoft.com/en-us/p/roboraid/9nblggh5fv3j RoboRaid RoboRaid

  5. https://www.microsoft.com/ja-jp/p/young-conker/9nblggh5ggk1# Young Conker Young Conker

  6. https://www.microsoft.com/en-us/p/fragments/9nblggh5ggm8# Fragments Fragments

  7. 特徴的な仕様 特徴的な仕様 RoboRaid 壁に穴を空けて出てくる Young Conker 床からテーブルに飛び移る Fragments ソファに座る

  8. 現実環境の認識 現実環境の認識

  9. HoloLens の持つ能力を魅せる素晴らしいゲーム HoloLens の持つ能力を魅せる素晴らしいゲーム

  10. だけど だけど

  11. いつか、MR が いつか、MR が 当たり前になった世界 当たり前になった世界

  12. 現実に紐づくゲームばかり? 現実に紐づくゲームばかり?

  13. もっとカジュアルに遊べる もっとカジュアルに遊べる

  14. 今のボードゲームのような立ち位置 今のボードゲームのような立ち位置

  15. 作ってみた 作ってみた

  16. 立体デジタルオセロ 立体デジタルオセロ

  17. ポイント ポイント シンプル な遊び 自分の色で相手をはさむ デジタルならでは 立体化 ルールの拡張 マルチプレイ 最大4

    人プレイ
  18. デモ デモ

  19. 作るときに意識したこと 作るときに意識したこと シンプル 凝りすぎない 素早く 整えて作る Done is better than

    perfect.
  20. 開発環境 開発環境 Unity 2017.4.1f1 MRTK 2017.2.1.2

  21. 使用したアセット 使用したアセット TextMeshPro リッチなテキスト表現 UI のテキストに使ってる (特殊な表現してないから無くても大丈夫だった気がする) LeanTween iTween とかDOTween

    とかと同じ類 軽量らしい スクリプトが含まれる
  22. ボックスの配置 ボックスの配置 プレイする場所を決める マルチプレイの場合は特に重要 位置・向きを合わせる必要がある 2 通りの配置方法 マーカー ジェスチャー

  23. マーカーでの配置 マーカーでの配置 Vuforia 検出したマーカーの位置と角度に合わせて配置 水平になるように補正 Vuforia は配置フェーズのみON に(終わったら切る) 軽くするため必要なときだけ使う Vuforia

    を動かしてるとMRC で出力できない
  24. ジェスチャーでの配置 ジェスチャーでの配置 タップ操作で位置を指定 SpatialMapping でできたメッシュ上のポイント ナビゲーション操作でY 軸回転 マルチプレイでは各自で同じ位置・向きにする必要あり

  25. 通信 通信 UNET の高レベルAPI SyncVar でゲーム設定を同期 Command 、ClientRPC でゲームスタートやセル選択 一部、低レベルAPI

    系? NetworkConnection で直接メッセージ送信
  26. 通信関連クラス 通信関連クラス BoxelloNetworkManager 全体管理 メッセージ送信 ルーム接続時のパスワードチェック BoxelloNetworkDiscovery ルームの作成・検出 BoxelloNetworkDevice Player

    に相当 Command 、ClientRPC でデバイス間で処理を実行 BoxelloNetworkGameSetting SyncVar でゲーム設定を同期
  27. UI UI uGUI HoloLens っぽい見た目・挙動 グラデーションがかかった背景テクスチャ In/Out のアニメーション WorldLock/BodyLock/DisplayLock

  28. DialogWindow DialogWindow 汎用のダイアログウィンドウ 内容を指定して開く タイトル メッセージ ボタン コールバック DialogUtility.Open(title, message,

    button1, button2, c
  29. ExclusiveCanvasGroupManager ExclusiveCanvasGroupManager ウィンドウの排他制御(一番上だけ操作可能にしたい) 各Window のルートにCanvasGroup リストで管理してinteractable を切り替える

  30. 多言語テキストはスプレッドシート管理 多言語テキストはスプレッドシート管理

  31. ScriptableObject 生成 ScriptableObject 生成 スプレッドシートのスクリプトでhttp アクセスでJson を 返すようにする Unity エディタからJson

    データ取得してScriptableObject 生成・更新
  32. TextID を指定するインスペクター拡張 TextID を指定するインスペクター拡張 PropertyDrawer でSCriptableObject からID リスト生成

  33. メインのゲーム部分 メインのゲーム部分 基本的にはオセロの次元が増えたかんじ AI は今のところ1種類 (取れるところランダムに選ぶだけ・・・!) マルチプレイ時に通信が切れたらAI に切り替わる

  34. ストアリリース済ですが... ストアリリース済ですが...

  35. ストアのアプリ一覧に出ない ストアのアプリ一覧に出ない アプリ名で検索したら出る サポート問い合わせ中 何か知ってる人いたら教えてください!

  36. ありがとうございました! ありがとうございました!