技術ブログ

Top  >   技術ブログ  >   『VR空間のCGオブジェクトを軽くする方法 ~MeshBakerを利用したCGリダクション』

『VR空間のCGオブジェクトを軽くする方法 ~MeshBakerを利用したCGリダクション』

2021/01/26

◇はじめに

VR空間で沢山のCGを表示するとどうしても重くなってしまいます。 そこで、見た目に影響せず、簡単にCGをリダクション出来る!VR開発で必須のツールMeshBakerの使い方をどこよりも丁寧に紹介します。

Unityで沢山のモデル、3Dオブジェクトをシーン上に置いたときに負荷が大きすぎて処理が重いといったことが起こります。

そういった時に負荷軽減を考えますが、その際に役立つ手段としてMesh Bakerを使ってテクスチャをアトラス化するという方法があります。

 

今回はそのMesh Bakerの使い方について確認していきます。

◇Mesh Bakerとは

ポリゴン数(頂点数)やバッチ処理数が多い3Dモデルを取り扱うときにその負荷の軽減に役立つのがMesh Bakerです。

 

Mesh Bakerはモデルのマテリアル(テクスチャ)をアトラス化して1つのテクスチャにまとめ、マテリアルを結合してくれます。

※アトラス化とは、複数のテクスチャを一枚のテクスチャにまとめることを指します。

<アトラス化の結果イメージ>

 

無料版と有料版の違い

以下の2点が大きな違いとなります

1.無料版は6.5万ポリゴンまでだが、有料版は無制限

2.無料版はシェーダーがDiffuseとBumpedのみ結合が可能という制限があるが、有料版はシェーダーに制限が無い

 

|注意したいこと

Mesh Bakerは指定したオブジェクトを全て一纏めにするため、背景や置物などのオブジェクトを一纏めにするイメージになります。

<Bake後の統合メッシュ画像>

 

何か動作などの処理を建物の一部に適用したい場合などはその対象と建物は別のオブジェクトにする必要があります。

 

◆例:建物の扉だけ開け閉めしたり触れたら色を変えたりしたい時

⇒扉のみでベイク、扉以外の建物全体でベイクして扉と建物は別のオブジェクトとして作成する。

 

◇使用するアセットと開発環境

Mesh Baker Free

・本記事で使用するモデルサンプル:Modular Building

Unity2020.1.6f1使用

Windows

 

◇使い方(操作方法)

では実際に手順を追ってみましょう。

準備:Mesh Baker Free及びモデルのダウンロードとインポート

まず上記のリンクからMesh Baker Freeをダウンロードしてマイアセットに追加してください

 

Mesh Baker FreeをWindow > Package Managerからダウンロード&インポートします

 

<Packages : My AssetsにしてMesh Baker Freeを探し、ダウンロードします>

 

<ダウンロード後インポートします>

 

全てインポートします

 

続いて今回テスト用に使用するモデルとしてModular Buildingを使います。

 

使用するモデルについては例なので何でも問題ありませんが、無料版はシェーダーがDiffuseとBumpedのみという制限がありますのでそれ以外のシェーダーを使用したい場合は有料版を使用してください。

 

<任意(使用予定のモデルが無い場合はModular Buildingも同様にインポートしてください)>

 

準備:Modular Buildingのサンプルシーン(Building Example)の編集

<モデルが別にある場合はこちらの工程はスキップしてください>

 

Modular Building > Assets > Scenes > Building Example を開きます。

カメラが無いのでカメラを追加します。

 

カメラの位置は適当に建物が映る位置に移動します。

 

この状態でのStatsを確認します。

Batches:387  SetPass Cells:43

 

以上で準備完了です。

ここから先は実際にMesh Bakerを使ってこの建物のモデルを軽量化していきます。

 

TextureBakerでまとめる対象のオブジェクトを選択し、テクスチャをアトラス化する

GameObject > Create Other > Mesh Baker > TextureBaker and Mesh Bakerを選択します。

 

するとTextureBaker(0)というオブジェクトがヒエラルキーにできます。

 

TextureBaker(0)を選択してInspector内の「Open Tools For Adding Objects」をクリックします。

 

するとウィンドウが表示されます。

 

まとめたいオブジェクト(今回はModular Building)を選択して「Search For Meshes To Add」を選択します。

「Exclude meshes with out-of-bounds UVs」のチェックを外します。

最後に「Add Selected Meshes To Target」をクリックします。

 

ウィンドウを閉じてInspectorを確認すると、「Objects To Be Combined」内に先ほど選んだオブジェクトが入っていることが確認できます。

 

ここで目的のオブジェクトが抜けている場合はSizeを増やしてオブジェクトを追加することができます。

 

続いて「Create Empty Assets For Combined Material」をクリックします。

