マルチプレイできるHoloLensゲーム作った話
by
Keizo Nagamine
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
マルチプレイできる マルチプレイできる HoloLens HoloLens アプリ アプリ作った話 作った話 長峰慶三 ゲーム ゲーム
Slide 2
Slide 2 text
自己紹介 自己紹介 長峰慶三( @KzoNag ) 福岡から来ました! Jollystics という会社にいます おもにUnity 、ときどきXamarin など スマホアプリ インタラクティブ(Kinect とか XR (やりたい FMCN 福岡XR 部→8 月4 ~5 日にVTuber ハッカソン
Slide 3
Slide 3 text
HoloLens でゲームといえば HoloLens でゲームといえば
Slide 4
Slide 4 text
https://www.microsoft.com/en-us/p/roboraid/9nblggh5fv3j RoboRaid RoboRaid
Slide 5
Slide 5 text
https://www.microsoft.com/ja-jp/p/young-conker/9nblggh5ggk1# Young Conker Young Conker
Slide 6
Slide 6 text
https://www.microsoft.com/en-us/p/fragments/9nblggh5ggm8# Fragments Fragments
Slide 7
Slide 7 text
特徴的な仕様 特徴的な仕様 RoboRaid 壁に穴を空けて出てくる Young Conker 床からテーブルに飛び移る Fragments ソファに座る
Slide 8
Slide 8 text
現実環境の認識 現実環境の認識
Slide 9
Slide 9 text
HoloLens の持つ能力を魅せる素晴らしいゲーム HoloLens の持つ能力を魅せる素晴らしいゲーム
Slide 10
Slide 10 text
だけど だけど
Slide 11
Slide 11 text
いつか、MR が いつか、MR が 当たり前になった世界 当たり前になった世界
Slide 12
Slide 12 text
現実に紐づくゲームばかり? 現実に紐づくゲームばかり?
Slide 13
Slide 13 text
もっとカジュアルに遊べる もっとカジュアルに遊べる
Slide 14
Slide 14 text
今のボードゲームのような立ち位置 今のボードゲームのような立ち位置
Slide 15
Slide 15 text
作ってみた 作ってみた
Slide 16
Slide 16 text
立体デジタルオセロ 立体デジタルオセロ
Slide 17
Slide 17 text
ポイント ポイント シンプル な遊び 自分の色で相手をはさむ デジタルならでは 立体化 ルールの拡張 マルチプレイ 最大4 人プレイ
Slide 18
Slide 18 text
デモ デモ
Slide 19
Slide 19 text
作るときに意識したこと 作るときに意識したこと シンプル 凝りすぎない 素早く 整えて作る Done is better than perfect.
Slide 20
Slide 20 text
開発環境 開発環境 Unity 2017.4.1f1 MRTK 2017.2.1.2
Slide 21
Slide 21 text
使用したアセット 使用したアセット TextMeshPro リッチなテキスト表現 UI のテキストに使ってる (特殊な表現してないから無くても大丈夫だった気がする) LeanTween iTween とかDOTween とかと同じ類 軽量らしい スクリプトが含まれる
Slide 22
Slide 22 text
ボックスの配置 ボックスの配置 プレイする場所を決める マルチプレイの場合は特に重要 位置・向きを合わせる必要がある 2 通りの配置方法 マーカー ジェスチャー
Slide 23
Slide 23 text
マーカーでの配置 マーカーでの配置 Vuforia 検出したマーカーの位置と角度に合わせて配置 水平になるように補正 Vuforia は配置フェーズのみON に(終わったら切る) 軽くするため必要なときだけ使う Vuforia を動かしてるとMRC で出力できない
Slide 24
Slide 24 text
ジェスチャーでの配置 ジェスチャーでの配置 タップ操作で位置を指定 SpatialMapping でできたメッシュ上のポイント ナビゲーション操作でY 軸回転 マルチプレイでは各自で同じ位置・向きにする必要あり
Slide 25
Slide 25 text
通信 通信 UNET の高レベルAPI SyncVar でゲーム設定を同期 Command 、ClientRPC でゲームスタートやセル選択 一部、低レベルAPI 系? NetworkConnection で直接メッセージ送信
Slide 26
Slide 26 text
通信関連クラス 通信関連クラス BoxelloNetworkManager 全体管理 メッセージ送信 ルーム接続時のパスワードチェック BoxelloNetworkDiscovery ルームの作成・検出 BoxelloNetworkDevice Player に相当 Command 、ClientRPC でデバイス間で処理を実行 BoxelloNetworkGameSetting SyncVar でゲーム設定を同期
Slide 27
Slide 27 text
UI UI uGUI HoloLens っぽい見た目・挙動 グラデーションがかかった背景テクスチャ In/Out のアニメーション WorldLock/BodyLock/DisplayLock
Slide 28
Slide 28 text
DialogWindow DialogWindow 汎用のダイアログウィンドウ 内容を指定して開く タイトル メッセージ ボタン コールバック DialogUtility.Open(title, message, button1, button2, c
Slide 29
Slide 29 text
ExclusiveCanvasGroupManager ExclusiveCanvasGroupManager ウィンドウの排他制御(一番上だけ操作可能にしたい) 各Window のルートにCanvasGroup リストで管理してinteractable を切り替える
Slide 30
Slide 30 text
多言語テキストはスプレッドシート管理 多言語テキストはスプレッドシート管理
Slide 31
Slide 31 text
ScriptableObject 生成 ScriptableObject 生成 スプレッドシートのスクリプトでhttp アクセスでJson を 返すようにする Unity エディタからJson データ取得してScriptableObject 生成・更新
Slide 32
Slide 32 text
TextID を指定するインスペクター拡張 TextID を指定するインスペクター拡張 PropertyDrawer でSCriptableObject からID リスト生成
Slide 33
Slide 33 text
メインのゲーム部分 メインのゲーム部分 基本的にはオセロの次元が増えたかんじ AI は今のところ1種類 (取れるところランダムに選ぶだけ・・・!) マルチプレイ時に通信が切れたらAI に切り替わる
Slide 34
Slide 34 text
ストアリリース済ですが... ストアリリース済ですが...
Slide 35
Slide 35 text
ストアのアプリ一覧に出ない ストアのアプリ一覧に出ない アプリ名で検索したら出る サポート問い合わせ中 何か知ってる人いたら教えてください!
Slide 36
Slide 36 text
ありがとうございました! ありがとうございました!