AdSense

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に配置して走り回る姿


 

受付する姿

無事動きました。