見出し画像

部屋とC#とUnity #2 UnityでVRoidを動かしてカメラ追従と目パチ実装まで一気にやる方法

恐らくですが、このやり方がUnityでVRoidを動かすにあたっては一番手っ取り早い方法なのではないかと思います。
他にもっと簡単なやり方があるかもしれませんが、あくまでもUnityを触り始めてまだ2ヶ月程度の初心者がそう思っているだけです…^^;

スクリプトは一切触りません。
とりあえず「手っ取り早くVRoidを動かす」という事だけに焦点を絞っているので、その後の拡張や応用などまではサポートしていませんし、何度も言いますが「初心者」なのでサポート出来るようなスキルまで持ち合わせておりません…^^;

それを踏まえた上で

ここまで一気にやれる方法を書いていきます。

それでは早速やっていきましょう(^q^)

まず「UniVRM」という、UnityでVRoidを動かすにあたって欠かせない、とてもありがたいパッケージをDLしてきます。

Releases · vrm-c/UniVRM · GitHub

現時点での最新バージョンのものなので、アップデートされていたら新しいバージョンをDLして下さい。
Unity Hubを起動して新規に3Dプロジェクトを作成します。
使用しているUnityは現時点で最新安定板の
「2020.3.26f1 LTS」になります。
お馴染みの画面が開きます。
最初にDLしておいたUniVRMを赤丸の部分にドラッグ&ドロップすると確認ウインドが開くので、「Import」をクリックします。
暫くするとUniVRM用のフォルダが作成されて確認ウインドの表示も変わるので、「Accept All」をクリックしてUniVRMのインポートは終了です。
次は「Asset Store」から「Starter Assets」をインポートします。
こんな感じでプルダウンメニューから「Asset Store」を選択してクリック。
こんな画面が出てくる(はずな)ので、水色の「Search online」ボタンをクリック。
ブラウザが起動してストア画面が開くので
検索窓に「starter」と入力してエンターキー。
これと同じアセットを見つけて水色のボタンの部分をクリック。
当方は既に入手済みのため「ユニティで開く」となってますが、初回だと別のことが書いてあると思います。
「無料」なので「購入する」となっていてもクリックして大丈夫です。
「ユニティで開く」をクリックすると「Package Manager」ウインドが開くので、左のリストから同じものを選択して「Import」ボタンをクリック。
更にこんなウインドが開くので、続けて「Import」をクリック。
暫くすると「このあとUnityを再起動するけど良いかい?」的な内容のウインドが開くので、「Yes」をクリックしたらUnityが一旦閉じて再起動するまで待ちます。
再起動が終わったら「Package Manager」と「Asset Store」のウインドは閉じて構いません。
要らないウインドを閉じて画面をスッキリさせたら、矢印の部分の「Assets」をクリック。
VRoidをインポートするためのフォルダを作成します。
空いてる所ならどこでもいいですが、何もない赤丸の辺りでマウスを右クリックして「Create」→「Folder」とクリックしていきます。
空のフォルダが作成されるので、「VRoid」など何でもいいですが名前を付けます。
名前を付けるとアルファベット順にフォルダが並びます。
作った空のフォルダをダブルクリックで開きます。
開いたら赤丸の部分に「○○.vrm」となっている自分が動かしたいVRoidをドラッグ&ドロップします。
インポートされるとこんな感じで複数のフォルダが自動生成されます。
他のフォルダとゴチャ混ぜになるのを回避するために、空のフォルダを作っておいた…というわけです。
矢印の「Assets」をクリックして、上の階層に戻ります。

ここまで来たら、ほぼ終わったも同然です(^q^)

