読者です 読者をやめる 読者になる 読者になる

いんでぃーづ

個人でゲーム開発してる上で吸収したモノたち紹介。UnityからGIMPまでなんでも。デザインとかゲーム論まで語っちゃうよ的なアレ。

MENU

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

AssetStore Unity

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

結合手順

下のビル群を使います。

f:id:sugar_affordance:20161220225711j:plain

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

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)となっています。
この数字を超える場合、複数のメッシュに分けて結合しなければなりません。

Amazon.co.jpアソシエイト