
スカートが貫通?!AITuber必見! Magica Clothでスカートの貫通を防ぐ方法とは?
今回のラボインターンレポートはVTuber好き院生の田中Mがお送りします。
好きなVTuberグループはメイフです(すみません)。
たかがスカート、されどスカート。
今回の記事では女子エンジニアの視点で、アバターのスカートの扱いについてちょっとしたテクニックをまとめたいと思います。
たかがスカート、されどスカート。メタバースやAITuberの身だしなみを整える基本技術として、最新のデモでも活用されているので参考にしていただければ幸いです。
AITuberを作ってみた
AITuberとは「AI」と「VTuber(バーチャルYoutuber)」を組み合わせた造語で、AI技術を用いて作られたキャラクターにVTuberとしての活動を行わせる技術です(定義はいろいろあると思います)。
もともと個人的な探求で、「ChatGPTとUnityでAITuberを作る」というチャレンジを行っていて、VTechChallenge2023でも発表させていただきました。
現在ラボで実験している、ショートフィルムシリーズ「MetaChatNews」もAITuberによるキャラクターが楽しい会話を繰り広げています。
ラボのAITuberはステートマシンによる感情とモーションを有しており、カメラも自動で動作するのですが、このAITuberを活動させるにあたって一つ問題となったのが「スカートの貫通」です。AITuberの見た目を表現する際には、主に2Dのイラストを動かすLive2Dなどを使う方法と、VRMなどの3Dのアバターを動かす方法があります。3Dで作るとポーズやカメラの幅が広がって華やかになる一方で、3Dならではの問題も発生します。
それがスカート貫通問題。

AITuberは賢いので身だしなみも自分で整えてくれそうなものですが、実際のところ見た目を整える作業は人間の手で行わないといけません。
「女子ならではの立ち居振る舞い」を、まるで我が子のようにしつけていく作業が発生します。
MagicaCloth2でスカートを整える
MagicaClothとは、MagicaSoftさんによるUnity上で動作する高速なクロスシミュレーション(揺れものアセット)です。こちらを使用することで、スカートの貫通を防ぐことができます。
Unity Asset Store: Magica Cloth | 物理エンジン | Unity Asset Store
公式ドキュメント: Magica Cloth – Magica Soft
MagicaClothについてはラボの過去ブログ「メタバースをやりたい学生さんにおくるインターン退社ブログ」の「スカートがひどいことになる問題」(2022)で、先輩インターンの武政実玖さんの記事でも紹介されています。
REALITYのアプリやその他のサービスではそれぞれスカートなどの揺れもの対策をされていると思います。
GREE VR Studio LabはR&Dなので、揺れもの対策の開発コストを持つことが適切ではないので、ここはアセットで解決…ということなのですが、実は2023年になって、MagicaClothの後継バージョンである「MagicaCloth2」がリリースされています。
本ブログではMagicaCloth2で用いられている貫通対策の仕組みについて、さっと読んで理解できるように概要を説明しようと思います。
AITuberの躾の現場を知っていただければ幸いです。
MagicaCloth2で用いられている貫通対策の手法
クロスシミュレーション手法
MagicaClothでは以下の2つの手法が用意されています
・BoneCloth:Transformを操作することで揺れを表現する。負荷が低い。ボーンが組み込まれたメッシュを揺らすのに最適
・MeshCloth:メッシュの頂点を操作することで揺れを表現する。BoneClothよりもよりリアルな揺れを表現可能。負荷が高い。メッシュにボーンが含まれていなくても利用可能。
MetaChatNewsの作成においては、揺れの質が良いMeshClothを使用しました。MeshClothで元のメッシュをそのままシミュレーションに使用すると頂点数が多く負荷が高くなってしまうため、MagicaClothには元々の表示用のメッシュ(レンダーメッシュ)を簡略化したクロスシミュレーション用のメッシュ(プロキシメッシュ)を用意する機能が備わっています。

プロキシメッシュ(右):シミュレーション用にポリゴン数を削減した代理メッシュ
また、 MagicaCloth2では2つのスライドバーを操作することで簡単に頂点を結合できるようになっています。
頂点ペイント
プロキシメッシュができたら、各頂点の振る舞いを決定するために頂点ペイントを行う必要があります。
MagicaClothにおける頂点ペイントでは、各頂点を3つの属性に分けます。

固定属性(赤):移動しない頂点(揺れてほしい部分を繋ぎとめる、腰まわりの部分)
無効属性(白):シミュレーションから除外する頂点(スカートとは関係ない脚)
MagicaCloth2で頂点ペイントを行う際は、頂点の表示サイズを変えながら作業することができます。ペイントに穴がないかどうかを確認したい場合は表示サイズを大きくすると見やすいと感じました。

プロキシメッシュの頂点ペイントが完了し、動きを制御するパラメータを設定するとスカートが重力に従ってなめらかに動くようになります。

衝突判定
MagicaCloth2では以下4つの手法が用意されています
・コライダー衝突判定
・バックストップ
・セルフコリジョン
・相互衝突
今回はコライダーを用いて突き抜け防止を行いました。
球やカプセルのような形状のコライダーを配置し、コライダーに頂点が侵入しないようにプロキシメッシュの押し出しを行うことで貫通を防止します。

コライダーの配置が完了してからシーンを再生すると、スカートの貫通を防ぐことができました。

まとめ
今回はAITuberの身だしなみを整える「スカートの貫通対策」についてお伝えしました。
スカートに脚が貫通するという場面は現実ではなかなか見られないと思いますが、2種類のスカートで形を整えるという点では現実のパニエやペチコートを履くのとイメージが近いのではないかと思いました。
実際にセットアップをしている際には、頂点ペイントを直す作業でスカートをひたすら眺めて細かくチェックしていく必要があったため若干複雑な気持ちになりましたが、最終的にはスカートが綺麗に動くようになり、安心して送り出すことができました。
AITuberの活動者はこれからさらに増えていくと思います。もしAITuberのスカートが綺麗に動いているのを見たら、その裏側の開発者(保護者)の思いやりを感じ取っていただければと思います。
スカート対策を施した「MetaChatNews」はこちら!