見出し画像

初心者によるBlender→Unity→VRChat→Clusterのワールド制作メモ&参考サイト集

注:昔の記事のためUnityやサービス仕様は当時のものです

ここ数か月、UnityやBlenderを触りまくってました。そして一旦のゴールだったVRChatワールドのアップロードまでたどり着いたので、参考になったサイトとかをまとめておきたい。

Blenderでちょっと本格的な3Dデータを作って、それをUnityで読み込んでエフェクトなどを整理して、ちょっとクオリティ高目のVRChatワールドにしたかったから。(まだまだ学ぶことが多くて道のりは長い・・・)



Blender編

モデリングの基本+ソフトになれる

もちろん初心者なので、まずはここらへんから。

ソフト自体に慣れてきたので。MaterialやTextureの設定らへんを学ぶ。

そして少し気合を入れて、↓にトライ。

なかなかいい感じの作品ができたので、この部屋の枠組みを使ってオリジナルのMY ROOM制作に移行。そのため、色んなサイトで自分の部屋にあるアイテムに近いものや同じものを集めることに。

オリジナル作品にむけた素材集め

基本はFreeのものを探していく。
まずは3Dモデルデータから。

ちなみにSketchUpファイルのBlenderへのインポートは外部アドオンが必要とのこと。

ちなみに有名なブランド家具などのモデルも多いのでオフィシャルサイトとかにいるとDLできたりするようだ。

こだわりのHerman MillerのCosmチェアもサイトに3DデータやMaterialなどもある。*あくまでプライベート利用ですからね

これらが3Dモデルだが、インポートしてもいまいちな見栄えだったり、素のデータだったりもするので、今度はMaterialやTextureが必要になってくる。

https://www.poliigon.com/textures/free
*なんかサイトのサムネイルでない

ここらで表現したい大体の素材は揃うと思う。
で、次にこれらをどう使うか?では、ここらへんでMaterialの使い方(シェーダーエディター)を学ばせてもらった。

質感UPのマテリアルやカメラ設定

なんかMaterialデータに色んな種類のデータが入ってて困惑したので、↓の動画でシェーダーエディターでどう設定するのかを学ぶ。

出力設定(EeveeやCycles)については

カメラの設定(ボケ感など)は

アニメーション追加して動画でのエクスポート(これはおまけで)


・・・で地道に配置してテクスチャーつけて完成したのがコレ↓

MY ROOM (並行投影) 自分の部屋をほぼそのまま再現。Cosmチェアが映えている。

注:あくまで自分の学習のためで商用でもなんでもないです。ちゃんと制作するときは規約を確認して利用範囲などは確認しましょう。

このレンダリングに至ったところで満足はしてたけど、せっかくなのでこのデータを使って今度はUnityに展開し、VRChatワールドにしてみる。

Unity編

癖のあるインポート

噂では、BlenderからFBXやOBJファイルにして出力し、Unityで読み込んでもかなり崩れると聞いてた。

そこで「Blender Unity インポート」などで検索すると色んな動画は出てくるけど、一番参考になったのはこの動画(英語です)

大事なポイントを書いておくと
・TextureはUnpackして、別々にエクスポートしておく必要がある
・シェーダーエディターで画像テクスチャと基本ノードの間にノードがあると画像が出力されないため、削除しないといけない(動画 03:55~)
・Unity側でTextureとFBX両方をインポートした後は、ExctractしてBlenderのTiling設定に合わせたり、Double Sidedなどの調整を多くする必要がある

あとメッシュがおかしくて穴が開いたりしてたので、調べてみると色々と制約があるので、1つ1つ潰していく。場合によっては、個別ファイルから改めてUnityにインポートした方が早い。

・特にこの↑サイトにある ステップ④:メッシュがおかしくなっている場合 の対処法がわからずかなり苦戦しました…

・・・でUnity上でなんとか各アイテムを配置。
比較するとこんな感じ。

Blender
Unity *色々あってちょっと違うところも


Unityの基本セットアップ

Unityで配置した画像を載せましたが、もちろん基本的なセットアップはした後です。それはここらへんを参考に。

これはSDK2で書かれてるけど、今後のことを考えてSDK3でやる必要がある。あと自分が前に書いた超ラフな記事も参考に・・・

ここらへんをやっていくと、Blenderのアイテム配置はできるけど、VR的に楽しむワールドならではの新しい要素を加えてみる。

夜景、海や花火など追加

