BMW Z4 GT3 GSR2013 skinの続き

skinは概ね出来たけども、リプレイすると遠景でゼッケンが表示されたり、ヘッドライトの黄色が抜けてしまっている。
これはLODの切り替え時にkn5モデルが切り替わるからで、このmod、cf_bmw_z4_gt3の場合はどうなってるかというと、ボディ用と思われるkn5ファイルが4つある

2023/04/24  22:34        47,220,891 BMW_Z4_GT3.kn5
2023/04/24 04:30 2,118,714 BMW_Z4_GT3_lod_b.kn5
2023/04/24 04:30 1,014,110 BMW_Z4_GT3_lod_c.kn5
2023/04/24 04:30 332,432 BMW_Z4_GT3_lod_d.kn5

data.acdを展開して、中にある lods.ini を見ると

[COCKPIT_HR]
DISTANCE_SWITCH=7

[LOD_0]
FILE=BMW_Z4_GT3.kn5
IN=0
OUT=15

[LOD_1]
IN=15
OUT=45
FILE=BMW_Z4_GT3_lod_b.kn5

[LOD_2]
IN=45
OUT=201
FILE=BMW_Z4_GT3_lod_c.kn5

[LOD_3]
IN=201
OUT=2000
FILE=BMW_Z4_GT3_lod_d.kn5

となっていて、各lodに切り替わっているもよう。
このlods.iniを編集して、lod_bに切り替わる距離を変更したり、lod_bを使わないようにしたりする方法もなくはないと思うけど、\data\ 以下のini変更すると、これまたオンラインでは弾かれるかも。
で、もともとこのmodのskinフォルダには、ext_config.iniとして以下のような記載のものが入っていて

[MODEL_REPLACEMENT_0]
ACTIVE = 1 ; set to 0 to disable the whole section (default value is 1)
FILE = BMW_Z4_GT3.kn5 ; name of KN5 to work with (to distinguish between LODs or track KN5s)
HIDE = Numberplate_Sides, Numberplate_Hood

近景ではゼッケンは表示されないようになっている。ただext_config.iniはショールームでは効かないので、kn5をdecryptしてゼッケンのテクスチャのパラメータを変更して消すようにしてしまっているが、おそらくこれだとkn5改変されるのでオンラインでは使えなくなると思われ。

なので、ゼッケン消すのもヘッドライトの色パカもext_config.iniで解決するようにして、元のkn5は弄らないようにしてみようかと。いやオンラインはやらないから個人的にはどっちでもいいんだけども。

さてゼッケン消すほうは、ショールームでlodを切り替えてオブジェクト名を確認すると、lod 0~2まですべて同じオブジェクト名だった。↓これはlod1の場合

ext_config.ini中に、以下を記載して、lodごとのkn5について、消したいオブジェクトを指定する

[MODEL_REPLACEMENT_0]
ACTIVE = 1 ; set to 0 to disable the whole section (default value is 1)
FILE = BMW_Z4_GT3.kn5 ; name of KN5 to work with (to distinguish between LODs or track KN5s)
HIDE = Numberplate_Sides, Numberplate_Hood

[MODEL_REPLACEMENT_1]
ACTIVE = 1
FILE = BMW_Z4_GT3_lod_b.kn5
HIDE = Numberplate_Sides, Numberplate_Hood

[MODEL_REPLACEMENT_2]
ACTIVE = 1
FILE = BMW_Z4_GT3_lod_c.kn5
HIDE = Numberplate_Sides, Numberplate_Hood

_lod_dについてはゼッケンがオブジェクトとして設定されてなかったので、この方法では消せないけど、遠いので消さなくても気にならないので放置する。

さてこれでショールームはともかく、コースイン後はゼッケンは表示されず、遠景でもゼッケンパカにならない。

次は面倒なヘッドライトの色づけ。このmodで問題になるのは、フロントガラスもヘッドライトも同じマテリアルが割り当てられていること。なのでそのマテリアルに色を付けるとフロントガラスなども色が付いちゃう。これを回避するにはヘッドライトに別マテリアルを割り当てないとなんだけど、kn5を編集出来ないとこれは出来ないっぽい。

じゃぁどうすっか、ってことで、ヘッドライト部分だけ別kn5を作り、マテリアル(テクスチャ)を割り当てて、ext_config.iniでヘッドライトのオブジェクトごと入れ替えちゃえばいけんじゃね。ってことで、まずはヘッドライトのオブジェクトをkn5から引っこ抜く・・・んだけど、3dsimedで今回のkn5を読み込むとこうなる

のでこれまた申し訳ないけど一旦Decryptして読み込む。

まずはメインのボディ BMW_Z4_GT3.kn5 を読み込み、ヘッドライトで右クリックしてObject

EXT_Glass_Frontを選択したあと、IsolateObjectしてそのパーツだけの表示にして、マテリアルエディタを表示させる

マテリアルエディタのtexture_mapのところを、自作テクスチャ名に変更する

