最近こんなmodを作ったんですけど、ちょっと踏み込んだ解説をしてみようと思います。
Unmasked Faces
I added a new mod to Nexus recently, and this article is its more detailed explanation.

バニラの仕様で、プレイヤーと全てのNPCの顔にはディテールマップというテクスチャで顔色(ソバカス、肌荒れ、加齢による皺など)が表現されています。
これは顔のみでボディにはありません。
そしてこれがうっすらと緑色が付いているために、いくら顔とボディのテクスチャの色を合わせてもゲーム内で顔の色が一致しない現象が起こってしまっていました。
そしてベセスダのゲームで用いられているddsという形式のテクスチャはDXTCという圧縮形式を用いていて、この圧縮がほんの少しの緑をさらに強い緑にしていました。
In Vanilla Skyrim, player and all NPCs have a texture called “detailmap” for face complexion.
It is only applied to faces, not to bodies.
The detailmaps have a slight green color (R:G:B = 63:64:63), and to make matters worse, DXT compression of dds that is a texture format used by Bethesda’s game strengthens this green.
例として傷や皺のないカラの顔色であるBlankDetailmap.ddsを見てみます。
まずバニラ(DXT1圧縮)とバニラを無圧縮にしたものの比較です。
モデルはホワイトランのロミオことジョン・バトル・ボーンです。
For example, please take a look at a empty complexion “BlankDetailmap.dds” on the face of John Battle-Born(Romeo).
Comparison between Vanilla , which is compressed by DXT1, and uncompressed one.
「あれ、無圧縮にしただけでもいいんじゃない?」って思うくらいほんの少しの緑です。
体よりやや黄色くなる程度。
そういうわけで、ゲームデザイン上の色は特に問題なかったと思われます。
問題は容量最適化のためのDXT圧縮にあったと。
There is a really slight green, I think there would be no problem if it was an uncompressed dds.
次は拙作Unmasked Facesと無圧縮バニラの比較です。
Next, comparison between my mod and uncompressed Vanilla.
眉間や鼻頭、口元や喉のハイライトを見るとわかりやすいかと。
無彩色の私のmodを使うと黄色みが消えて血色がはっきりし、赤みが差す感じです。
男性キャラクターだとこれはもう誤差の範囲というくらい小さい違いです。
テクスチャがより色白の女性キャラクターだともっと明確に差異が見えると思います。
See his forehead, tip of the nose, skin around the lips, or throat.
Slight less pale and clearer complexion with my “no color” mod, but it’s a little difference on this gif.
Female characters of fair skin will be rendered with more noticeable difference than male ones.
ここまでが私のmodの説明です。
以下はややmodder向け。DXT圧縮とゲーム内での見え方の変化についての実験結果の話になるので興味ある人だけどうぞ。
My explanation for my mod is done, the next chapter and after is about DXT compression and its in-game rendering, so please read if you are interested in them or modding.
DXT圧縮はDXT1であろうとDXT3、DXT5であろうと、RGB8の色の情報をR5G6B5(RGB565)に減色させることで圧縮率を高めているそうです。
http://www.webtech.co.jp/blog/optpix_labs/format/4013/
では、バニラの63 64 63(うっすら緑の灰色)がR5G6B5でどんなふうに変化するか見てみましょう。
Every DXT compression method decreases RGB8 colors to R5G6B5.
http://www.opengl.org/wiki/S3_Texture_Compression
Let’s take a look at Vanilla masking color 63 64 63 (green grey) in R5G6B5.
すごく緑が強くなってます。( ´ω`)、
これがバニラの顔色が胴体に比べてかなり青白く緑がかっていた原因のようです。
数値はRGB8基準で、一色につき256段階(0から255、2の8乗)で書いています。
We can see more green in it.
This is the cause of
cursed green pale faces of Vanilla.
The value is counted by RGB8 256 steps(8bit). From 0 to 255.
それでは、減色した色をゲーム内で表示してみます。それとバニラの灰緑との比較です。
Comparison between the reduced color and Vanilla green grey.
一致しませんね。
なぜこんなことが起こるのでしょうか。
それはRGB値は単なる色の割合ではなく光の三原色だからです。
というわけで光の量を考えてみました。
Y = 0.299R+0.587G+0.114B
大雑把にざっくり計算して、RGB8 63 64 63からR5G6B5の減色を経て57 64 57だと光の量がRが1.8、Bが0.6の計2.4程度減っているわけです。
そしてGのRGBスケール数値1で増減する光の量は0.6とすると、RとBで増減する光の量は数値4つ分、均等に分配するとRとBそれぞれ2減っていることになります。
たぶん私の計算は間違ってますヽ(゚∀゚)ノ大体で聞いてください、大体で。
そこでR5G6B5の減色を経たバニラの灰緑63 64 63は、61 64 61になっているのではないでしょうか?
というわけで比較してみました。
The color is not matched to Vanilla, but why?
I think it’s because of Luminance.
So I calculated its amount of light roughly.
Y = 0.299R+0.587G+0.114B
The reduction of Red and Blue lights through R5G6B5, will be 2 each on color scale of RGB8, I think.
So let’s see the color 61 64 61.
やっと一致しました。
というわけで、ゲーム内で描画される色の差は
無圧縮dds: RGB = 63 64 63
DXT1圧縮dds: RGB = 61 64 61
となるようです。
It matched. As a result, the difference of color in-game is:
When dds is uncompressed: RGB = 63 64 63
When dds is DXT1compressed: RGB = 61 64 61 (Vanilla looking)
おまけで光の量も実験してみました。
Unmasked FacesのRGB値を半分にしたものと、1.5倍にしたものです。
In addition, I made a comparison gif of light amount.
Halved values of Unmasked Faces, and 1.5 times as much.
数値を小さくすれば暗くなり、増やせば明るくなります。
The lesser the values are, the darker the face color is.
And vice versa.
というわけで、Unmasked Facesでは64 64 64の灰色にしました。
バニラの数値からRとBを1ずつ増やすと光の量は合計で0.4程増えます。
逆に63 63 63の灰色にする場合はGを1減らすことになり光の量は0.6減ります。
前者のほうがバニラとの差異が小さいという判断です。
以上で解説は終わりです。最後まで読んでいただきありがとうございました。
The reason why I thought it better to be 64 64 64 is the amount of light.
If I add 1 of both Red and Blue to Vanilla, the amount of lights are 0.4 plus.
But if I remove 1 of Green, it is 0.6 minus.
The former has a smaller difference.
That’s all. Thank you very much for your reading!
66 Notes/ Hide
harappamemo liked this audrite reblogged this from althear
audrite liked this
gloomymario liked this naked-ekans liked this
thoughtfulcyclefire liked this
clay7890d liked this
buttnine liked this aki0514 liked this
skyfukahire liked this
skyrimxxx liked this
seratyper liked this
travelerlizard reblogged this from althear
llunalytt liked this katumichan liked this
datmagius liked this
suya-nemui82 liked this
aydoo liked this
yukiyanagi1111 liked this lindsworkshop liked this
naritete liked this
trafalgar-002 liked this ekoroa liked this
tjd0013 liked this
nisetanaka liked this yath-com liked this
fatbear0718 liked this
fooortune liked this
arbacus liked this
kattskinner liked this
cakesicles liked this travelerlizard liked this
calamityscorpse liked this m1hartmann liked this
housecarl-lydia liked this
althear posted this
- Show more notes