海を展開したら、いい感じに地平線まで伸びて楽しながらクオリティもあがるので↓の動画を参考にした(英語です)

加えて、花火についてはここら辺を参考にしてみた。

夜景については、UnityソフトのAsset Storeにいって、Milky WayでヒットするFreeのものをDLしてインポート。それをSceneビューにぶち込んだだけ。


ミラーや手にもったり、座ったりのアクション

まずはここらへんを参考に

手に持つアクション(VRC Pickup)


BOOTHからのメディアプレイヤーとスイッチの活用

定番といわれているiwaSyncを使わせていただき、TVスクリーンにはめたり、手持ちスクリーンを置いたり。

これも定番のLura’s Switch。今回は照明スイッチを採用。


質感をぐっと上げるポストプロセッシング

光の滲みがでるBloomをつけるために


まだやってないけど、ほんとはやった方がいいこと

軽量化:とりあえず作ったワールドはこの動画のように軽量化はした。

でも、クオリティは落とさずもっと軽量化してQuest対応もしたいところ。

環境コントローラー:BGMのワールドやローカル、ミラーのLQ/HQ、BloomなどのON/OFFというコントローラーは、ちょっと面倒でやってないけど、負荷軽減のためにこういう配慮は必要のよう。

Unity→VRChat編

アップロードに向けての注意点

最後のワールドアップロード。
まず肝心なのたVRChatで遊んで、トラストレベルをVistorからNew Userにあげないといけないこと。

私はUnityで遊んで50時間あったり、友達もいたけどなぜかVisitorのまんまで、結局 VRChat Plusという、月額$9.99に入るとトラストレベルが上がるという手段を取りました・・。

公式英語のサイトを見ると、Vistor→New Userは確実に上がるみたいだけど、New User→Userは確証はしてなくてバフ効果的な値が加算されるよ、とのこと。私はなんか上がる寸前だったのか、Visitorから一気にUserにw

ワールドアップロードの流れ

再掲だけど、このサイトの後半の手順を参考に。

余談:アップロードがうまくいかなくて、Unity Application is running. Stop it to access the control panelというメッセージが。調べたら、↓のTweetのようにポーズボタン押したら、Gameビューにちゃんと進めた。これにハマるとマジで対処がわからないと思う。

…ということを経て、ようやくCommunity Labだけど正式にワールドがアップロードされました!

アップロード完了したワールド

パブリック化しちゃうと怪しい3Dデータもあったので、あくまでプライベートワールドで。


最後に

初心者なりにBlenderからUnity、そしてVRChatにという流れを忘れる前にメモをしてみました。同じような人がいたら、参考になればと思います。

これからは、Blenderではもうちょっと高度なモデリングやシェーダーエディター、UnityのC#スクリプトやVFXノードや地形作り、VRChatではユーザへの配慮対策を頑張ってみようかなと。あと個人的にボクセルアートも興味があって、The SandboxのVOXエディターや、MagicaVoxelでも遊んでみようかなと。

それではこのへんで・・・。


【追記】Clusterワールドに展開してみる

勢いでVRChatからClusterワールドにできないか、色々試してみた。
忘れないうちにポイントをメモ。

1.Unity Verは2019.4.22f1のようなので、それをインストール

2.ClusterのTemplateワールドを用意(
  *開くUnity Verに注意
  *もしくはこのサイトのようにプロジェクトセットアップしておく

3.VRChat用に作ったプロジェクトをエクスプローラー上でコピペ&リネーム

4.Unityで開いてClusterに余分なものを削除
[Hierarchy]
・カメラ、VRC World、VRC Chair、VRC Mirror、VRC Pick UpなどVRC全般(コンポーネントからも)
・ギミック系(iwaSync、Clockなど)
・ちょっと重そうなシェーダー系(私の場合は海)
[Assets]
・以下画像を参考にいらないものを外しパッケージをエクスポート
*VRCSDKやUdonたちも無くても最終アップできた

5.準備したClusterのTemplateワールドを開く
6.さっきエクスポートしたパッケージファイルを展開してインポート
7.インポートしたSceneを開く
8.Create EmptyでSpawnやDespawnの設定をする
9.Post Processingはカメラを消してしまいうまく引き継げなかったので、改めてセットアップ

10.あとはちょっとした修正やカメラを消したり、Clusterアクションなどをつけてワールドアップロード

何回もClusterワールドアップロード中にUnityがエラーで落ちたけど、ようやくOKなラインがわかってよかった・・・。


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