Let's create a texture with a transparent area.
セカンドライフ 技術系 Advent Calendar用の記事です。
(本日アップ分のため、日本語で書き飛ばします。英訳は後ほどつけます〜。)
This report is a report for "the second life engineering works Advent Calendar."
(In order to contribute by the end of today, it writes in a hurry in Japanese.English translation will be attached later.)
セカンドライフの技術系、、といっても、スクリプトが組めるわけではない。
primワークが得意なわけではない。
私はほぼテクスチャ作成しか能がない。
そこで、簡単な、ごくごく初歩的なテクスチャ作成のコツを書いてみようかと思います。
SLでテクスチャを作ってる方なら「知ってるよそんなもん」な内容ですので、するっと飛ばしてください。
テクスチャ作成と言っても、実際テクスチャを作っていくのは、ほぼネット上にある画像加工チュートリアルとか、お絵描きノウハウみたいなページで語り尽くされてるので、
ここではSLにアップする為のテクスチャ作りについてのみです。
まず、私は植物屋ですので、必ず必要なのが透過テクスチャですが、
これは、透明にする範囲の情報を持ったテクスチャをアップすることになります。
SLでサポートしてるのはpngとtga になりますが(拡張子で覚えてもらってOK。それぞれの画像特性についてはここでは触れません) tgaのほうが綺麗なので(この理由についても、ここでは割愛します。) こちらを使う人が多いようです。
さて、参考用に、こんな画像を描いてみました。
季節柄な柊の枝です。
もちろん、写真を切り抜いてもOKですが、今回は透過する部分がよく解るように、透明背景の上に描いています。
これをアップする為に、透過情報として、アルファチャンネルにこういう画像を置きます。
黒の部分が透明部分。白の部分が不透明部分ですね。
で、アルファチャンネルをアクティブにしてアップするわけですが、通常、データとしてアップされる画像は、ビットマップ方式です。
どういうことかといいますと、小さなマスを1つの色で埋めていって、それをたくさん集めることで、1つの絵に見えるようになってるのですね。
ところが、このマスは四角ですから、当然斜めのラインとかは、階段みたいな段々が出来るわけです。
これを緩和する為に、画像のエッジに当る部分は、背景色との中間の色が置かれて、段々が解らないようになってるわけです。これがアンチエイリアス処理と言うやつです。
が、実はこいつが邪魔で、このまま透過部分有効でアップすると、この「背景との中間カラー」部分がどうしても入っちゃうんです。
よく、抜きの甘い透過画像のエッジに白っぽいふちが見えてる、、あれです。
これを防ぐには、大きな画像を作って、縮小して使う。とか、背景を黒っぽくする。とかいろいろあるんですが、一番確実なのは、「抜き部分に中間色が入らないように、使用色で塗り足しをする。」ことです。
百聞は一見にしかずってことで、アップしたものを見てみます。
まず、背景が白のものと 黒のもの。
そして、塗り足しをしたもの。
それをアップしてprimに貼ったもの。
左から 白バック、黒バック、塗りたしバックです。
アルファチャンネルは同じものです。解りやすいようにグレイの板の上に置いてみました。
右へ行くほど、ふちが目立っていないのが解ると思います。(クリックして大きな画像で見ると、よく解るかも、、、です)
細かく透過部分がある画像ですと、この塗り足し作業は、すごく面倒なのですが、
一手間で見栄えが全く違ってきます。
例は植物の場合ですが、服等の透過にも、同じことが言えます。
さて、塗り足して綺麗な画像が出来た。
でアップして貼った場合、透過画像ならではの癖をもうひとつ。
SLでprimに画像を貼った場合、貼られた画像は、prim上に見えてないとこにもある。
これをデータ特性で説明すると、ちょっとややこしいんで、ざっくりこう考えればいいっていうのを、図で表すと、
テクスチャの編集画面で、垂直に1。水平に1を指定した場合。
貼った画像を指定のprim面に1面分だけ表示する、、という意味です。
つまり、画像は何度でも繰り返し貼れるように、準備万端なんだけど、この部分(青枠で囲んだのが1面分)だけ表示しておいてよ/って定義してるわけですね。
それによって、どんな弊害が起こるか?
この、表示されていない準備万端の部分が邪魔してくるわけです。
たまに、服のフレキシのスカートの裾とかに、なんかゴミみたいな点々が見えてる、、とかないですか?
こういうの。
これは、繰り返す為の準備万端〜〜な画像の端っこが覗いてるんですね。
これを避ける為には、反対側の端っこも透過しておく必要があります。
このレースのアルファチャンネル画象を見てみます。
左側が上の、端っこが覗く画像のアルファ。左端いっぱいまで表示部分があります。
これを 右側のように、反対側も透過が入ったアルファ(左端が黒くなっています)に直すと、
点々は消えました。
準備万端だぜーーって待機してるテクスチャの端も透明だから、出てても見えないわけですねー。
これは テクスチャ編集画面の画像の開始位置をずらすことでも対処できたりするのですが、例えば、sculpt prim等に繰り返し貼ることを前提なテクスチャの場合、
最初から、ゴミが出ないようにテクスチャを作っておく必要があります。
昨今花畑用のsculpt primでは同じテクスチャを128回繰り返す、、なんて設定が、普通にあるのですが、そんな時、開始位置をずらすことでは対応できません。
こんな小さなゴミ 気にするな!と言ってしまえばそれまでなんですが、これも塗りたしと同じ、ほんの少しの手間ですから、作る時に気をつけてみてください。
って、初歩の初歩書くだけで、すごく長くなった。。。
もっとSL内のあれこれとかありそうなんですが、難しそうなことは、今後のかたにお任せして、、そろそろこの記事を閉じます。