VRoidをUnityで動かしてみた

次のページを参考にVRoid Studioで作成したキャラをUnityで動かしてみた。

Unity Hub 2.4.2からUnity 2020.1.16f1の3Dプロジェクトを作成した。

UniVRMパッケージをインポートする

次のサイトからUnityでVRMをインポート・エクスポートできるパッケージUniVRM v0.65.2(UniVRM-0.65.2_5fd6.unitypackage)をダウンロードしUnityのプロジェクトにドロップし[import]した。

VRoidをUnityのプロジェクトへドラッグ&ドロップする

VRoid Studioのエクスポートで作成したvrmファイルをUnityのプロジェクトにドロップした。

Standard Assetsをインポートする

Windowメニューの[Asset Store]を選びAsset Storeパネルを開く。

参考にしたページには検索窓が書かれているが、見当たらない。代わりに[Search online]ボタンを押すと、ブラウザでunity Asset Storeが開く。そこの検索窓で[Standard Assets]を検索する。

[Add to My Assets]ボタンがあるので押す。一度My Assetsに追加すると次回からは[Open in Unity]ボタンに変わる。Unity Asset Storeを利用するにはログインする必要がある。ダウンロードやインポートを行う。

ステージを作る

Hierarchyパネルの+で[3D Object]-[Plane]を選ぶ。この上を走り回ることができるのでちょっと広めがいい。

とりあえず、InspectorのScaleでXとZを10にした。

キャラを配置する

ProjectのAssetsにあるキャラをPlaneにドラッグ&ドロップするとPlaneの上に表示される。

Animatorを変更する

キャラのInspectorのAnimatorのControllerプロパティの右端にある丸いアイコンをクリックすると候補が表示されるのでその中から[ThirdPersonAnimatorController]を選択する。

Third Person User Controlスクリプトをアタッチする

参考にしたページではキャラのInspectorの一番下にある[Add Component]ボタンで"thi"を検索窓に入力すれば[Third Person User Control]が出てくると書かれているが、出てこなかった。

プロジェクトの検索窓で[Third Person User]と入力すると#アイコンのスクリプトがひとつ表示される。このアイコンで右クリックメニューの[開く]とVisual Studioでソリューションが開いた。ここは環境によると思う。ビルドすると次のようなエラーが表示される。

Unity\Assets\Standard Assets\Utility\SimpleActivatorMenu.cs(11,16,11,23): error CS0619: 'GUIText’ は旧形式です ('GUIText has been removed. Use UI.Text instead.’)

上のページを参考にSimpleActivatorMenu.csを修正した。

  • using UnityEngine.UI;を追加
  • public GUIText camSwitchButton;をpublic Text camSwitchButtonとクラス名を変更。

ビルドすると今度は成功する。

最初の目的に戻って、キャラのInspectorの一番下にある[Add Component]ボタンで今度は[Third Person User Control]が表示されるようになったのでそれを選択する。

Capsule Collider

キャラのInspectorでCapsule Collider(カプセル型の衝突範囲)のYとHeightを変更する。緑色の線は初めは足元にあるのでYを体の中心にHeightを体の大きさに変更する。参考にしたページではYが0.8、Heightが1.81だった。自分で微調整してくださいとあるので、Yを0.9に変更した。Heightはちょうどだった。

Third Person CharactorのGrand Check Distance

キャラのInspectorで[Third Person User Charactor (Script)]の[Ground Check Distance]プロパティの値を0.1から0.3に変更する。[Play]ボタンで矢印キーで走り回れるようになる。[Space]キーでジャンプする。初めの0.1の値だとうまく動かなかった。

カメラがキャラの後ろにくるようにする

Main Camera

Hierarchyパネルでキャラの子にMain Cameraを移動する。Main Cameraがキャラの後ろに来るようになる。

MultipurposeCameraRig

Main CameraのInspectorでMain Cameraのチェックを外すと、カメラからのView画面に何もレンダリングされなくなる。プロジェクトの検索窓で[Multipurpose]を入力すると[MultipurposeCameraRig]が表示されるのでそれをHierarchyパネルにドラッグ&ドロップする。MultipurposeCameraRigのInspectorの[Auto Cam (Script)]のTargetプロパティがNoneになっている。HerarchyのキャラをTargetにドラッグ&ドロップするとキャラをカメラが追うようになる。

ここで参考にしたページは終了。VRoidが走り回ってくれるありがたいページだった。

ブラウザで動くようにする

ブラウザで動かしたいので今度は次のページを参考にした。

[File]メニューの[Build Setting]で[Build Setting]ダイアログを開く。

[Scenes in Build]領域にProjectパネルのAssets/ScenesにあるSample Sceneをドラッグ&ドロップする。

PlatformのWebGLを選択する。※ Development Buildにはチェックを入れない。

参考にしたページにはないが、うまく動かなかったので[Player Settings…]ボタンを押して[Compression Format]プロパティの値を[Gzip]から[Disabled]に変更する。

[Build Settings]ダイアログの[Switch Platform]をクリックする。PlatformのWebGLの右側にUnityアイコンが表示されればいいらしい。

[Switch Platform]ボタンが[Build]ボタンに変わっているので[Build]ボタンをクリックする。

保存フォルダを聞かれるので指定する。

ビルドは結構時間がかかるので終わるまで待つ。

ビルドが終わったら保存フォルダの下のファイルを全部Webサーバーに持っていく。