メインコンテンツまでスキップ

TexTransTool v0.9.0 について

· 約43分
Reina_Sakiria
TexTransTool Developer

どーもどーも! Reina_Sakiria です!v0.8.0 に引き続き詳細な Changelog の解説をやってゆくよ~!

すべてを一覧したい人はこっちね

ひとつづつ見ていくよ~

変更点について

このあたりは、 TTT のコンポーネントの動作するか否かや順序制御にまつわる変更だね !細かく見ていこうか

  • テクスチャやマテリアルの範囲を切り分けることができる DomainDefinition が追加されました (#626 #802)

SubDomain のという概念を生やして、アバター内で同一テクスチャを使用しているオブジェクトに対して片方にだけ Decal を適用するような動作をできるようにしようかとも考えたんだけど、メンテナンスコストや必要性の低さなどを理由に断念、結局実装が破棄されたのでしまったので SubDomain 機能を失ってしまって DomainDefinition は VRChat-Avatar 用途では何の効果も持たなくなっちゃった

まぁでも TTT-WorldExtension にて効果を持つ存在になります。 VRChat-Avatar 以外の環境でとりあえず動かすためのマーカーとしての運用に今後はなるでしょう。 ちなみに 過去の TTT のバージョンにはこれに近い存在があったりもしましたが今とは結構違う形だったかも。

  • 親の GameObject が無効な場合でも それの配下のコンポーネントが動作するようになる IsActiveInheritBreaker が追加されました (#626)

これは、新規コンポーネント。 GameObject ヒエラルキー的に無効な場合でも動作できるようにするハック的なコンポーネント、このあたりのヒエラルキー的に無効か否か関連の内部的な API はもう少しいい感じにして AtlasTexture やほかコンポーネントに対しても動作するようにしたいところだなぁ

  • TexTransGroup や PhaseDefine がお互いどちらかが子になるような条項が発生した場合、一番上段に存在するほうの効果が優先されるようになりました (#626)

今までは PhaseDefine が勝ったり、TexTransGroup が効果範囲を広げたりと、微妙にややこしいから一番上段の効果が優先でそれ以下は何の意味も持たない形に破壊的変更しました。 気を付けてね!

  • コンポーネントを入れ子の状態にすると、入れ子にされたコンポーネントは動作しなくなるようになりました (#626)

これは AsLayer を実装するために必要で、 v0.8.0 から警告を表示していたものが実装された形だね。 今後は TTT のコンポーネント配下に TTT のコンポーネントを入れた場合動作しなくなるから気を付けてね!

  • TextureStack のマージタイミングが全フェーズの直後に行われるように変更されました (#626)

これは ... DomainDefinition の追加に伴って SubDomain の概念が一度追加されたときに、すべてのフェーズの終わりに行う必要があったからこうなったのだけど ... SubDomain がキャンセルされちゃったから、ただただ全フェーズの終わり(直後)に行われるようになったという形だね!

まぁマージが行われるタイミングが増えたのでトリッキーなことが以前よりもしやすくなったかも ... ?

  • TextureStack のマージタイミングの変更に伴い NDMF-Preview のオンオフできるフェーズの単位が細かくなりました (#626)

一つ上のマージタイミングの変更に伴い NDMF-Preview のフィルターが細分化された影響で NDMF Preview のオンオフできる単位が細分化されたんだ~

  • TexTransGroup や PhaseDefine が 子の一段目までを保証していたのが、再帰的にすべての子まで保証するようになりました (#802)

これは ... TexTransGroup や PhaseDefine が入れ子になった場合の挙動変更に伴い、一段目の拘束の必要性はないなとも思って、外しました! これからは最上段の効果が再帰的にすべての子まで効果が及ぶよ!


AAO との API 連携関連だね~

v0.8.x のパッチに cherry-pick しちゃったからここに書くのもなんだけど ...

  • AAO:Avatar Optimizer の RemoveMeshBy*** と併用した時に AAO の API を用いて AtlasTexture が不要な領域をアトラス化しないようにする連携機能が追加されました (#670)

AtlasTexture と AAO の RemoveMesh 系を使っていると無駄が若干出るのを回避できるってかんじだよ~!

  • AAO:Avatar Optimizer と AtlasTexture を併用した時に UV を退避し AAO の API に報告し、 AAO の UV を使用する機能と互換性を保つ機能が追加されました (#687)

AtlasTexture と RemoveMeshByMask の互換性問題を回避できるんだ~!

ちなみに、ここにしかまだ書いてないのだけど(このブログを書いた時点では) ... TTT NegotiateAAOConfig というものがあってこれを AvatarRoot につけることでこのあたりの挙動を調整できるんだよね、まぁ使うことないだろうけどなんかあったら使う必要が出るかもしれない ... ?


  • TexTransTool のほとんどのコンポーネントの処理使用される VRAM使用量が削減されました (#672)
  • (Experimental) MultiLayerImageCanvas の処理時に必要な VRAM 使用量が大幅に削減されました (#672)

これはね ... TexTransTool のコア部分の大幅な書き換えの影響だね!代替のコンポーネントが少し削減されたと思う。 それと同時に MultiLayerImageCanvas は内部的な実装も大幅に変わって、通過レイヤーフォルダーの取り扱いが改善されてかなりメモリの消費量が減ったんだ!いい感じなの!

ちなみに MultiLayerImageCanvas の内部実装は TexTransCoreEngine(TTCE) とか呼んだりしてるインタフェースの操作になってるんだ~これによって、 MLIC の処理が抽象化されたインターフェイスへの呼び出しとなって、 Unity の グラフィック API を呼び出すものにしたり、はたまた TTCE-Wgpu という Wgpu を呼び出す実装に差し替えて、 Unity を完全に捨てた状態で動作できるようにもなったんだ~!


  • BlendTypeKey の ポップアップ のラベルが日本語化されるようになりました (#676)
  • (Experimental) 実験的な機能として、HLSLで特定の関数を記述し .ttblend にすることで ScriptedImporter 経由で 合成モードの追加が可能になりました (#676)

BlendTypeKey こと合成モードの仕組みが書き換わって 特定の拡張子で シェーダー を書くと追加できるようになったんだけど、その時にコメントに情報を埋め込む軽い方言のようなものを実装したからそこで合成モードの日本語の表示名とかを書き込めるようにしたことでポップアップのラベル日本語化化可能になったんだ!

合成モードは日本語じゃないとなじみがない物が多くて、あった方が非常に良いとも以前から思っていたからうれしいのよね! まぁ私 TTT を 1年以上使用しているわけだから ... もう英語名に慣れてしまってどっちでもよくなってしまったんだけど ...


  • SimpleDecal の SideCulling が BackCulling に名前変更されました (#692)

これね ... ややこしいから BackCulling って感じで裏面がカリングされることを分かりやすくした感じ!


  • SimpleDecal や SingleGradationDecal の内部実装が通常のレンダリングを用いたものから ComputeShader 実装になり、パディング生成が v0.2.x の頃のような高品質なものになりました (#727)

TexTransTool のコア部分の書き換えに伴い、レンダリングパイプラインを使いずらかったのもあり、今の私だったら、パディング生成が可能な UVtoUV のコンピュートシェーダーを高速に実装できると思って、実装したんだ~!

結果的に同等レベルの速度で動作してると思う!(調査してない) 技術的には先祖返りなんだけど、パディングの生成に関しては昔の方がよかったからね~!それを高速で出来ているかやかなりいい感じってわけ!


  • 一部の場合で Material が一時アセットだった場合に複製せずにテクスチャを置き換えるようになりました (#744)

内部的な API を新しいものを使わせるというのもあるけど、これによって無駄なマテリアルの複製が走らなくなったからビルドは若干早くなったし、これの影響で NDMF Preview の方も少し高速化ができたんだ!


  • SimpleDecal に Select Mode が追加され 既存の方法は Manual に そして新規に、範囲内であれば自動で選択され、マテリアルでフィルタリングも可能な Auto が追加されました (#753)
  • SimpleDecal の MultiRendererMode は削除され、デフォルトで複数レンダラーを選択可能になりました (#753)
  • (Experimental) SingleGradationDecal にも RendererSelectMode が追加され SimpleDecal のような レンダラーを手動で指定する事が可能になりました (#753)
  • (Experimental) SingleGradationDecal がデフォルト設定では 無効なレンダラーに対して描画しないようになりました (#753)

これは SimpleDecal と SingleGradationDecal のレンダラー選択関連の共通化だね! これによって SimpleDecal でしかできなかったレンダラー直接指定が SingleGradationDecal でも使用できるようになったり、 SingleGradationDecal しかできなかった マテリアルベースでの選択が、 SimpleDecal でも使えるようになったんだ~!

まぁこれによって SimpleDecal のデフォルト設定は結構動作が重くなっちゃったんだけど ... まぁ仕方ないね、今後もっと最適化するからそれで ...


  • AtlasTexture が誤って Renderer.enabled が無効なレンダラーを IncludeDisableRenderer が無効な場合に含めてしまっていた問題を修正 (#756)

ずーーーっと見落としていたバグ、気を付けようね!


  • TexTransTool の内部処理で使用される RenderTexture の Format を指定できる設定 InternalTextureFormat が Tools/TexTransTool に追加されました (#774)

TexTransTool のコア部分の大幅な書き換えのおかげでできるようになったから調節できるようにしました! これによってメモリ消費量と引き換えに内部処理が以前よりも高品質にできるよ!やったね!


  • Migrator ウィンドウにて、マイグレーションする必要のない Prefab が選択できたり、実行対象に含まれてしまう問題を修正 (#779)

細かい挙動のバグ修正だね!


  • Packages 配下にある Scene を誤ってマイグレーションしてしまっていた問題を修正 (#779)

NDMF Preview のための Scene を触ってしまったりと ... ちょっとあれだったから、そもそも Packages 配下にあるものには触らなくなりました。

まぁそこら辺に TTT のコンポーネントがあるとも思えないし ... ね!


  • NDMF Preview にて 同一フェーズ に限り、 MaterialOverrideTransfer などのマテリアル改変系コンポーネントの影響でプレビュー範囲が変わるコンポーネントが正しい範囲で行われるようになりました (#806 #828 #830)

実装によって遅くなったり無限ループしたりと、様々あったのだけど ... NDMF Preview の方からがうまくこの問題に対して対処出来たら ... うれしいなぁ

まぁひとまずはこの同一フェーズに限りの特殊仕様を用いてプレビューできるようにしましょう!

これがいつまで保証されるかは謎です。

というかこれ実験的機能の方の ChangeLog に書くべきですね ...


  • 色合成をしない特殊な色合成、 ExtraColorBlending に属するいくつかの色合成が追加されました (#812)

私が エミッションマスクなどを作るのに使っていたいくらかの物を TTT の方に移植と、ついでになんか面白そうなのを新規実装しました! それぞれ名前の通りなので適当に使ってみてね!

ちなみにすべてに共通しているのはアルファブレンドを行わないことだよ!


  • MaterialModificationPhase と PostProcessingPhase が追加されました (#826)

これは MaterialModifier がデフォルトだと MLIC よりも遅く動作してしまって困るから、(元々使用者の意志で指定するべきだと考えていたけれど、適当にやる場合はかなり早期できでないと厄介だとおもったために追加された、でもトリッキーなことをしたい場合は自分で実行フェーズを定義させるようにね!) NearTransTexture のために、かなり遅めで Decal系が終わった後のフェーズで勝つ後処理を意味するフェーズが欲しかったかが目に追加されました。


  • VRAM容量 (テクスチャーメモリやメッシュ) に影響を与えうる設定項目に対して、アイコンが表示されるようになりました (#839)

TexTransTool の禁忌的な行為として、暗黙的な VRAM の増加というものがあるんだけど ... これは裏を返せば、明示すれば VRAM を増加させてもよいということ。

それはそうとしても影響するか否かがわかりやすくあるべきなので追加されたよ!詳しい基準についてはドキュメントの方に書いたからそっちを見てね!


  • SingleGradationDecal が Experimental ではなく、 Stable としてマークされました (#848)

SingleGradationDecal やそれで可能な SimpleDecal の使い方が非常に多く見られた上、 SingleGradationDecal はこれである種 完成ではあると思ったので実験的機能の扱いを外しました!

  • IslandSelectorAND(NOT,OR,XOR) と Box(Sphere,Pin)IslandSelector が Experimental ではなく、 Stable としてマークされました (#848 #865)

SingleGradationDecal の安定化、実験的な機能を外れるに伴い IslandSelector も stable なものがないと困るので、ある程度歴史がある物の中で IslandSelector の実装が変わっても挙動が確実に変わらない存在をこのタイミングで安定的機能という扱いにすることにしました。


  • SimpleDecal がポリゴンに対して非常に小さい場合に、PolygonCulling が有効な場合正しく張り付けることができない問題が修正されました (#851)
  • SimpleDecal の PolygonCulling は修正に伴い削除されました (#856)

これはね、 SimpleDecal のポリゴンの内外判定が酷い物からましなものになった影響で、 Decal に対して非常に大きいポリゴンに対しても正常に張り付けれるようになったから、それの回避用のプロパティの削除とともに修正したんだよね~!


  • TextureBlender が Experimental ではなく、 Stable としてマークされました (#857)

なんでこれが今まで 安定的機能 じゃなかったのか ... ?

まぁ忘れ去られていたのが主な原因ですが、シンプルで単機能。それでいてできることはあるし、上位互換の MLIC もいるからこれはずっとこれのままという形で安定的機能の扱いになりました!


  • SimpleDecal の IslandSelector が Experimental ではなく、Stable としてマークされました (#865)

SingleGradationDecal の安定化に伴い IslandSelector も Stable になったわけなので SimpleDecal でも IslandSelector を使用する機能が Stable 扱いになったよ!


  • SingleGradationDecal のインスペクターのインデントが一部正しくなかった問題が修正されました (#868)

ただのバグ修正やね~!


これ以下は全部 Changelog-Experimental なものだよ~!


  • TTT PSD Importer の PSD の出力元ソフトウェアの判定をオーバーライドできる、 ImportMode 設定が追加されました (#675)
  • TTT PSD Importer の PSD の出力元ソフトウェアに応じて PassThrough や Clipping が調整されるようになりました (#675)

一部のエッジケースにて、その挙動をそれぞれで完全に再現は無理なのでインポート時点で補正することで再現できるようにします!

それに伴って ImportMode を任意にいじれるようにもなったけどほとんどの場合は使用する必要がないかな ... デバッグ用のレベルかも。


  • 16Bit 32Bit の PSD をインポートとビルドができるようになりました (#675)

そんなする必要ないと思うけど、対応したんだ~でも 8Bit PSD に比べると無茶苦茶ビルド重いだろうから ... まぁ動くよって感じね!


  • PSD の古い 色相/彩度 の色調調整レイヤーの追加情報 KeyCode "hue " が誤っていて認識されていなかった可能性のある問題を修正 (#675)

検証したわけではないんだけどただただ誤っていたから修正した


  • クリスタの 色相・彩度・明度 色調調整レイヤーを再現する HSVAdjustmentLayer が追加されました(#678)
  • PSD の ImportMode が ClipStudioPaint に自動決定またはオーバライドされていた場合 HSLAdjustmentLayer が HSVAdjustmentLayer としてインポートされるようになりました (#678)

フォトショとクリスタの間に互換性なんてない ... いいね

フォトショの 色相・彩度 とクリスタの 色相・彩度・明度 は別物でした ...

クリスタのそれを再現するものを作って、その PSD がクリスタだった場合はそっちにインポートするという挙動に変わるようになって再現度が以前よりも上がったよ!やったね!


  • TTT PSD Importer はインポートのタイミングでプレビューを生成せず、必要になったタイミングで生成するようなりインポート自体の速度は大幅に高速化しました。(#727)
  • PSD からインポートされたレイヤーは ComputeShader で解凍されるようになり、プレビューの生成やビルドが高速化しました (#727)
  • TTCE-Wgpu が プロジェクトに存在した場合、PSD からインポートされたレイヤーのプレビュー生成が並列で行われるようになり大幅に高速化するようになりました (#727)

これはね~ 8BitPSD のレイヤーの解凍を GPU 上でやるようになったんだよね!これによってビルドが大幅に早くなったんだけど、その都合で PSD のインポーターから GPU が使用できない都合で インポート時にレイヤーのプレビューを作れなくなったから、プレビューなどで使用されるタイミングに生成するようになったんだ~

ちなみにそのプレビューは TTT の独自で管理していて、 ライブラリの中に net.rs64~ て感じのフォルダが生成されるようになってるはず~

ちなみに! TTCE を用いたバックエンドの差し替えによってレイヤーのプレビューの生成の時でも TTCE-Wgpu を使用することができるようになって、それを使用すれば Unity のシングルスレッド制約から解放されて、プレビューを並列で生成できるようになったから、TTCE-Wgpu があるときは レイヤーのプレビュー生成が速くなるんだ~でも現実的に TTCE-Wgpu を導入する方法はなく、開発者でもない限りできないから今のとこ理意味はないけどね ...


  • シーンビューからエイムすることでアイランドを選択できる AimIslandSelector が追加されました (#764)

新規アイランドセレクターとして、本当のレイキャストができる AimIslandSelector を追加したんだけど、命名に関しては混乱を避けるために RayCast は使わなかったのよね そのため IslandSelector に RayCast という名を冠すものがいないかも。

  • RayCastIslandSelector は PinIslandSelector に名前が変更されました (#764)

PinIslandSelector は前々からやってることが RayCast かというなら少し怪しかったので名称が変更になったんだ~!

  • マテリアルの参照をベースにアイランドを選択できる MaterialIslandSelector が追加されました (#764)

IslandSelector の内部 API の変更に伴いできるようになったから追加してみた! そんないるかわかんないけど ...


  • SimpleDecal の DepthDecal 機能が内部実装の変更により、レンダラーごとではなくすべてのレンダラーで統一された Depthバッファー を参照するようになりました (#764)

AimIslandSelector のため(一番手前という概念のため)ではあるのだけど、 Decal系の描画をすべて一括で行うようになってから、 Depth バッファーも同一のものにできるようになったからそれでいい感じにすることにしたんだ~

ここに書くのもなんだけど ... SimpleDecal から Depth 機能は正直剥がしてもっと別のいい形にしたい気持ちも少しある ... それこそ MLIC に AsLayer で入れてしまえば複数 Decal や 別の Depth をうまく扱う存在と連携させることが可能になるから ... それで良いのでは ... ?


  • Decal系は Preview の場合 HighQualityPadding が無効化されるように変更されました (#764)

HighQualityPadding が死ぬほど重たくなっちゃった影響と、HighQualityPadding の価値がかなり薄れたというのもあって、事故らないようにするために無効化しました。

まぁそもそもデフォでクオリティはかなり高くなったから HighQualityPadding 自体いるかどうかも怪しいけど ... まぁ一応ね

いやこれ今のうちに HighQualityPadding を実験的機能に移すべきだな


  • RendererIslandSelector が NDMF Preview で正常に動作しない問題を修正 (#764)

修正が遅れてしまってちょっと申し訳ないかも ... MaterialIslandSelector が追加できるようになる内部API の変更が必要だったから v0.8.x のパッチにはできなかったのよね


  • TTT PSD Importer は PSD の ImageDataSection の画像を PSDImportedImageDataSectionImage としてインポートするようになりました (#772)

まぁその ... レイヤーがなく一枚の画像だけを持つ PSD が存在するようで ... そういった PSD を引き出せるようにするための応急的な処理にすぎないかな、その一枚の画像だけを持つ PSD の時にこれをレイヤーとして生成するような仕組みはないからそれも必要だけど ... いつか作らないとね


  • TTT PSD Importer は 32bit PSD と 16bit PSD のプレビューが可能になりました (#772)

32bit、16bitの PSD はビルドだけができる状態が開発中の時にあったんだけど、ちゃんとプレビューできるようになったんだ~やったね!


  • 一つの子となる IslandSelector を基に IslandSelect の範囲を広げて選択できる、 IslandSelectorLink系 コンポーネントが 4つ 追加されました (#777)

これは、特定のアイランドの選択から何らかの種類で同じものをすべて選択したことにできる物。

時に便利な時が出て来ると思うけど、私はまだそれを見出していない。まぁ使ってみれば便利かも ... たぶん。


  • SubMeshIslandSelector が SubMeshIndexIslandSelector に名前が変更されました (#777)

SubMeshIndex を基準に選択している(つまり特定の SubMesh だけを選択するものではない)というのもあってややこしいために名前の調整をしました。


  • TTT PSD Importer に PSD ImportMode SAI が追加され、出力元が SAI であるとみられる場合に自動判定されるようになりました (#781)

一応 VRChat 向け 3D モデル のテクスチャを書くのに使っている人が一定数みられたので対応を生やしました。

ちなみに SAI が空っぽのレイヤーに対して、赤のチャンネルが4つあると書きこんでくる謎の仕様を逆手にとって判別しています。 (この謎仕様に破壊されたパーサーは非常に多いかもしれない ... しらんけど)


  • SingleGradationDecal や YAsixFixedGradientLayer にて、境界の色がにじむ問題を修正 (#786)

バグ修正ではあるんだけど ... 今どうなってたっけ ... ? まぁ大丈夫でしょう


  • MaterialModifier がゼロからリメイクされ、マテリアルをその場で変更し差分をオーバーライドとして非破壊的に適用できる機能を持って、新規コンポーネントとして復活しました (#788 #807)

Thank you Ao_425

いつも通りのマテリアルのインスペクターで差分で保持しながら編集できる ... 昔の私があきらめ、結果的に MaterialOverrideTransfer と変わった案、私が Ao_425 にそのことを詳しくいったわけでもないのにそれが完ぺきに実現されていてびっくり!

名前被りはちょっとあるのだけど、以前に存在した MaterialModifier の名前も継承して新規追加!やったね!

ちなみに別物なので 旧MaterialModifier からのマイグレーションはありませんというか 旧版使ってるやつなって私以外いないでしょ! ... しらんけど。


  • マテリアルのコンテキストメニューから MaterialOverrideTransfer と MaterialModifier が追加できる MenuItem が追加されました (#792)

Ao_425 によって提供された

レンダラーとかの下に表示される マテリアルのインスペクターから出せるコンテキストメニューから マテリアル編集系がこれによって出せるようになったよ~

便利だね!


  • 非常に実験的なコンポーネントとして、ポリゴンの最接近点からテクスチャを転写するようなことができる NearTransTexture が追加されました (#816)

これが入った beta のリリースが私の ツイートの中で一番の伸びをしておりびっくり。 ある程度需要がありそうだな~ってところを叩いたら想像以上に需要があってちょっと怖いかも。

今のところ使い勝手は最悪なので内部実装のリファクタリングも含めもっときれいに実装して、インターフェイスも IslandSelector をベースに使い勝手を良くしたところかな~

今使うんだったらセーブデータが吹っ飛ぶ覚悟でよろしくね!


  • MaterialOverrideTransfer は UnDefinedPhase から MaterialModificationPhase に属するフェーズが変更されました (#826)

そんな意味ある気もしないけどこっちの方があるべき場所だからね!


  • 二つの色を指定し、その色差をテクスチャに適用する ColorDifferenceChanger が追加されました (#827)

パ ... とある、VRC アバター向けのテクスチャ改変用の色変更ツール にインスパイアされて作られたもの。

TTT の既存の SybSystem を雑に用いて 30分 ぐらいで作ったけれど、 AsLayer ができることによる価値がだいぶ大きい部類のコンポーネントかも。

動作原理は単純で、対象の代表となる色と目標となる色の差分を全体に適用することで、目的の色にいい感じに近づけることができるという物。単純だけれど、お手軽な色の調整手段としては優れている。


  • MaterialModifier や TextureConfigurator を右クリックをした GameObject 配下のマテリアルやテクスチャすべてに対して コンポーネントを一括で生成できる Generate が追加されました (#833)

Ao_425 によって提供された

一括生成していじりたいものだけ有効化して使っていく感じっぽい、こういった細かい便利機能はあってもよいからね!


  • TextureBlender や ColorDifferenceChanger を MultiLayerImageCanvas のレイヤーとして扱うことのできる AsLayer が追加されました (#834)

MLIC の利便性をさらに向上させるうえ、今後の新規コンポーネントを作るときの実装にも影響を与えるであろう存在。

TTT のコンポーネント が TTT のコンポーネント の子となった時に動作しなくなる仕様の変更はこれのためにある!

TextureBlender の AsLayer は PSD での改変への移行のために、 ColorDifferenceChanger は MLIC との親和性の向上のため。

TextureBlender はシンプルなレイヤーとして、 ColorDifferenceChanger は内部名称 Grab 系と呼ばれる色調補正系のレイヤーとして動作できる。


  • MultiLayerImageCanvas に連なるレイヤーの LayerMask が、 TTT ImportedLayerMask マスクなどの別種類のレイヤーマスクを選択することが可能になりました (#834)

今までその手段を露出させてなかったんだけど、後述する LayerMask のため、選択可能になりました!


  • SimpleDecal や SingleGradationDecal が AsLayer でレイヤーとして扱うことが可能になりました (#837)

AsLayer 第二弾!

特定のレイヤーにクリッピングする形でデカールを貼り付けたり、デカールにデカールをクリッピングしたりと、デカールのできる幅がさらに広がるね!


  • レイヤーに対して使用できるレイヤーマスクとして、 IslandSelector をマスクにすることが可能な IslandSelectAsLayerMask が追加されました (#838)

IslandSelector を用いて PSD のレイヤーの範囲を制御できると便利ですよね!実現しました!

これのために LayerMask を選択可能にしたまである。


  • 距離ベースでグラデーションをかけることができる、 DistanceGradationDecal が追加されました (#847)

一応作っては見たけど ... SingleGradationDecal がただ距離ベースになっただけかも。

いずれこれを複数個つなげて ChainedDistanceGradationDecal とかを作るかもしれん。


  • (Imported)RasterLayer や LayerFolder(非Passthrough) などの、ImageLayer に限り、LayerMask 等も加味した単体プレビューが表示されるようになりました (#849)

一部の物は動作しないけど、一部のレイヤーしか内容が見れなかったりマスクの内容がわからなかったりといったものを改善する形でプレビューの実装自体も書き換わっていい感じになったよ!


  • VRAMの増加と引き換えに元のテクスチャの解像度を超越できる、ParallelProjectionWithLilToonDecal が追加されました (#851)

一応作ってはみたけれど ... TTT の範囲ではない、誰か持って行って別のツール作ってほしいな ...


  • EverythingUnlitTexture が追加されました (#859)

ColorDifferenceChanger 等で、シェーダーの影響がない原色がとりたいときがあるのでそれのために追加されました!


  • PreviewIslandSelector が追加されました が、NDMF 側のバグにより一時無効化されています。(#859 #879)

一時的に無効化されてたりとちょっとあったけど、 IslandSelector の一つを適当にプレビューできる機能。

ただ、今のところ白く塗ってハイライトするだけなのでもう少しハイライトする色を変えれるようにしたりなどを考えたいところ ...


  • MultiLayerImageCanvas もレイヤーのようなプレビューが表示されるようになりました (#870)

上記のレイヤープレビューの続きでもあるわね、 MLIC であるトップレベルでもプレビューできるようになった、いい感じだね!

まとめと次期バージョンについて

今回はたくさんの実験的機能の追加や、一部コンポーネントの安定化など ... AtlasTexture 等にはノータッチなものの核となる部分が差し変わっていたりと、今までのマイナーアップデートの中でもかなりな内容ですね ... またかなりな大きさになってしまった。(何なら一番大きいまである)

次期バージョンの話をしましょう!

次期バージョンこと v0.10.0 は v0.9.0 もてノータッチだった AtlasTexture とその周辺に、安定化を目指した改修、リファクタリングなどをメインに行います。(逆に色改変系にはノータッチになるでしょう)

新機能や実験的機能の追加は極力抑える方針、そしてそれのバグ修正などが落ち着いた v0.10.x を v1.0.0 にする予定です!

ここで一度マイグレーションを区切る可能性が高いですね、それと実験的機能に関しては私が困るというのもありマイグレーションを行いたいので、安定的なコンポーネントに対してマイグレーションの機能を無効化させるような改修も必要になるね!

目新しい物は出ないと思うけど、 v0.10.0 は気長にね~

まぁでも私は ... ちょっとだけ休憩してから v0.10.0 の開発に取り掛かろうかな ... !