VRoidの服を脱がす!blenderでbodyと服を分離させ、unityスクリプトでオンオフ着脱したメモ

vroid unity 服を脱がす3Dモデリング

バーチャル3Dクリエイター神部まゆみです(*^-^*)

 

この記事では、VRoidのBodyメッシュと服をblenderで分離させて裸にしてみたよ。

ついでにunityに持って行ってスクリプトで服を脱がせてみました(笑)。

 

2023/05/20現在、blender2.93LTS、blender3.3LTS、とVRoid Studio v1.22.1でもこの記事のやり方でできました。

2.93 LTS — blender.org
Blender 2.93 LTS marks the end of a series 20+ years in the making.
Blender 3.3 LTS — blender.org
The first long-term support release of the 3.x series. Supported until September 2024.
VRoid Studio
3D創作を誰でも楽しめる世界へ。VRoid Studioは3Dキャラクター制作ソフトウェアです。はじめての人にはかんたんに、慣れた人はよりこだわって、3Dキャラクターを作ることができることができます。
■PR■

現在、ファンタジーゲーム制作に使える人気unityアセットが50%オフで買える unityファンタスティックファンタジーセールをやってるみたいです。

unityファンタスティックファンタジーセール 50%オフ

欲しいアセットはこの機会に買っておくと良いかも。

 
 

 

 

なぜこんなことをするのか?(´;ω;`)

VRoid Studioでエクスポートすると、Bodyメッシュに体と服がくっついているから。

体と服を別オブジェクトに分離しておくと、unityのインスペクターオンオフで簡単に服が着脱できて便利。

「いざ!」って時にただちに服を脱ぐことができて捗る(笑)。

服を細かく分離しておけば、上半身だけ脱がすとか特定の部分だけ脱がすとかできて便利。

2023/05/08追記:単に裸にしたいだけならVRoidStudioで服とインナーを非表示にすればできます

「VRoidを裸にする方法」みたいなキーワードでたまにアクセスがあるからここに追記しておくけど、単に裸にしたいだけならVRoidStudioで服とインナーを非表示にすればできます。

服プリセットの一番上にある何もないやつを選べばOK。

インナーはカスタムアイテムに何もないやつがあったからそれ選んだら裸にできたけど、これ最初からあったかは忘れた(~_~;)

インナーが消せない場合は、右にある「テクスチャを編集」でインナー部分を消しゴムで消せばいけると思う。

vroidを裸にする方法

ブラシを大きくしてささっと消して、左上にある×を押して保存すればOK。

vroidを裸にする方法

以上追記終わり。

 

VRoidの服を分離する方法

私の服はVRoid Studioのワンピースプリセットをベースにやってるので、それでやります。

BOOTHで売ってるけどこれね↓(;^_^A

【クレジット不要・商用利用OK】セクシーメイド服風VRoidテクスチャ GIMP作業データ付 - まゆみマート - BOOTH
VRoidStudioの長袖ワンピースで使えるセクシーメイド服風テクスチャです。男女兼用。 スケベな動画用に使おうと思い作成したので、下乳が出ておりセクシーです。うっすらと乳輪部分が出るか出ないかくらいで、ギリギリ健全だと思います(多分)。 一応丈が短い版と通常版のPNGデータを入れてあります(通常版でも十分短いのです...

全ての服プリセットで試したわけじゃないけど、VRoid Studio正式版で追加された服でも普通にできたから多分どれでも大丈夫だと思う。

1,VRoid Studioでエクスポートする

使用したVRoid Studioのバージョンはv1.6.0です。(2023/04/19追記: v1.22.0でもできました)

右上の  L↑」  みたいなアイコンをクリックしてVRMエクスポートを選び、モデル情報を入力したら保存すればOK。

vroid studio export

それにしてもVRoid Studioは使うたびになんかこう、胸がキュンキュンしてきますね( *´艸`)

でもなんか反動でちょっと疲れる気がする(笑)。

軽くしたいならポリゴンを削減しておく

webglとかで使う場合は、ポリゴン数はできるだけ削減して軽くしておいたほうがいいかも?

