トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

【Part1】VR/UI研究所アプリを作る【銃・VR彼氏土台づくり編】

前回構想だけ書きました。 

bibinbaleo.hatenablog.com

本当は一つづつ作って言ったほうがいいのかもしれませんが、私はちょっとずついろんなものに手を出しながら進めるのが好きなので、それぞれのシーンの土台を作っていきます。

全体

移動やtipの表示などのVR部分はVRTKを使います。

negilab-unity.com

サンプルが充実しているので、初心者でもやりやすそう。

framesynthesis.jp

 

あと全体的にアセットはいっぱい使っていきます。下の記事はVRをしている人がまとめてくださったものなのでとても役に立ちそう!

【全部タダ!】無料で使える Unity Asset 50選 -3Dモデル編- | syyamalog

 

シーン遷移

ホーム画面から各シーンへの遷移は、ドアとの距離での判定にしました。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class scene : MonoBehaviour {
    /// <summary>
    /// /ドアと自分の位置の距離で、シーン遷移を判定するスクリプト
    /// </summary>
    public GameObject me;
    public GameObject doorgun;//ガンシュミレーター
    public GameObject doorkare;/// VR彼氏のどあ
    /// Start this instance.
    /// </summary>
    // Use this for initialization
    void Start () {
        
    }
    
    // Update is called once per frame
    void Update () {
        Vector3 Mepos = me.transform.position;

        Vector3 Gunpos = doorgun.transform.position;
        float disgun = Vector3.Distance(Mepos,Gunpos);///銃との距離
        if (disgun < 1) {
            SceneManager.LoadScene("gun");
        }

        Vector3 Karepos = doorkare.transform.position;
        float diskare = Vector3.Distance(Mepos,Karepos);///彼との距離
        Debug.Log("Distance : " + diskare);
        if (diskare < 1) {
            SceneManager.LoadScene ("karepip");
        }
    }
}

 

メニューボタンの押下を感知するスクリプトなどはこちらにまとめてありました。

framesynthesis.jp

メニューボタンを押したら、「ホームに戻る」と「ゲームをやめる」を選べようにしたいです。

ガンシュミレーター

アセット

銃は下のアセットを入れてみました。

とりあえず広げてみました。おおー。PUBGで見たことある銃の名前が並んでいます。

f:id:bibinbaleo:20171020230848p:plain

また雰囲気を作るために軽率に下記の環境アセットを入れて見ました。墓地

f:id:bibinbaleo:20171021104650p:plain

 敵役はこのモンスターアセットを入れようかなと思ったけど、まだ早いかな。

銃を打てるようになってからにします。

f:id:bibinbaleo:20171021104637p:plain

銃を撃つ

銃をつかめるようにして、トリガーを引いたら球が出るというシンプルな感じにします。

blog.kazumalab.com

vr-lab.voyagegroup.com

VRTKサンプルの中に銃を撃つサンプルがありました。gunという名前のスクリプトを銃につけてやっていますね。

またgunの下にBulletという名前の弾を銃口先に置いて非アクティブにしています。

f:id:bibinbaleo:20171021163455p:plain

全部でこれだけのスクリプトをつけている。

f:id:bibinbaleo:20171021163503p:plain

gunの設定はこんな感じに。

f:id:bibinbaleo:20171021163459p:plain

 

VR彼氏

こちらのアセットを使わせていただきます。

というかこれぐらいしかフリーのアニメ調の男キャラっていないのでは??

プロ生ちゃん的な存在のイケメンをください。

早く自分でモデリングできるようになろう。

それはそうとこのアセットすごくいいですね!モーションも服も豊富!

viewerシーンで全てのモーションと服を確認できます。

f:id:bibinbaleo:20171021163142p:plain

規約とかは下のサイトのFAQに書いてありました。すごく寛容な規約。

www.gameassetstudio.jp

部屋

イケメンの部屋でお話ししたいので、sweethomeで作りました。

「イケメン+部屋」で画像検索して出てきた部屋を参考にしました。

f:id:bibinbaleo:20171021230236p:plain

f:id:bibinbaleo:20171021230216p:plain

f:id:bibinbaleo:20171021230212p:plain

f:id:bibinbaleo:20171021230207p:plain

f:id:bibinbaleo:20171021230223p:plain

マテリアルをトゥーンからstandardにしたらこんな感じになります。

f:id:bibinbaleo:20171022174946p:plain

今回はstandardにします。

動かしたり、いじったり

こっちを向いてくれるスクリプトをつけたのですが、なぜか目玉がめっちゃオーバーに移動する。どうしたものか・・・

f:id:bibinbaleo:20171021230228p:plain

docs.unity3d.com

setlookatweight関数を使っているのでこれの数値をいじればよくなるのかな?

でも他のモデルでもちゃんと動くから、モデルの設定のせいなのか。

あとテクスチャをいじって、青髪青目にしたのですが、それをcollaborateでアップしようとするとMD5 does not muchっていうエラーが出てアップロードできない。

f:id:bibinbaleo:20171022095352p:plain

f:id:bibinbaleo:20171022095316p:plain

フォーラムに同じ質問がありました。計算中らしい。

Error | Unity Community

結局unityを再起動したら治りました!

一旦休憩

一応VRでも動作確認はしているのですが、研究室のパソコンでやっているので動画とるのめんどくさいので動画はしばらくないかもな