メッシュでのベイク処理 とは、システムアバターのベイク処理テクスチャをメッシュアタッチメントで表示できるようにした機能です。
ベイク処理テクスチャとはどのようなもので、これがメッシュに必要なのはどうしてですか?
標準のシステムアバターを使用した場合、複数のテクスチャレイヤーでスキンをカスタマイズしたり、タトゥーや衣服のレイヤーを追加したりできます。処理時間を節約し、どのシステムでも全員に同じアピアランスを表示するため、これらのテクスチャは、サーバーにより単一の結合テクスチャに「ベイク処理」されます。以前であれば、カスタムメッシュボディパーツを使用して同種のカスタマイズを行う場合、ボディパーツに独自のテクスチャシステムが必要でした。 さらに、通常は、基本的な標準アバターのボディパーツに「アルファ」ウェアラブルを適用して、メッシュ部分を妨げないように隠す必要がありました。メッシュでベイク処理を行えば、システムスキンやその他のレイヤーをアバターに適用した後(アルファレイヤーは不要または望ましくない)、生成されたベイク処理テクスチャをメッシュのボディパーツに適用するようビューワに指示することができます。基礎となるシステムアバターのパーツは自動的に非表示になるため、アルファウェアラブルは必要ありません。
主な機能
- メッシュオブジェクトのどの面にも、サーバーベイク処理テクスチャを使用してテクスチャを作成することができます。
- いずれかのアタッチされたメッシュがベイク処理テクスチャを使用していると、システムアバターの対応領域は非表示になります。
- 新しいテクスチャベイク処理チャンネルの導入で、メッシュのテクスチャリング方法をより細かく制御できるようになりました。
- 新しい「ユニバーサルウェアラブル」に、新たなテクスチャチャンネルのサポートが追加されました。
メリット
- アプライヤーが必要でないため、カスタマイズのワークフローが簡単にできます。
- オニオンスキンアバターが必要でないため、表示時のメッシュとテクスチャが減らせます。
- フルパーマメッシュを販売する必要がありません。ユーザーは、メッシュ自体を変更せず、適切なウェアラブルを準備するだけで、「メッシュでのベイク処理」を使用するよう設定されたすべてのメッシュをカスタマイズできます。
仕組み
ウェアラブルなベイク処理チャンネル
アバターウェアラブルは、ベイク処理サービスにより伝統に従い、6 種類のテクスチャ(BAKE_HEAD、 BAKE_UPPER、 BAKE_LOWER、 BAKE_EYES、 BAKE_SKIRT、 BAKE_HAIR)にベイク処理されています。これらテクスチャは、アバターのさまざまなウェアラブルアイテムで対応テクスチャを合成することにより得られます。たとえば、1 枚のシャツは「上部」テクスチャを決定し、複数のレイヤーから成るシャツは最終的なテクスチャを BAKE_UPPER 仕上げることになります。
「メッシュでのベイク処理」プロジェクトには、以下の 5 つの新しいベイク処理チャンネルも追加されました。 LEFT_ARM_BAKED、 LEFT_LEG_BAKED、 AUX1_BAKED、 AUX2_BAKED、 AUX3_BAKED。オリジナルテクスチャとは異なり、システムアバターはこれらのテクスチャをいずれも使用しません。これらは、メッシュのアピアランスをより細かく制御できるようにする単なる拡張機能です。
- LEFT_ARM_BAKED と LEFT_LEG_BAKED は、左右の手足のテクスチャが異なるメッシュアバターの作成をサポートするためのものです
- AUX チャンネルは用途が広く、(翼など)システムアバターが所有しない身体領域やその他の目的に使用できます。
全部で、テクスチャに使用するウェアラブルと、ベイク処理サービス向けに 11 チャンネルの利用が可能です。
ユニバーサルウェアラブル
新しいチャンネルは、そうしたチャンネルを使用するアイテムを装着する何らかの方法がない限り、役に立ちません。このニーズを満たすために、「ユニバーサル」と呼ばれる新しいウェアラブルタイプが追加されました。ユニバーサルウェアラブルには、新旧 11 種類のベイク処理チャンネルすべてに対応するスロットがあります。レイヤリングの順としては、ユニバーサルなウェアラブルは、皮膚やタトゥーのウェアラブルより上、その他すべてのタイプの衣服より下に重ねられます。
ベイク処理されたテクスチャを使用するためのメッシュ設定
これらのテクスチャを、以下の要領で、アバターのアタッチメントの拡散テクスチャに適用できるようになりました。
- アタッチメントを右クリックして [編集] をクリックし、[面の編集] メニューからテクスチャを選択します。
- 拡散テクスチャアイコンをクリックして、テクスチャピッカーを開きます。
- テクスチャピッカーには、サーバーベイク処理を選択するための「ベイク処理」と呼ばれる追加のラジオボタンモードがついています。「ベイク処理」ラジオボタンモードには、サーバーベイク処理テクスチャを選択できるドロップダウンがあります。
アタッチメントがベイク処理テクスチャを使用していると、システムアバターの対応する基本メッシュ領域は非表示になります。
メッシュ面がベイク処理されたテクスチャを表示するように設定されていても、アバターにアタッチされていなければ、デフォルトのベイク処理テクスチャが表示されます。メッシュでのベイク処理をサポートしていない古いビューワを使用している場合、ベイク処理テクスチャを表示するよう設定された面もデフォルトのベイク処理テクスチャとして表示され、ベースメッシュ領域は非表示にはなりません。
オリジナルのベイク処理チャンネルの「フォールバック」テクスチャ。メッシュでのベイク処理をサポートしていないビューワでは、ベイク処理済みテクスチャの代わりにこれらの画像が表示されます。また、メッシュでのベイク処理を使用するよう設定されている非アタッチメントオブジェクトでもこれらが表示されます。新しいベイク処理チャンネルには、同様のフォールバックテクスチャがあります。
新しいチャンネルでの作業
新しいベイク処理チャンネルは、オリジナル の 6 チャンネルとは少し異なる方法で処理されます。上半身のようなオリジナルチャンネルでは、コンテンツに影響を与える可能性のある数タイプのウェアラブルがあり、テクスチャスタックの下部には常にスキンのベースレイヤーがあります。よって、アルファウェアラブルを使用していない限り、ベイク処理は常に不透明になります。新しいチャンネルでは、唯一のテクスチャはお手持ちのユニバーサルウェアラブルにより提供されるものであることから、結果として生じるベイクは 潜在的に透明になる可能性があります。「ユニバーサルアルファ」ウェアラブルは存在しないため、これが現在新しいチャンネルを透明にする 唯一の 方法であることにご注意ください(将来的にはこのようなウェアラブルを追加する可能性があります)。
新しいチャンネルの 1 つで透明なベイクを使用してメッシュを部分的に透明にしたい場合は、その面のアルファモードを「アルファブレンディング」に設定する必要があります。
たとえば、この場合、透明なリングテクスチャを持つユニバーサルウェアラブルが 1 つあります。テクスチャが上半身と左腕のチャンネルに適用されています。アルファモードがアルファブレンディングに設定されてます。結果:上半身と右腕が不透明です。これは、すべての底部に不透明なスキンレイヤーがあるためです。左腕は透明で、トランスペアレンシーが適用されているため、左腕の一部が透けて見えます。 | |
同じ衣服で、アルファモードを「なし」に設定すると、このように表示されます。透明領域の下部にフォールバックカラーが表示されて、左腕が不透明になることに注目してください。 | |
左腕のチャンネルに適した不透明なスキンテクスチャの ユニバーサルウェアラブルを追加すると、この結果が得られます。アルファモードを「なし」に設定しても「アルファブレンディング」に設定しても、ここでは両腕が不透明です。 |
Animesh での作業
Animesh オブジェクトは、アタッチされたときの扱いが少し異なります。独自のスケルトンを持っているため、アタッチされているアバターとは無関係にテクスチャが作成されます。アタッチされた Animesh オブジェクトは、「メッシュでのベイク処理」を サポートせず、上記のプレースホルダーテクスチャを使用してメッシュ上でベイク処理テクスチャを表示します。
スクリプトのサポート
「メッシュでのベイク処理」は、各ベイク処理チャンネルに対応する特別なテクスチャ ID を定義することで機能します。各チャンネルに対応する LSL 定数があるため、メッシュ面向けにメッシュでのベイク処理を有効にするスクリプトを作成することもできます。LSL 定数は次のとおりです。
- IMG_USE_BAKED_HEAD
- IMG_USE_BAKED_UPPER
- IMG_USE_BAKED_LOWER
- IMG_USE_BAKED_EYES
- IMG_USE_BAKED_SKIRT
- IMG_USE_BAKED_HAIR
- IMG_USE_BAKED_LEFTARM
- IMG_USE_BAKED_LEFTLEG
- IMG_USE_BAKED_AUX1
- IMG_USE_BAKED_AUX2
- IMG_USE_BAKED_AUX3
これらは、 llSetLinkTexture()や llSetLinkPrimitiveParamsFast() などのコマンドで使用できます。例:
llSetLinkPrimitiveParamsFast(0, [PRIM_TEXTURE, 0, IMG_USE_BAKED_UPPER, <1.0, 1.0, 0.0>, ZERO_VECTOR, 0.0]);
この場合、リンクされていないプリムの最初の面を設定して、上半身のベイク処理テクスチャを使用します。
ステップバイステップ例
ここでは、システムアバターを、「メッシュでのベイク処理」を使用したシンプルなメッシュアバターに変換します。
1.「メッシュでのベイク処理」対応ビューワを使用してログインします。 | |
2. [開発] メニューを有効にします。表示されていない場合は、 [私] > [環境設定] に進み、[詳細設定] タブで [開発メニューを表示] をクリックします。 | |
3.[開発] メニューで、 [開発] > [アバター] > [キャラクターテスト] > [男性をテスト] を選択します。これで、標準システムアバターが表示されます。 | |
4. このシステムアバターを置き換えるには、メッシュアバターが必要です。ウェブブラウザで、 https://jira.secondlife.com/browse/BUG-139234 を表示させて、添付ファイル「aditya_90.dae」をダウンロードします。 | |
5. セカンドライフビューワで、 [ビルド] > [アップロード] > [モデル] と進んでファイル「aditya_90.dae」をダウンロードします。アップロードのオプションで、 スキンの重さを含める にチェックを入れます。モデル名を「aditya_90」に設定します。 | |
6. [重量と料金の計算] をクリックして、アップロードします。これで、インベントリに「aditya_90」というメッシュモデルが表示されるはずです。これをインベントリでダブルクリックして自分に添付します。 | |
7. この時点で、システムのアバターに二重焼き付けされた白いデフォルトテクスチャでメッシュが表示されます。次に、メッシュを「メッシュでのベイク処理」を使用するよう変換する必要があります。これにより、システムアバターも非表示になります。 | |
8.アバターを右クリックして、[編集] を選択します。編集ダイアログで、「面を選択」を選びます。アバターの胸をクリックして、上半身を選択します。 |
|
9. [テクスチャ] タブで、白いテクスチャ領域をクリックします。 | |
10. [ベイク処理] テクスチャオプションを選択して、プルダウンで「BAKED_UPPER」の値を選びます。[OK] をクリックします。 | |
11. 白の素材を余分に使用せずに、アバターの上半身に正しくテクスチャが表示されるはずです。表示されているのは、上半身のベイク処理済みテクスチャでテクスチャ処理されたメッシュサーフェスです。上半身のシステムアバターが非表示になります。 | |
12. 他のボディ領域に対してもこのプロセスを繰り返します。
|
|
13. すべての面を正しく選択して修正するのは少々困難を伴います。失敗した場合は、失敗した面でもう一度試しましょう。最終的には、アバターはこのようになります。 | |
14. 髪はこのメッシュ用に作成されたアタッチメントではないため、あるべき姿とはなっていません。右クリックで [デタッチ] を選択すると削除できます。 | |
この時点で、完全にメッシュでのベイク処理を使用するよう構成されたメッシュアバターが作成されています。次は、システムアバターと同じ方法でこれをカスタマイズできます。たとえば、衣服のアイテムを取り除けます。 | |
または、スライダーを使用して目の色などをカスタマイズできます。 | |
システムアバターのアピアランスに戻したい場合は、メッシュをデタッチするだけです。 |
テストコンテンツ
メッシュでのベイク処理の使用を希望するクリエイターを支援するコンテンツ例をいくつか用意しました。
- https://jira.secondlife.com/browse/BUG-139234 添付ファイル「Aditya_for_BOM.dae」は左腕と左足向けに個々の面を持つアップロード可能なモデルファイルですので、新しい左腕と左足のチャンネルで使用できます。
- https://jira.secondlife.com/browse/BUG-139234 添付ファイル「aditya_90.dae」はアップロード可能なモデルで、 頭部、上半身、下半身などに対応する定義済みの面のオリジナルセットが含まれています。このモデルでは、左手足と右手足が同じテクスチャを使用して 表示されています。
既知の問題点
以下の既知の問題が、「メッシュでのベイク処理」の初期完全リリースにおいて見られます。
- BUG-225518 "The Bake texture on linked objects is shown with a delay of 5-7 seconds when linked objects are added from the ground". This is a lag in the update of appearance for a newly attached object using Bakes on Mesh textures.
- BUG-227532 "[BOM] some mesh objects render alphas incorrectly using BAKED_SKIRT when system skirt has a transparent texture in local edit modes". This is a transient graphics issue seen when in local edit mode, when customizing your avatar. Goes away when you leave local edit.
- BUG-227533 "[BoM] alpha layering errors in local edit mode". Some objects may show incorrect alpha masking behavior in local edit. Goes away when you leave local edit.
- BUG-227534 "[BoM] baked texture offset values on a sphere skew in local edit modes". Transient issues with texture offsets while in local edit, similar to issues seen in previous non-BOM releases. These issues resolve when you leave local edit.
- BUG-227535 "[BoM] Using the skirt channel in a universal wearable breaks the length of any existing system skirt". If your avatar has a system skirt (skirt wearable), and you are using a universal wearable with a skirt channel texture, then the length of the skirt will display incorrectly as maximum length. This is an issue with the baking service rather than the viewer itself.
- BUG-227537 "[BOM] When Alpha Wearable is applied, BoM attachments with Alpha mode: None turn red". If you make your avatar invisible using an alpha wearable, and then apply this invisible baked texture to an attachment using Bakes on Mesh, you get a solid color, red, shown on the attachment. Probably this should be the base color of the attachment instead.
- BUG-227536 "[BOM] Avatar does not cast accurate shadow if Alpha mode = Alpha blending". This is a pre-existing issue with alpha blended objects attached to avatars, but may be seen more often with Bakes on Mesh.
There are no comments to display.