AdSense

ラベル Blender の投稿を表示しています。 すべての投稿を表示
ラベル Blender の投稿を表示しています。 すべての投稿を表示

2020年2月9日日曜日

3DセンシングしたモデルデータをVRchatのアバターにした



前回の記事にてStructure Sensorで3DスキャンしたデータをUnityで動かしたが、そのデータをVRchatのアバターにした記録。



前回の記事:

https://mementomorisince2013.blogspot.com/2020/01/3dblenderunity.html



前回Unityで歩き回れるようにした3Dデータだが、どうやらポリゴン数やらボーン数やらの制約がありそのままではVRchatに使えないとのこと。



順を追って記載する:


・ボーン多すぎ

 →骨間引き必要


 Blenderで関係なさそうな骨を適当に減らした。

 表情に使ってなかったので、顔の骨と胸の骨を消した。


これが




こうなった




・ポリゴン数圧縮

 下記を参考に、ポリゴン数を15000くらいにした 

https://vrchatjp.playing.wiki/d/%A5%A2%A5%D0%A5%BF%A1%BC%BA%EE%C0%AE%20MMD%CA%D4

 ポリゴン数は減ったが、顔が潰れた。

 全体を均一に削減してはだめ。


・顔と身体のメッシュを分離して身体だけポリゴン圧縮

 CTL+クリックでくくって分離できる。

 https://blender-cg.net/separate-join-objects/







 この状態で体だけポリゴン削減する。


・モデルが分割されたままだとVRChatのほうで怒られうので、分離したやつは圧縮後再び結合する。

 そうすると、今度はボーンとヒートマップズレた


 自動でウェイトをつけるとおかしくなったので、元の状態からこつこつ手作業でヒートマップを塗る。

 http://nn-hokuson.hatenablog.com/entry/2017/08/30/195716

 http://nn-hokuson.hatenablog.com/entry/2017/10/03/205639

 

 関節を動かしながら、意図した通り体がついてくるように調整する。


・UPPER CHESTのエラー

 https://shinrinmusic.com/vroid-vrchat-avatar-upload/

 上記参考に、一つずらす。UPPER CHESTはNONEにする


・Tポーズのエラー

 Unityでアバター設定を開き「Enforce T-pose 」を選択する

 https://docs.unity3d.com/jp/460/Manual/ConfiguringtheAvatar.html


これでなんとかVRchatのアバターアップロードが上手くいった。







2020年1月19日日曜日

3DセンシングデータにBlenderで骨格をいれてUnityで動かした記録

先日の勉強会でStructure Sensorというipadにつけるだけで高精度な3Dモデルを作ることができるスキャナを使い、全身の3Dスキャンデータをもらいました。

Structure Sensor:


短時間で高精度なモデルができたことに驚きです。


これをUnityで動かすことができればVRChatやUnityのいろんなコンテンツで使えるので、骨格(ボーン)を入れることにしました。

ボーンを入れるツールはBlenderを使用します。

やり方は参考書として下記を購入して学びます。



ステップバイステップで大変わかりやすい本でしたが、関節を一つ一つ入れる手順になっているので、もっと簡単な方法を探します。

どうやら自動的に骨格を入れてくれるBlenderのプラグインがある模様。
今回使用したのはUnity公式の「Rigify」です。

Blender Rigifyでググるといろいろ手順が出てくるので手順は割愛しますが、全身だけでなく顔まで骨が入ります。

個別にやったのは、ボーンがもとのモデルからはみ出ないようにモデルの形とサイズ感の調整をしたくらいです。
ただし、撮影時に指を広げていれば指の骨もいい感じで分けれたことを悔やむ。




Blenderでいろいろな形式にエクスポートできますが、Unityで使いやすそうなfbx形式でエクスポート。

次にUnityにとりこみます。



fbsデータをUnity空間に配置し、Standard Assetsを参考に、Third Person Motion Controllerをつけます。

注意すべき点は、下記のパラメータ。これを調整しないと、膝を曲げて中に浮いたままになります。

私の場合は下記値でした。

・Capsule ColliderのCenterのYと、Heightの値

 Center:0 -> 1

    Height:1 -> 2

・Third Person CharacterのGround Check Distance

 0.1 -> 0,2



・Unity Japan Officeに配置して走り回る姿


 

受付する姿

無事動きました。