VRoidを動かすためのシーンを呼び出します。
順番にフォルダを開いて行きます。
まずは「Starter Assets」をダブルクリック。
続いて「ThirdPersonController」をダブルクリック。
「Scenes」をダブルクリック。
最後に「Playground」をダブルクリック。
「Starter Assets」のデモシーンが開きます。
別アングルで開く場合もあるかもしれないので、同じ画面が表示されてなくても似たようなオブジェクトが表示されていれば大丈夫です。
矢印の「PlayerArmature」をダブルクリックするとカメラが自動で寄ります。
この時点で既にデモシーンを遊べる状態になっているので、矢印のところの再生ボタンを押して試遊するのもアリです。
終了する時は「ESCキー」でマウスポインタを表示させてから、もう一度「再生ボタン」を押します。
因みに、ゲームパッド(コントローラー)でも動かせます。
PS4のコントローラーでも動かせます。

それではいよいよお待ちかね。
ロボットのようなアバターとVRoidを入れ替えます。

「PlayerArmature」の左側にある小さな三角をクリックするとPlayerArmature以下の「子階層」が表示されます。
そのまま「PlayerArmature」上でマウスを右クリックして
「Prefab」→「Unpack」の順にクリックしていきます。
するとPrefab化が解除され、オブジェクトの名前が通常と同じように「白く」なります。
確認したら、赤丸の何もない部分を一旦クリックしておきます。
次に「コントロールキー」を押しながら
「Geometry」と「Skeleton」の2つを選択。
キーボードの「DELETE」キーを押して選択していた2つを削除すると、ロボットのようなアバターも一緒に消えますが、これでOKです。
VRoidを格納しているフォルダを開き、先ほど削除したオブジェクトがあったPlayerArmatureの子階層へVRoidをドラッグ&ドロップします。
左の赤枠の中のように「子階層」にセットされたらOKです。
VRoidも削除したロボットに代わって画面に表示されました。
「Version」が未入力になっていると動かせないので、テキトーな数字を入れて下さい。
数字を入れてやると警告が消えます。
「PlayerArmature」が選択されていることを確認します。
インスペクタ欄の「Animator」の中にある「Avatar」欄の「◎」をクリックします。
ウインドが開くので「VrmAvatar」をクリックすると
Animatorの中のAvatar欄が「VrmAvatar」に変更されます。
この時点で、ロボットアバターと同じように再生ボタンをクリックするとVRoidを動かせるようになっています。

最後に、目パチを実装します。

今度は直接VRoidを選択します。
インスペクタを下の方へスクロールして「Add Component」ボタンをクリック。
検索窓に「bl」と入力すると「Blinker」というスクリプトが出てくるので、それをクリックします。
このようにインスペクタに追加されたら目パチ実装まで完了です。
お疲れ様でした(^q^)

長くなってしまいましたが、やった事をまとめると…

  1. 最新版のUniVRMをダウンロード

  2. Unityで新しいプロジェクトを作成

  3. ダウンロードしたUniVRMをUnityにインポート

  4. Starter AssetsをUnityにインポート

  5. 動かしたいVRoidをUnityにインポート

  6. VRoidを動かすためにちょっとだけ手を加える

  7. VRoidを目パチさせるために、既に作られているスクリプトを追加

たったこれだけです(^q^)

こんなに簡単に動かせるように出来るのも、先人の方々による努力のお陰ですね。
感謝、感謝です(^q^)

以下、オマケ

ゲームパッド(コントローラー)で遊ぶ場合の
「X軸」と「Y軸」の反転設定

「InputSystem」フォルダを開いて、矢印のファイルをダブルクリックします。
このようなウインドが開くので、「Look」の左側にある小さな三角をクリックします。
「Look」の子階層にある「Right Stick」を選択して、右の赤枠にある「Invert Vector2」以下の
「Invert X」と「Invert Y」がそれぞれの軸の反転設定になります。
何かしら変更を加えると
左上の赤丸の中のように「(*)」が表示され、矢印のところの「Save Asset」が押せるようになるので、「Save Asset」をクリックして設定を保存します。
左上の「(*)」が消えて「Save Asset」がグレーアウトしたら保存完了です。
ウインドを閉じましょう。

いいなと思ったら応援しよう!