さて今回はタイトルの通りVRoidを使用して作成したオリジナルのキャラクターをUnityで動かすまでを、 徹底的に解説していきます。ところでVRoid聞いたことありますか?これは画期的なfree softで、 アニメ風の3Dキャラクターを誰でもかなり簡単に作れるソフトです。高等な3D編集技術も何も 必要なく3Dキャラクターが作れてしまいます。しかもこれをUnityで動かすのもとても簡単です。 動かすまでならノーコードで行けますので、プログラミングが苦手な方も安心してください。 なので早速VRoidでキャラクターを作成してみてください。最近のゲームによくある キャラクタークリエイトな感じで簡単に作成できます。
とりあえず作ってみました。UPした顔はこんな感じです。名前はfirstと名付ける事にしました。
全体はこんな感じです。これが3D編集技術を全く持っていない自分でも簡単に作れてしまいます。 とてつもなく便利な物が出来てしまいましたね。
さてキャラクターも作れたので、このキャラクターUnityで動かすための準備をして行きます。 まずはこのキャラクターを書き出していきますのですが、その前に一生懸命作ったこの キャラクターを保存しましょう。
上の画像を参考にして、画面左上のボタンを押してから、適当な場所に名前をつけて保存しましょう。 例えばfirstと名前をつけると、first.vroidというファイルが出来ます。これが出来たら次に 書き出しを行います。
書き出しは、上の画像を参考にして、右上のボタンを押してVRMエクスポートというボタンを押してください。
すると少し読み込んだ後に上記画面になるのでエクスポートを選択してください。これでvrmファイルが作られます。 ファイル名は例えばFirst.vrmとなっています。ここまででVRoid側の操作は終了です。
キャラクターのエクスポートが出来たら、次にVRoidキャラクターをUnityで動かすために必要なソフトである UniVRMをダウンロードしましょう。 ダウンロードはここからできます→UniVRMダウンロードページへ移動
ダウンロードページに移動すると上記画面になりますので、赤線の部分をクリックしてダウンロードしてください。 ダウンロードする時期によってはより新しいバージョンが出ていると思いますので、最新の物をダウンロードすれば いいと思います。ダウンロードが出来ると赤線の名前と同名のファイルが出来ます。 ダウンロードできたらこのファイルをUnityにインポートします。Unityで新しい3Dプロジェクトを開いてください。
新しいプロジェクトが開けたら、上記画面を参考にして、UniVRM(今回ダウンロードしたファイルは→UniVRM-0.99.0_f9ee.unitypackage) をUnityのproject windowに ドラックアンドドロップしてください。するとimportボタンが出ますのでこれをクリックして importします。この画面ではすでにUniVRMがimportされています。importが無事にできると 黄色で囲った3つのファイル(UniGLTF,VRM,VRMshadersの3つ)が出来ます。これでUniVRMのインポートが終わりました。
UniVRMを無事にインポートできたので、いよいよ先ほどエクスポートしたFirst.vrmファイルをインポート しましょう。
上記画像を参考にしてインポートしてください。画像が見にくくなっているので説明します。 まずはproject windowでAssetsの上で右クリック→Create→Folderを選択してfisrt.vrmを インポートするフォルダーを作成します。ここでは名前をVRoidsとしています。 そしてこのVRoidsファイルを左クリックして開いたwindowにドラックアンドドロップしてください。 図ではすでにインポートしているので、インポート後のファイル(黄色で囲ったファイル)があります。 このVRoidsファイルは作成しないでimportしてもいいのですが、project windowが煩雑になるので 自分はファイルを作成してそこにインポートしました。これでインポートは完成です。
つづいてStarter Assetsをインポートしましょう。今回はthird person character contorollerを使います。 Starter AssetsにはFirst Person viewも準備されています。これを使用すると簡単にTPSやFPSが作成できる 超優秀な無料Assetsです。VRoidでstanderd assetsを使用してunityで動かす内容の記事は結構ありますが、 このstarter assetsで動かす記事は少なかったので解説していきます。
unityからasset storeを開きます。上記の様にAsset Storeタグがあればそれを開いて 上記の図のseach onlineボタンをクリックしてください。 Asset Storeのタブがなければ、unity上部のwindowボタンを押すとasset storeがあるので それを選択してください。
Asset Storeが開けたら、search欄に上図のように入力して検索してください。
上の図を参考にしてstarter assetsをクリックしてください。
選択したら上の図のadd to my assetsボタンをクリックするとimport出来ます。
きちんとimportできると上図のようにstarter assetのフォルダーができます。 これでimport完了です。
まずはstarter assetsを動かしてみましょう。
上図を参考にして、Starter Assets→scenes→Play Ground(上図の赤で囲っているところ)をクリックしてください。
Play Groudのシーンを開いて再生ボタンを押してゲームを再開すれば動き出して、 上記のような画面になります。wで前進、aで左に移動、sで後退、dで右に移動、 マウスのポインターの 方向に視線が向かい、スペースでジャンプ、シフトでダッシュします。 こんな感じに動くものが簡単に実装できるなんと凄い事ですよね!
このPlay Graoundシーンのロボット見たいなキャラクターをオリジナルキャラクターに変更しても いいのですが、自分で作った新しいシーンに必要な分だけstarter assetsを使用して オリジナルキャラクターを動かせる方が今後の利便性がいいと思いますので、その方法で 解説していきます。
unityのproject windowのAssetsの上で右クリック→Create→Scenesを選択して、新しいシーンを作りましょう。 名前は例ではTestで作成しています。
上記の様にHierarchy windowにmain cameraとDirectional Liteのみのシーンができます。 つづいて、キャラクターを動かす床を作成します。Hierarcht windowで右クリックして 3D Object→planeを選びます、Transformの設定は以下の様にしてください。 名前はPlaneのままでいいです。
床が出来たので、先ほどの動くロボットをこのシーンに連れてきます。この動くロボットは プレハブになっているので、そのプレハブをこのシーンに移動します。
上の図を参考にしてください。ロボットのプレハブはstarter assetsフォルダーの中の ThirdPersonControllerファオルダーの中のPrefabsフォルダーの中にあります。 その中のPlayerArmatureがロボットのプレハブです。上図の黄色で囲っているものです。 これをHierarchy windowにドラッグアンドドロップしてください。 ロボットが簡単にシーンに登場しました。このロボットをこれから編集するので、 プレハブでは無い状態にアンパックします。 Hierarchy windowに移動したPlayerArmatureを右クリックしてPrefab→Unpackを 選択します。するとHierarchy windowのPlayerArmatureの左のキューブが青から 透明に変わります。ここまでして再生ボタンを押してゲームモードにしてみましょう。
無事に動くロボット君が新しいシーンに降臨してくれました。しかし動かして見ると、、 おや?ロボットは自由に動くけどカメラが追っかけて来てくれませんね。 そもそも見かけもロボットのままだし。これからカメラの調整と、いよいよオリジナル モデルをシーンに導入していきましょう。
いよいよオリジナルキャラクターを降臨させてみます。
まずはPlayerArmatureの子オブジェクトにある、GeometryとSkeletonを削除します。 上の図の赤で下線を引いているものです。それぞれの上で右クリックしてDeleteで削除します。
削除できたら、VRoidsファイルの中にあるFist(黄色で囲っているもの)をPlayerArmatureに 上図を参考にドラックアンドドロップしてください。
FirstがPlayerArmatureの子オブジェクトになっている事を確認してください。 ついにFirstがUnityに降臨しました。再生ボタンを押してください。T字になったままアニメーションはありませんが、 Firstさんが動き回っています。
T字のままでは悲しいのでアニメーションをつけてあげましょう。
Hierarchy windowのPlayerArmatureを左クリックして、Inspector windowを見てみましょう。 そこにAnimatorという項目があります。その中のAvatorの項目が、ArmatureAvator(上図赤線部)になっています。 これが原因でアニメーションしてないので、黄色で囲ったボタンを押してください。 すると中にVrmAvatorがあるのでそれをダブルクリックしてください。これでAvatorが変わりました。 再生ボタンを押してみてください。
どうですか!?ついにFirstさんが自由にUnityの中を飛んだり跳ねたり走ったりしています!!! 僕はかなりこの時点で感動しています(笑)
続いて現時点ではカメラが動いてくれないので、そちらの設定をします。
上図の赤線のMain Cameraを削除してください。
Main Cameraを削除したら、上図にしたがって、Starter Assetsフォルダーの中のThird Peason Controllerフォルダーの中の Prefabsフォルダーの中の、Main CameraとPlayerFollwCameraをHierarchy windowにドラッグアンドドロップしてください。
そして最後の工程ですね。PlayerFollwCameraのInspectorの中のCinemachineVirtualCameraの項目の 中にFollowがありますが、これがnoneになっているので、上図にしたがってここにPlayerArmatureの 子要素のPlayerCameraRootをドラッグアンドドロップしてください!これでゲームを開始すると Firstちゃんをカメラがしっかり追いかけて、なおかつマウスで視線を移動することもできます! 長くなりましたが、以上で今回のブログは終了です。これで自分で作ったシーンに自由に 自分でVRoidで作成したキャラクターを降臨させるようになります!そしてこれからこのキャラクターを 使用してオリジナルゲームを作ったりと色々できそうですね!!