やりすぎるとカクカクになっちゃうから適度に(;^_^A

vroid export ポリゴンの削減

「髪の断面形状を変更する」にチェックすると髪がローポリになるっぽい?ポリゴン数が6000も減ったので軽くしたいなら使った方がいいかも。

 

これVRoid Studio正式版になってから「透明メッシュを削除」が効かなくなった?バグ?と思ったら、削除度のパラメーターが0の部位は透明でも削除してくれないっぽい?

私の服みたいに透明部分がある衣装でも、衣装の削除度0だとblenderに読み込んでも透明部分は削除されてなかった。

削除しすぎない程度に指定しておいたほうがいいかも。

2,blenderにVRMファイルを読み込む

VRM_addon_for_blenderっていうやつを使うとインポートできます。

導入の仕方は↓こちらに詳しく書いてあるので割愛。

GitHub - saturday06/VRM_Addon_for_Blender: VRM Importer, Exporter and Utilities for Blender 2.83 or later
VRM Importer, Exporter and Utilities for Blender 2.83 or later - GitHub - saturday06/VRM_Addon_for_Blender: VRM Importer, Exporter and Utilities for Blender 2.8...

これすごい便利だから寄付とかお返ししたいけど、受け付けてるのかな?チームで管理してる感じっぽいから難しいか?(;^_^A

 

blenderを起動して、VRMファイルをインポートします。

vroid blender import

armatureは一時的に非表示にしといたほうがやりやすいかも

邪魔になっちゃうから一時的に非表示にしといたほうがいいかも。

vroid blender import

エクスポート時に戻しておかないとダメですが(;^_^A

3,bodyを選択して編集モードに、Pキー → 「構造的に分離したパーツで」 を選ぶ

これで構造的に分離してるパーツを、blenderが勝手に推測して分離してくれます。便利すぎる…。

blender 構造的に分離したパーツで Pキー

たくさん分離されてますね。

blender 構造的に分離したパーツで Pキー

4,かなり細かく分離されるので、部位ごとにShift選択して結合(Ctrl+J)していく

数えたらbody.070まで分割されてました(;^_^A

bodyも入れると71個?

blender 構造的に分離したパーツで Pキー

いくつに分割されるかは、モデルの服やエクスポート時の削除数とかでも変わってくると思う。

ちなみに使ってる私の服はこれね↓(;^_^A

【クレジット不要・商用利用OK】セクシーメイド服風VRoidテクスチャ GIMP作業データ付 - まゆみマート - BOOTH
VRoidStudioの長袖ワンピースで使えるセクシーメイド服風テクスチャです。男女兼用。 スケベな動画用に使おうと思い作成したので、下乳が出ておりセクシーです。うっすらと乳輪部分が出るか出ないかくらいで、ギリギリ健全だと思います(多分)。 一応丈が短い版と通常版のPNGデータを入れてあります(通常版でも十分短いのです...

 

流石にこんなにたくさんあったら管理しきれないので、部位ごとに一塊になるように結合していきます。

Shift押しながら複数選択して、Ctrl+Jでチマチマ結合していきます。

注意点1:シーンコレクションのshift選択で上手くいかない場合、シーン画面で直接クリックして選択する

シーンコレクションでShiftキーを押して選択すると、「ここからここまで」の範囲選択になってしまうので、別の部位のメッシュまで選択されてしまうことも。

シーン画面でShiftキー押しながら直接メッシュをクリックしても選択できるので、離れた番号のメッシュはこの方法でやったほうがいいと思う。

blender ctrl+J

注意点2:指や爪部分は小さくて見落としがちなので注意

爪あたりは小さいので見落としがち。

blender 構造的に分離したパーツで Pキー

でも結局は服部分と体部分に分離できればいいので、体部分と結合させちゃえばいいと思う。

分かりやすいように名前を変えておく

ついでに分かりやすいようにリネームしといたほうがいいかも。

シーンコレクションでメッシュをダブルクリックすれば名前を変更できます。

blender rename

5,動作チェック。非表示にすると脱がせる!すごい!( *´艸`)

まぁ大体できたかな。

blender 構造的に分離したパーツで Pキー

 

マテリアルビューにして見てみよう。

非表示にすると服を脱がせるゾ!( *´艸`)

blender vroid 服を脱がす

うーむ素晴らしい。

指先一つでバーチャル女子の服を脱がせる力を手に入れてしまった…(笑)。

6,VRMエクスポートする

最初にアーマチュアを非表示にしたけど、エクスポートする時は戻すのを忘れずに。

一応blendファイルも保存しとくと後でいじれて良いと思います。

最初謎のエラーが出たけど、いじってたら普通にエクスポートできたΣ(゚Д゚)

スクショ撮る前にいじってたら何故か解決してしまった…ので原因は不明(~_~;)

検索したら出なかったけどこんなエラー。同じ人がいるかもしれないから一応貼っておく。

Python: Traceback (most recent call last): File “C:\Users\MK-Mayumi\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\VRM_Addon_for_Blender-release\io_scene_vrm\exporter\__init__.py”, line 60, in execute vrm_bin = glb_obj.convert_bpy2glb(“0.0”) File “C:\Users\MK-Mayumi\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\VRM_Addon_for_Blender-release\io_scene_vrm\exporter\glb_obj.py”, line 96, in convert_bpy2glb self.mesh_to_bin_and_dic() File “C:\Users\MK-Mayumi\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\VRM_Addon_for_Blender-release\io_scene_vrm\exporter\glb_obj.py”, line 1342, in mesh_to_bin_and_dic bpy.ops.object.mode_set(mode=”OBJECT”) File “C:\Program Files\Blender Foundation\Blender 2.93\2.93\scripts\modules\bpy\ops.py”, line 132, in __call__ ret = _op_call(self.idname_py(), None, kw) RuntimeError: Operator bpy.ops.object.mode_set.poll() failed, context is incorrect location: <unknown location>:-1

検索バーにコピペしたプレーンテキストが残っていたのを貼っただけなので、どこで改行されてたかは忘れた(~_~;)

まぁエクスポートできたから良いかな。

unityで動作チェックをする

インスペクターオンオフで切り替えできる!

vroid 脱がす

これはいいぞ( *´艸`)

せっかくだからキー入力で切り替えてみる

なんて恐ろしい能力だ…(;゚д゚)ゴクリ

vroid unity 服を脱がす

これもっと細かく分離させておけば、ダメージ受けたら少しずつ服が剥げていくみたいにできるかもしれない(笑)。

上手く下着のオブジェクトを付けられれば、このすばのカズマさんがやってたスティールで下着盗むやつもできるかもw

バーチャル女子の服を脱がせる!すごいC#スクリプト( *´艸`)

単にインスペクターオンオフを切り替えるだけですw

特にすごくはないw

↓をコピペしたら動いたから多分大丈夫なはず。

 

HideObject.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class HideObject : MonoBehaviour {

    public GameObject Hide;

    private bool Flag;

    void start()
    {
        Flag = false;
    }

    void Update ()
    {
        if(Flag == false)
        {
            //Cが押されたら消して出現
            if(Input.GetKeyDown(KeyCode.C))
            {
                //Hideを非アクティブに
                Hide.SetActive(false);

                //フラグをtrueに
                Flag = true;
            }
        }
        else
        {
            //Cが押されたら戻す
            if(Input.GetKeyDown(KeyCode.C))
            {
                //Hideをアクティブに
                Hide.SetActive(true);

                //フラグをfalseに
                Flag = false;
            }
        }
    }
}

適当なオブジェクトにスクリプトをアタッチして、消したいオブジェクトを指定して実行中にCキーを押せばOK。

今回はモデルの服を消すわけだから、モデルにアタッチしとくのが無難かな。

unity スクリプト アタッチ

おわりに

簡単に体と服を分離させて別オブジェクトにできました。

blenderのオブジェクト分割能力が優秀すぎますね。

紳士向けに使うなら便利かもしれません( *´艸`)

 

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