見出し画像

バーチャルマーケット2023 Summer 制作記

Swishfです。7/15から7/30まで開催されるバーチャルマーケット2023 Summerに出展したのでブースの紹介と制作の流れを書こうと思います。


出展内容

南国の楽園 ルルアナリゾート ルアナビーチに出展しました。
前回Winterの時はPCワールドでしたが今回はQuestワールドとして再登場しました。

南国の楽園 ルルアナリゾート ルアナビーチ
出展ブース

よくある飛んでくるボールを打ち返す反射神経を試すゲームを作りました。
打ち返すだけで得点、3色の的に当てればさらに得点、ボールと同じ色の的に当てれば高得点となっています。

難易度は3段階選べるようになっています。高さも調整可能にしています。

他の人がプレイしているときはモード、難易度、得点表示だけ同期するようにしています。

BOOTH出展物

今回もブースデータをほぼそのまま無料で公開しています。
良ければダウンロードしてみてください。

当たり判定

前回のテニスゲームなどはU#で計算して当たり判定を行っていましたが今回はUnityのPhysicsを使うことにしました。

物体の移動は基本ワープしている

ボールは内部的に前のフレームから今回のフレームの位置をワープするように移動していて連続で移動しているわけではありません。
そのため、単純にボールと壁などがある時点で重なっているかだけを判定すると当たり判定の抜けが発生しすり抜けてしまう場合があります。
これを防ぐためにボールの前回の位置と今回の位置を考慮して当たり判定をとる必要があります。

ボールとソードの当たり判定の可視化

壁とボールの当たり判定は壁の位置が固定で単純なため内積でとりました。

ソードとボールの当たり判定はPhysics.OverlapCapsuleNonAlloc、Physics.OverlapBoxNonAllocで行いました。

ボールの前回位置から今回位置を結ぶようにカプセルコダイダーを設置し、ソードの当たり判定の形状でPhysics.OverlapCapsuleNonAllocを行います。
これによってボールがソードをすり抜けてもその間をカプセルコライダーが跨いでいるため検知することができます。

この方法だとソードが速く動いたりなどでソードの前回位置と今回位置の間にボールの前回位置と今回位置が存在する場合は検知できないため、ボールの場合と同様にソードの前回、今回の位置を結ぶようにボックスコライダーを設置してPhysics.OverlapBoxNonAllocでボールを検知しています。
こちらは実際のソードの軌道と形が異なりますがあまり厳密でなくてもプレイに問題なさそうだったのでそのようにしました。

衝突位置はボールの前回の位置からのPhysics.SphereCastNonAllocでソードと衝突する位置でとっています。衝突がない場合はボールの今回の位置としています。

Vket進捗どうですか集会

毎回行われているVket進捗どうですか集会、最後1回だけでしたが今回も参加しました。主催がろれるさんから公式に移行したので個人的に少し寂しい感じもしましたが、いろんな出展者の方が集まり様々な話が聞ける良い機会です。
入稿期間中はほぼ毎週開かれているので、出展者の方も出展に興味がある方も行ってみると良さそうです。

感想など

短いですが今回はこんな感じでした。

毎回同じことを言っている気がしますが、今回は過去参加した中で一番時間が取れませんでした。
当選後1か月作業したところでこのままでは間に合わないと思い作るものを変更し、残り1か月で今回の反射神経ゲームを制作することになりました。
それでも時間がほとんどとれず、デザインは全く行わない形になってしまいました。
個人的には2か月くらいの短い期間でワールドに合わせて制作するのが好きなのですが、時間が取れず焦って作っても楽しさが減ってしまうので普段から何か制作しているものを出す方向に変えてみるのもありかなと思いました。

Vket会場の方はまだ一部しか回れていないですが今回もボリュームがすごいです。残り期間もしっかり回って楽しみつくそうと思います。

この記事が気に入ったらサポートをしてみませんか?