VReducerを使ってVRoid アバターをclusterの制限に対応させる(ついでに表情も編集する)


バーチャルイベントプラットフォーム、またはソーシャルSNSのcluster( https://cluster.mu/ )にアバターを持ち込むためのTips。

clusterのアバター制限とVRoid

clusterはVRM形式のカスタムアバターに対応しているが、イベントなどの大人数を一度に表示する利用用途を想定し、ある程度の容量に収まるよう制限がかけられている。

カスタムアバターの制限 – ヘルプセンター | cluster(クラスター)

また、アバター制作の手軽な手段としては pixiv社製のアバターモデリングソフトVRoid があるが、ある程度リッチにしていくとこのアバター制限に引っかかってしまう。


制限に引っかかったときの例(アバター管理画面)

これを回避するには、まともにやるとここから UnityやBlenderを持ち出して、地道に指定の制限に収まるように修正が必要となる。しかし、3Dモデリングの知識がなければこれは難しい。

そこで、VReducerを利用する。

VReducer とは

kanno2inf/VReducer: VRoidモデルをClusterアバター用に軽量化するスクリプト

VReducerは python 製のスクリプトで、まさに VRoid to cluster のために作られた。
このスクリプトを通すことでモデルのMaterial等をいい感じに結合してくれ、clusterの制限に通るくらいにしてくれるもの。元のモデルの作りによっては収まりきらない場合もあるので、VRoid側でも対応が必要なケースもある。

VReducer を使う

pythonインストール

python環境が必要なので、まずはその準備をします。
利用するのは python3系 なので注意。OSによって違うので、自分の環境に合わせて用意する。
Windowsは少しハードル高いかもしれない。。

使い方

pythonを入れたあとは、ほぼVReducerのGithubにあるREADME通りで引っかかるところはないはずなので、順番にやっていこう。

まずは以下の章にあるとおり、準備としてPillow のインストールを済ませておく。
https://github.com/usagi/VReducer#%E6%BA%96%E5%82%99

準備が出来たら、Terminalから下記のようにコマンドをたたくだけで、あとは自動で処理が走り、指定したファイルと同じ階層にresult ディレクトリができて変換後のファイルが格納される。

python vreducer.py VRoid.vrm

いくつかオプションを渡せるが、特殊なものとしては下記がある。

2018/02/06時点でClusterの一部会場でモデルが暗くなる問題が出ているため、-eオプション付けることを推奨します。

この問題については cluster 側で対応されている状態で、現状指摘されている問題は発生していない(はず)。そのため現状では特に利用せずとも問題ない。

VRoid アバターの表情を編集する

さて、うまくいけばこれだけでVRoidモデルを cluster に持ち込めるけれども、少し引っかかるのが表情の問題。
VRMアバターはモデルの中に表情のパラメータを持っていて、扱うサービスによってこれを呼び出すことができる。
clusterではちょっと面白い方法を採用しており、アバターの両手の位置によって表情を出しわけることができる。

カスタムアバターの表情切替 – ヘルプセンター | cluster(クラスター)

「両手または片手を、顔より上に挙げる」→「JOY」で設定している表情になります
「両手または片手を、体より後ろに運ぶ」→「ANGRY」で設定している表情になります
「両手を、顔に近づける」→「SORROW」で設定している表情になります
「上記以外の動作中」→「NEUTRAL」で設定している表情になります

こちらの画像では「両手を、顔に近づける」という動作(の、はずだがこれも両手または片手を、なのかな?)に設定されている、「SORROW」の表情がでている。

?と思う方もいるとおり、表情が全然「SORROW(悲しみ)」じゃないと思う。
これはデフォルトで「SORROW」に設定されているパラメータを編集し、好きな表情を当てはめているものだ。

ちなみに「SORROW」の初期設定はこのような顔。基本の表情設定のままだと、アバターの印象にもあっていない場合が多く、またそもそも悲しい顔をさせたいケースが必ずしも多いわけではないため使いづらい。
その他の「ANGRY」なども同様で、VRで手を動かすと突然怒り顔が出てしまって困る、、というケースもある。
そのため、嬉しそうな顔や上記のようにウインクなどを代わりにいれている。

表情のパラメータを調整するには、vrm-c/UniVRMという、UnityでVRMを扱うプラグインを導入し、UnityにVRMファイルを読み込ませる。もちろんVReducerにかけた後のデータで問題ない。(Unity上で色々モデルを編集することもできる。意外と簡単にできることも多い)

手順は公式ヘルプの下記のドキュメントそのままでOK。
カスタムアバターの表情切替 – ヘルプセンター | cluster(クラスター)

まとめと、Cluster Wiki

  • VReducer の最新状況と、使い方
  • VRMアバターの表情を cluster 向けに修正

以上、細かい使い方の部分は丁寧なドキュメントがたくさんあるので、この記事からは概要と必要なポイントにとどめた。

Cluster Wiki

また、clusterにおけるアバター情報については、下記 Cluster Wiki に、アバター制作部 - Cluster Wiki というタグがあり、こちらにもいろいろまとまっている。

実際にアバターを運用してみて、「ここ、こうなったらいいのにな」という点が出たら探してみてほしい。