Vket2022 Winter 制作記
Swishfです。本日12/4から12/18まで開催されるVket2022 Winterに出展したのでブースの紹介と制作の流れを書こうと思います。
これまでの制作記はこちらです。
出展内容
ルルアナリゾートとバトルフィールドオブマキナに実際に遊べるテニスコートと壁打ちを出展しました。
ブースサイズは4m × 4m × 5mのためテニスコートを縮小して収めていますが小さいアバターを使うことで実際のサイズ感で遊べます。
1階では壁打ちができます。ラケットを握ると壁から自動でボールが打ち出され、2バウンドする度に再度ボールが出てきます。
デスクトップモードではマウス視点で方向を定めスペースキーでボールを打ちますがVRモードではラケットを振って体験できます。
正面の壁にボールを当てるとデスクトップモードではそのまま反射して跳ね返ってきますが、VRモードでは移動が難しいので同じ位置に返ってくるようになっています。
2階ではコート1面全体でテニスができます。
1人の場合は自分が打った球が自動で返ってきます。2人の場合は1球目が自動で球出しされてそれ以降2人で打ち合うことができます。
デスクトップモードでは少しばらけてボールが返ってきますが、VRモードでは同じ場所に返球されます。さらにVRモードではアウト、ネットをしづらくなるアシストモードもあります。
BOOTH出展物
今回の自分のブースデータほぼそのままをBOOTHで無料配布しています。また、出展時のUdon制限などがないバージョンに書き換えた原寸大のものも一緒に配布していますので、仕組みが気になる方、ワールドにテニスコートを設置したい方など是非ダウンロードしてみてください。
以下のワールドに原寸大バージョンをアップロードしています。
出展準備
申し込み~提出開始
今回は特に時間がとれなさそうだったのでUdonギミックをメインでモデリングは極力しないようにしようと思っていました。
Winterなので冬っぽい展示がしてみたかったですが、ルルアナを見たときにリゾートでテニスをしてみたいなと思いこちらに申し込むことにしました。昼の方で出展したかったのですが倍率を見て途中で夜の方に応募を変更しました。
Questの方はベースは同じでテクスチャ、SEなどを差し替えたものを展示しようと思っていました。こちらも最も倍率が低いところに応募しました。
前回は作業量の関係でUdonギミックはすべてローカル動作にしていましたが、今回はマルチで遊べることを1つの目標としていました。マルチ向けギミックは応募開始前から事前に試していました。
Vket進捗どうですか集会
毎回ろれるさんがVket進捗どうですか集会をVket出展準備期間中に毎週開かれています。今回は都合で数回しか参加できなかったですが毎回各出展者の雑談が聞けて面白いです。Vket開始後もいろいろとVket関連の集会を開かれているのでそちらは楽しみたいと思います。
プログラムまわり
通信
自分がボールを打つタイミングで打点、速度、スピンの情報を送信します。受け取った側はその情報を基にその位置からボールを発射させます。
特にラグ対策は入れていないので自分が打ったボールの軌道を相手はコンマ数秒後に見ることになります。つまり、こちらが打ったボールが相手の打点を通り過ぎて少ししてから打点の位置からボールが返ってくるように見えます。
出展制限によって変数の同期は10個まで、文字列の変数は同期できなかったため3つの情報を1まとめにして送信するのが少し手間になっていました。
自分の場合は送るボール打ちだし情報IDを決めて、その値と各ベクトル成分を1000倍して整数型でエンコード、それら3次元ベクトル3つ分 = 9つそれぞれを別々の同期変数で同期する、受け取る側は同じIDの情報9個がすべて届いたらデコードしてボールを発射という感じに行いました。
ボール挙動
壁やラケットとボールの当たり判定はベクトルの内積で計算しています。
ボールとラケットはそれぞれ前回のフレームの位置を記録しておき、ラケットの前回と今回の位置を結んだ線がボールを捉えているかどうかを判定して抜けを防いでいます。
同じ位置に返球する処理はボールがバウンドするラインとボールが通過するポイント(y軸は無視)を決めて軌道の最高到達点を適当に与えることで斜方投射の式から初速と打ち出し角度を算出しています。
使用したツール
Blender
ブース全体をまとめて作りました。
Unity
Udonギミック作成、データ入稿などで使用しました。
Gimp
テクスチャ作成、統合、ライティングで使用しました。
Substance 3D Painter
マキナ用のさびれたテクスチャを作るのに使用しました。
モデルを読み込んでマテリアルを指定するだけで一瞬でテクスチャが出来上がるので今回もとても助かりました。ルルアナからマキナの入稿データを作るのに1時間もかからなかったです。
今回はほぼデフォルトのまま使用したのでSubstanceを使っている方はSubstanceで出力したテクスチャだと分かってしまうと思うので次回以降はもっと使いこみたいと思います。
Sourcetree (git)
バックアップ、バージョン管理に使えるツールです。毎度書いていますがアバター作成でもワールド作成でもデータの巻き戻し、復旧、作業履歴確認などが行えるようになり作業効率がとてもよくなるのでお勧めです。
導入についてはVket2021制作記の方に書いています。
ポリゴン数、バッチ数
ポリゴン数: 約3万
Set Pass Calls: 7
Batches: 12
感想
1年前のVket2021では江戸×テニスをテーマに江戸にテニスショップを開き、今回はリゾートにテニスラウンジを開くことができました。
制作中に息抜きでテニスができたので本当に楽しく作業を進められました。
Blenderを始めてこの1年でVRC上で自由にものを作ることができるようになってきました。気軽に何か作って他の人に体験してもらえるのはやはりとても楽しいです。
しかし、いろいろ作る中でモデリングの基本などは身に付いてきましたがデザイン周りがまだまだです。他の方の出展を見ているとテクスチャやライティング、色味などがすごく奇麗なものがあり、自分もちょっとしたモデリングとかギミックだけではなく見ただけで感動されるようなもっと凝ったものもいつか作ってみないなと思い始めました。
これからしばらくは見た目周りの技術を勉強していこうかなと思います。
次第に規模が大きくなっていくVket、今から次回も楽しみです。
これまでのVketでの出展物展示ワールド
海の家 ー 豊滝の栄湖カスカアクア
Udonギミックアーケードゲーム ー Vket学園 電市祭
江戸テニスショップ ー 復刻江戸城城下町 Re:エド城下
江戸テニスショップの制作過程と江戸テニスセンターコート原寸大
この記事が気に入ったらサポートをしてみませんか?