Morrowind MOD紹介 その2


前回に引き続き、今回も私が主役っ!
ふふっ。




いいわね・・・。
私のコーナーなんか、無かった事に
なりそうなのに・・・。



だ・・大丈夫。
き・・きっと、チャンスは来るわよ。




そ・・その通りよ。
い・・今は、ちょっとMorrowindが熱い、
というだけだから、安心してっ!



どうせ私なんか、
DOSゲームだし、ドット絵だし・・・。




と・・とりあえず、
MOD紹介を始めるわよ。


今回もグラフィック向上系の物が中心かな。



Mrrowind使用MODリスト


景観変更MOD

・Vality's Bitter Coast Trees
地域景観拡張MOD。Bitter Coast地域に多くの樹を追加。


・Vality's Ascadian Isles Mod
地域景観拡張MOD。Ascadian Isles地域に多くの樹を追加。


・Morrowind Grass Mod
風にそよぐ草を追加(Animated Grass)。アニメーションの無いバージョンもアリ。
Animated Grassを使用するには、MGEが必須。
導入方法が少し特殊なので、read me は熟読する事。
一番の注意点は、MODのチェックを外して使用する、という点。
通常はチェックを入れないとMODは適用されないけれど、これだけは別。


MGE用shader

これらを使用するにはMGE SVN beta revisionが必要。
以前に紹介したMGEとは別物なので、注意。
あくまでもbetaバージョンなので、人柱覚悟で。


・d3d8 sundir04
Improved Water Shader作者のshader。
訂正:MGE用のdll。最近リリースされたShaderは、
このdllが無いと動かない場合もあるので要注意。


Improved Water Shaderも含まれている様子。
水の表現が凄い事に・・・。
動画で使用しているのは、blurありの物。


・Godrays v02 with preview
太陽の光が凄い事に・・・。
HDR bloom shaderと併用する場合は、
Godrays v02→HDR bloom shaderの読み込み順にする事。


・HQ Depth of Field and SSAO
SSAO(Screen Space Ambient Occlusion、画面座標系環境遮蔽)と
DoF(Depth of Field、被写界深度)を追加。
説明出来るほど理解出来ていないので、その効果は動画で。
一緒に入っているTGAファイルは \Morrowind\Data Files\Textures にコピー。


HDR bloom shaderと併用する場合は、SSAO→HDR bloom shader→DoFの読み込み順で。
Godrays v02も使用する場合は、SSAO→Godrays v02→HDR bloom shader→DoFの順で。


HDR bloom shader カスタマイズ設定

HDRやbloomの効果を追加するshaderで、多くの種類があり。


現在は、上で紹介したGodrays v02の作者の方が、フォーラムで公開してくれた設定を使用中。
http://www.bethsoft.com/bgsforums/index.php?showtopic=1033023
ここのフォーラムは、色々と役立つ情報があるので、要チェック。


Gimp 1.3というShaderのカスタマイズ設定。以下、転載。

//Polik groNak's recreation of..
//LizTail's suggestion for pretty Bloom...
//as demonstrated in GIMP :)
//lol


texture lastshader;
texture lastpass;

sampler s0 = sampler_state { texture=; magfilter=linear; AddressU=Clamp; AddressV=Clamp;};
sampler s1 = sampler_state { texture = ; magfilter=linear; AddressU=Clamp; AddressV=Clamp; };


// **MGE VARIABLES**
float2 rcpres;
float4 HDR;
//Preview uses HDR=0, thus everything will show up bright
//float4 HDR = float4(0.0,0,0,0);
//float4 HDR = float4(0.1,0.1,0.1,0.1);
//float4 HDR = float4(0.2,0.2,0.2,0.2);
//float4 HDR = float4(0.3,0.3,0.3,0.3);
//float4 HDR = float4(0.4,0.4,0.4,0.4);
//float4 HDR = float4(0.5,0.5,0.5,0.5);
//float4 HDR = float4(1,1,1,1);


// **BLOOM VARIABLES**


//const static float scale = 6.5f;
const static float scale = 6.5f;
//Scale of bloom stretch across the screen
//decrease for smaller bloom that is more accurate
//increase for larger bloom that is less accurate

//const static float BloomBoost = 1.0f;
const static float BloomBoost = 1.0f;
//boost in bloom brightness, increase for brighter bloom

// **HDR VARIABLES**

