基本的に、以下の環境を構築すると開発できるようになった。
①まずは以下のURLを参考にQuest2へapkファイルを転送できるようにする。
・https://www.code-mogu.com/2020/12/11/oculus-quest2-unity/
②次に、以下のURLを参考にUnityのVRテンプレートのプロジェクトをビルドしてapkファイルをQuest2へ転送して動くことを確認する。
・https://sheltie-garage.xyz/tech/2022/05/unity-vr%E3%81%A7htc-vive%E3%80%81oculus-quest2%E4%B8%A1%E5%AF%BE%E5%BF%9C%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B/
手順通りにやればできたのだが、色々分かりにくいところがあってつまづいたので、以下にメモしておいた。
■コマンドプロンプトでADBコマンドを使えるようにできなかった
この原因として、私の凡ミスだったのだが、環境変数をWindowsのシステム設定で変更するのだが、Pathのところに追加したはずが、なぜか消えていた。(おそらく確定できていなかったのだろう。)ちゃんとPathに入っていたら、ADBコマンドが使えるようになった。
■Oculus Quest2を開発者モードにする
Oculusアプリをインストールして、左上の「設定」タブ→「一般」タブを選択して、「開発元不明」をONにする必要がある。ここがなかなか見つけられなかった。
■ヘッドセット側も開発者モードの設定をしなくてはいけない
この設定は、スマホで「Meta Quest」アプリをインストールして、このアプリ内でQuest2を認識させてから、その「デバイスの管理」→「ヘッドセットの設定」→「開発者モード」を選択することでONできる。つまり、スマホで設定しないといけない。
■SideQuestは「Advanced Installer」を選択
Easy InstallerとAdvanced Installerがあるようだが、Advanced Installerのほうがわかりやすかった。多分Easyのほうでもいいのかもしれないが、よく使い方が分からなかった。
■Quest2用のVRのプロジェクトにはどのテンプレートやSDKを使えばいいのかわからなかった。
以下の3種類がぱっと思いつく。
①SteamVR Plugin
②Oculus Integration
③UnityのVR テンプレート
全て試したわけではないが、開発していくのであれば、③のUnityのVRテンプレートがいいのではないかと思った。
①のSteamVR PluginはWindowsPC内でVRゲームを作るのであればいいと思うが、apkファイルにしてQuest2に入れてもVRとして動かなかったので、Quest2のスタンドアロン型VRゲームができないのではないかと思う。
②は試していないのでわからない。(何となくVIVEとQuest2の両対応できそうな気がする)
③は両対応ができることを確認した。
■Window用であればプラットフォームをPCでビルド、Quest用であればAndroidでビルド
これは当然だが念のため。
■SteamVR Pluginで開発する場合は、SteamVRを起動させないといけない。
Unityプロジェクトを再生すると勝手に起動するかもしれないが念のため。
■UnityのVRテンプレートで開発する場合は、SteamVRは不要なようだ。
UnityのVRテンプレートを動かしたときはSteamVRは起動していなかったので、SteamVRを経由していないようだった。
■開発中にQuest2を使って動作確認する場合
まず、Quest2とPCをUSBケーブルで接続する。(同一LAN内ならOculus Air Linkでもいけるのかも)
Quest2内で「Oculus Link」(もしくはOculus Air Link)を起動して、PCとQuest2をリンクしておかないといけない。
とりあえず、開発の準備はできた感じ!!
Virtual Market2022 Summerに田植機を出展しました!
今回は、Quest用のワールドでの出展にチャレンジしてみました!
特に作り方は今まで大きく変わらなかったのですが、結構制限がきつかったです。
特に最後まで困ったのは、テクスチャの枚数制限でしょうか。(8枚まで)
ブース全体を作るとテクスチャ8枚はすぐに行ってしまいました。
あと、Quest特有の問題だと思うのですが、いつもは複数のモデルをMeshBakerでモデルもテクスチャもひとまとめにしているのですが、これが使えなかったことが痛かった。。。
よくわからないのですが、MeshBakerで結合したモデルはVR空間で見るとうまく表示してくれませんでした。(確か、色がついてくれなかったような気がします。)
結局、モデルとテクスチャの結合ができなくて、結果、テクスチャ枚数を減らせなくなってしまい、最後まで困ったという感じでした。
あと、地面に水面シェーダーを使ったのですが、これもQuestでは表示してくれませんでした。これは完全にGPUの違いの影響だと思われます。
とにかく、Questワールドは、今までのワールドで出展してきていたので、アップロードまでの手順はスムーズに行きましたが、表示されない問題のところでつまずいた感じでした。おそらく、いきなりQuestワールドで出展したら「全然うまくいかない~!」ってなってイライラしてくる可能性が高いので、やはり初めは通常ワールドで出展したほうが良さそうな気がしました。(だいたい通常ワールドだったらUnityで表示されていた通りにVRChatでも表示される)
冬のVirtual Market2022も出展したかったが、もう締め切り終わっていた。。。
モデルは以下のBOOTHで販売しています。(100円)
https://taroyan3rd.booth.pm/items/4021342
特に作り方は今まで大きく変わらなかったのですが、結構制限がきつかったです。
特に最後まで困ったのは、テクスチャの枚数制限でしょうか。(8枚まで)
ブース全体を作るとテクスチャ8枚はすぐに行ってしまいました。
あと、Quest特有の問題だと思うのですが、いつもは複数のモデルをMeshBakerでモデルもテクスチャもひとまとめにしているのですが、これが使えなかったことが痛かった。。。
よくわからないのですが、MeshBakerで結合したモデルはVR空間で見るとうまく表示してくれませんでした。(確か、色がついてくれなかったような気がします。)
結局、モデルとテクスチャの結合ができなくて、結果、テクスチャ枚数を減らせなくなってしまい、最後まで困ったという感じでした。
あと、地面に水面シェーダーを使ったのですが、これもQuestでは表示してくれませんでした。これは完全にGPUの違いの影響だと思われます。
とにかく、Questワールドは、今までのワールドで出展してきていたので、アップロードまでの手順はスムーズに行きましたが、表示されない問題のところでつまずいた感じでした。おそらく、いきなりQuestワールドで出展したら「全然うまくいかない~!」ってなってイライラしてくる可能性が高いので、やはり初めは通常ワールドで出展したほうが良さそうな気がしました。(だいたい通常ワールドだったらUnityで表示されていた通りにVRChatでも表示される)
冬のVirtual Market2022も出展したかったが、もう締め切り終わっていた。。。
モデルは以下のBOOTHで販売しています。(100円)
https://taroyan3rd.booth.pm/items/4021342
ClusterGAMEJAM 2020 in WINTERにて、「アルトデウスBC賞」をいただきました!
ありがとうございました!
ゲームプレイ動画はこちら(Youtube)
clusterのゲームURLはこちらです。スマホでもプレイできると思います(多分)。 https://cluster.mu/w/456361fa-ce91-416f-8fc8-9b4c84794687
結果発表会のYoutube動画はこちらです。他の受賞作品はどれも素晴らしかったです!
https://youtu.be/TmFwRRYpFl8?t=1119
以下、ゲームジャム開始から終了までの流れを日記にしてみました。
【ゲームジャムに参加することを決めた理由】
結構忙しい時期だったのですが、ちょうど12/19と12/20だけ日程が空いていたため。確か締切1日前くらいにエントリーしたような気がします。既に参加者が300チームぐらいあったので、これは入賞とかは無理だろうから、とりあえず出てみるだけ出てみて、完成できなかったらそのまま投稿できずに諦めようと思っていました。モチベーションとしては、「自分が2日集中してどれくらいのゲームが作れるのか?」を自分なりに確かめておきたかっただけでした。また、この時点ではまだアイデアも何もありませんでした。(お題がわからなかったし)
【ゲームジャム開始時】
お題が「溢れるエナジー」でした。まったくネタが思いつかず、かなり詰んでしまいました。お題が出される前に実は作ろうかと思っていたネタが一つありました。それは、「Curve」という短編映画をオマージュしたゲームを作ろうかと思っていました。この短編映画は、いきなり目が覚めたら謎のカーブ状のコンクリートの上にいるという話で、いわゆる崖の中腹みたいなところで目が覚めた感じですね。足を滑らして落ちると奈落の底へ落ちてしまうという恐怖感をモチーフにした映画だったのですが、この恐怖心を煽ったゲームをclusterで作ったらどうかと思っていました。しかし、最大の問題は、まったく「溢れるエナジー」と結びつかなかったことです。あえなく、このネタは没となりました。
もう何か無理やりひねり出して作るしかない!と思い、とりあえずclusterゲームの審査基準や自分のスキル、最近やったゲームなどを列挙しました。
・みんなで遊べるゲームを運営側として求めているらしい。(SNS要素?)
・一人で作成するので、クオリティの高いものは作れない。(デザイン力もない)
・東京クロノス面白かったなぁ。
ここで、見た目はもう諦めて、雰囲気だけをストーリーで伝えるゲームにしようと思いました。2日間という短時間でアクション要素を加えたゲームは自分のスキルでは無理と判断し、東京クロノス風のノベルゲームっぽいものなら3分くらいのストーリーで作れそうな気がすると思い、チャレンジしてみることにしました。みんなで遊べる要素は、clusterゲームテンプレートからそのまま拝借して、鉱石をみんなで集めるというゲーム性にしました。そして、みんなで集めた鉱石の数によってエンディングが変わるようにすることでオンライン協力型のゲームっぽくなる気がしました。あと、ストーリーですが、「溢れるエナジー」というお題でまず思い浮かんだのが、数年前の夏の暑い日に、いきなり木からセミが落ちてきてしばらく動かなかったのですが、突然周りのセミの鳴き声よりも遥かに大きな鳴き声で「ミィーーーンン」と鳴いて、そのままフェードアウトするように鳴き止んだことがあって、そのセミはそのまま道にいたままだったので動かしてみたら死んでいた、という出来事がありました。恐らく、最後の力を振り絞って鳴いて死んだんだろうと思います。ここから思ったのは、「死ぬ瞬間が一番エナジーが溢れるのではないか?」ということです。そこで、死が確定しているおっさんが最後の力を振り絞って鉱石を集めるストーリーにしました。つまり、このゲームは鉱石というエナジーを集めるというのも目的なのですが、実は「おっさんが死ぬ瞬間に放つエナジー」というのが一番伝えたかったことなのです。
このストーリーを考えるまでに、既に土曜日の午前中が終わろうとしていたためかなり焦りました。
【制作開始】
土曜日の午後ぐらいから製作開始したと思います。とりあえず中身は何もないけどスタートボタンを押したらゲームが進み、鉱石の数によって3つのエンディングへ進むようにしました。土曜日はとりあえず全体の流れだけを作ることにしました。体力の限界が来たので12時で就寝。
【制作中盤】
日曜日は頑張って早起きして6時から制作開始しました。ストーリーは、死んでいく宇宙飛行士の1人(プレイヤー)がボイスメモとして鉱石を集める記録を残すというものでした。とりあえず、ノベルゲーム風に画面下にテキストで流れるようにしましたが、やはりフルボイスがほしい!と思ってしまいました。東京クロノスもVRでフルボイスだから没入感があるわけだし!しかし、今から発注して音声を用意している時間が無い。ということで、苦肉の策で自分の声を収録することにしました。授賞式で、ちょまどさんが「おじさんの声がよかった」と言ってくれたので、ちょっと嬉しくなってしまいました!
【制作終盤】
ひたすらビルドして再生してデバッグでした。これはもう耐えるしかない。しかも最後までずっと悩まされた問題が「エンディングを1度見てもう一度プレイすると、前回の鉱石数を覚えているのか、エンディングが2重で再生されてしまう」ことでした。つまり、初めバッドエンディングで次がノーマルエンディングだったら、2回目はバッドとノーマルが同時に再生されてしまう感じになりました。音声もテキストもラップしてしまうので、非常に見にくい(というか、完全なバグ)感じになりました。結局この問題は解決できなかったです。clusterの方で解決策知ってる方いたら教えてほしいです。。。今回は無理やり上位エンディングだけ再生するようにLogicを修正しましたが、これも苦肉の策でした。
【結果発表】
東京クロノスをかなり参考にさせてもらったので、アルトデウスBC賞をいただけたのは、なんとなくこちらのコンセプトが伝わった気がしたので、ある意味狙い通りでした!
記事が長くなってしまいました。長文失礼いたしました。
ゲームプレイ動画はこちら(Youtube)
clusterのゲームURLはこちらです。スマホでもプレイできると思います(多分)。 https://cluster.mu/w/456361fa-ce91-416f-8fc8-9b4c84794687
結果発表会のYoutube動画はこちらです。他の受賞作品はどれも素晴らしかったです!
https://youtu.be/TmFwRRYpFl8?t=1119
以下、ゲームジャム開始から終了までの流れを日記にしてみました。
【ゲームジャムに参加することを決めた理由】
結構忙しい時期だったのですが、ちょうど12/19と12/20だけ日程が空いていたため。確か締切1日前くらいにエントリーしたような気がします。既に参加者が300チームぐらいあったので、これは入賞とかは無理だろうから、とりあえず出てみるだけ出てみて、完成できなかったらそのまま投稿できずに諦めようと思っていました。モチベーションとしては、「自分が2日集中してどれくらいのゲームが作れるのか?」を自分なりに確かめておきたかっただけでした。また、この時点ではまだアイデアも何もありませんでした。(お題がわからなかったし)
【ゲームジャム開始時】
お題が「溢れるエナジー」でした。まったくネタが思いつかず、かなり詰んでしまいました。お題が出される前に実は作ろうかと思っていたネタが一つありました。それは、「Curve」という短編映画をオマージュしたゲームを作ろうかと思っていました。この短編映画は、いきなり目が覚めたら謎のカーブ状のコンクリートの上にいるという話で、いわゆる崖の中腹みたいなところで目が覚めた感じですね。足を滑らして落ちると奈落の底へ落ちてしまうという恐怖感をモチーフにした映画だったのですが、この恐怖心を煽ったゲームをclusterで作ったらどうかと思っていました。しかし、最大の問題は、まったく「溢れるエナジー」と結びつかなかったことです。あえなく、このネタは没となりました。
もう何か無理やりひねり出して作るしかない!と思い、とりあえずclusterゲームの審査基準や自分のスキル、最近やったゲームなどを列挙しました。
・みんなで遊べるゲームを運営側として求めているらしい。(SNS要素?)
・一人で作成するので、クオリティの高いものは作れない。(デザイン力もない)
・東京クロノス面白かったなぁ。
ここで、見た目はもう諦めて、雰囲気だけをストーリーで伝えるゲームにしようと思いました。2日間という短時間でアクション要素を加えたゲームは自分のスキルでは無理と判断し、東京クロノス風のノベルゲームっぽいものなら3分くらいのストーリーで作れそうな気がすると思い、チャレンジしてみることにしました。みんなで遊べる要素は、clusterゲームテンプレートからそのまま拝借して、鉱石をみんなで集めるというゲーム性にしました。そして、みんなで集めた鉱石の数によってエンディングが変わるようにすることでオンライン協力型のゲームっぽくなる気がしました。あと、ストーリーですが、「溢れるエナジー」というお題でまず思い浮かんだのが、数年前の夏の暑い日に、いきなり木からセミが落ちてきてしばらく動かなかったのですが、突然周りのセミの鳴き声よりも遥かに大きな鳴き声で「ミィーーーンン」と鳴いて、そのままフェードアウトするように鳴き止んだことがあって、そのセミはそのまま道にいたままだったので動かしてみたら死んでいた、という出来事がありました。恐らく、最後の力を振り絞って鳴いて死んだんだろうと思います。ここから思ったのは、「死ぬ瞬間が一番エナジーが溢れるのではないか?」ということです。そこで、死が確定しているおっさんが最後の力を振り絞って鉱石を集めるストーリーにしました。つまり、このゲームは鉱石というエナジーを集めるというのも目的なのですが、実は「おっさんが死ぬ瞬間に放つエナジー」というのが一番伝えたかったことなのです。
このストーリーを考えるまでに、既に土曜日の午前中が終わろうとしていたためかなり焦りました。
【制作開始】
土曜日の午後ぐらいから製作開始したと思います。とりあえず中身は何もないけどスタートボタンを押したらゲームが進み、鉱石の数によって3つのエンディングへ進むようにしました。土曜日はとりあえず全体の流れだけを作ることにしました。体力の限界が来たので12時で就寝。
【制作中盤】
日曜日は頑張って早起きして6時から制作開始しました。ストーリーは、死んでいく宇宙飛行士の1人(プレイヤー)がボイスメモとして鉱石を集める記録を残すというものでした。とりあえず、ノベルゲーム風に画面下にテキストで流れるようにしましたが、やはりフルボイスがほしい!と思ってしまいました。東京クロノスもVRでフルボイスだから没入感があるわけだし!しかし、今から発注して音声を用意している時間が無い。ということで、苦肉の策で自分の声を収録することにしました。授賞式で、ちょまどさんが「おじさんの声がよかった」と言ってくれたので、ちょっと嬉しくなってしまいました!
【制作終盤】
ひたすらビルドして再生してデバッグでした。これはもう耐えるしかない。しかも最後までずっと悩まされた問題が「エンディングを1度見てもう一度プレイすると、前回の鉱石数を覚えているのか、エンディングが2重で再生されてしまう」ことでした。つまり、初めバッドエンディングで次がノーマルエンディングだったら、2回目はバッドとノーマルが同時に再生されてしまう感じになりました。音声もテキストもラップしてしまうので、非常に見にくい(というか、完全なバグ)感じになりました。結局この問題は解決できなかったです。clusterの方で解決策知ってる方いたら教えてほしいです。。。今回は無理やり上位エンディングだけ再生するようにLogicを修正しましたが、これも苦肉の策でした。
【結果発表】
東京クロノスをかなり参考にさせてもらったので、アルトデウスBC賞をいただけたのは、なんとなくこちらのコンセプトが伝わった気がしたので、ある意味狙い通りでした!
記事が長くなってしまいました。長文失礼いたしました。
HTC VIVEのベースステーションの電源管理ができなくなった時の対処法
別PCで電源管理ができていたが、もう1つのPCで電源管理しようとしたらできなくなってしまったときの対処
どうやら、別PCで電源管理してしまうともう一つのPCでは管理できないようなので、 元々管理していたPCでの電源管理をやめて、もう一つのPCで管理できるようにしたかったのだが、 なかなかうまくできなかった。
別PCで電源管理の有効化を外し、ブルートゥースを有効化も外しても、 やっぱりもう一つのPCでは管理できなかった。
結局以下のようにしたら直った。(もう全部初期化したようなものだが)
【手順】
・電源管理していた別PCのSteamVRとSteamをどちらもアンインストール
・もう一つのPCのSteamVRとSteamもアンインストール
・ベースステーションの電源を2つともOFF
・もう一つのPCのSteamとSteamVRをインストール
・SteamVRを立ち上げて、ブルートゥースを有効化→ベースステーションの検出
・2つのベースステーションが検出できたら、さらにその2つのベースステーションを識別をクリック
・それぞれのベースステーション本体上部のランプが、識別時に白く点滅していれば識別している
・電源管理→電源管理を有効化をチェック
更新の左に緑のチェックがついていればOKっぽい。
ちなみに失敗していた時は、黄色のビックリマークがついていて、
更新の右側に識別の太陽みたいなマークがついていなかった。
どうやら、別PCで電源管理してしまうともう一つのPCでは管理できないようなので、 元々管理していたPCでの電源管理をやめて、もう一つのPCで管理できるようにしたかったのだが、 なかなかうまくできなかった。
別PCで電源管理の有効化を外し、ブルートゥースを有効化も外しても、 やっぱりもう一つのPCでは管理できなかった。
結局以下のようにしたら直った。(もう全部初期化したようなものだが)
【手順】
・電源管理していた別PCのSteamVRとSteamをどちらもアンインストール
・もう一つのPCのSteamVRとSteamもアンインストール
・ベースステーションの電源を2つともOFF
・もう一つのPCのSteamとSteamVRをインストール
・SteamVRを立ち上げて、ブルートゥースを有効化→ベースステーションの検出
・2つのベースステーションが検出できたら、さらにその2つのベースステーションを識別をクリック
・それぞれのベースステーション本体上部のランプが、識別時に白く点滅していれば識別している
・電源管理→電源管理を有効化をチェック
更新の左に緑のチェックがついていればOKっぽい。
ちなみに失敗していた時は、黄色のビックリマークがついていて、
更新の右側に識別の太陽みたいなマークがついていなかった。