すると追加したオブジェクトのテクスチャのアトラス化とマテリアルの結合が始まります。

 

処理が終わると以下のようにアトラス化されたテクスチャやマテリアルが作成されます。

<アトラス化結果画像>

 

結合したマテリアルを用いてMeshBakerでプレファブを作成する

続いてTextureBaker(0) > MeshBakerを選択します。

 

Inspector内のOutputでBake Into Prefabを選択して、Bake後のオブジェクトをプレファブに出力するように設定します。

 

Create Empty Prefabをクリックしてプレファブを作成します。

作成したプレファブにベイク後のオブジェクトが格納(ベイク結果のメッシュが適用)されます。

 

名前を決めて保存をクリックします。

 

プレファブが作成され、そのプレファブがCombined Mesh Prefabに適用されています。

 

<プレファブの名称変更について>

プレファブの名前はAssetsの方で変更すればCombined Mesh Prefab内も同じ名前で更新されるのでアタッチしなおす必要はありません。

デフォルトで「<指定したファイル名>0」という名前になるようです。

画像は「BakedBuilding0」から「BakedBuilding」に変更した後になります。

 

次にBakeをクリックします。

するとメッシュが作成され、先ほど作成したプレファブに適用されます。

 

 

meshが作成され適用されたことがわかります

 

作成されたプレファブをヒエラルキーにドラッグアンドドロップして確認します。

元のModular Buildingは非アクティブにしておきます。

非アクティブ化

 

これで負荷軽減が完了しました。

 

それではStatsを確認してみましょう。

Batches:14  SetPass Cells:14

 

元がBatches:387  SetPass Cells:43なのでかなり負荷軽減することができましたね。

 

Mesh Bakerの使用方法は以上で完了となります。

 

Tips:シーン内にオブジェクトとして出力する場合

プレファブとして出力せず、シーン内に直接オブジェクトとして出力する場合はBake Into Scene ObjectにしてBakeします。

 

その場合はシーン内にオブジェクトを作成してそのオブジェクトをCombined Mesh Objectに設定してBakeします。

 

こうして出力したオブジェクトをAssets内にドラッグアンドドロップしてプレファブ化もできます。

 

◇最後に

今回は負荷軽減の方法の1つとしてMesh Bakerの紹介でした。

Unityで沢山のオブジェクトがシーン内にある場合や、重い処理が苦手なVR用のアプリケーション作成時等に役に立ちます。

 

その他負荷軽減として「Occlusion culling」を適用する方法などもあります。


Occlusion cullingについてこちらに記載しています

UnityでOcclusion Cullingを使ってCGレンダリングの負荷を軽減する方法

 




◇アカデミーからのお知らせ

■VRアカデミーオススメの講座・コース紹介

VRアカデミーではVR・AR開発を学びたい様々な年齢、スキルの方を対象に、目的に合わせたコース選択が可能になっています。ここではその中で現在オススメしているコースを一部紹介します。


★【VRエキスパート】



VRエキスパートコースは、Unityの学習経験のある方やC言語系・Java系等のプログラミング経験者を対象にした5ヵ月間の中級コースです。

VRアプリ開発のためのプロフェッショナルな知識と技術を修得するための実践コースです。

 


■オープンキャンパス・個別相談会の紹介

 

VRアカデミーはスキルアップや新規事業の創出。またはVRコンテンツ開発企業に就職・転職を目指す様々な方の目的を支援しています。

生徒には様々なバックグラウンド・年齢層の方もいらっしゃいますので是非一度オープンキャンパスや個別相談会に参加していただくとより詳しい学校説明をご案内しています。

更にオープンキャンパス・相談会参加者には特別割引を実施中!是非お気軽にお申し込みください。

 

 

【土曜日開催】オープンキャンパス




開催日:毎週土曜日

時 間:60〜90分 (11:00〜18:00)

日 付: 毎週土曜日(下記リンクの予約表を確認してください)

場 所:新宿区西新宿1丁目5-11.新宿三葉ビル1F「NEUU」(新宿駅西口から徒歩3分)

※詳しくは申込み時にメールにてご案内させていただきます。

参加申込⇒https://vracademy.jp/opencampus/

専任のキャリアアドバイザーの学校説明と合わせて実際の授業の様子を見学できます。

どんなカリキュラムなのか。卒業生のVR・AR作品を体験したい方は是非お気軽にお申し込みください。

 

 

【平日10:30~21:00】オンライン個別相談会(現地相談も可)

開催日:平日の月〜金曜日開催

時 間:60〜90分 (10:30〜21:00)

参加申込⇒https://vracademy.jp/freesession/

各コースの詳細はもちろん、VRソフトの体験や業界についての質問等、様々な質問に個別で対応します。

入学をご検討中の方は是非お申し込みください。