バーチャル3Dクリエイター神部まゆみです(*^-^*)
この記事では、以前BOOTHにアップした赤面オブジェクトの詳しい説明や導入手順を書いておきます。
出来るだけ迷わずに使えるように、詳しく書いておきます。
Unity用赤面オブジェクト 顔内部に仕込んでシェイプキーで表面に出せる|BOOTHまゆみマート
動作確認済みunityバージョン ※2023/03/08更新
複雑な機能を使っているわけではないので、よほど抜本的なアップデートがなければ問題ないと思いますが、一応。
随時更新していきます。
■2023/03/08
・blender 3.3LTSで動作確認済み
■2022/09/16
・unityでX軸回転が-89.98になってしまう不具合を修正
・obj、daeファイルは使わなさそうなので削除しました。
・blender 2.93(LTS)で動作確認。
・GIMP 2.10.32で動作確認
・uniVRM v0.99.4のMToonシェーダーで動作確認済み
最新版のファイル名は 「Sekimen-2022-09-16.zip」 です。以前のバージョンも引き続きダウンロードできるようにしてあります。
■2021/10/12
・unity2019.4.31f1(LTS)で動作確認済み。
■2021/08/05
・unity2019.4.29.f1(LTS)で動作確認済み。
・VRChat(SDK3.0)で動作確認済み。
■2021/06/25更新
・unity2020.3.12.f1(LTS)で動作確認済み。
・unity2019.4.28.f1(LTS)で動作確認済み。
■2021/03/15更新
・unity2020.3.0f1(LTS)、unity2019.4.22f1(LTS)、unity2018.4.20f1(LTS)で動作確認済み。
・VRChat SDK2.0で、VRChatでの動作確認済み。
■2021/02/12更新
・unity2019.4.18f1(LTS)、unity2019.4.19f1(LTS)で動作確認済み。
■2020/11/19更新
・unity 2020.1.1f1、2019.4.13f1で動作確認済み。
機能:モデル内部に仕込んで、前に出して赤面させることができる
前後左右上下に移動させるシェイプキーを設定してあるので、モデル内部に配置しておけば、前に出して赤面させることができます。
大きくしたり小さくしたりするシェイプキーなども付いているので、ある程度位置さえ決めておけば、transformをいじらなくても良い感じに表示させることができます。
シェイプキーの説明
Front 前に移動します
Back 後ろに移動します
Up 上に移動します
Down 下に移動します
Right (オブジェクトから見て)右に移動します
Left (オブジェクトから見て)左に移動します
Big 大きくなります
Small 小さくなります
Small2 横幅が小さくなります
R-Rotate 右に回転します
L-Rotate 左に回転します
Up-Rotate 上に回転します
Down-Rotate 下に回転します
GIFで動かしてみたのがこちら。
位置を調整しておけばFrontだけでちゃんと赤面させられると思います。
smallやRotateと書いてあるシェイプキーは、左右両頬に別々に配置したい時に便利かなと思って作りました。
単に赤面させたいだけなら、位置を調節してモデルの顔内部に仕込み、Frontシェイプキーで前に出すだけで十分です。
ファイルの中身
metaデータ付のファイルと、unitypackageを入れてあります。
fbx、blendファイルがあり、テクスチャファイルのgimpデータも入れてあります。
blendファイルはblender2.93で作成しました。
シェイプキーも設定されているので、参考にしながら改変して使っていただいて構いません。
規約 再配布・再販売以外自由
無料版、有料版ともに規約は同じで、個人でも法人でも変わりません。
再配布・再販売さえしなければ改変もOKで、商用利用にも自由に使えます。
暴力表現・性的表現なども特に制限しないので、自己責任で勝手に使ってください。
クレジット表記不要ですが、表記したいなら適当に表記していただいて構いません。
使い方:unityのアセットフォルダに入れて、頬の位置に配置するだけ。Headボーンの子にしておけば追従して動いてくれます
Frontシェイプキーを使って前に出せば赤面させられる位置に配置しておくといいでしょう。
いい感じの使い方:大きい赤面1枚、左右二枚の計三枚仕込んでおく
通常の赤面オブジェクトは、平面のオブジェクトに赤面テクスチャを貼って透過させ、顔の前に出すだけのものが多いです。
これだけだと正面から見た時はいいのですが、横から見た時に何も見えず、ちょっと違和感があります。
これを解決するには、大きい赤面一枚と、左右二枚の計三枚仕込むことで、正面から見ても横から見ても上から見ても、比較的違和感なく赤面させることができます。
左右二枚だけでもいいですが、鼻の上を赤面させられないので、赤面レベルがちょっと低めです。
ただ、三枚別々にシェイプキーを動かす必要があり、面倒ならば一枚だけでも大丈夫です。その場合は、横から見た場合は仕方ないので諦めましょう。
こちらの記事で詳しく書きましたので、参考にしてください。

