NeosVRはVR空間内で企画/実装/テストを複数人で行え、そのままゲームワールドやアイテムとしてNeosVR内で公開出来ます。
今回はそうした環境下で「Ultimate Chicken Horse」インスパイアされたOTAMAxSTEPゲームを2ヶ月掛けて作った話を書きます。
事前に
本エントリーはゲーム内容を理解しておいた方が何を書いているか分かりやすい内容となっています。なのでまずは以下動画を視聴ください。
www.youtube.com
開発するきっかけ
ginjakeさん主催の「ClusterGAMEJAM 2022 in SPRING」ワールド巡りの中にUltimate Chicken HorseインスパイアされたであろうTRAPPER's BRIDGEゲームワールドが楽しかったので、NeosVRに合わせたUltimate Chicken Horseっぽいゲームシステムを試しに作ってみようかな―と作り始めました。
第5回、メタバース民clusterツアーご参加ありがとうございました
— ginjake (@sirojake) 2022年4月1日
今回はClusterGAMEJAMのワールドを巡りましたが、クオリティも発想も凄いものが多くて楽しかったです#cluster pic.twitter.com/AyGXtotp20
昨日 "Ultimate Chicken Horse" システムと VRの相性良いの分かったんで、近いゲームシステムを試しに作ってみようかなあ
— ひょろも (@hyoromo) 2022年4月2日
完成までの流れ
2022/4/3から開発スタート。
第1週
はじめは一人で開発しており、スタートからゴールまで移動するだけの機能を実装しました。
ホワイトボードに作りたいギミックを書いたり、何人かの方にギミック実装やモデリングして貰い始めました*1。
#NeosVR で Ultimate🐔🐴 のようなゲームを作り始めました。数日前から、来た人を巻き込みながら pic.twitter.com/vkrvx02Ufb
— ひょろも (@hyoromo) 2022年4月5日
今日の #NeosVR はゲーム作ってたり、なでやまさんに可愛い似顔絵を描いて貰っていました pic.twitter.com/3XOYJrajmm
— ひょろも (@hyoromo) 2022年4月8日
- コーディングしているところ
- プレイヤーのヒット判定をどうしようか考えているところ*2
- Neos内でモデリングした後、それで遊んでいるところ
第2週
何個か配置オブジェクトが完成し、ゲームサイクルである以下の機能実装及びテストをしていました。
- ゲームスター
- 各人が1つずつブロック配置
- レーススタート
- 2-3を繰り返し、勝者を決める
今日はΩ🐔🐴♥(仮名)のテストプレイしていました#NeosVR pic.twitter.com/RAbrF63NWZ
— ひょろも (@hyoromo) 2022年4月15日
- 回転バー(お団子)の動作チェックしているところ
- 爆発演出を実装しているところ
- 配置ブロックのアイディアとタスク管理をホワイトボードに書いていた
第3週
ユニークなステージを作ってもらったり、配置可能なブロック種類を増やす作業、そしてひたすらテストをしていました。
この段階での大きな課題は配置ブロック数が増えていくと激重になる事でした。
今日はゲームのテストプレイして遊んでました#NeosVR pic.twitter.com/dKCXb7NCJy
— ひょろも (@hyoromo) 2022年4月20日
- 書いて貰ったコード眺めつつ改造しようとしてるところ
- なにかしているところ
- Blenderで作って貰った王冠アニメーションを確認しているところ
- 配置ブロックが何なのか分かりにくい...に対する改善策を試してるところ
第4週
配置可能なブロック種類を増やす作業、配置ブロック周りのパフォーマンスチューニング、そしてひたすらテストの繰り返し。
#NeosVR で制作中のΩ🐔🐴♥(仮名)ゲームプレイをさかみさんがSky Cameraで撮影してくれた動画を編集してみました
— ひょろも (@hyoromo) 2022年4月28日
プレイヤーはりんきさんとばるさんと私 pic.twitter.com/TUwz1hteyT
- ベルトコンベアの動作を確認しているところ
- コーディングしているひと
- コーディングやめたところ
第5-6週
ゲームのマニュアル/設定/各配置ブロックの説明などのUI作成。その他、プレイ時に分かり難いそうな点のブラッシュアップをしていました。
- マニュアルのゲームライフサイクルの説明どうするか話しているところ
- 忘れたけどどっかのUIについて話してそうなところ
- インスペクターで何か確認しているところ
- 何故かすぐ散らかる作業ワールド
第7週
ゲームのリザルト画面を作っていました。
Neosで作ってるゲームのリザルト周りを実装し始めました pic.twitter.com/AotShht8fh
— ひょろも (@hyoromo) 2022年5月17日
ゲーム上に表示するテキストはEN/JP/KRの3言語で、EN/KRはDeepL/Google/Bing翻訳で訳したものだったため意味が通じにくい箇所が多かったです。
なのでEN/KRネイティブ言語の方に協力して頂き、翻訳校正して貰いました。
今日は海外の方にゲーム内で分かり難い英文を指摘して貰ったり、テストプレイしてました#NeosVR pic.twitter.com/3SACGRSPkm
— ひょろも (@hyoromo) 2022年5月19日
- 全然ゲームと関係ないコード書いているところ
- 完成したスコアボード
第8週
全体的な調整、ゲームを遊ぶための専用ワールドを作成してリリース。
#NeosVR 2ヶ月掛けてゆっくり作っていたΩ🐔🐴♥(仮)ゲームはOTAMAxSTEPという名に改めてpublishしました!2日前に
— ひょろも (@hyoromo) 2022年6月1日
いつかPV作ってちゃんと宣伝します pic.twitter.com/CshYzUu4cB
ゲームの10倍速プレイ動画 pic.twitter.com/g2D9zlMQXY
— ひょろも (@hyoromo) 2022年6月1日
- 最後に完成したステージ
- 終盤のテストプレイしているところ*4
第9-10週 (延長線)
公開後のバグ対応を現在進行系でしています。ローカライズミス、FPS依存や同期ズレなどなど...遊んで貰う人や環境(ヘッドレス外)が変わることで色々とバグが出ては潰していっています。
今日の #NeosVR
— ひょろも (@hyoromo) 2022年6月5日
1-2枚目はゲームを遊んでくれた英語圏の方にローカライズ漏れとバグを教えて貰って直している所
3枚目は同期されなくなった肉体を記念撮影場所まで運んで貰っている所。自分視点だと4枚目状態でした pic.twitter.com/8HlPYYAc3e
突発PV撮影会を開いて、15人くらい集まって頂いた中で4人のカメラマン(視点)でPV用の動画撮影をしてPVが完成しました。
今日の #NeosVR はOTAMAxSTEPのPV撮影に協力して貰っていました
— ひょろも (@hyoromo) 2022年6月7日
いろんな方の視点で動画撮って貰えたので、それらをつなぎ合わせてPV作ってみます pic.twitter.com/89SxnM028k
🪤置いて🐁🐀するゲーム『OTAMAxSTEP』のPVを作りました
— ひょろも (@hyoromo) 2022年6月11日
☑NeosVR内で遊べます
☑プレイ人数 2人以上
☑プレイ時間 10分前後
☑VR/デスクトップ対応#NeosVR pic.twitter.com/BzpJdxEKGK
- 遊びながらのデバッグは続いている...
おわり
多くの方に協力頂いたお陰で完成しました。どうもありがとうございました。直接制作に関わって頂いた方はゲーム本体から閲覧可能な状態にしています。
あとmiraさんにはゲーム開発用セッションをヘッドレスで建てて頂き、そのお陰で開発が捗りとても助かりました。
VRSNS空間内で誰かとゲームを作る体験は新感覚です。
- 企画
- モデリング
- コーディング
- テスト
- ゲーム公開
- PV撮影
をVR空間上で行え
- 距離減衰がある空間での会話
- アバターによる身振り手振り
- ペンで描く
- 画像を共有
- 動画を共有
も同じくVR空間上でコミュニケーション取れるため、共同開発しやすいです*5。
NeosVRの場合は作ったその場で試せるため、短い時間でも試行回数が多く確保出来ます。
特にマルチプレイを想定したVRゲームのテストは他だとどうしても大変で、テスト用ワールドをプライベートでアップして人を招いて...と実際テスト出来るまで時間が掛かりがちです。
ですがNeosVRは作業しているワールドに居る人にお願いするか、ゲーム本体をインベントリに保存して他ワールドで取り出してテストをお願い出来るので短時間で検証し終えられコスト安です。
PCスペックや使っているHMD/デスクトップモードなのかという環境差、プレイ人数で問題が発生するので試行しやすい環境であればあるほど品質向上します*6。
VR空間上でワールドやアイテムを作って、その場に居る人に遊んで貰うor人の居る別ワールドへゲームを持って行って遊んで貰う...そんなNeosVRの良いところを他VRSNSでも参考にしてアップデートされていくと個人的には嬉しいですね*7。
*1:人のjoinはワールドへ遊びに来られた方を誘ったり、何かで知って作りに来られたりと人それぞれでした
*2:OnCollisionStartがセッション内の全員呼ばれるよくないコードなので参考にしないでください
*3:ラウンド開始時に前ラウンドの死体を消すことにした。死体はRoot直下に専用フォルダを作成し、そちらへ格納する事にした。
*4:ちなみにゲーム名は画像奥に映っている通り複数案の中から投票で決めました
*5:なお流石に100%NeosVR内で完結させていた訳ではなく、一部モデルはBlender、サウンドはDSP Motion等の外部ツールで作成していました。なのでゲームの95%はNeosVR内で作り、残りの5%は外部ツールで作ったものをNeosVRへインポートして出来上がっています。
*6:必ずするとは限らないですが
*7:そういうのが無いと静的ワールド作るのはいいけど動的ワールド作るのが大変過ぎる