バーチャル3Dクリエイター神部まゆみです(*^-^*)
この記事では、Oculus Quest2のSculptrVRでエクスポートしたFBXとOBJファイルを、blenderとunityに持って行った手順を書くよ。
SculptrVRについては前回の記事を参照してね。

手順1: 作った作品をエクスポートする
フォルダのアイコンをクリック ⇒ Save ⇒ Export ⇒ OBJ かTex.FBX で。
エクスポートすると、ファイルの場所を示すメッセージが表示されます。
ゴリラっぽいのは適当です( ̄▽ ̄;)
でもなんとなくいじっただけなのに、ここまで作れるSculptrVRは凄いと思う。
今の私の技術では、blenderでここまで作るにはどれだけ時間がかかるかわかりません。
Tex.FBXのTexはテクスチャのことではなく、テキストのことらしい
ちなみにTex.FBXって、調べたけどテクスチャが付いてるわけではないみたい?前回の記事でちょっと触れたけど、色が付いてるのはテクスチャじゃなくて頂点カラーってやつのようです。
公式のFAQを翻訳してみたら、テクスチャではなくASCIIテキスト FBXファイルのことらしいです。文字コードがASCII形式のFBXってことかな?
「Texと書かれていたら、ユーザーはテクスチャのことだと勘違いしちゃうと思いますよ」って公式のフォーラムに意見が書かれていた気が…。
Tex.FBXは、そのままではエラーが出てblenderに読み込めない
エクスポートしたTex.FBXは、そのままではエラーが出てblenderには読み込めませんでした。
ググったら「AutoDeskのページにあるConverterで変換すれば読み込める」って先輩の意見を見たのですが、インストールして変換してみたけどダメでした…。
前回の記事で解決策が見つかったと書きましたが、まだやってないのでこの記事でやってみます。
手順2:Android/data/com.sculptrvrinc.sculptrvrapp/filesフォルダを開き、FBXとOBJファイルを取り出す
USBケーブルでOculus Quest2とパソコンを繋ぎ、エクスポートしたデータを取り出します。
エクスポートしたファイルの位置はここ。
Oculusブラウザ経由でGoogleドライブにアップしようとしたけど、何故かできなかった
わざわざケーブル繋ぐのも面倒なので、Googleドライブでアップしようとしたけどできなかった。
FireFox Realityは対応してないみたいですが、デフォルトのOculusブラウザならGoogleドライブにログインしてアップロード対応したみたいなんですけど。
「ファイルをアップロード」を選んでも、スクショした動画や画像ファイルしか表示されず、SculptrVRでエクスポートしたファイルは選択できませんでした。
多分アプリのフォルダ内にエクスポートされているからかな?
Side Questを入れればファイルマネージャーアプリとかも入れられる?かもしれないので、そういうのでできる可能性はあるかもしれません。
手順3:blenderで読み込む
FBXとOBJファイルでは手順が違ってきます。
OBJファイルの場合:普通にインポートすれば読み込める
ファイル ⇒ インポート ⇒ OBJ で普通に読み込めます。
ただ、向きやサイズ、ポリゴン数などを調整しないといけませんが。
普通にインポートしたら向きがおかしく、サイズが30m以上ある(笑)。
FBXファイルの場合:そのままblenderで読み込もうとすると「ASCII FBX files are not supported」エラーが出るので、unityに読み込んでFBX Exporterでエクスポートする
Sketchfabにアップロードしてからダウンロードすると変換されて使えるようになるらしいですが、Sketchfabを使ったことが無いので今回は割愛します。
Tex.FBXをそのままblenderにインポートしようとするとエラーが出て読み込めません。
FBX Exporterはパッケージマネージャーにあった
これ前はアセットストアでダウンロードする感じだった?のか、どこにあるのか困ってる人が多いのいかもしれない。
検索すると候補に「ない」って出るw
これはunity2018あたり?からパッケージマネージャーに移動したみたいです。
ウィンドウ → パッケージマネージャー で呼び出して、「advanced」を押して検索窓に「fbx」って入れたらあった。
↑の画像はVRChat用に使ってる2018.4.20f1です。
unityにインポートしてシーンに配置、ヒエラルキー上で右クリック → Export FBX でASCIIをBinaryに変えればOK
普通にアセットフォルダにD&Dして読み込んで、シーンに配置できた。
ここでヒエラルキー上でオブジェクトを右クリック→「Export to FBX」を選んで、「Export Format」をBinaryにすればOK。
これでblenderで読み込めました。
手順4:サイズや向きを調整する
一応ここまでで読み込めましたが、サイズや向きがおかしいので調整します。
オブジェクトモードで向きとサイズを調整する
インポートの設定で向きなどがいじれるので、ここを調整するのもいいと思います。
でも結局調整するなら、トランスフォームでいじればいいかな。
一回unityに持って行ったFBXとOBJでは回転が違うみたいですが、今回はOBJで読み込みたての↓の状態でやります。
R Z 90
R Y -90
で向きを調整して、
s 0.05
でサイズを1/20にしてみました。
これで正面を向いて、一般的なサイズになった。
上半身だけで1.82mはでかいけどね( ̄▽ ̄;)
オブジェクトを選択してCtrl+A、全トランスフォームを選んでトランスフォームを適用しておく
これは、いじったトランスフォームを適用して、デフォルトに設定する感じ?
これをやっとかないと、unityや外部ソフトで読み込んだ時にサイズや回転がおかしくなったりする可能性があるみたい。
頂点数とポリゴン数を削減する
blenderで調整するなら後でいいけど、一応ここで触れておく。
というかハイポリのほうがいいならやらなくていいと思うけど、VRChatで使う場合はポリゴン数制限あるから後でやることになると思う。
いくつかやり方はあるみたいだけど、デシメートモディファイアを使うと簡単に頂点数とポリゴン数を削減できる。
比率を下げていくと、どんどん頂点数とポリゴンが減っていく。
やりすぎるとのっぺりしてしまうので、このくらいかな。
比率0.1にしたら、頂点数とポリゴン数を1/10に削減できた。
△ポリゴン数2000くらいまではギリギリ行けたけど、かなりのっぺりしたからどうだろ。
まぁVRChatはポリゴン7万以下なら大丈夫らしいから、そこまで減らさなくてもいいかもしれない。
でもあんまり多いと重くなるみたいだから、1~2万くらいまで減らせばいいかな。
この後blenderでも編集するだろうし。
こちらの先輩によると、「束ねる」の横にある「分割の復元」ってやつを使うと、もっと綺麗に削減できるみたい(この人は日本語化してないみたいですが)。

