【Unity】VRoidのキャラクターをUnityで動かす方法

VRoidのキャラをUnityで動かす ゲーム制作メモ
Advertisements

Unityで3Dゲームを作っているとアニメ風のキャラ(特に女の子)の3Dモデルが欲しくなります。しかしアセットストアを探してもアニメ風のキャラは少なく、あってもクオリティの高いものは高額なので気軽に導入できないという状況です。

そこで私が目を付けたのが、Pixivが開発している3Dキャラクターモデリングソフト「VRoid Studio」です。このソフトは(いまのところ)無料で使えて、作ったモデルも比較的自由に使えるのでかなり良いなと思いました。

調べてみるとVRoid Studioで作ったモデルは簡単にUnityにインポートできるとのことでしたので、3Dモデルのエクスポート~Unityで動かすまでを実際に試してみました。


※この記事を書いた時点ではVRoid Studioはまだβ版(Ver0.6.4)なので、今後やり方が変わる可能性があります。ご注意ください。

※ある程度Unityの使い方が分かっている人向けの記事です。

VRoid Studioでキャラクターモデルをエクスポートする

まずはVRoid Studioで作ったキャラクター(ここではサンプルの女の子)をエクスポートします。

キャラクターモデルのエクスポート

「撮影・エクスポート」タブ→エクスポートを選択して適当なフォルダにVRMファイルを出力します。

Unity用のアセットのインポート

次にUnity側で必要なアセットをインポートしていきます。

UniVRMのダウンロード&インポート

まず、そのままではUnity側でVRMファイルを読み込めないので、下準備として「UniVRM」というアセットを導入してVRMファイルを扱えるようにします。UniVRMはGitHubからダウンロードできます(下記URL)。

Releases · vrm-c/UniVRM · GitHub

最新のunitypackageをダウンロードしたらプロジェクトにインポートしてください。

VRMファイルのインポート

次にVRMファイルを読み込みます。プロジェクト内の適当なフォルダに先ほどのVRMファイルをドラッグ&ドロップしてください。読み込みに時間がかかりますが、しばらくするといくつかのフォルダとプレハブが生成されます。

ここで、プレハブをシーンに出して眺めてみると分かるのですが、そのままだと目の周りが黒くなってしまっているのが分かります。これはシェーダーの設定が合っていないために起こる現象なので、シェーダーを適切なものに変更しておきましょう。

VRoidキャラのシェーダーの変更

プレハブ内の「Face」オブジェクトのインスペクタを開くと、マテリアルの欄にいくつものマテリアルが設定されているので、上の図の赤枠の部分を「VRM/MToon」から「VRM/UnlitTransparent」に変更します。

これでひとまず目の周りが黒くなる現象は解決できました(※まつ毛などが白っぽくなってしまうのですが、そちらの直し方はよく分かりませんでした)。

Standard Assetsのインポート

あと、簡単にキャラクターを動かすために今回はお馴染みのStandard Assetsを使います。アセットストアからダウンロードしてインポートしておいてください。

キャラクターを動かすための設定

それではいよいよキャラクターを動かすための設定を行います。Standard Assetsを使ったことのある方ならいつもやっている設定だと思いますが、一応説明しておきますね。

Animatorの設定

まずキャラクターのプレハブのAnimatorの設定を行います。アニメーターのControllerのところにStandard Assetsの「ThirdPersonAnimatorController」を設定しましょう。

Animatorの設定

ThirdPerson関係のコンポーネントの追加&設定

そうしたらStandard Asset内のスクリプトをプレハブにアタッチしていきます。「Third Person Character」と「Third Person User Control」をアタッチして、下の図のように設定してください。

ThirdPerson関係のコンポーネントの設定

プレハブへのCameraの追加&設定

次にプレハブにカメラを設定します。シーンに最初からあるMainCameraを削除して、Standard Assets内の「Cameras」→「Prefabs」→「FreeLookCameraRig」をキャラクターのプレハブの子として追加してください。そうしたら今追加したカメラにアタッチされているリジッドボディの補完を「なし」に変更しておきましょう(※これがあると移動したときにガタガタする)。

あと、カメラの位置を調整したい場合は子の「Pivot」で高さを、「Main Camera」で奥行きを設定してください(カメラのその他の座標はゲーム開始時にリセットされます)。

Planeの作成&キャラクターのインスタンスの作成

ここまでできたらあと少しです。キャラクターを動かすための足場を作ります。原点にPlaneを作り、サイズを適当な大きさに拡大してください。

最後に、インポートしたモデルのプレハブをシーンにドラッグ&ドロップしてインスタンスを作成し、座標を原点に設定してください。

ゲームを実行してキャラクターを動かす

これで準備ができたので、ゲームを実行して実際にキャラクターを動かしてみましょう!

VRoidをUnityで動かす

このようにきちんと動けば成功です。

タイトルとURLをコピーしました