見出し画像

VRMにフォトグラ飯を持たせる方法

この記事はclusterユーザーと創造する非公式 Advent Calendar 2022の20日目の記事です。

こんにちは~!ちりめんです。今回はVRMのアバターにフォトグラ飯を持たせる方法について解説していきます!

フォトグラ飯とは

メシグラメトリ、フォトグラご飯など、様々な呼び方がされていますが、今回紹介していくのは、現実世界の食材や料理をスマホのスキャンアプリなどで撮影したものです。

フォトグラメトリで撮影したしらす軍艦

主にNeosVRやVRChatなどで盛んに投稿、共有されているフォトグラ飯ですが、clusterではあまりアバターに持たせている方を見かけないので、今回はフォトグラメトリの方法から、アバターにつけるまでの一連の流れを紹介していきます!

フォトグラ飯の作り方

使用するもの

  • フォトグラメトリアプリ

  • Blender

  • Unity

撮影する料理を用意する

まずはじめに、撮影したい料理を用意します。今回は、せっかくなので夕食に作ったしらす丼を使いました!

ちりめん作の”しらす”丼です。近所のスーパーちりめん売り切れてました…

フォトグラメトリアプリで撮影する

フォトグラメトリができるアプリはLiDARスキャンを用いるものから、ARでスキャンするもの、複数枚写真を撮影してスキャンするものなど、多くのアプリがあるので、自分のデバイスに合いそうなものを調べてみると良いかもしれません。 今回私はiPhone12を使用し、Trnioといアプリでスキャンしています。
(610円の買い切り型のアプリなのでLiDAR機能の付いていない機種のiPhoneユーザーの方にはおすすめです)


Trnioでしらす丼を撮影している様子

撮影データを編集する(アプリ内)

撮影し3Dに変換されたばかりのデータは、周りの背景などのデータも一緒に3Dにしているため、アプリ内のEDITツールで消したり、モデルの角度などを調節します。


変換が終わった最初の状態、机のデータも一緒に入ってしまっている

データをエクスポートしPCに移す

大まかに周りの背景の削除や位置調整ができたら、モデルをエクスポートします。

今回は、左から2番目のOBJ-OBJファイルでエクスポートしました。
エクスポートしたファイルはGoogleDriveなどにアップロードし、PC側に共有します。

モデルデータの調整

Blenderでモデルデータを調整する

ここからは、PC側での操作になります。まずは、Blenderに先ほどのOBJファイルをインポートします。

ファイル>インポート>OBJファイルでインポートできる

ここで改めて、しらす丼以外の背景などを消していきます。

Wキーを押して円選択モードにして選択していくと楽です


しらす丼以外の背景を消した状態

上の画像のようにしらす丼だけの状態になったら次にポリゴン数の削減を行っていきます。

驚異の14万ポリゴン超え、リッチなしらす丼です

このままだとポリゴン数が多すぎてアバターに持っていくときに重くなってしまうので、Blenderのモディファイヤーの一つであるデメシートを使ってポリゴン数を削減してきます。

モディファイアタブからデメシートを選択します


デメシートの比率を下げすぎた例

デメシートはかけすぎると、モデルがぐちゃぐちゃになってしまうので、微調整を行いつつモデルのポリゴン数を削減していきます。

今回は4割程度がちょうど良さそうでした

デメシートを一度かけ、その後も細かく調整していった結果…
14万ポリゴン→1.5万ポリゴンまで減らせました!

右下にポリゴン数の合計が表示されている

おまけ: アバターに持たせるときに、出し入れをしたい場合

軽量化が終わったら、そのままFBXでエクスポートしてUnityに移すのですが、アバターにフォトグラ飯を持たせるときに出し入れができるようにしたい場合は、このタイミングでシェイプキーを設定します。
少し手順がややこしいので画像と一緒にまとめます。

①シェイプキーを2つ追加し、キー1を選択した状態で編集モードに移動、
モデルのスケールを0.001倍にする。
②ベースのシェイプキーを削除し新たにシェイプキーを一つ追加する
③新しく追加したシェイプキーを選択し編集モードでモデルのスケールを1000倍にする。

①シェイプキーを2つ追加し、キー1を選択した状態で編集モードでモデルのスケールを0.001倍にする。
②ベースのシェイプキーを削除し新たにシェイプキーを一つ追加する。
③新しく追加したシェイプキーを選択し編集モードでモデルのスケールを1000倍にする。

データをエクスポートする

モデルの調整が終わったら、データをFBX形式でエクスポートします。
(エクスポートの設定について、私はclusterで紹介されている設定を使用しています)

Unityにデータを読み込む

FBX形式でのエクスポートが終わったら、そのデータとテクスチャデータをUnityのファイルの中に追加します。

モデルデータの読み込み及びマテリアルの抽出をした状態


マテリアルのシェーダーをMToonに変更する

次に抽出したマテリアルをStandardシェーダからMToonシェーダーに切り替えます。この際MToonシェーダーのEmissionの項目にテクスチャを設定し、色を白に設定すると、clusterの中でよりくっきり料理が表示されるようになります。

Emissionにテクスチャを追加し色を変更した状態

アバターにフォトグラ飯を持たせる

モデルデータをヒエラルキーに追加する

いよいよ、フォトグラ飯をヒエラルキーに追加します。
この際、先ほどの”おまけ”部分の工程でシェイプキーを追加した方はシェイプキーの値を100にするとフォトグラ飯が表示されます。

ヒエラルキーにしらす丼を置いた状態

サイズや位置を調整する

次に、モデルのサイズと位置を、自分の好きなように調節します。今回は左手に持っているようにしたかったので裏返して、手のひらに位置を合わせました。

手の位置にしらす丼を動かした様子

もしもアバターの特定の部位に追従させたい、という場合はArmature以下のボーンの子の位置にモデルデータを移動させます。(今回は左手で持たせたかったのでLeft Hand下に配置しました)

一度VRMでエクスポートする

フォトグラ飯データをアバターの階層下に配置できたら、一度VRM形式でエクスポートを行います。

おまけ:BlendShapeにモデルの出し入れを設定する

一度エクスポートしたVRMファイルをもう一度Unityに読み込んだ後、BlendShapeのファイルを選択します。
その状態で、好きな表情に出し入れのシェイプキーを割り当てます。
(私はよく、普通に使用する機会が少ないAngryに設定しています)

Angryにしらす丼の出し入れを設定した状態

もう一度VRMでエクスポートする

(おまけの操作をしていない方は)先ほどエクスポートしたVRMファイルを再度読み込み、BlendShapeなどの設定を行った後、もう一度VRMでエクスポートします。これで、フォトグラ飯アバターは完成です!!!

clusterで遊ぶ

アバターファイルを追加する

エクスポートしたファイルをclusterに登録します。


実際に入ってみる

しらす丼とちりめんと

うまく表示されました!

おわりに

いかがでしたでしょうか?フォトグラ飯をclusterに持ち込むことで、話の話題を作れたり、みんなに料理を振舞えたりなど、色々な面白い体験ができると思います!この機会にぜひ、たくさんのフォトグラ飯を作ってみてはいかがでしょうか?

明日は、今回の制作にも使ったBlenderについての、はらさんの記事です!Blenderはともだち、こわくない!


この記事が気に入ったらサポートをしてみませんか?