だけど四角面にしか効かないみたいで、今回のは三角面だったのでダメでした。
四角面に変換してみたら大幅に汚くなったのでダメっぽい。
頂点カラーを使いたい場合、MeshLabで変換してカラーを有効にする ※最初にやったほうがいいかも
これ、上でサイズ調整してOBJでエクスポートし直したファイルをMeshLabでインポートしたら、頂点カラー情報が無くなっていた。
SculptrVRでエクスポートしたてのOBJファイルを読み込んだら、ちゃんとカラー付きで表示されたので、blenderで読み込む前に最初にやったほうがいいかもしれない。
ただ、正直SculptrVRでは造形だけできれば十分な気がするから、頂点カラーは無理して使わなくてもいいかな?
blenderで調整してからUV展開して、テクスチャ貼ったほうがいい気がするし。
まぁ一応やってみます。
このままではテクスチャも色もなく、マテリアルビューにしても真っ白なまま。
SculptrVRでは、色はテクスチャで表現されているのではなく、頂点カラーってやつらしいです。
公式のFAQページを翻訳して読んでみたら、確かにそう書いてあった。

メッシュラボってのはこれみたい。
ただ、objがdaeファイルに変換されちゃうみたい?
MeshLabをダウンロードしてインストール
MeshLabのページに行って、ページを下にスクロールするとダウンロードの項目があるので、自分の環境に合ったものをダウンロードする。私はwindows10 64bitだからWin64で。
ダウンロードしたexeファイルを起動して、特に設定も必要なくNextで進んでいけばインストールされます。
MeshLabでOBJをインポートし、daeでエクスポートする
File → Import Mesh でOBJファイルを選んだら、カラー付きで読み込まれました。
ただ↑はSculptrVRでエクスポートしたてのやつで、上でサイズ調整してからOBJエクスポートしたやつは、カラー情報が吹っ飛んでいた。
インポート/エクスポートのやり方が悪かったのかもしれないけど、頂点カラーを使いたいなら、MeshLabで変換するのは最初にやったほうがいいかも。
とりあえず、色付きのエクスポートしたてのほうでやります。
File → Export Mesh As を選び、ファイル名を指定してdaeフォーマットを選ぶ。
その後特に設定はいじらず、OKを押せばいい。
blenderで頂点カラーを表示するには、ソリッドビューにして カラー → 頂点 をONに
しかしエクスポートしたdaeをblenderでインポートしても、真っ白なままだった。
ダメじゃん!と思って調べたら、↓の頭のいい先輩によると、頂点カラーは設定で表示するように切り替えないとだめらしい。

