LoginSignup
1
3

More than 3 years have passed since last update.

シャーロちゃんをblenderでいじる-マテリアル統合編-

Last updated at Posted at 2019-08-11

関連記事

まえおき

以前書いた シャーロちゃんをblenderでいじる時の注意点 記事の続き、マテリアル統合についての記事になります。
Cats Blender PluginMaterial Combiner をインストールしている前提です。

Performance Ranking System 1に対応するため、使用するマテリアル数を少なくしてアバターの最適化・軽量化をしていきます。
また、メッシュオブジェクトについてもまとめていきます2

実施環境:

Soft Version
Blender 2.79b
Cats Blender Plugin 0.13.3
Unity 2017.4.28f1
VRChat SDK 2019.07.31
Shaclo 1.2.2 (shoesモデル)

以下の作業に入る前に、統合前のデータについてバックアップを残しておく、もしくは git などバージョン管理ツールを使うことを推奨します。
「ぎゃー!?やっちまった!?」率高いので……(個人調べ)

マテリアルの仮統合(手作業)

マテリアル統合には Cats Blender PluginTexture Atlas の機能が便利です。
ただしこの機能を直接シャーロちゃんに適用するとおかしくなる3ので、まずは下準備として手作業でマテリアルをまとめておきます。

一度手作業で以下の6つのマテリアルを新規作成してまとめていきます。
このときにテクスチャの割り当ても行います。

部位 新規マテリアル 適用するテクスチャ
身体(含む包帯) Mat_Body Tex_Schalo_Body
Mat_Face Tex_Schalo_Face
髪の毛 Mat_HairFront , Mat_HairBack Tex_Schalo_Hair
瞳、眉 Mat_Stensil Tex_Schalo_Puppli
服、靴、腕輪、ヘアピン Mat_Costume Tex_Schalo_Costume
  • 瞳や眉をシェーダーのステンシル機能で前髪の上に描画できるよう、前髪用と後ろ髪用のマテリアル( Mat_HairFrontMat_HairBack )に分けています。
  • テクスチャについては同梱の .psd ファイルそのままだとファイルサイズが大きすぎるので、 .png ファイルに変換したものを割り当てるようにしたほうがいいです。

マテリアルの仮統合の手順

  1. オブジェクトを選択
  2. 編集モード に変更
  3. 頂点の選択状態を解除(何も選択していない状態にする)
  4. 統合元マテリアルを選択
  5. 選択 をクリック
  6. 統合先のマテリアル( Mat_Body など )を選択
  7. 割り当て をクリック
    このとき選択状態の頂点が、選択中のマテリアルだけの適用範囲になる(排他的)
    つまり元のマテリアルの割り当て範囲が統合先に移譲される
  8. 選択解除 をクリックして選択状態が解除されることを確認
  9. 割り当て範囲がなくなった元マテリアルを 削除オブジェクトモード でする必要あり)
    material-combine.png

具体的な対応表:

オブジェクト 元マテリアル 統合先マテリアル
Body M_C_face_01 Mat_Face
M_C_pupilL, M_C_pupilR, M_C_kutu Mat_Stensil
M_C_hair Mat_HairFront
shaclo_body すべて Mat_Body
shaclo_boots すべて Mat_Costume
shaclo_costume すべて Mat_Costume
shaclo_hair M_C_hair_01 Mat_HairFornt
M_C_hair_02 Mat_HairBack
shaclo_hairpin すべて Mat_Costume
shaclo_udewa すべて Mat_Costume

また、作成済みのマテリアルをオブジェクトに追加したい場合は

  1. マテリアルスロットを追加
  2. 左マテリアルアイコンをクリック
  3. リンクするマテリアルを選択 material-apply.png

マテリアルにテクスチャを割り当て

上記でまとめられたマテリアルにテクスチャを割り当てておきます。

  1. 対象のマテリアルを選択
  2. テクスチャ タブを開く
  3. テクスチャを 新規 で作成
  4. 任意の分かりやすい名前をつける
  5. このテクスチャに割り当てる画像を 開く から設定
    material-texture.png

