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