Aizu-Progressive xr Lab blog

会津大学のVR部であるA-PxLの部員が持ち回りで投稿していくブログです。部員がそれぞれVRに関する出来事やVRにちなんだことについて学んだことを書いていきます。

連絡はサークルTwitterのDMへお願いします。
「面白法人カヤックVR分室」としても活動しています。詳細はこちら

アバターが欲しい!その3

続きです。

UnityでVRMファイルを作るのですが、そのためにはVRMを作るAssetを入れる必要があります。Clusterのサイトからダウンロードページに飛べます。しかしそのAssetをそのままUnityに入れてはいけません。Unity側の環境を設定してからでないとUnityが正しく動作しなくなるからです(1敗)。設定方法は各サイトで紹介されています。VRMを作るAssetを正しく入れることができたら前回出力したfbxファイルを入れます。次にモデルを選択してinspector内の  Model から Import Cameras と Import Lights のチェックを外し、Applyを押して確定する。次に Rig から Animation Type を変更します。おそらく最初は Generic になっていると思うので Humanoid に変更します。これも Apply を押して確定します。そして近くに Configure… とかいてあるところがあるので押します。その後セーブを要求されたのでとりあえずセーブしました。するとこんな画面が。f:id:aizu-vr:20180910174617p:plain これはUnity側に自分のモデルの特定のボーンや関節を認識させる画面です。これを行えばとくにアニメーションを作らなくてもVRMが使えるソフト内で動くことができます。ボーンの認識が正しく行われる条件は2つあります。

 1.最低限必要なボーンが認識されているか。(点線で囲まれた丸のところはボーンが認識されてなくても実行できる。(たぶん))

 2.モデルがTの字のポーズをとっているか。

この2つの条件を満たしていればボーンの認識は完了しますが、画像では条件を2つとも満たせてないようです。まず左手のボーンがうまく認識されていなかったようです。f:id:aizu-vr:20180910180930p:plain ここであることに気づきました。ボーンには一つ一つ名前を付けることができ、そうすることでボーンを正しい場所に再認識させることができるのですが、僕はうっかりボーンに名前を付けるのを忘れていました。一応どのボーンがどの場所に認識されているかは表示してくれていますが名前がないと正しいボーンを探すのにも一苦労なので、結局Blenderに戻りボーンに名前を付けてから再エクスポートしました。

ボーンに名前を付けてわかったのはボーンの自動認識は結構クセがあることです。背中のボーンが首のボーンとして認識されていたり親指が中指として認識されていたりと正しく再認識させるのには結構時間を取られました。(たぶん僕がボーン作るのが下手なだけだと思うんですけど)

次に2つ目の条件 モデルがTの字のポーズをとっているか です。画像ではちゃんとTの字ポーズをとっているように見えますが、判定が意外と厳しいです。ですが心配ありません。右下にある Pose を押し、 Enforce T-Pose を実行することで強制的にモデルをTの字にすることができます。無理やりTの字にするのでボーンの認識が正しくないと大変なことになるかも…?とりあえず、ようやく2つの条件を突破したのがこちら。f:id:aizu-vr:20180910183255p:plain 正しくボーンの認識が行われているのを確認したら、下にある Apply を押してから Done を押して作業を完了させます。次にモデルの大きさを設定します。モデルをシーンに置いて、近くにCubeを生成します。モデルとCubeの高さがぴったりになるようにCubeを拡大縮小していきます。高さがぴったりになったと思ったらCubeのY軸方向の大きさを確認します。Unityでのサイズ1はVRMでは1mとして換算しているのでそれを考慮しましょう。今これを書いているときに気が付きましたが、どうやら僕はCubeのScaleではなくPositionのところを見ていたようです。おそらくこれが原因で大変なことに…。モデルのサイズ調整ですが直接サイズを変更するのではなく、ほかの方法でサイズ変更するようです。気力が残っていたら(ないです)試してみます。 サイズの調整が終わったらこのタイミングでシェーダーやテクスチャを設定するようです。僕はマテリアルだけなので関係なかったです。

もう完成は目前です。モデルを選択して、Positionが(0,0,0)になっていることを確認し、メニューバーのVRMから export humanoid を選択します。 ※なぜかCubeが小さいですが気にしないでください。 f:id:aizu-vr:20180910190255p:plain すると小窓が出てきます。モデルの名前と製作者の名前を入力し、Force T Pose と Pose Freeze の2つにチェックを入れてエクスポートします。保存名は適当にわかりやすく。そのまま保存するとAssetsにVRMファイルが出力されます。それをそのままクリックすると右側に色々設定項目が出てきます。 ただ最初から自分しか使用許可を持てない状態にしてあるのであんまりいじらなくても大丈夫そうです。そのまま下へスクロールすると口や表情の動きを設定する項目があります。僕は今回はあきらめました。以上を終えたらこれをもう一度VRM→export humanoidでエクスポートします。今回は好きな場所に保存しましょう。

これでようやくVRM形式のモデルデータが完成しました。やったぁ!ということで早速Clusterのサイトからアバターを登録しようと思ったんですが…。f:id:aizu-vr:20180910192115j:plain まさかのマテリアル数上限オーバー。そうです。ソフトにはそれぞれモデルの制限があります。僕が引っ掛かったマテリアルですが、上限は8つまでだったみたいです。悲しいなぁ…。

いや、このままでは終われない。とBlenderを起動し、マテリアル数をなんとか減らし(そもそも無駄が多かった)、もう一度VRMファイルを作り直しました。今回は無事アバターを登録できました。喜び勇んでClusterを起動し、アバター確認機能で仮ルームに入りました。f:id:aizu-vr:20180910193328p:plain が……駄目っ……!

なぜかモデルは宙に浮いたまま動きません。こんな症状どのサイトでも見たことありません。結局解決はできずリタイア。今思えばやはりモデルサイズを調整してないのがいけなかったか…。確認する気力も消滅。僕は敗北しました。次こそは完璧なVRMファイルを作るんだ…。表情とかにも手を出したりして…。

 ここまで拙い活動記録を読んでいただきありがとうございました。それではみなさん、さようなら。

会津大学VR部の部員が持ち回りで投稿していくブログです。特にテーマに縛りを設けずに書いていきます!