タイトルはそのうち決める

艦これのおぼえがきとか実験装置とかLaTexのメモとか。

VRoidStudioで透過テクスチャを使っていろいろやる

VRoidStudioで衣装を作る時に、半透明なテクスチャは使えない。*1
だからといってブレンドする以外に不透明度に使い道が無いわけではないというメモ。

 

この記事は↓のポストをまとめなおしたもの。

 



不透明度の閾値

不透明度による変化を見るために透明度グラデーションの画像を試してみる。
幅は1px、2px、3px、4px。

 

不透明度グラデーションによる表示状態の確認(上:元画像、下:VRoidStudioでの表示)
  • 不透明度が50%未満になると非表示になる。
  • 不透明度100~50%では、不透明度が低いほどエッジが削れる。*2

 

ぼかしをかけた場合のエッジの比較

ぼかしをかけた画像のエッジの取り扱いの比較をしてみる。

 

5×5pxの四角の角を1pxずつ落としたもの、0.2px/0.6pxぼかしをかけたもの(上:元画像、下:VRoidStudioでの表示)
  • ぼかしなしの部分も、多少ぼかしが入れられてしまう。
  • ぼかしが入っているとエッジが滑らかになる。

ドットのガタガタ感を出したい場合はぼかさない方が良い。
普通の滑らかな形状にしたい場合は、エッジはなるべくぼかしたほうがよさそう。

 

穴あき画像とエッジ

穴の開いている画像の取り扱いを調べてみる。

まず、1×1~4×4pxの穴あき画像+その穴を埋める画像の透過度変化。
穴埋め画像の不透明度を変えていく。

 

サイズ違いの穴があいたレイヤー+穴を埋める画像(上:元画像、下:VRoidStudioでの表示)

穴埋めレイヤー(B)について、

  • 不透明度が50%以下になるまで穴はあかない。
  • 不透明度が50%以下になると、不透明度に応じて穴が広がっていく。
  • 穴埋めレイヤー非表示でも、穴のエッジは丸い。

ただ穴があいているだけだと、角は丸まってしまう。
ただし、丸いと言っても1px単位で見えるところまで近づいたときの話である。

 

次に、穴埋めレイヤーを非表示、サイズ違い穴レイヤーの不透明度を変えてみる。

 

サイズ違いの穴があいたレイヤーの不透明度を変える(上:元画像、下:VRoidStudioでの表示)
  • 不透明度に応じて穴が広がり、角がとがっていく。
  • 不透明度51%でほぼ画像通りの穴形状になるが、穴サイズは大きくなっている。

全体を薄くしないでも、穴のエッジまわりの不透明度だけを下げれば良いかも?

 

エッジ処理と隣り合う透明部分の影響

白い四角の後ろに、一回り(片側1px)だけ大きい四角を置いた画像で確認する。
後ろの四角は同色(白)、黒、赤とした。

 

外周に半透明のカラーがあることによるエッジの色変化の比較(上:元画像、下:VRoidStudioでの表示)
  • 外周に色付きのエリア(不透明度1%以上)があると、その色が隣り合う不透明部分に反映される。
  • これを利用して、幅1px以下のエッジカラーが付けられる。
  • 強制的にぼかしが入るため、ぼかしの無い画像のエッジは意図しない色がつく。*3

 

外部のペイントソフトで、きっちりエッジを落とした衣装を作ると影響が出るあたり。
エッジに意図しない黒フチや白フチが発生する原因になる。

 


不透明度を利用した細い模様いろいろ

ここまでの内容をうまく利用すると、幅1px以下でエッジ形状などが制御できる。

 

細いジグザグとか

1pxのドットでも、配置と透明度次第でいろいろな細い模様が作れる。

 

1~2px幅で作る細い鎖状形状などのテスト(上:元画像、下:VRoidStudioでの表示)

隣り合う色の不透明度に応じて角の丸みや細さが複雑に変わることが分かる。
実はかなり細かく模様が作れるっぽい。

 

ボーダー柄のいろいろ

1pxだけずらした1pxストライプ模様の組み合わせのテスト。

 

濃いところ、薄いところ…を1pxごとに交互に繰り返した場合(上:元画像、下:VRoidStudioでの表示)

隙間を埋める画像レイヤーの不透明度が50%以下になると細い透過部分が発生する。
これを使えば幅1px未満の細い透過部分を作ることができる。

 

次に、1pxのストライプ柄自体の不透明度を変化させてみる。

 

塗り、透明…を1pxごとに交互に繰り返す画像の不透明度を変える(上:元画像、下:VRoidStudioでの表示)

不透明度に応じて細さが変わっていき、50%以下では全く表示されなくなる。
これを用いて1px未満の細い表示領域を作ることもできる。

 


VRoid用のアイテムで使った例

この夏に作ったアイテムは、このへんを意識して作っている。
エッジ処理だけでなく、メッシュの形状を制御したりするのに用いた。

 

水着のパレオのメッシュ

8月に配布開始した水着のメッシュは、形状の異なる2種のメッシュを作ってみた。
水滴っぽい穴とひょうたんっぽい穴を作ってみた。

 

実際のVRoidアイテムの画像。パレオの上半分が水滴メッシュ、下半分がひょうたん?メッシュになっている。

この穴はいずれも、元のテクスチャ上では幅1pxの穴である。
ただし、穴の周辺の透明度を色々変えている。

 

テクスチャの後ろに黒背景を置いたもの

水滴模様の幅は1pxになっている。

穴部分は縦に並んだ3pxで構成されていて、
チョイ透明
まあまあ透明
完全に透明
の並びを作ることで水滴模様のような穴を実現している。

 

本アイテムは以下で配布している。

kurosakiworks.booth.pm

 

ジーンズの裾を切り落として糸が出ているところ

8月末に配布を開始したジーンズ衣装では、裾のほつれた糸の表現に使っている。
ほつれた糸の隙間に、1pxよりちょっと細い隙間があくようにしている。

 

ほつれ糸の表現。糸の間の細い隙間や、先端(下側)の形状の制御をしている。

細い透過部分は色も少し暗くすることでエッジカラーとしての役割も果たしている。

 

本アイテムは以下で配布している。

kurosakiworks.booth.pm

 

これを知らないころにやっていた失敗例

なんでエッジに変な色が出るんだろうな、と思っていた頃のアイテム。

 

黒カーディガン衣装の外周に、意図しない白いエッジが発生している。

逆に、これをうまく利用することでエッジに任意のカラーをつけられることになる。

 


変換するとどうなる?

自前のテストではVRChatへの変換、流れてきた画像としてはMMDに変換した場合。

 

VRChat

VRChatは、マテリアルを圧縮しない限りはそのまま持ち込めていた。

MMD?モデル

他所でこのアイテムを使って変換した(らしい)ものの観察結果になる。
どうもうまく変換できないようで、まったく意図していないエッジ形状になっていた。*4

水着のパレオの場合、水滴メッシュ部分はただの不透明オブジェクトになっていた。

ジーンズについても、もけもけ部分は隙間なく連なっていて細い隙間は消失していた。

 


ということで、思ったよりいろいろできそうだよというメモ。

 

*1:アクセサリの眼鏡など、一部例外はある

*2:ただし、削れるとしても最大で1pxまでのよう。

*3:この部分の色がどう決まるかはよくわからない。キャンバスのデフォルトカラー的な白とか黒とか?

*4:自分でやったわけではなく流れてきた着用画像と説明文に基づくので、これが一般にそうなのか場合によるのかはよくわからない。