見出し画像

#1【備忘録】UnityにVroidを取り込んでStarterAssetでとりあえず動かしてみる【無謀にも3D東方二次創作ゲーム作成】

今回は「Vroid」を「URP」環境のUnityに取り込んで、「StarterAsset」で動かすことにチャレンジします。
備忘録的な記事ですので、もっとまとまった内容の記事が読みたい方は、以下の記事をご覧ください。当然自分も参考にしています。


1.URPとは何か?

Universal Render Pipelineの事で、Unityの描画処理等をいい感じに軽くしてくれる機能らしいです。以下の記事によると、使わない理由があまりないようなので次からはこれで作ります。くろくまそふとさんの記事は神。

実装方法はUnityの新プロジェクトを立ち上げるときに2D(URP)または3D(URP)を選ぶだけです。HDRP(High Definition Render Pipeline)という上位機能もあるのですが、こちらは描画処理速度においてはUPRに劣るので、個人開発者レベルではUPRで問題ないでしょう。

2.Vroidとは何か?

VroidはPixivが提供している簡単に3Dキャラを作れて、ある程度自由に使えちゃう凄いシステムです。しかも無料。Pixivには色々言いたいことはありますが、素晴らしいシステムをありがとうと言いたいですね。

編集中のVroidのデータは.vroidで、書きだしたVroidについては.vrmという拡張子になります。.vrmはVroidStudioでは編集できませんので、注意してください。

上の記事のように,Vroidは確かに簡単に作れるのですが、上手く作れるかは別です。

試しに作ったVroid。趣味丸出し。

とりあえず今回はUnity上で動かして、テンションのあがるVroidが欲しい!

なので、買いました。お馴染み東方Projectの主人公・霊夢と魔理沙のVroidです。1体400円なり。

Vroidは自分で作るだけでなく、人が作ったものも買えるし、服のパーツなんかも売ってますね。
自分が買ったVroidの作者である、OSONO氏は、かなり多くの東方キャラのVroidを売っているので、今後キャラを増やしたくなった時のことを考えてOSONO氏のVroidにしました。やはり同じ作者だと雰囲気が統一されますしね。あと作者を明記すれば、商用利用可なこともOSONO氏に直接確認しています。

3.SterterAssetとは何か?

StarterAssetはUnityTechnologiesが提供している無料アセットで、3Dアクションが簡単に実装できます。一人称視点のFirst Person Character Controllerと、三人称視点のThird Person Character Controllerがあります。
今回はキャラクターが見えないと意味がないので、Third Person Character Controllerを導入します。

4.VroidをUnityに取り込もう!

Vroidが手に入ったので、Unity上に取り込んでみます。以下の動画と記事を参考にします。

Vroidを取り込むと、全身ピンクになりますが、これはVroidに標準搭載されているシェーダー「MToon」がURPに対応していないからです。

無料のトゥーンシェーダーlilToonを導入し、MaterialのShaderを「lilToonMulti」にします。
「lilToon」ではないので、注意してください。

Vroidの顔や髪の表示がおかしくなることがあります。
Vroidをインポートするときに、インポートされたMaterialがありますので、これのlilToonの設定をいじると直ると思います。

参考に、今回の霊夢と魔理沙の設定を変更した部分を書きます。
ただし、問題がないMaterialの設定を無闇にいじるとおかしくなります。設定を戻しても表示が戻らなくなる場合がありますので、ご注意ください。
まずは「N00_000_00_FaceBrow_00_FACE (Instance)」のMaterialの描画モードを「カットアウト」にすることを試すといいと思います。

  • 霊夢

    • N00_000_00_FaceBrow_00_FACE (Instance)

      • 描画モード→カットアウト

    • N00_000_Hair_00_HAIR_02 (Instance)

    • N00_001_01_Shoes_01_CLOTH (Instance)

      • CutMode(描画面)→Off(両面を描画)

  • 魔理沙

    • N00_000_00_FaceBrow_00_FACE (Instance)

      • 描画モード→カットアウト

    • N00_000_Hair_00_HAIR_01 (Instance)

    • N00_000_Hair_00_HAIR_02 (Instance)

    • N00_000_Hair_00_HAIR_04 (Instance)

    • N00_001_01_Shoes_01_CLOTH (Instance)

      • CutMode(描画面)→Off(両面を描画)

魔理沙については初期設定では後ろ髪が半分抜け落ちている状態だったので、かなり戸惑いましたが、髪の毛は描画面が裏表混在していたようです。両面描画するようにして、脱毛状態を脱出しました。

次はStarterAssetですが、
Asset/StarterAssets/ThirdPersonController/Scenes/Playground.unityを開きます。すると一面ピンクのシーンが画面が出てきます。

StarterAssetsのステージもURP対応のシェーダーにしないとピンクになってしまいます。
解消のために、プロジェクト内のThirdPersonControllerを選択した状態で、
ウィンドウ→レンダリング→レンダーパイプラインコンバーターを選び、「ConvertBuilt-in to 2D(URP)」から「Built-in to URP」を選択し、ウィンドウ中の4つのチェックボックス全てにチェックを入れて、InitalizeConvertersをクリックします。
対象となるマテリアルが表示されますので、チェックボックスにチェックを入れて、「ConvertAssets」をクリックすると、コンバートされます。
詳細は上の記事を参照してください。

次に、操作したいVroidのPrefabをヒエラルキー内のPlayerArmatureの子オブジェクトにし、PlayerArmatureにアタッチされているAnimatorのアバターをVrmAvatarにします。VrmAvatarはVroidの素体データ毎にあるので、複数のVroidを取り込んでいる場合は、操作したいVroidの物ではないVrmAvatarにしないよう注意してください。
次にPlayerArmatureのプレハブを解凍し、子オブジェクトのGeometryとSkeltonを削除します。
すると…

こいつ・・・動くぞ!

WASDか矢印キーで移動、SHIFTキーを押しながら移動でダッシュ、マウスの移動でカメラアングル変更、スペースキーでジャンプできます。
さらに、接続していればコントローラーで操作することも可能です!
自分はPCにPS4のコントローラーを接続していたので、左スティックで移動、L2を押しながらでダッシュ、右スティックでカメラアングル変更、×ボタンでジャンプができました!
これで本格的な東方二次創作ゲーム作者デビューです!

StarterAssetsについては、Unity公式の動画があり、これを見ておけば問題ないのですが、StarterAssetsをURP対応にする手順が、動画内と2021.2.2以降では違うので注意してください。

次回はVroidにもっと動きをつけようと思います!

<次の記事>

<その他・参考記事>

この記事が気に入ったらサポートをしてみませんか?