この記事はRCCアドベントカレンダー13日目の記事です。
どうもこんにちは。
RCC渉外局長のgyuhoです。
これを見ている人で、KC3なんていうよくわかんない団体に興味のおありの方はこちらにどうぞ。
それはさておき、私は普段の活動としてはXRを中心に勉強して、プロダクトを作っています。
そんな感じなので今回はVRゲームを作る際のちょっとしたTipsみたいな感じで書こうと思います。
通常のゲームのエフェクト
通常、ゲームでは3Dでも2Dでもエフェクトによる表現が使われていることがあります。
例えば、メタルギアライジングでは、斬撃のエフェクトが使われていますね。
このゲームでは、主人公がある種チートのように自分の動きを加速させて敵やオブジェクトを切るといった動作ができるものとなっています。
次に、SAO ホロウ・リアリゼーションというゲームです。
こちらでは、通常攻撃の軌跡、ほかにもソードスキルにはパーティクルエフェクトが現れています。
このようなエフェクトですが、VRゲームに対応させるためにはちょっとした工夫が必要なのです。
VRに対応したエフェクト
今回、VRゲームを作成するにあたって、メタルギアライジングのような斬撃のエフェクトを出してみました。
このようなエフェクトを実装するには、座標系の知識が多少必要になっています。
通常のゲームでは、 操作キャラクターの動きに対応してエフェクトを出したり、 TPS視点であるため、そもそも表現を球形のようなものにしたりだとかをしています。(少なくとも僕はそうしています。)
ですが、VRゲームではプレイヤーの視点(カメラ)がエフェクトの正面に向いていなかったり、エフェクトとの距離が近いため、エフェクトがプレイヤーから見れなかったりというようなことがあります。
これを解決するため、座標変換ということを行います。
具体的にUnityでは、World座標からScreen座標への変換を行います。
それぞれの座標の簡単な説明と変換方法はこちらをご覧ください。
とまあ、そんなわけなんですが、これをVRゲームで応用するわけです。
具体的には切った斬撃エフェクトがプレーヤーの視点方向を向くようにしています。
これには単純なベクトル計算を用いていて、斬撃を出したい二点間の中心にエフェクトオブジェクトを置き、その法線ベクトルをカメラ方向に向けることによって実現しています。
終わりに
そんな感じで終わります。
ありがとうございました。
皆さんぜひVRゲームを作ってみましょう。
独り言
VRゲームは3DFPSゲームと作り方はそう大して変わらんけども、ユーザー体験に直結しやすい操作方法だとか三次元上の表現だとかを気を付けないと、面白いものはできんよなぁ