VRボンバーマンを作りたい その10(アイテム取得エフェクト)
VRTK Ver2.2.1の記事です。
Ver3になって使い方が色々と変わっています。ついでに名前も「SteamVR Unity Toolkit」から「Virtual Reality Toolkit」へ変わっています。
使い方はこちらの記事を参照してください。
takoyakiroom.hatenablog.com(以上、2017/02/04 追記)
今回はアイテム取得時のエフェクトを付けて、よりゲームっぽくしてみるところからスタートです。
爆弾置ける数増やすアイテムと、火力を増やすアイテムと2つ作ってきたけれど、アイテムを取った時にアイテムが身体に吸い込まれて、自分の周りに魔法陣が出てくるという、一度は体験してみたいエフェクトにしてみました。
じゃ魔法陣を描くで~!
さてさて、まず中心は12星座をあしらった六芒星となっております。
星座マークって「かにざ」とかで変換したらちゃんと出てくるんですね、機種依存文字らしいけど。
続いて2段目はシューティングゲーム大好きな人ならお馴染みのゼビ語です。
あの時代のゲームにこんな設定まで考えたていたとは、さすがでございます。
一番外側はルーン文字です。がんばって手で描いてみました。
って、ルーン文字ってUnicode3.0に入っているんですね! 今知ったわ
でもこれ誰が使うんだ!? あ、俺か・・・
この3つを互い違いに回転させて
外側から★を、これまた回転させながら射出します。
ゲーム画面ではこうなりました。ゲーム中の動画は記事の最後の方にあります。
取ったアイテムは、[Camera Rig]のCapsule Colliderの中心(このあたりが自分の身体の中心になる)に向かって小さくなりながら近づいていくようにしました。
次に炎に当たった時、VRの画面一瞬暗くなる処理を試しに入れてみます。
VRTKでVR画面を暗くするには「VRTK_HeadsetFade」が使えます。
使い方を見ると「Unity5.4以降では「[CameraRig]」の「Camera (head)」にある「Camera (eye)」にアタッチしろ」と書いてあるので、その通りにしてみる。
ところが、プログラムを実行すると「Camera (head)」が消えて、「[CameraRig]」の下に「Camera (eye)」が移動してる。
なので、VRTK_HeadsetFadeを呼び出す時は以下のようになります。
public void Dead() { // 暗くする GameObject.Find("[CameraRig]/Camera (eye)").GetComponent<VRTK_HeadsetFade>().Fade(Color.black, 0.5f); Invoke("Unfade", 1.5f); } void Unfade() { // 暗くしたの戻す GameObject.Find("[CameraRig]/Camera (eye)").GetComponent<VRTK_HeadsetFade>().Unfade(0.5f); }
VR画面の色を暗くするのは「Fade(Color.black, 0.5f)」、戻すのは「Unfade(0.5f)」です。
「Fade」の引数1つ目は「画面を塗りつぶす色」、2つ目は「塗りつぶすまでにかける時間(秒)」。
「Unfade」は「元に戻すまでの時間(秒)」です。
最後に、今のままだと下のような状況で斜めに移動できてしまいます。
「日本ファルコム」の初代「ドラゴンスレイヤー」(タモリが出て来るやつ)で経験値を貯めた時にできる、あの斜め移動です(古い)。
どうしたら対処できるんだろ、これ??
んでは、ゲーム中の動画とここまでのプログラムを置いておきます。
遊んでみてください。
↓ダウンロードはここから
https://drive.google.com/open?id=0Byq2RIkylpCQTmJ5NWtPV041TkU
では、また次回!!