スクリプト / モデリング
$70.20 => $35.10 50%OFF 【開催期間】〜2018年11月26日(月) 16:59 頃まで
アバターやワールド、自作したゲームを少しでも軽くしたい!
「Mesh Baker」でメッシュやマテリアルを混合してドローコール数を削減する
最適化の要といえる大人気アセットです。
VR、AR、MR、モバイル、VRChatなど、
少しでも軽くしておきたいプラットフォームなど常に需要のあるアセットですね。
この記事の完成形です。
Directional Light消した状態
Batches: 3
SetPass calls: 3
【Unity's Black Friday Week Sale 残り4日】
【開催期間】2017年11月19日 17:15 〜 2018年11月26日(月) 16:59 頃まで
新アセットストア会場:URL
旧アセットストア会場:URL
セールの全貌が大体わかるブログまとめ記事:URL
バンドル販売リスト
- World Building(地形エディタ、地形シェーダ、天気、水、植物、岩)
- Ultimate Characters(IK、AI、会話システム、エフェクト、揺れもの、入力)
- Quick Prototyping(Playmaker、シェーダ開発、アニメ制作、VFX、VR、空)
- Essentials for Professionals(Bolt、ペイント、Odin、360度ビルボード、DOT)
今回購入したアセット
「Enviro - Sky and Weather」「Puppet3D」「Shader Painter」
2018年のブラックフライデーセール概要
① 大人気アセット57種類が全品50%OFF
② デイリーセールが今年も復活!70%OFFの特価アセット必見!
③ まとめ買いでさらにお得「55%OFF」バンドル販売がスタート
└単品でも55%OFFになる値引きの裏技あり ←必見(お早めに)
【NEWS】 単品55%OFFの裏技は使えなくなりました! 2018年11月20日 22:38 確認
2018年11月19日(セール概要記事)
セール全貌まとめ、バンドル販売についてガッツリまとめました。
- バーチャルYouTuber電脳少女シロの紹介
- VRChat用に使うMeshBaker
- VRC向けに「Mesh Baker」でやれること
- マテリアル/シェーダを一体化したらどうなる?
- Mesh Bakerでアバターを最適化する(ここから)
- Mesh Bakerのトラブル関係
- Mesh Baker関連の記事
- Unity's Black Friday Week Sale 記事リンク
最適化の方法まで、かなり前置きが長いです!
急いでる方は目次からジャンプして下さい。
【Unity's Black Friday Week Sale】
— AssetSaleLove @汗人柱 (@AssetLove) November 21, 2018
Mesh Bakerの使い方記事
VRChat民のアバター・ワールドが少しでも軽くなるように!
アバターのメッシュとマテリアルを1つに結合する方法を簡単に解説します(ワールドも)
「Mesh Baker」50%OFFセール中
2018年11月21日 v3.26.1 https://t.co/wdBldfXXxR pic.twitter.com/oz7VO7iMK0
バーチャルYouTuber電脳少女シロの紹介
「Mesh Bakerとは?」
について、わかりやすく解説してくれるシロちゃんのメッセージを書き出しました。
頻繁にアップデートがあってサポートしてるのは知らなかった。
【Unite Tokyo 2018】バーチャルYouTuber電脳少女シロがご紹介する「2018年の注目アセット100連発」 - YouTube(47:36)
23:09〜Mesh Bakerの解説が始まりますよ。
「少しでも軽快に動かしたい!」
そんな時にスキンメッシュを組み合わせてカスタマイズしたり、
テクスチャをベイクしたりとメッシュとマテリアルを結合して
ドローコールを削減できちゃうのが、このメッシュ・ベイカーなんです。
頻繁に細かくアップデートを繰り返してくれるので、安心して使い続けられることで世界中から大人気なんですよね。
特にブイ・アールとか、エー・アールとか、エム・アールとか、
目新しいデバイスがどんどん出て来ているので、ますます人気が高くなりそうなアセットですよ!
VRChat用に使うMeshBaker
VRChatでは「アバター / ワールド」を軽くするための最適化アセットです。
アバターのメッシュは1つに結合して(消したり出したりしたいアイテム以外を)
マテリアル&テクスチャも1つだけにまとめちゃおう!
今回は難しい方の「アバター編」で紹介しますが、
ワールドもアバターとほぼほぼ同じなので参考にしてみてください。
最適化するキーポイント
VRChat人口が増えてきた事もあり、1つのインスタンスに何十人と集まっているのが珍しくなくなってきて、アバターの重さがよく話題に挙がるようになってきたので
— 🐾ぬこみや⑨バーチャルモデルクリエイター (@nukomiya09) April 14, 2018
「アバターが重くなる原因」と「解決策」そして「妥協案」をまとめておこうと思います。
#VRChat #VRチャット
VRC向けに「Mesh Baker」でやれること
VRC向けに下記ルールで最適化するよ!
◆ 準備編 ◆
Mesh Bakerでやれること
・アバターのメッシュを一体化する(選択したメッシュのみ結合させるよ)
・マテリアルとテクスチャの数を1つにまとめる
(複数のテクスチャはアトラスで合体!シェーダも1つにまとめます)
・ビジュアル重視の方向けにマテリアルを合体させず温存させる(これも解説)
専門用語無しでもっと優しく例えると、
・服や体を合体して、画像も1枚に合体。
・普段通りにアニメーションできるし、VRCで使えるキャラになる。
・画像をまとめると副作用でグラフィックに違和感が出るので、手を加えます。
VRCの最適化ポイント
・重たいシェーダは使わない(軽いシェーダに変更する)
・陰影処理等行わない(ライティングに左右されない)Unlitシェーダにする
・Dynamic Boneを多用しない。
・ボーン数を減らす
モデリングソフトを使うのはちょっと...な人はUnityでボーン付けができるこれ!
現在バンドル販売中の「Puppet3D」でもしかしたらボーン除去できるかも?
昨日購入したので、セール終了まで時間があれば試してみたいと思います。
マテリアル/シェーダを一体化したらどうなる?
Mesh Bakerでマテリアルを一体化した後は、
1つのシェーダになってしまうので設定する必要があります。
まだ始めてもいないのにシェーダ探しを進めるのは、今セール中だからです。
必要なアセットは先にチェックしておきましょう。メモメモ。
アニメっぽいキャラには「Standardシェーダ」は不向きなので、
・UnityデフォルトのUnlitシェーダ
※ 陰影処理等行わない(ライティングに左右されない)
・Mesh Bakerに付いてくるシェーダ(Unlitとほぼ変わらないかも?)
・Unity公式の「ユニティちゃんトゥーンシェーダー UTS2」オススメ(記事)
アセットストアで質感がぴったり合うシェーダを探す
↑今回は無料の「Toony Colors Free」を使います。
VRChat専用シェーダが最近リリースされました。
VRC専用に作られたシェーダがTwitterで話題になりましたね。
(今回のセールで来るかもしれないのでしばらく待ちましょう)
Mesh Bakerでアバターを最適化する(ここから)
さぁ、ここからスタートです。
◆ 一体化を試すアバター探し ◆
まずは素材を探しました。
ユニティちゃんでも出来ますが、基本的に手順は変わりません(次回記事で解説)
今回は最近リリースされた無料キャラ「アクワイアちゃん」で実践してみました。
【このコンテンツは、『アクワイアちゃんライセンス』で提供されています。】
最適化前のステータス
Batches: 18
SetPass calls: 13
アニメーションをします。一体化してアニメが再生されれば成功でしょう!
ブレンドシェイプに対応
Combine BlendShapes
顔の表情などによく使われているブレンドシェイプもMesh Bakerなら結合可能です。
しかしながら「アクワイアちゃん」にはブレンドシェイプがありません。
次回記事にて、ユニティちゃんで検証したいと思います。
チュートリアルを開く
Mesh Baker - YouTube(4:47)
※ ブログの解説がサッパリわからなくなったら見てください。
① 一体化できそうなオブジェクトを探す
※いきなり床が出現してますが、作業しやすい環境を整えてください。
1.「mesh」オブジェクトを非表示にすると、体、服、腕など
まとめて消えるため、これは一体化できます。
2.「root」を非表示にした場合、キャラに変化が無いため、
rootには目などメッシュが含まれて無いことが確認できます。
(ユニティちゃんの場合は、目などいくつかメッシュが含まれています)
「mesh」以降5つのオブジェクトが結合対象ですね!
② 一体化予定メッシュをGameObjectの子にまとめる
アクワイアちゃんの場合は「mesh」にまとまってたのでそのままでOKですが、
MeshBakerで一体化させるオブジェクトがバラバラに設置されてた場合は、
適当なGameObjectを作成して、子にまとめましょう。
③ MeshBakerオブジェクトを作る
GameObject -> Create Other -> Mesh Baker -> 「TextureBaker and MeshBaker」
を実行します。
- TextureBaker and MeshBaker:テクスチャ&メッシュの結合 ←今回はコレ!
- MeshBaker:メッシュのみ結合
- TextureBaker and MultiMeshBaker:テクスチャ&複数のメッシュ結合
- TextureBaker:テクスチャのみ結合
- Batch Prefab Baker:Prefabの結合?
- Bone Weight Copier:ボーンのウェイトをコピー(ベータ版)
すると、Hierarchyに「TextureBaker (0)」オブジェクトが作られます。
選択するとInspecterビューに沢山情報が表示されてますが、安心してください!
必要な機能だけ使って簡単に解説しますね。
ここで作業の流れをざっくり解説(まだやらないで)
↓ 作業対象のオブジェクトを登録 ←次ここやります
↓ 新規マテリアルを作成(結合結果が入る)
↓ テクチャ&シェーダを結合してマテリアルにセットされる
↓ メッシュを1つに結合する
↓ 本体を非表示にする(エディタの機能で)
↓ 見た目の良いシェーダに変更
↓ Animatorの設定を変更
↓ 完成!元素材と同じように扱えます。アニメーションも再生するよ
慣れれば3分程度でパパッと出来ます。
とても簡単なので挑戦してみましょう!
④ 「Open Tools For Adding Objects」をクリックする
するとメニューウィンドウが表示されます。
⑤ 「Exclude meshes with out-of-bounds UVs」をOFF
現れたメニューで、右側のタブ「Serch For Meshes To Add」をクリックします。
「Exclude meshes with out-of-bounds UVs」フラグをOFFにします。
⑥ Hierarchyで結合したい親オブジェクトをクリックする
エディタウィンドウは開いたままにして、
結合させる親オブジェクトである「mesh」をクリックして選択状態にします。
⑦ 「Add Selected Meshes To Target」ボタンをクリック
「Add Selected Meshes To Target」ボタンをクリックすると
ちょっと分かりづらいですが、上部のテキストに文章が追加されます。
Added 5 object to Texture Baker(0)
5つのオブジェクトが追加されましたよ
これで 「TextureBaker (0)」オブジェクトに情報が含まれました。
⑧ Hierarchyの「TextureBaker (0)」を選択する
「MB3_Texture Baker」コンポーネントにて、
Outputの
「Create Empty Assets For Combined Material」ボタンをクリックします。
結合結果のアセットの保存先を決める
「∨」:保存先のPathを指定
Save As:任意でファイル名を入れる
全て終えたら「Save」を実行します。
すると、
Projectには、2つのファイルが作られます。
マテリアルには結合結果が入ります。
ボタンの下にもTexture Bake Resultで結果が入りました。
⑨ 「マテリアル / シェーダ」を一体化する?しない?
「Multiple Combined Materials」フラグでON / OFFできます。
・マテリアルを一体化する場合
デフォルトの場合はチェックOFFのまま何も触る必要はありません。
最高の最適化!断然早くなります!
デメリット
シェーダはどれか1つになってしまいます。
つまり、複数のシェーダが使えなくなるため、
別のシェーダでカバーしてあげる必要があります。
シェーダを変更したり、テクスチャを修正しても改善しない場合は、
後者の「複数マテリアルを持つ方法」を選択しましょう。
・マテリアルを一体化しない場合
ONにすると、複数のマテリアルで出力してくれるようになります(配列で持つ)
クリックするとリストが現れます↓
含まないマテリアルは「-」で消す事もできます(エラーが出たときなどに)
今回は、前者のマテリアルを結合する方法で解説します。
「Multiple Combined Materials」フラグをOFFのままにしておきましょう。
⑩ マテリアルをBakeする
⑨にチェックを入れた場合、入れなかった場合、どちらも実行してください。
紫色のボタン「Bake Materials Into Combined Material」を実行します。
マテリアルがジェネレートされて完成です!
19秒程で、テクスチャがアトラス化(一体化)されて、シェーダも1つに。
マテリアルが1つに結合します!
解像度が4090で大きすぎましたね、空白がすごい!
テクスチャサイズを小さくして最適化しましょう。
Max Atlas Size値を2048まで下げて再びBakeしよう。
隙間無く綺麗に収まりました。これでテクスチャ編は完成です!
⑪ メッシュを結合する
「Hierarchy」ビューを開いて、
「TextureBaker (0)」の子、「MeshBaker」を選択します。
Inspector画面
沢山設定できる情報がありますが、大切なのは
「Renderer」の項目です。
デフォルトでは「Mesh Renderer」になっており、
ワールドを作る人はこのままでOKです。
キャラクターの場合は
Rendererを「Skinned Mesh Renderer」に変更します(重要)
ブレンドシェイプを含む場合
まだ試してないので足りないかもしれませんが、
「Include Blend Shapes」にチェックを入れるだけで対応できるかもしれません。
Bakeする
設定が終わったら「Bake」をクリックしましょう。
何事も無ければコンソールにインフォメーションが表示されます。
⑫ メッシュが結合したオブジェクトが生成される。
Hierarchyに「CombinedMesh-MeshBaker-mesh」が作られました。
ちなみに、これだけ表示したり移動しても中身は透明?で表示されません。
「Skinned Mesh Renderer」を扱う時の場合のオブジェクトだと思えば良いです。
⑬ 本体を非表示にする
Hierarchyにて、MeshBakerを選択してInspectorを開きます。
「Bake」の下にあるボタン
「Disable Renderers On Source Objects」を実行しましょう。
ソースオブジェクトを非表示にして、
MeshBakerが作り出したキャラクターに切り替えます。
トグルになってますので、元に戻したい時もワンクリックです。
若干違いが出る程度な仕上がりになった
表示 / 表示のトグルを切り替えてみた↑
シェーダは全て
Chara_Parts(Body)で表示されています。
服にもBodyのシェーダが適応されちゃってますが、
それほど違和感が無かったのは良かったですね。
⑭ アニメーションさせてみる
すると何故か動きません。
(コピーではなく、元のPrefabのままMesh Bakerは使えます)
この問題を解決する方法を紹介します。
⑮ Bakeされた後のAnimator設定
「アクワイアちゃん」の場合、AcquireChanオブジェクトにAnimatorがあります。
Animator設定の「Culling Mode」これが重要!
Culling Modeを「Always Animate」にチェンジしてみてください。
そして再生すると...
バッチリ再生されるようになりました!!
アニメーションのStateを比較
Batches: 16 (最適化前は24)
SetPass calls: 16 (最適化前は20)
静止してる状態のパフォーマンス
Batches: 6 (最適化前は18)
SetPass calls: 6 (最適化前は13)
半分以下になる素晴らしい結果が出ました!!
パラメータ次第でもっと軽く最適化できると思います。
みなさんも色々試してみて下さい。
⑯ 最後の仕上げ
作業用のスクリプトが入ってる「TextureBaker (0)」オブジェクトを削除しましょう!
これでスクリプトを持たないアバターの完成です。
Directional Light消したら3になりました。軽っ!
⑰ VRデバイスでコントロールする場合
元のキャラクターがそのまま使えますので、
普段通りの手順で大丈夫です。
オマケ:MeshBakerを非表示にせず移動するとこうなる
おそらくStandardシェーダで表示されたキャラが重なって表示されているみたい。
MeshBakerを使わないことにした。という場合はこの2つを完全消しましょう。
Mesh Bakerのトラブル関係
ガビガビ模様が現れた場合の対処法
MeshBakerした後にMixのDirectionalLightをBakeするとなんかガビガビの模様ができることあるでしょ~(なぜか再現できないので画像無し) あれの原因、MeshBakerする前のMeshのOptimized Realtime UVsにチェックが入っていないとなるみたいなのだ。理屈は分からない🤤 pic.twitter.com/o89cVw4wcR
— 動く城のフィオ⚙仮想空間興行師⚙ (@phio_alchemist) September 26, 2018
MeshBakerする前に「Optimized Realtime UVs」にチェックを入れてBakeすると改善するそうです。
Mesh Baker関連の記事
「Mesh Baker free」の制限について
・1回辺りの頂点数は65kまでの制限があります。
・
無料版は一回あたりの頂点数の制限(65k)、シェーダーの制限、プレハブ化の制限がある
「Simplest Mesh Baker」vs「Mesh Baker free」
2018年5月24日に、新作無料アセットで「Simplest Mesh Baker」という、
「Mesh Baker」の亜種がリリースされました。
Simplest Mesh Bakerの特徴
・ボーン持ちキャラクターから骨を焼く「Bake Bones」
(ポージングした状態でボーンを焼いて通常のメッシュにしてくれる)
・とにかくシンプル!右クリックメニューから一体化させるだけ!初心者大助かり
・同じマテリアルを結合します。Unity標準以外のカスタムシェーダに対応
vs
「Simplest Mesh Baker」 vs 「Mesh Baker Free(本家体験版)」
今見ても面白い記事を作りました。無料で節約したい方は参考にどうぞ!
2018年5月24日にまとめました。
複数のテクスチャを配列化する最適化
Mesh Bakerの弱点(タイリング問題)を補ってくれる新作アセットが出たばかり!
2018年9月27日に紹介
今日気付いた事ですが、「Mesh Baker」も配列でマテリアルを持つ事ができるので、
基本的には同じことができると思います。
Mesh Bakerの使い方も解説してますので参考にしてください。
アセット説明(機械翻訳)
Unity 5.5.1 以降のバージョンが必要メッシュとマテリアルを混合してドローコールを削減。テクスチャ・パッカーも含めましました。!
マテリアルがシェアできるように固定モデルとアトラスを作成して(for static/dynamicbatching)
インポートされたモデルの固定スケーリング、ローテーションとトランスレーション
* どんなマテリアル・シェーダーにも対応
* フル複数マテリアルサポート
* スキンメッシュを組み合わせてカストマイズ
* UV、ノーマル、タンジェントは自動的に調整
*ティルトテクスチャをベイク
* フルライトマップ・Pingサポート
*ソースアセットはそのまま
* 簡単、スクリプティング必要なし、5分で学習
* ランタイムAPI
*ネガティブスケーリングもできます。
ランプブラシの作者から、ファスト・シャドー、メッシュ・マスター。
今、 メッシュベーカーLOD!
も発売中(メッシュベーカーが必要)
フォーラム
ウェブサイト
YouTube
前回セール情報
2018年5月頃のMADNESS SALEにて30%OFFで登場しました。
パブリッシャーのアセット(記録用)
【毎日更新】アセット割引情報サイト
毎日リアルタイム更新。
「作家セール、無料アセット、新作アセット」お得な最新情報を入手しよう!
※ 土曜・日曜・月曜はアセットストアのお休み。
今年のイチオシアセット
バーチャルYoutuberシロがご紹介する2018年度のオススメアセット
過去セールから神アセットを探す
過去大セールで登場したタグです。ぜひご活用下さい。
- MADNESS SALE カテゴリーの記事一覧 - Unity AssetStoreまとめ
- Back to School セール カテゴリーの記事一覧 - Unity AssetStoreまとめ
- Unite 2017 Tokyo記念セール カテゴリーの記事一覧 - Unity AssetStoreまとめ
- Biggest Sale Ever カテゴリーの記事一覧 - Unity AssetStoreまとめ
- Wishlist Sale カテゴリーの記事一覧 - Unity AssetStoreまとめ
- Holiday Sale カテゴリーの記事一覧 - Unity AssetStoreまとめ
※右サイドバーの「月別アーカイブ」や「タグ」からチェックすることもできます。
アセットの検索方法
アセット名、パブリッシャー名など入力してご活用下さい。
↑ ブックマークしておくと超便利!オススメ
【2018年度】無料化&無料アセットまとめ
【3Dモデル】
【シェーダ・パーティクル・Skybox】
【テクスチャ&マテリアル】
【過去ログ】無料アセット
【過去ログ】作者セール&注目アセット
この作品はユニティちゃんライセンス条項の元に提供されています
Unity's Black Friday Week Sale 記事リンク
56種類 全品50%OFF記事
-
アセットストア今年最後の大セールがスタートしました!57種類、全品50%OFF / 今年の目玉は「バンドル販売」まとめ買いが55%OFFでお得!
-
Mesh Bakerの使い方記事! VRChat民のアバター・ワールドが少しでも軽くなるように! アバターのメッシュとマテリアルを1つに結合する方法を簡単に解説します「Mesh Baker」
-
『全56アセットを一気に紹介』買い忘れが無いか最終チェック記事(アセットストアのブラックフライデーセールは明日 11月26日16:59に終了します!) ←NEW
↑ 数が少ないのでペースあげてきます!(全57アセット紹介目指します)
デイリーセール一覧(当日限り16:59まで 70%OFF)
-
プロシージャルで本格的な地形作り!リアルで美しい地形をランダムジェネレートするTerrain系エディタ「World Creator Professional」
-
大規模MMO開発キット!Atavism専用サーバーでオンラインゲーム開発「Atavism 2018.3 OP Standard」
-
キャンディを3つ以上つなげて消してクリア条件を達成する大人気ゲーム「キャンディクラッシュ」風パズルゲームの完成プロジェクト「Candy Match 3 Kit」
-
Googleストリートビュー(屋内版)のようなサービスが作れる360度パノラマ映像ツアー!「Complete 360° Tour」
-
崩壊した世界で生存者が生き残りをかけてゾンビと戦う大規模ローポリ3Dモデルパック!「Simple Apocalypse - Cartoon Assets」