[unity]推しをゲームのヒロインにする
VRChat(VRC)等のモデルを最新URPに対応させ、ポーズをフィットさせる。
自分の作品に、気に入ったモデルを使いたいというのは、あたりまえのことです。
たとえば、Boothで販売されているモデルとか。それをアセットでも販売されているモデルとか。
しかしそれらはVRCのいささか古いUnity環境を前提としているため、最新のUnityで使おうとするとエラーが発生する場合があります。
今回は、それを修正し、URP非対応の子も、おそれずにゲームのヒロインに仕立ててみせましょうという動機のnoteです。
また、ついでに推しの子に銃をもたせたりとゲームのシステムに適応するため、情熱を注ぎこんでみましょう。
VRC(VRChat)対応のモデルを最新のUnity/URPプロジェクト(今回はUnity2022.2.14)に読み込むと、以下の不具合がある場合があります。それを解消します。
1) Burstのエラー。Burstのバージョンが古いことによる。
2) マテリアルのエラー。UTS2が最新のURPに対応していないことによる。
1. 対象アセットを読み込む
今回は、Sabao3179さんのアセット、Humanoid 3D Charactor_P08_Federicaをヒロインにしてみます。普通にPackage Managerから読み込みます。
2. Burstのエラーを解消する。
Consoleに「Library\PackageCache\com.unity.jobs~~」のエラーが出ているのは、VRCモデルにアタッチされているMagica Clothに使われる JobsのバージョンがUnityに対応していないからです。
エディタ右上の 「Experimental Package In Use」をクリックして Show Experimental Package を開くとPackage Manager が開きますので、Jobsのバージョンをあげます。
これでJobsに起因するエラーは解消されるはずです。
3. マテリアルのエラーを解消する。
マテリアルのエラーを解消するために、Unity Toon Shaderを使い、Unityのバージョンにあったマテリアルにコンバートします。
1) Unity Toon Shaderを導入します。
(1) Package Manager ウィンドウを開きます。
(2) + ボタンをクリックし、 Add package from git URL を選択します。
(3) com.unity.toonshader と入力し、Add ボタンをクリックします。
(コピペ推奨です)
2) UTS2を削除します。
フレデリカモデルの場合、Assets > P08_Federica_v1.1 > Toon フォルダを削除します。
3) トゥーンシェーダーのマテリアルを Unity Toon Shader materials に変換します。
(1) メニューからコンバータを起動します。
Window -> Rendering -> Unity Toon Shader Converter
(2) Scan the project をクリックするとマテリアルの一覧が表示され、Convert Material ボタンが有効になるので、それを押してコンバートを実行します。
4. 銃のアセットを読み込む
エラー修正が終わったので、銃を持たせてみます。
今回は、Ishikawa1116さんのアセット、ローポリゴン調 銃パッケージのなかのFN P90っぽいサブマシンガンをヒロインに持たせてみます。
1) 普通にPackage Managerから読み込みます。
2) マテリアルのエラーを解消します。
このアセットはBuilt-inマテリアルしかないため、URPのプロジェクトではエラーになっています。
マテリアルをみてみます。場所は Assets > Ishikawa1116 > LOW-POLY GUNS PACK > Materials です。
(1) マテリアルをSHIFTやCTRLキーを推しながらクリックしすべて選びます。
(2) Edit > Rendering > Materials > Convert Selected Built-un Materials to URPを実行します。
※レティクルは変換失敗しますが、今回はこのまま進めます。
3) P90っぽいサブマシンガンをフレデリカにアタッチします。
(1) フレデリカ本体をシーンに設置します。衣装・カラーバリエーションの Prefab のなかから好きなものを選び、Hierarchyに移しておきます。
(2) Assets > Ishikawa1116 > LOW-POLY GUNS PACK > Prefab > Submachinegun から、Submachinegun_01を選びます。
(3) hand_R にドラッグ&ドラッグしてアタッチします。
(4) Submachinegun_01のtransformを変更し、およその向きと位置をあわせます。
5. アニメーションクリップの修正
アニメーションさせながら銃の位置を修正します。
1) フレデリカモデルにアニメーションを適用します。
フレデリカのInspectorから、Animator の Controller に、フレデリカのアセットに含まれるテスト用のモーション「MoveTest」をアタッチします。
2) VeryAnimationをインポートし、設定します。
普通にPackage Managerから読み込みます。
日本人のかたが作者らしく、日本語のマニュアルも充実しています。詳細はマニュアルも併せて確認します。
(1) Wundow > Very Animation > Main でVeryAnimation のメイン画面を開きます。
(2) Herarchyよりフレデリカを選び、Open Animation Windowを選ぶと、走行アニメーションのアニメーションウィンドウが開きます。
(3) Edit AnimationをクリックしてVA ControllとVA Editorを開きます。
(4) 右手のIKをクリックします。
(5) IKにより選択されたアンカーポイントをドラッグで選び、DELキーを押して削除します。これで右手を振るアニメーションが消えます。
(6) 同様に左手のIKも選び、アンカーポイントを消します。
(7) 手を振るアニメーションを消したところで、0フレーム目にて銃を構えるポーズを編集します。
IKで銃の大まかな位置を決め、IKを解除して手首や腕を回転して調整する、またIKで位置を調整……ということになると思います。
3) ポーズ・アニメーションの上半身だけを他のポーズに適用する
(1) VA Editorでこのポーズをテンプレートにセーブします。
名前をつけてセーブになります。
(2) ポーズのロードを選択した部位だけに適用するには、VA EditorのSelectionモードでロードするとよいようです。
今回は以上となります。
モーション調整は沼ですね。3Dゲームを作るのは、ほんとうに大変ですね。
有料アセットに頼りまくって、ようやくできるかというところではないでしょうか。
個人的にも、ようやくほしかったモーションが揃ってきてようやくゲームのアウトプットができる目処がたちました。それでも、まだまだ時間がかかるとは思いますが。
ではまた。ゲーム制作者魂がともにあらんことを。(k1t)
EX) 関係ありそうな記事
この記事が気に入ったらサポートをしてみませんか?