SculptrVR(Oculus Quest2版)でエクスポートしたFBXとOBJファイルを、blenderとunityに読み込んだ手順

Blender

 

バーチャル3Dクリエイター神部まゆみです(*^-^*)

この記事では、Oculus Quest2のSculptrVRでエクスポートしたFBXとOBJファイルを、blenderとunityに持って行った手順を書くよ。

SculptrVRについては前回の記事を参照してね。

Oculus Quest2でSculptrvrを買ってみた!商用利用制限も特になく、直感的にスカルプトできて良い感じ
バーチャル3Dクリエイター神部まゆみです(*^-^*) この前Oculus Quest2を買ったんだけど、OculusストアでSculptrVRっていうアプリを買ったからそれについての記事。 VR空間の中でモデリングができるので、結構い...
■PR■

現在、ファンタジーゲーム制作に使える人気unityアセットが50%オフで買える unityファンタスティックファンタジーセールをやってるみたいです。

unityファンタスティックファンタジーセール 50%オフ

欲しいアセットはこの機会に買っておくと良いかも。

 
 

 

 

  1. 手順1: 作った作品をエクスポートする
    1. Tex.FBXのTexはテクスチャのことではなく、テキストのことらしい
      1. Tex.FBXは、そのままではエラーが出てblenderに読み込めない
  2. 手順2:Android/data/com.sculptrvrinc.sculptrvrapp/filesフォルダを開き、FBXとOBJファイルを取り出す
    1. Oculusブラウザ経由でGoogleドライブにアップしようとしたけど、何故かできなかった
  3. 手順3:blenderで読み込む
    1. OBJファイルの場合:普通にインポートすれば読み込める
    2. FBXファイルの場合:そのままblenderで読み込もうとすると「ASCII FBX files are not supported」エラーが出るので、unityに読み込んでFBX Exporterでエクスポートする
      1. FBX Exporterはパッケージマネージャーにあった
      2. unityにインポートしてシーンに配置、ヒエラルキー上で右クリック → Export FBX でASCIIをBinaryに変えればOK
  4. 手順4:サイズや向きを調整する
      1. オブジェクトモードで向きとサイズを調整する
        1. オブジェクトを選択してCtrl+A、全トランスフォームを選んでトランスフォームを適用しておく
      2. 頂点数とポリゴン数を削減する
  5. 頂点カラーを使いたい場合、MeshLabで変換してカラーを有効にする ※最初にやったほうがいいかも
    1. MeshLabをダウンロードしてインストール
    2. MeshLabでOBJをインポートし、daeでエクスポートする
    3. blenderで頂点カラーを表示するには、ソリッドビューにして カラー → 頂点 をONに
    4. エクスポートしてunityに持っていく。頂点カラーを使うにはシェーダー書かないといけないっぽい(-_-;)
      1. OBJはMeshLabで変換する必要があるみたいだけど、Tex.FBXはこのシェーダーで頂点カラー表示できた
    5. 頂点カラー情報からテクスチャを作れるらしい
  6. SculptrVRでは形を作るだけにして、blenderで調整してUV展開+テクスチャ作成したほうがいいかな?

手順1: 作った作品をエクスポートする

フォルダのアイコンをクリック ⇒ Save ⇒ Export ⇒ OBJ かTex.FBX で。

エクスポートすると、ファイルの場所を示すメッセージが表示されます。

ゴリラっぽいのは適当です( ̄▽ ̄;)

でもなんとなくいじっただけなのに、ここまで作れるSculptrVRは凄いと思う。

今の私の技術では、blenderでここまで作るにはどれだけ時間がかかるかわかりません。

Tex.FBXのTexはテクスチャのことではなく、テキストのことらしい

ちなみにTex.FBXって、調べたけどテクスチャが付いてるわけではないみたい?前回の記事でちょっと触れたけど、色が付いてるのはテクスチャじゃなくて頂点カラーってやつのようです。

公式のFAQを翻訳してみたら、テクスチャではなくASCIIテキスト FBXファイルのことらしいです。文字コードがASCII形式のFBXってことかな?

texfbx sculptrvr

出典元:Frequently Asked Questions (notion.so)

「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

fbx exporter ない

これはunity2018あたり?からパッケージマネージャーに移動したみたいです。

ウィンドウ → パッケージマネージャー で呼び出して、「advanced」を押して検索窓に「fbx」って入れたらあった。

fbx exporter

↑の画像は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でも編集するだろうし。

 

こちらの先輩によると、「束ねる」の横にある「分割の復元」ってやつを使うと、もっと綺麗に削減できるみたい(この人は日本語化してないみたいですが)。

Blender小技:頂点をなるべく綺麗に減らす
最近知ったので覚書です。 小技と銘打ってますが、小技というよりは単なる設定です。 もしかしたら知らない人もいるかもしれないと思いましたのでメモしておきますね。 モデリングした後に面数を減らしたいなと思った際に、Modifierの Decimate を使って面を減らしますよ...

だけど四角面にしか効かないみたいで、今回のは三角面だったのでダメでした。

四角面に変換してみたら大幅に汚くなったのでダメっぽい。