static const float3 midlevel = sqrt(HDR+float3(0.05,0.05,0.05))-float3(0.1,0.1,0.1);
static const float3 midlevel2 = float3(0.5,0.5,0.5);
//These are a pain to tweak just right, don't mess with them unless you really want to play around


// **OTHER VARIABLES**
const static int kernelsize = 7;
const static int kernelsize2 = 4;
const float2 blurPixs2[kernelsize2] =
{
    {  1.5,  0.5},
    {  0.5, -1.5},
    { -0.5,  1.5},
    { -1.5, -0.5},
};
const float1 blurPixs[kernelsize] =
{
//    {-4.0},
    {-3.0},
    {-2.00},
    {-1.000},
    { 0.0},
    { 1.000},
    { 2.00},
    { 3.0},
//    { 4.0}
};
const float1 blurMags[kernelsize] =
{
//    {0.13},
//    {0.16},
//    {0.18},
//    {0.192},
    {0.05},
    {0.14},
    {0.23},
    {0.32},
    {0.23},
    {0.14},
    {0.05},
//    {0.192},
//    {0.18},
//    {0.16},
//    {0.13}
};



float4 MyBloomH( float2 Tex : TEXCOORD0 ) : COLOR0
{
    float3 ColorBloom = 0;
    float3 ColorNew = 0;

    if (Tex.x*(scale) > 1.05 || Tex.y*(scale) > 1.05){
    }else{

    for (int i=0; i 1.05 || Tex.y*(scale) > 1.05){
    }else{

    for (int i=0; i 1.05 || Tex.y*(scale) > 1.05){
    }else{
    ColorNew = saturate(tex2D( s0, Tex*(scale) )-midlevel);
    for (int i=0; i<4; i++){
        ColorNew += saturate(tex2D( s0, Tex*(scale) + blurPixs2[i]*rcpres )-midlevel);
    }
    }
    return float4(ColorNew/5, 1);
}


float4 UpScaleCombine( float2 Tex : TEXCOORD0 ) : COLOR0
{
    float3 ColorNew = tex2D( s1, Tex/(scale) );
    float3 ColorOrig = tex2D( s0, Tex );
    ColorNew = (saturate(ColorOrig+midlevel2)-midlevel2)*(0.75/(HDR+float3(0.49,0.49,0.49))) + saturate(ColorOrig-midlevel2)*saturate(ColorOrig-midlevel2)*4*1.0+ColorNew*(0.75/(HDR+float3(0.49,0.49,0.49)));

    return float4(ColorNew, 1.0f);
}


technique T0
{

    pass p2{PixelShader = compile ps_2_0 ThreshDownScale();}

    pass p3{PixelShader = compile ps_2_0 MyBloomH();}
    pass p4{PixelShader = compile ps_2_0 MyBloomV();}

    pass p9{PixelShader = compile ps_2_0 UpScaleCombine();}
}

MEGのToolsタブを選択し、Shader Editer→NEWボタン。
このコードをコピペして、適当な名前をつけてあげればOK。


他のShaderも試してみたい場合は、こちらから↓。
MGE Shader Library
Shaderの適用方法なども載っているので、要チェック。


髪型追加MOD
・Peggy hair 2
動画の最後で使用した髪型。
ESPファイルは無く、MesheファイルとTextureファイルのみ。
CS(もちろんMorrowind用の物)で、ESPファイルを作成する事。


耳のメッシュが人間の物なので、今回は、
エルフ耳のメッシュを適当なモデルから移植して使用。


この作者作成の髪型は可愛いものが多いので、要チェック。

http://princessstomper.proboards.com/index.cgi?board=morrowindmodsboard&action=display&thread=2247


衣服追加MOD
・Victorian Lace Dress
動画の最後で使用したドレス。
要Better Bodies 2.x。


・・・と、こんな感じかしらね。


お疲れ様。
ホント、どこまで進化するのかしらね、
Morrowindは・・・。



現在進行形というのが、凄いわよね。


でも、Oblivionだって、これから先
もっと進化するはずよ、ふふっ。


それは、何?

暗にDaggerfallは終わっているって
言いたいの?



ち・・違うわよ!
そ・・そんな事、思ってもいないわよ!




そ・・そうよ!
ほ・・ほら、今の技術でリメイク!
とか、あるかもしれないじゃない。



それって・・・、
新作扱いに、なるんじゃない?





・・・・・。






・・・・・。