詳しい導入方法
一応書いておきます。
unity2019.4.13f1で説明しますが、大抵はどのバージョンでも同じ手順で動くはずです(unity2019.4.31f1で動作確認済み)。
手順1:ダウンロードしたzipファイルを解凍し、unitypackageをunityにインポートする
ダウンロードしたzipファイルを右クリック → すべて展開 で解凍して、
解凍してできたフォルダ内にあるunitypackage「SekimenUP」ファイルを、unityのアセットフォルダ内にドラッグ&ドロップしてインポートします。
或いは、SekimenフォルダをAssetフォルダにドラッグ&ドロップすることでもインポートできます。
Sekimenフォルダにもmetaデータを入れてあるので、マテリアル設定を引き継いで使えると思います。
手順2:unityシーンに配置して、位置を調整する
シーンにドラッグアンドドロップして位置を調整してもいいですが、ヒエラルキメニューでモデルのHeadボーンにドラッグアンドドロップしたほうが楽で早くて確実です。
結局Headボーンなどの子にしないと、モデルが動いた時に追従してくれませんので…。
ボーン構造などはモデルによって違うと思いますが、参考までに2022/09/18現在、VRoidStudio v1.13.0 でエクスポートした私の例でいうと(モデル名Mayumi)、
Mayumi/Root/J_Bip_C_Hips/J_Bip_C_Spine/J_Bip_C_Chest/J_Bip_C_UpperChest/J_Bip_C_Neck/J_Bip_C_Head
です。
無事シーンにオブジェクトを読み込めたら、unityの移動ツール(ショートカットWキー)やTransformの数値をいじって、位置を調整してください。
ブレンドシェイプのFrontで前に出せば、そのまま目の下あたりの表示させられる位置が良いです。
手順3:マテリアルを作成し、テクスチャを適用して透過させる ※マテリアルが正常にインポートできなかった場合のみ
MToonシェーダー導入済みで、正常にインポートできていれば最初から透過されているはずです。
しかし、もし透過されていない場合は、新たにマテリアルを新規作成し、テクスチャを適用して透過設定する必要があります。
unityアセットフォルダ内で右クリック → 作成 → マテリアル で新規マテリアルを作成できます(日本語化している場合)。
適当なマテリアル名を付け、MTOONのTransparentシェーダーを適用し、Sekimen2テクスチャをドラッグ&ドロップしてテクスチャを適用し、作成したマテリアルをオブジェクトに適用してください(ヒエラルキーにあるSekimenオブジェクトにドラッグ&ドロップ)。
MTOONのtransparentシェーダーを推奨します。
pngを透過させられるtransparent系のシェーダーならばどれでも使えるとは思いますが、テストしてません。
VRMファイルをunityで読み込んだことがある人であれば、既にMTOONシェーダーは導入できているはずですが、導入できていない人はuniVRMをインポートしてMTOONを使えるようにしてください。
おわりに
赤面オブジェクトを仕込んでおけば、感情表現に便利です。
直接テクスチャに赤面を書き込む手もありますが、切り替えることができないのでちょっと不便ですからね。
使いたい人は使ってみてください。