頂点カラーを使いたい場合、MeshLabで変換してカラーを有効にする ※最初にやったほうがいいかも

これ、上でサイズ調整してOBJでエクスポートし直したファイルをMeshLabでインポートしたら、頂点カラー情報が無くなっていた。

SculptrVRでエクスポートしたてのOBJファイルを読み込んだら、ちゃんとカラー付きで表示されたので、blenderで読み込む前に最初にやったほうがいいかもしれない。

 

ただ、正直SculptrVRでは造形だけできれば十分な気がするから、頂点カラーは無理して使わなくてもいいかな?

blenderで調整してからUV展開して、テクスチャ貼ったほうがいい気がするし。

まぁ一応やってみます。

 

このままではテクスチャも色もなく、マテリアルビューにしても真っ白なまま。

SculptrVRでは、色はテクスチャで表現されているのではなく、頂点カラーってやつらしいです。

 

公式のFAQページを翻訳して読んでみたら、確かにそう書いてあった。

Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.
A new tool that blends your everyday work apps into one. It’s the all-

 

メッシュラボってのはこれみたい。

MeshLab

ただ、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でインポートしても、真っ白なままだった。

ダメじゃん!と思って調べたら、↓の頭のいい先輩によると、頂点カラーは設定で表示するように切り替えないとだめらしい。

Blender2.8で頂点カラーを編集/表示する - MRが楽しい
本日は Blener2.8 の調査枠です。 Blender2.8で頂点カラーを編集/表示する方法について記事にします。 頂点カラーとは3Dモデルの頂点に持たせるカラー情報のことです。 テクスチャと異なり、別途画像ファイルは必要ありませんが、頂点=色なので頂点が少ないと細かい色合いは設定できません。 今回はサンプルモデル...

 

ソリッドビューにして、▽みたいなやつをクリックして カラー項目の「頂点」をONにしたら色が表示された!

エクスポートしてunityに持っていく。頂点カラーを使うにはシェーダー書かないといけないっぽい(-_-;)

普通にdaeでそのままエクスポートしてunityに持っていったら、また真っ白になっていた。マジか。

調べたら、unityは頂点カラー使えるけど、自分でシェーダーの設定をしないといけないっぽい(-_-;)

でもこちらの先輩のページを見たらなんかいけそうだったので、参考にして一応やってみます。

Unityで頂点カラーを取得する
シェーダーを使って頂点カラーを取得してみました。カスタムシェーダーを少し変更する方法と、シェーダーグラフを使う方法を試しました。Blenderで頂点カラーをつけたCubeをUnityにもってきてシーン上に配置しています。このままでは頂点カラーが表示されないので、頂点カラーを取得するためのシェーダーを作ります。カスタムシ...

 

…おっ、先輩の言う通りそのままやったら、ちゃんと表示された!

これで頂点カラー表示するシェーダーが用意できたから、一応使えそう。

ありがとうございます(*^-^*)

FBXでエクスポートしてもちゃんと表示できた。

OBJはMeshLabで変換する必要があるみたいだけど、Tex.FBXはこのシェーダーで頂点カラー表示できた

エクスポートしたてのOBJにこのシェーダー適用してもダメだった。

だけど、エクスポートしたてのTex.FBX(ASCIIのやつ)に適用したらちゃんとカラー表示された。

blenderで編集しなくていいなら、Tex.FBXで書き出してカラー情報保持したままunityで使えばいいと思う。

頂点カラー情報からテクスチャを作れるらしい

今回はやらないけど、そういう方法もあるみたい。

こちらの頭のいい先輩のページで知りました。

Blender2.8で頂点カラーからテクスチャを作成する 1(UV展開) - 裏鍵.dump
今回も前回に続いて「VRChat用ボクセルアバターを作ろう」をBlender2.8に対応させたときに調べた内容から。 flap-soft.booth.pm 頂点カラーをテクスチャにBakeで焼くという手法は、2.8で大きくやり方が変わってしまったようだ。下記を実行したときのバージョンは2.82aだけど、ひょっとしたら今...

SculptrVRでは形を作るだけにして、blenderで調整してUV展開+テクスチャ作成したほうがいいかな?

頂点カラーの部分がちょっと面倒なのと、結局修正が必要になりそうなので、この方がいいかな?

でもSculptrVRではパレットで色変えるだけで色付きのメッシュが作れるから楽だし、味があってこれはこれでいいとは思う。

でも配布する場合はシェーダー同梱しないといけないし、テクスチャ使う方が一般的な気がするからどうだろう。

まぁ用途によって使い分ける感じかな。

 

SculptrVRは直感的にいじれてどんどん形になっていくから、やってて凄い楽しいんだよね。

blenderいじってて「これもう少し直感的に、手で触るように編集できないかな?」とちょくちょく思ってたんだけど、それに答えてくれた感じ。

ただブラシの最小単位が大きめ?なので、ディテールを作り込むにはあまり向いてないかもしれない。

形とバランスを取ってだいたい作るところまでやって、blenderに持って行って細部を作り込むのがいいかもしれない。

楽しいからもっといじってみようと思います。

タイトルとURLをコピーしました