いんでぃーづ

ゲームいろいろ、いろいろ自由

MeshBaker その1:基本的な使い方

前回紹介したMeshBakerについて、基本的な使い方を紹介していきます。

結合手順

下のビル群を使います。

f:id:sugar_affordance:20161220225711j:plain

こちらのアセットに含まれているものです。

West European Old Town Volume1 for Mobile

MeshBakerをシーン内に作成する

Hierarcyビューの

Create > Create Other > Mesh Baker

から、用途に合わせてオブジェクトを選択します。

今回は Mesh And Material Baker を使ってみます。

f:id:sugar_affordance:20161220232101j:plain

下のように、空のオブジェクトにビルのプレハブを三つ入れておきます。

f:id:sugar_affordance:20161220232206j:plain

結合対象をリスト化する

まず専用ツールを開きます。

シーン内に MaterialBaker0 というオブジェクトが作成されているので、選択してインスペクタを表示すると、以下のようになっているので、 Open Tools For Adding Objects ボタンを押します。

f:id:sugar_affordance:20161220232336j:plain

するとツールが開きます。

f:id:sugar_affordance:20161220232532j:plain

まず Exclude meshes with out-of-bounds UVs のチェックを外します。(後述)
この状態で、BuildingRootを選択し、 Add Selected Meshes To Target ボタンを押しましょう。

すると配下のメッシュがすべて、MaterialBaker0 に結合対象としてリストアップされます。

f:id:sugar_affordance:20161220232631j:plain

結合後に使用するマテリアルを作成

次にマテリアルの結合設定です。

Create Empty Assets For Combined Material ボタンを押すとダイアログが出るので、保存先を選択します。

f:id:sugar_affordance:20161220232800j:plain

こんな感じで結合用のファイルができあがりました。

f:id:sugar_affordance:20161220232852p:plain

この状態でマテリアルはできあがっていますが、テクスチャは結合されていません。

Bake Material Into Combined Material ボタンを押すとテクスチャが結合されます。

f:id:sugar_affordance:20161220232945p:plain

メッシュ結合!

いよいよメッシュを結合します。 MaterialBaker0 の下に MeshBaker というオブジェクトがあるので、選択してインスペクタを見ましょう。

f:id:sugar_affordance:20161220233024p:plain

下のほうに Bake ボタンがあるので、これを押せば結合が始まります。

結合後、 Disable Renderers On Source Objects ボタンを押すと、元のMeshReandererをすべて無効にできるので、手作業で元オブジェクトを消す必要はなくなります。

下が結合後のメッシュです。

f:id:sugar_affordance:20161220225825j:plain

一見うまく結合できているようですが…

f:id:sugar_affordance:20161220233142p:plain

ビルの天井の模様がめちゃくちゃですね。

パラメータ調節

MaterialBaker0の Consider Mesh Uvs にチェックを入れます。

f:id:sugar_affordance:20161220233233p:plain

これは元のメッシュのUV値が0〜1の範囲を超えている場合に、うまいこと調節してくれるオプションです。

その後、テクスチャのベイクからやりなおします。

  1. MaterialBaker0オブジェクトの Bake Material Into Combined Material ボタン
  2. MeshBakerオブジェクトの Bake ボタン

f:id:sugar_affordance:20161220233301p:plain

今度はうまく焼けました。

プレハブに書き出す

デフォルトの設定だとシーンに直にメッシュを書き出します。
書き出されたGameObject をプレハブにしようとしても、うまくいかないので注意です。

有料版限定で、プレハブに書き出すことができます。

空のプレハブを用意し、MeshBakerのOutputオプションを下のようにしましょう。

f:id:sugar_affordance:20161221001706p:plain

注意

Exclude meshes with out-of-bounds UVs

今回は結合対象をリスト化する際にチェックを外しました。

Add Selected Meshes To Targetボタンを押した時に以下のエラーが出るようなら、チェックを外しましょう。

f:id:sugar_affordance:20161221000250p:plain

Tilingなもの

地面など、マテリアルのTilingが有効になっている場合、Consider Mesh UVsにチェックを入れましょう。

f:id:sugar_affordance:20161221000905p:plain

この場合、結合後のテクスチャは Tilingしている分だけ繰り返して 焼きこまれるため、容量が増えたりするので注意です。

テクスチャがないオブジェクトを結合したい場合

以下のようなエラーが出ることがあります。

Could not find a tiled rectangle in the atlas capable of containing the uv and material tiling on mesh xxxxxx

これはテクスチャが無いのにメッシュのUVを参照しようとしているためで、 Consider Mesh UVs オプションをOFFにすれば解決します。
当オプションが必要なものと結合したい場合、ちょっと工夫する必要があるかもしれません。

頂点数が64K超えたら

Unityでは一つのメッシュの頂点数は最大で64K(65534)となっています。
この数字を超える場合、複数のメッシュに分けて結合しなければなりません。


“Unity” and Unity logos are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere, and are used under license.


免責事項

当サイトの広告バナー、リンクによって提供される情報、サービス内容について、当サイトは一切の責任を負いません。

また、当サイトの情報を元にユーザ様が不利益を被った場合にも、当サイトは一切の責任を負いません。

すべて自己責任でお願いします。