Topics

【Unity徒然3回目】VRoid Studioで作ったキャラクターをUnity上で動かしてみた

  • このエントリーをはてなブックマークに追加

VRoid Studioというのは3Dキャラが作成できるソフトだ
といってもよくあるMayaや3dsMaxなどと違っていちいちポリゴンをこねくり回してリグ設定してなどする必要はなく、
どちらかと言えばゲームのキャラメイキングのようにキャラを作れるツールとなっている
https://vroid.com/studio
しかも無料でダウンロードできるのだ

じゃあ、実際ゲームとか商用で使っていいのかというと以下規約を見ると
https://vroid.pixiv.help/hc/ja/articles/4405813333657

VRoid Studioで作ったモデルは、商用利用できます。

とのように記載されている
もちろん出力したモデルを使ってVRoidStudioのようなキャラクターメイキングツールを作ることは禁止されているが、個人で作るゲームとしてキャラをこれで作成する分には問題ないとのこと

注意点としてVRoid Studio自体を商用利用することは禁止されているので基本は出力されているモデルのみ商用利用できるということを念頭に置いておこう
https://vroid.pixiv.help/hc/ja/articles/360008211814-VRoid-Studio%E3%81%AE%E5%95%86%E7%94%A8%E5%88%A9%E7%94%A8%E3%81%AF%E5%8F%AF%E8%83%BD%E3%81%A7%E3%81%99%E3%81%8B-

となると出力されたモデルをどうやってUnityで読み込むかという話になるのだが一応VRoid SDKというものがあるのだがこれはVRoid Hubというプラットフォームからキャラをダウンロードしてプレイできるようにするものなので
オンラインを経由することになる。あとVRoid Hubに掲載したアプリしか使えないそうなのでハードルもそこそこあがる

https://vroid.pixiv.help/hc/ja/articles/360011743973-VRoid-SDK%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%A7%E3%81%99%E3%81%8B-
というかどちらかと言えばユーザーが自分がVRoid Studioで作ったキャラクターでゲームができるよというものが正しい使い方なのだろう

ではどうやってUnityで読み込むのかというと以下のステップで実現できそうだ

①VRoidStudioで適当にモデルを作成
②作成したモデルをVRM形式で出力
③VRM形式の3DモデルデータをUnityで読み込む
④Animator設定を行う

というわけでステップごとにやってみた
*①VRoidStudioで適当にモデルを作成は各自VRoidStudioを使って楽しんでやればいいので説明は割愛

②作成したモデルをVRM形式で出力
これはVRoidStudio上で全部完結できる
サンプル

右上にあるエクスポートボタンを押すとVRMエクスポートの項目がでてくるのでそれをクリック
VRoidサンプル2

VRoidエクスポート設定が出てくるので適当に設定して出力
.vrmファイルができていたら無事成功

③VRM形式の3DモデルデータをUnityで読み込む
デフォルトではUnityはVRM形式に対応していないのでUniVRMをインストールする

https://github.com/vrm-c/UniVRM/releases
UniVRM-0.97.0_ac30.unitypackageを落としたら、そのまま展開

推奨verが2019だったのでUnity2021で動くかどうかドキドキしながら展開
無事展開するとwindowでcolor設定をガンマからリニアに変更する旨が出てくるので許可

これでVRM形式のファイルをインポートできるようになった
ために②で作ったVRMファイルをドラッグアンドドロップすると無事展開されたことが確認できる

VRoidサンプル3

 

④Animator設定を行う
キャラは動かせなければゲームには使えない
ただ検証のためにいちいち自前でアニメーションを用意するくらいなら便利アセットを使ったほうが時短になるので早速落とす

https://assetstore.unity.com/packages/essentials/starter-assets-third-person-character-controller-196526

今回はUnity Technologiesが用意しているStarter Assets-Third Person Character Controllerを使ってみる
このAssetにはPlaygroundというSceneでキャラを動かせるサンプルがある
操作方法は
A→左、S→後ろ、W→前、D→右
マウス→視点変更
のシンプルな構成
VRoidサンプル4
デフォルトはこんな感じ
この操っているキャラクターを先ほどインポートしたVRoid製モデルに変更する

VRoidサンプル5

prefabのアニメーターにStarterAssetsThirdPersonを設定すると今までのTポーズから普通の待機アニメーションが適応されていることがわかる
この時点で無事にアニメーションちゃんと設定できていることは確認とれてますがせっかくなので他のコンポーネントも設定してサンプルのように動かしてみる

☆設定するComponent

  • CharacterController
    • 当たり判定用コンポーネント適当に数値調整する
      • Step Offset must be less or equal to <scaled Height> + <scaled Radius> * 2
        • この時Step Offsetの値がHeight + Radius * 2よりも多いとエラーが出るので注意
  • ThirdPersonController
  • StarterAssetsInputs
  • BasicRigidBodyPush
  • PlayerInput

コンポーネントを設定したら次はPlayerFollowCameraのFollowに適当にFace位置でを設定する
ChinemachineVirtualCameraはあまり使ったことないのでちょっと色々調べたいですな

無題
そして無事に動き出す

色々長く書いたけど、自分でコードは一行も書いてないという奇跡
便利な世の中になったものだ

 

関連記事