マテリアルのディフューズを白色に設定

Texture Atlas 機能で生成される画像はマテリアルのディフューズに影響されるみたいなので、白色にして影響を受けないようにしておきます。

  1. マテリアル タブを開く
  2. 新規作成した Mat_~ マテリアルを選択
  3. ディフューズ 項目の色選択部分をクリック
  4. 16進数FFFFFF と入力して白色に設定
    material-defuse.png

メッシュ統合

マテリアル統合する前にメッシュを統合しておきます4
すべて1つにまとめるとおかしくなったので、 Body メッシュ(顔)以外 をまとめます。

  1. Body 以外のメッシュオブジェクトを選択( Shift キー押しながらクリック )
  2. ツール シェルフ -> CATS タブ
  3. Model Options を開く
  4. Join MeshesSelected を実行して選択中のメッシュオブジェクトを統合
    mesh-join.png

マテリアルの統合(最終)

Cats Blender PluginTexture Atlas を使って統合します。

ツール シェルフ -> CATS タブ から

  1. Optimization 項目を開く
  2. Atlas タブを開く
  3. Generate Material List
  4. 統合するマテリアルにチェック
    今回は Mat_BodyMat_FaceMat_HairBack にチェックしてまとめる
  5. Save Atlas to.. でAtlasを保存
  6. combined_material_xxx というようなマテリアルに統合される
    material-atlas.png
  • マテリアル数を増減したい場合は手順 3. においてチェックを入れるマテリアルを調整してください。
  • マテリアル数は4以下が推奨されています5

Save Atlas to.. でエラー

Save Atlas to.. でエラーが発生してAtlasが保存できずマテリアル統合もできない場合があります。

この場合、シャーロちゃんの適当なオブジェクト(例えば Body )を選択してから実行すれば大丈夫かもしれません。

Unityでのマテリアル設定

マテリアルを統合した場合は元々のシャーロちゃんのマテリアルをそのまま流用はできません。
よって自分でマテリアルを調整する必要があります。
オリジナルのシャーロちゃんの設定を参考にしながら調整してみてください。

Unity 2017 における FBX のマテリアル設定は次のようになります。

  1. FBXファイルと同階層に Materials フォルダと Textures フォルダを作成
  2. Textures フォルダにテクスチャをコピー(上記で生成された combined_material_xxx.png ファイルも含む)
  3. FBXファイルを選択
  4. Inspector から Materials タブを開く
  5. Extract Materials を実行し、マテリアルを Materials フォルダに展開する
  6. 展開されたマテリアルを、オリジナルを参考にしながら調整する
    unity-material.png

ユニティちゃんトゥーンシェーダー2.0

ユニティちゃんトゥーンシェーダー2.0(© UTJ/UCL)を使う場合、アウトラインが目の周りや唇にかからないようマスク画像6を作成します。
マスク画像の作成では、combined_material_xxx.png の顔部分をオリジナルの Tex_Shaclo_Face_Outline.png で上書き加工するのが簡単だと思います(顔以外は白で塗りつぶし)。

作成したマスク画像はマテリアルの Outline_Sampler に設定します。

あとがき

マテリアル統合むずかしい。
あまりに長文になるので新しい記事にしました。それでも読みにくいのはゆるして。

アバターの軽量化ができたら VRM 形式への変換やVRChat以外のプラットフォームへの導入がしやすくなるので、この記事が役に立てば幸いです。

参考


  1. PC版が対象。今回の記事ではOculus Questは対象外 

  2. ボーンについても少なくするべきですが、今回は扱いません 

  3. おそらくマテリアルが適用される範囲が複数メッシュオブジェクトに分散しているせいかなぁ 

  4. マテリアル統合後にメッシュを統合したらおかしくなったので 

  5. Cats Blender PluginExportModel 時に警告される 

  6. 白色でライン幅100%、黒色でライン幅0%=ラインなし 

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3