音無サノトの空想録

ゆるく生きている人の漫画

【ゲーム制作】『VRoid Studio』で作成したキャラをUnityで走らせる

どうも音無サノトです(^^)

今日は『VRoid Studio』で作成したキャラをUnityに入れてみようと思います。

 

 

進捗報告

VRoid Studioで作成したオリジナルキャラをUnityで動かすことができました。 

f:id:otonasisanoto:20190707115312p:plain

オリジナルキャラをUnityにインポートしたときの画面

 

作業内容

VRoid Studioでキャラをエクスポート 

前回まで制作していたキャラクターをエクスポートしようと思います。

otonasisanoto.hatenablog.com

 

まず、VRoid Studioを起動し、ツールバーにある「撮影・エクスポート」からエクスポートを選択します。

f:id:otonasisanoto:20190707101012p:plain

 

するとVRM設定のウィンドウが出ますので必要な情報を入れていきます。

f:id:otonasisanoto:20190707101217p:plain

 

自分はとりあえず「タイトル」・「作者」・「連絡先」のみ入力して、後はデフォルトのままでOKをクリックしました。

 

任意のフォルダに名前をつけたファイルをエクスポートします。

f:id:otonasisanoto:20190707101742p:plain

 

VRM形式という見慣れない拡張子だったので調べました。

株式会社ドワンゴさんが提唱している「プラットフォーム非依存の3Dアバターファイルフォーマット」だそうです(参考:「VRM」って何?どんなことができる? - VRM)

 

3Dモデルは制作したソフトなどで扱える拡張子とかがバラバラだとかは割とあって、これのせいでプラットフォーム間のデータのやり取りでファイルが壊れるなんてことも起きます。それを解決するために作った共通のファイル形式みたいです。

 

UnityでVRM形式を扱うための「UniVRM」のインポート

VRM形式のモデルをUnityで扱うためには公式で配布されいてるUniVRMのパッケージをインポートする必要があります(参考:UniVRMのインストール - VRM)

 

 

まずオープンソースで配布されているUniVRMをダウンロードします。

配布先(Releases · vrm-c/UniVRM · GitHub)にアクセス。

 

最新のUniVRMを選択します。

f:id:otonasisanoto:20190707103012p:plain

2019年7月7日の時点

 

UniVRMのパッケージをダウンロードします。

f:id:otonasisanoto:20190707103139p:plain

 

ダウンロードしたらUnityを起動して、パッケージをインストールします。

 

ツールバーからAssets > Import Package > Custom Package を選択。

ダウンロードしたUniVRMのパッケージを選択します。

f:id:otonasisanoto:20190707103907p:plain

 

するとインポート画面がでますので右下のImportを選択します。

f:id:otonasisanoto:20190707104112p:plain

 

Assetsに以下のフォルダが生成されインポートできました。

f:id:otonasisanoto:20190707104757p:plain

 

なんかめちゃくちゃ警告でてきたけどスルーして大丈夫なのか…?

 

VRM形式のキャラをUnityにインポート

さて、UniVRMの準備はできたのでVRM形式のキャラをインポートしてみましょう。

Assets内に「Model」という名前のフォルダを作ってVRM形式のファイルをドラッグ&ドロップします。

f:id:otonasisanoto:20190707105256p:plain

 

するとUniVRMが自動でプレハブを作ってくれます。

f:id:otonasisanoto:20190707105427p:plain

 

そのプレハブをゲームシーンにドラッグ&ドロップ。

f:id:otonasisanoto:20190707105636p:plain

 

おおー、ちゃんと表示されました。

テクスチャが貼られていないとか問題起きるかなと思ったのですが大丈夫そうです。

 

オリジナルキャラを走らせる

ユニティちゃんというUnity用のモデルを走らせたときのプロジェクトをそのまま使用して、キャラクターをオリジナルキャラに変更してみようと思います。

 

ユニティちゃんを走らせたときの記事はこちらから。

otonasisanoto.hatenablog.com

 

今回はこの記事で書いたプロジェクトの続きからやります。

otonasisanoto.hatenablog.com

 

まずHierarchyウィンドウにあるユニティちゃんのモデルを非アクティブにします。 

f:id:otonasisanoto:20190707110354p:plain

 

追加したオリジナルキャラに変更を加えていきます。

 

まずPositionの変更。

f:id:otonasisanoto:20190707110601p:plain

 

その次にAnimatorのControllerをUnityChanLocomotionsに変更します。

f:id:otonasisanoto:20190707111033p:plain

 

このアニメーターコントローラとはUnityに用意されているアニメーションの描画の遷移を保存しているデータです。

UnityChanLocomotionだとこの様に遷移があらわされています。

f:id:otonasisanoto:20190707111207p:plain

UnityChanLocomotionのAnimator


これでユニティちゃんと同じアニメーションを再生させるというわけです。

 

次にRigidbodyを追加します。

オリジナルキャラのInspectorウィンドウの下にあるAdd ComponetからPhysics > Rigidbodyを選択します。

 

Rigidbodyを以下のように変更。

f:id:otonasisanoto:20190707113519p:plain

質量とローカル座標の回転固定をします。

固定しないとモデルがくるくると明後日の方向に回ります。

Rigidodyが何なのかはこちら → Rigidbody - Unity マニュアル

 

次に衝突判定用のCapsule Colliderを追加します。

Rigidbodyと同じようにAdd Componet > Physics > Capsule Collider を選択。

Y軸とHeightをキャラの大きさに合わせるように変更します。

f:id:otonasisanoto:20190707113755p:plain

 

次にスクリプトを適用します。

UnityChan > Scripts >UnityChanControlScriptWithRigidBody をオリジナルキャラのInspectorウィンドウにドラッグ&ドロップします。

f:id:otonasisanoto:20190707114028p:plain

 

最後に必要なプレハブを子オブジェクトにします。

UnityChan > Prefabs > for Locomotion内にある「CamPos」、「LookAtPos」、「FrontPos」をオリジナルキャラの子オブジェクトにします。

f:id:otonasisanoto:20190707114245p:plain

 

これで準備完了です。

ゲームシーンを再生してみます。


【Unity】VRoid Studioで作成したキャラをユニティちゃんのように走らせる

 

無事再生できました。

 

次回予告

次回は以前やった3Dキャラ作成ソフト「セシル変身アプリ」というものも放置状態だったので、そのモデリングとUnityへの導入をやってみようと思います。

 

本日は以上となります。最後まで読んでいただきありがとうございました!