ソリッドビューにして、▽みたいなやつをクリックして カラー項目の「頂点」をONにしたら色が表示された!
エクスポートしてunityに持っていく。頂点カラーを使うにはシェーダー書かないといけないっぽい(-_-;)
普通にdaeでそのままエクスポートしてunityに持っていったら、また真っ白になっていた。マジか。
調べたら、unityは頂点カラー使えるけど、自分でシェーダーの設定をしないといけないっぽい(-_-;)
でもこちらの先輩のページを見たらなんかいけそうだったので、参考にして一応やってみます。
…おっ、先輩の言う通りそのままやったら、ちゃんと表示された!
これで頂点カラー表示するシェーダーが用意できたから、一応使えそう。
ありがとうございます(*^-^*)
FBXでエクスポートしてもちゃんと表示できた。
OBJはMeshLabで変換する必要があるみたいだけど、Tex.FBXはこのシェーダーで頂点カラー表示できた
エクスポートしたてのOBJにこのシェーダー適用してもダメだった。
だけど、エクスポートしたてのTex.FBX(ASCIIのやつ)に適用したらちゃんとカラー表示された。
blenderで編集しなくていいなら、Tex.FBXで書き出してカラー情報保持したままunityで使えばいいと思う。
頂点カラー情報からテクスチャを作れるらしい
今回はやらないけど、そういう方法もあるみたい。
こちらの頭のいい先輩のページで知りました。

SculptrVRでは形を作るだけにして、blenderで調整してUV展開+テクスチャ作成したほうがいいかな?
頂点カラーの部分がちょっと面倒なのと、結局修正が必要になりそうなので、この方がいいかな?
でもSculptrVRではパレットで色変えるだけで色付きのメッシュが作れるから楽だし、味があってこれはこれでいいとは思う。
でも配布する場合はシェーダー同梱しないといけないし、テクスチャ使う方が一般的な気がするからどうだろう。
まぁ用途によって使い分ける感じかな。
SculptrVRは直感的にいじれてどんどん形になっていくから、やってて凄い楽しいんだよね。
blenderいじってて「これもう少し直感的に、手で触るように編集できないかな?」とちょくちょく思ってたんだけど、それに答えてくれた感じ。
ただブラシの最小単位が大きめ?なので、ディテールを作り込むにはあまり向いてないかもしれない。
形とバランスを取ってだいたい作るところまでやって、blenderに持って行って細部を作り込むのがいいかもしれない。
楽しいからもっといじってみようと思います。