今回はlight_yellow.dds

そんでext_glass_front.kn5としてexport。
これでテクスチャ指定したパーツが保存されたので、ext_config.iniでこれを読み込むように書く

[MODEL_REPLACEMENT_0]
ACTIVE = 1 ; set to 0 to disable the whole section (default value is 1)
FILE = BMW_Z4_GT3.kn5 ; name of KN5 to work with (to distinguish between LODs or track KN5s)
HIDE = Numberplate_Sides, Numberplate_Hood,INT_Net,EXT_Glass_Front

[MODEL_REPLACEMENT_100]
FILE=BMW_Z4_GT3.kn5
INSERT=ext_glass_front.kn5
INSERT_AFTER=EXT_Glass

MODEL_REPLACEMENT_0のHIDEにEXT_Glass_Frontを記載してます。これでEXT_Glass_Frontを消しておいて、MODEL_REPLACEMENT_100で追加する感じ。EXT_Glass_Frontは消さなくても大丈夫ぽいけど重なったオブジェクトで色薄くなりそうな気もするし、描画の負担も減るだろうしということで。

さてこれでどうか、と思ってコースインしても色変わらず(^^; なにかと思ったら、\cf_bmw_z4_gt3\extension\ にある ext_config.ini に以下の記載があるけども

[Material_Glass]
Materials = EXT_Glass_Light_Front
IOR = 2 ; index of refraction for glass, usualy, 1.5
FilmIOR = 2 ; redefine IOR for external film layer to increase reflections
ThicknessMult = 1.0 ; thicker glass passes less light through
ProfileFix = 0.08 ; adds thickness to glass for glazing angles
FresnelC = 0.1
FresnelMaxLevel = 0.6
BrightnessAdjustment = 0.1
ExtraLightsAdjustment = 0.01

この中の、BrightnessAdjustment = 0.1 を 0.8くらいにしたら色が付くようになった。

さてここまでやってコースインすると、ゼッケンは遠景でも近景でも表示されず、ライトは近景では黄色になる。遠景ではならない。

遠景でのライトはどうするか、というと基本的にはBMW_Z4_GT3.kn5と同じようなことをBMW_Z4_GT3_lod_b.kn5でも行えばいいんだけど、lod b のほうはヘッドライトがオブジェクトとして独立してないぽいのでちょっとややこしい。

BMW_Z4_GT3_lod_b.kn5をDecryptして3dsimedへ読み込む。読み込む時のオプションは以下のようにKeepObjectNestingにチェックを付ける。付けない方がヘッドライトのオブジェクトを選択するのが楽だけど、このモデルの構造を理解するためには付けた方がいいと思う

さて読み込んだら、ライトを右クリックしてObject・・・と思ったらメインのkn5のようにEXT_Glass_Frontが存在しない

なんかよくわからん__EXT_Abschlepphaken_wrap_というのしかない。その下のHeadlights_Sprintはヘッドライトの中身のほうなので違う。なので __EXT_Abschlepphaken_wrap_ を選択する。その後Isolate Objectして__EXT_Abschlepphaken_wrap_だけ表示させる。そしてまたヘッドライトで右クリック今度はライト部分だけ選択出来るけど、EXT_Glass_Clear_Rearという名前でフロントじゃないけどヘッドライトも選択されてるのでこれでよさげ。そんでIsolate Objectする

そしてこれもテクスチャを自作のものに書き換えて

ext_glass_clear_rear.kn5 としてexport。これでLOD 1 (lod b)用のヘッドライトパーツが出来たので、ext_config.iniに以下のように記載

[MODEL_REPLACEMENT_101]
FILE=BMW_Z4_GT3_lod_b.kn5
INSERT=ext_glass_clear_rear.kn5
INSERT_AFTER=__EXT_Abschlepphaken_wrap_

これで、遠景でも近景でもゼッケン非表示、ライトも黄色となり、元のkn5もそのまま使えるのでおそらくオンラインでもいける・・かな

メインのkn5はショールームでヘッドライト選択したとき、

FullPathがEXT_Glass_Frontになっているけども、lod_bのほうは

__EXT_Abschlepphaken_wrap_となっている。このへんの扱いはよくわからんけど、メインのほうはヘッドライトがオブジェクトとして存在して、lod_bのほうはラッピングするオブジェクトの中にヘッドライトがメッシュとして存在している?このへんはBlenderとかで読み込んでみれば解るかもだけど、作者がlod用のローポリモデル作るときにまとめたのかもね。

メインのkn5のほうは、ヘッドライトのモデルを削除してから追加としてるけど、lod_bのほうはそのまま黄色パーツを追加しちゃってる。もしかしたらHIDE=EXT_Glass_Clear_Rear とかで消せるのかもだけど、コースインしてからlod1に切り替わるまで遠ざかるとあんま見えないのよね。まぁ lods.iniで切り替えポイントを近くして確認すればいいのかもだけど、消さなくても違和感ないしまぁいいかと(^^;


おすすめ