BIOHAZARD 5 Alternative Edition
協力プレイを本格導入しLOST IN NIGHTMARES等のダウンロードコンテンツも好評な本作品 バイオハザード5 オルタナティブ
エディションにおいてのMODの作り方をメモしてみたい
各キャラクターの各コスチュームについて
ゲームキャラクターのコスチュームを着替えるには PLAY GAME /SPECIAL SETTINGS /COSTUME SELECTで選ぶ
各キャラクターのファイルがある場所は Steam/steamapps/common/Resident Evil 5/nativePC_MT/Image/Archive
●キャラクターファイルのリスト
クリス:
uPl00ChrisPlain.arc = ゲームスタート時のクリス
uPl00ChrisNormal.arc = クリス BSAA
uPl00ChrisArmorA.arc = クリス BSAA
アーマー(耐衝撃)
uPl00ChrisArmorB.arc = クリス BSAA +アーマー(防弾)
uPl00ChrisArmorF.arc = クリス BSAA + アーマー(防弾+耐衝撃)
uPl00ChrisCos1.arc = クリス Zebra
uPl00ChrisCos2.arc = クリス S.T.A.R.S
uPl00ChrisCos3.arc =クリス Warrior
uPl00ChrisCos4.arc =クリス
Exoskeleton
upl00ChrisEp1.arc = クリス Lost in nightmares
シェバ:
uPl01ShebaPlain.arc = ゲームスタート時のシェバ
uPl01ShebaNormal.arc = シェバ BSAA
uPl01ShebaArmorA.arc = シェバ BSAA + アーマー(耐衝撃)
uPl01ShebaArmorB.arc =
シェバ BSAA + アーマー(防弾)
uPl01ShebaArmorF.arc = シェバ BSAA + アーマー(防弾+耐衝撃)
uPl01ShebaCos1.arc = シェバ Amazones
uPl01ShebaCos2.arc =
シェバ Casual
uPl01ShebaCos3.arc = シェバ Office lady
uPl01ShebaCos4.arc - シェバ Folklore
ジル:
uPl02JillCos1.arc =
ジル BSAA
uPl02JillCos2.arc = ジル Battle Suit
Upl02JillCos3.arc -
ジル Desperate Escape
Upl02JillCos4.arc - ジル Lost In nightmares
ウェスカー :
uPl03WeskerCos1.arc = ウェスカー Black
uPl03WeskerCos2.arc = ウェスカー S.T.A.R.S
ジョッシュ:
uPl04Josh.arc
= ジョッシュ (AI )
Upl04JoshCos2.arc- ジョッシュ Desperate Escape &
Mercenaries Reunion
エクセラ
Upl05ExcellaNormal.arc
= Mercenaries Reunion
バリー
Upl06BarryNormal.arc = Mercenaries
Reunion
レベッカ
Upl07RebeccaNormal.arc = Mercenaries Reunion
●ファイルの解凍
編集作業をするためには目的の.arcファイルを解凍する必要がある 解凍・圧縮にはARCtoolを使う
ARCtoolを使用するにはARCtool-PC-batchに含まれる.batファイルと共に使う必要がある
ARCtool-PC-batchに様々な.batファイルがあるがバイオ5に必要なのはpc-re5.batだ
MOD Managerで有名なFluffyQuack氏制作による
arcファイルとそこに内包される.texファイル(テクスチャの圧縮ファイル)の解凍・圧縮が出来る便利なツールである
使い方としてはフォルダを作ってそこにツールとファイルを入れればよい
ARCtool.exeとpc-re5.batを解凍したいファイルと同ディレクトリに置きドラッグ&ドロップして解凍
●テクスチャの編集
試しにシェバのテクスチャを編集して色変えMODを作ってみる お題はデフォルトのBSAAコスチュームとしよう
フォルダを作りARCtool.exeとpc-re5.batとuPl01ShebaNormal.arc (シェバ BSAA)を入れ
uPl01ShebaNormal.arc をpc-re5.batにドラッグ&ドロップ
するとuPl01ShebaNormalというフォルダが生成される
uPl01ShebaNormal/pawn/pl/pl01/modelに多数の.texファイルが入っているが
これがシェバのテクスチャである
ファイル名でどれが目的のテクスチャか大体の見当がつく
わかりやすくシャツの色を変えてみる
pl0100_06Body_BM.texをpc-re5.batにドラッグ&ドロップ
pl0100_06Body_BM.ddsとpl0100_06Body_BM.txtが生成される
.ddsファイルを扱える画像編集ソフトでpl0100_06Body_BM.ddsを開く
わかりやすく赤くしてみよう
編集したテクスチャ名はそのままpl0100_06Body_BM.dds 出力形式は元と同じくDXT1 Generate mipmaps
としてエクスポート
pc-re5.batにpl0100_06Body_BM.ddsをドラッグ pl0100_06Body_BM.texが上書きされ編集されたものになる
では.arcファイルに固め直そう
pl0100_06Body_BM.texをuPl01ShebaNormalフォルダ内のpawn/pl/pl01/modelにコピー
uPl01ShebaNormalフォルダをpc-re5.batにドラッグ&ドロップし圧縮
uPl01ShebaNormal.arcが編集されたものに上書きされる
uPl01ShebaNormal.arcをResident
Evil 5/nativePC_MT/Image/Archivelフォルダにコピー
シェバのBSAAコスでゲームを開始すれば確認できる
●キャラクターの入れ替え
試しにシェバをMercenaries Reunionに登場するレベッカ に入れ替えてみよう
レベッカ Upl07RebeccaNormal.arc内の各ファイルをシェバとして使えるように
シェバBSAAのuPl01ShebaNormal.arc内のファイルと置き換える作業だ
uPl07RebeccaNormal\pawn\pl\pl1d\model\pl1d00.mod
・pl1d00.mtg・Pl1d.jexをコピー
uPl01ShebaNormal\pawn\pl\pl01\modelへ
以下の様にリネームして上書き
pl1d00.mod → pl0100.mod
pl1d00.mtg→
pl0100.mtg
Pl1d.jex→ Pl01.jex
uPl07RebeccaNormal\pawn\pl\pl1d\soft へ行き pl1d.hitをコピー
pawn/pl/pl00/softへ以下の様にリネームして上書き
pl1d.hit→ pl01.hit
uPl07RebeccaNormal\pawn\pl\pl1d\faceへ行き face.lmtをコピーし
uPl01ShebaNormal\pawn\pl\pl01\faceeへ入れ上書き
uPl07RebeccaNormal\pawn\pl\pl1dのmodelフォルダを
uPl01ShebaNormal\pawn\plにpl1dフォルダを作りその中にそのままコピー
これで動かせる様になるが以下のファイルについてもこだわってみよう
基本的なアクションがレベッカになる
uPl07RebeccaNormal\pawn\pl\pl01\motionフォルダのファイルを全てコピー
uPl01ShebaNormal\pawn\pl\pl01\motionフォルダへコピー 以下のファイルだけリネームして上書き
pl07action.lmt → pl01action.lmt
ボイスについても考えてみる カットシーンでのセリフにはさすがにレベッカの声というのは無いがゲームプレイ時に使用されている掛け声をレベッカの声をシェバの物と入れ替える事は出来る 日本語で言えば攻撃する時の「えい!」とかやられた時の「ああ!」の様な物だ
uPl07RebeccaNormal\sound\bgm_dc\emo_vo_1d_r.stqをuPl01ShebaNormal\sound\bgm\emo_vo_01_s.stqにリネームしてコピー
以下も同様にレベッカのファイルをシェバの同じ階層にリネームしてコピー
uPl07RebeccaNormal\sound\se\pl→uPl01ShebaNormal\sound\se\pl
se_pl1d.ase→se_pl01.ase
se_pl1d.mse→se_pl01.mse
se_pl1d.spc→se_pl01.spc
se_pl1d.srd→se_pl01.srd
se_pl1d.srq→se_pl01.srq
uPl07RebeccaNormal\sound\se\wp→uPl01ShebaNormal\sound\se\wp
se_wp24.spc→se_wp0e.spc
se_wp24.srq→se_wp0e.srq
替える事が出来るボイスは他にもある 協力プレイで相手に呼び掛けるボイスだ
「クリス!」とかこっち来いと言う時の「ディスウェイ!」等だ
Resident Evil
5\nativePC_MT\sound\bgm\oto\emo_voiceにあるS_の付く.sngwファイルがシェバのボイスだ
ちなみにこの.sngwを.mp3に拡張子を変えるとWindows標準のアプリケーションでも聴く事ができる
これをResident
Evil
5\nativePC_MT\sound\bgm_dc\oto\emo_voice r_の付く.sngwファイルがレベッカのボイスなので
同じ数字の物を_r_→Sにリネームしてsound\bgm\oto\emo_voiceにコピーすれば良い
例:
r_10.sngw→s_10.sngw
しかしこのシェバのボイスはBSAA以外の他のコスチュームでも使用されるため変更は熟慮した方が良いだろう
では.arcファイルに固め直す
uPl01ShebaNormalフォルダをpc-re5.batにドラッグ&ドロップし圧縮
uPl01ShebaNormal.arcが編集されたものに上書きされる
uPl01ShebaNormal.arcをResident
Evil 5\nativePC_MT\Image\Archivelフォルダにコピー
pl07action.lmt →
pl01action.lmt
シェバのBSAAコスでゲームを開始して確認してみる
しかしマーセナリーズリユニオンで体術時に使うスプレーやスタンガンが出っぱなしになってしまう ちなみにマーセナリーズでこのレベッカを使おうとするとゲームが落ちてしまう 通常の武器は別モデルとして別のarcファイルとして固められているがレベッカだけ同モデル内にあるという事はやはり特殊なようだ モデルデータを開いて調整が必要になる
3dsmax でモデルデータを編集出来るスクリプトを使用する RE5 (unoffical)-v0-31e.ms
このスクリプトを配布してくれた偉大なModderに感謝と敬意をもって使わせていただこう
スクリプトを起動し設定はデフォルトのまま[Import Mod
]をクリックしuPl01ShebaNormal\pawn\pl\pl01\modelにあるpl0100.modを読み込む
スプレーの表示・非表示をゲーム側でコントロールしてる事を考えると表示させないためには消すしかなさそうだ そのためには表示したくないパーツのLOD番号を0に書き換える
編集したパーツのみを選択・表示し画面を右クリック[選択以外を非表示]を選択 スクリプトを起動して設定はデフォルトのままExport
Mod をクリック
uPl01ShebaNormal\pawn\pl\pl01\modelにあるpl0100.modを選択
以下の文面が出ればpl0100.mod.NewMODが生成されている
pl0100.mod.NewMODをRE5TriStripというツールにドラッグ&ドロップ pl0100.modが生成される これをuPl01ShebaNormal\pawn\pl\pl01\modelにあるpl0100.modに上書き
.arcファイルに固め直す
uPl01ShebaNormalフォルダをpc-re5.batにドラッグ&ドロップし圧縮
uPl01ShebaNormal.arcが編集されたものに上書きされる
uPl01ShebaNormal.arcをResident
Evil 5\nativePC_MT\Image\Archivelフォルダにコピー
ゲームを開始して確認 うまく消えてくれた
しかしマーセナリーズにおいてスプレー等を使うシーンで空振りしてしまう事が判明した 元の操作キャラがシェバなので火炎等のエフェクトを出す事が出来ない上に敵にダメージを与えられていない レベッカ特有のモーションなので残念ではあるが そもそもスプレーを出し入れできず消さざるを得なかった経緯を考えれば当然だ ゲームを快適に行うためにはモーションについて編集が必要である
しかしスプレーを出すモーションだけを変えればいい訳でもない シェバとレベッカでは.lmtファイル内でモーションデータの順番があべこべになっているのだ 例えばゲーム内で体術が出現する時 敵が頭を撃たれて怯んだ場合と足を撃たれた場合では違う体術を使う しかもそれぞれ敵の前からと後ろからではまた違っている これら体術モーションのナンバリングがシェバとレベッカで違っているのだ これが空振りの原因だ
順 シェバ (攻撃箇所・攻撃位置) レベッカ
1 - スピンキック(頭)
8 - 火炎スプレー (頭)
2 - ミドルキック(腕・前) 1 - 催涙スプレー
(腕・前)
3 - サマーソルト(足・前) 2 - ジャンプパンチ (足・前)
4 - ヘッドバスター
(必殺・前) 5 - 電気ショック (必殺)
5 - サイレントナイフ (足・後) 6 - グラップルニー (足・後)
6 - ニーキック(腕・後) 7 - ヒップ (腕・後)
7 - スラストダガー (倒れた所) 4 - サッカーボールキック (倒れた所)
8 - エアクラッシュ (必殺・後)
9 - キック (味方援助)
3 - プッシュアウト (味方援助)
2はタイムボーナスを壊すモーションにもなっている
レベッカのスプレー系モーション3つをシェバの物に入れ替えたとして残りの体術はシェバの派手な攻撃に比べて非常に地味だ それならlmtファイルごとシェバの物を使う事にしたいものだ マーセナリーズだけでなく本編でも使用する事を考えるとキレのあるアクションがいいからだ そこでモーションを入れ替える方法についてメモを残しておく
●モーションの入れ替え
Resident Evil 5 LMT Toolというツールにてモーションを入れ替える事が出来る モーションは上記でも書き換えた.lmt形式のファイルに格納されている このツールでは.lmtファイルを直接編集できるようだが自分の環境ではうまく動作しなかったので.lmtファイルを一旦解凍してから編集する事にする
今回はレベッカの空振りモーションをシェバの物と入れ替える事で体術を交換する例としてみた
まずuPl01ShebaNormal\pawn\pl\pl01\motion\pl01action.lmt・uPl07RebeccaNormal\pawn\pl\pl01\motion\pl07action.lmtをどこかにコピーしLMT Toolで解凍する
Resident Evil 5 LMT
Toolを起動しExtract/Repackタブをクリック各々の.lmtファイルドラッグ&ドロップしExtractをクリック
pl01actionとpl07actionフォルダが生成される
Animation Swapタブをクリック 下の段の上に編集するフォルダ 下に元になるフォルダをそれぞれドラッグ&ドロップ
Change Animation
④が編集するモーション ⑤が元になるモーション ツールにモーションリストが同梱されているので目的のモーションの番号を探しやすい 両者のモーションを選択出来たらApplyをクリック 続けて他のモーションを変えるには④⑤の番号を変更しApplyをクリックすればよい
編集したフォルダを圧縮し直すにはExtract/Repackタブをクリック Repackをクリックし圧縮したいフォルダを選択 その後圧縮したファイルの保存場所を指定する
圧縮したpl07action.lmt をpl01action.lmtにリネーム
uPl01ShebaNormal\pawn\pl\pl01\motionフォルダへコピー
.hitファイルも一応やっておこう これは攻撃の当たる範囲を決めているファイルだ 例えばシェバのスラストダガーでナイフが当たってない隣のマジニもやられたりするが攻撃の範囲が広めにとられているおかげだ lmtファイルを編集した後攻撃が空振りしたりする事がある そんな場合に有効な編集だ Enhance HIT fileはファイル内の同アドレス部分を移植しているものかと思ったがHexエディタで確認した所違うようだ
uPl01ShebaNormal\pawn\pl\pl01\soft\pl01.hit・uPl07RebeccaNormal\pawn\pl\pl1d\soft\pl1d.hitどこかにコピーしベースとなるレベッカpl1d.hitを①に補足データのあるpl01.hitを②にドラッグ&ドロップしOKをクリック
出来たpl1d.hitをpl01.hitにリネームしuPl01ShebaNormal\pawn\pl\pl01\soft\pl01.hitにコピー
では.arcファイルに圧縮し直す
uPl01ShebaNormalフォルダをpc-re5.batにドラッグ&ドロップし圧縮
uPl01ShebaNormal.arcが編集されたものに上書きされる
uPl01ShebaNormal.arcをResident
Evil 5\nativePC_MT\Image\Archiveフォルダにコピー
ゲーム/マーセナリーズを開始して確認
火炎スプレーのモーションがスピンキックになり攻撃が当たるようになった
●カットシーンについて
操作キャラクターを入れ替えるとカットシーンで元のキャラ(この場合シェバ)の顔が重なってしまう問題が起こる
理由はカットシーン専用の頭部モデルがあり(シェバBSAAはevfpl01.arc)カットシーン描画の際にそれをゲーム側が読み込むため
顔が二つ重る事態になる訳だ
これはカットシーンで複雑な表情を再現したり顔がアップで表示される際に美麗に見せるために用意されているファイルだ
当然ながらデフォルトであるキャラクター(シェバ)のボディモデルを使用してる場合にはこの問題は起こらない ボディモデルに付属する頭部とカットシーン専用の頭部をゲーム側が必要に応じて表示・非表示を切り替えているからだ
他のキャラクターのボディモデルを使用すると表示の切り替えが出来ないため頭部が出しっ放しになってしまうという訳である 下画はシェバとレベッカの頭部が重なってしまっているシーンだ
ならばカットシーン専用頭部モデルを消してしまえばいいという話になるがこれにはデメリットがある
カットシーン専用頭部モデルとボディ付属の頭部モデルではボーン数が違うためゲーム側でボディ付属の頭部モデルを動かす事が出来ず表情を再現出来なくなる
例えばカットシーンの口を開く場面でボディ付属の頭部モデルでは口を開ける事が出来ず喋っているのに口を閉じているといった具合だ
では入れ替えるキャラ(レベッカ)のカットシーン専用頭部モデルを作成したらどうか
カットシーン専用頭部モデルを作るには入れ替えるキャラ(レベッカ)のボディに付属している頭部モデルをデフォルトのキャラ(シェバ)のカットシーン専用頭部モデルのファイルにインポートし各メッシュにボーン・ウェイトを移植する必要がある
さらに入れ替えるキャラ(レベッカ)のボディは頭部の表示・非表示に対応していない事からボディもデフォルトのキャラ(シェバ)に移植する作業も必要になってくる
そうしないと口が開かない顔が重なって表示されてしまう事になるからだ
こういった事情を踏まえながら作業を進める必要がある
カットシーン専用頭部のファイルがある場所は
Steam\steamapps\common\Resident Evil
5\nativePC_MT\Image\Archive\event
evfpl00.arc - クリス BSAA
evfpl01.arc - シェバ BSAA
evfpl10.arc クリス Zebra
evfpl11.arc クリス
S.T.A.R.S
evfpl12.arc シェバ Amazones
evfpl13.arc シェバ Casual
evfpl20.arc クリス Warrior
evfpl21.arc シェバ Office lady
evfpl22.arc Cris Exoskeleton
バイオハザード4の最初のPC版はカットシーンがムービーファイルだったため着替えたコスチュームを反映する事が出来なかった事を思い出した 着替えたコスチュームがカットシーンで反映されるのもリアルタイムレンダリングのおかげだ このアップに耐えられるハイポリな頭部ファイルがそれを支えているといえよう
evfpl01.arcを解凍してモデルデータを見てみよう pc-re5.batにevfpl01.arcをドラッグ&ドロップ evfpl01フォルダが生成される evfpl01\pawn\pl\pl01\modelフォルダ内にモデルデータの.modファイルが3つあるのでこの内訳を見てみよう Noesis 4というビューワーがあり.modファイルや.texファイルを解凍せずそのまま読み込む事が出来るのでファイル閲覧に便利だ
evf0100.mod 顔 evf0101.mod 髪 evf0103.mod 目
3DSMAXで開くとボーンが多数あることが確認できる
arcフォルダ内は顔・髪・目のモデルデータである3つの.modファイルとそれに対応するテクスチャの.texファイルで構成されている
Archive の頭三文字で.arc 同様にModelの.mod Textureの.texと考えると覚えやすい
カットシーン専用頭部モデルを消す
では作業に入る まずカットシーン専用頭部モデルを消してしまう方法だ 表示させなくするにはLOD番号を0に変更することで出来る
3DSMAXでRE5 (unoffical)-v0-31e.msスクリプトを起動し設定はデフォルトのままImport Mod をクリックしevf0100.modを読み込む
表示させたくない物すべてLODx0に変更しそれらをすべて選択する 選択されていないと書き出せない
画面を右クリックし[選択以外を非表示]を選択
スクリプトを起動して設定はデフォルトのままExport Mod をクリックしevf0100.modを選択
evf0100.mod.NewMODが生成される
これをRE5TriStripツールにドラッグ&ドロップ pl0100.modが生成される どの.modファイルを変換させてもpl0100.modというファイル名になる
pl0100.mod→evf0100.modにリネームしevfpl01\pawn\pl\pl01\modelにコピー
レベッカの顔テクスチャpl1d_01Face_BM.tex・MM.tex・NM.texをpl0100_00Face_BM.tex・MM.tex・NM.texにリネーム
これもvfpl01\pawn\pl\pl01\modelにコピー
フォルダを.arcファイルに圧縮する
vfpl01フォルダをpc-re5.batにドラッグ&ドロップし圧縮
vfpl01.arcが編集されたものに上書きされる
vfpl01.arcをnativePC_MT\Image\Archive\eventフォルダにコピー
同じようにevf0101.mod髪・evf0103.mod目についてもLODx0に変更する作業をする
ゲームを開始して確認だ
表情がない事以外はOKだ
実はこのevfxxx.modはvfpl01.arcに固めなくともゲームに認識させる方法がある ボディ側のuPl01ShebaNormal.arcにpawnフォルダごとリパックしてしまえば、そちらが優先されるのでevfpl01.arcを書き換えなくて済むのだ
この方法は他にもメリットもある シェバ・クリス共にBSAAコスチュームにおいてはアーマーをつけるとゲームが読み込むボディの.arcファイルが変わるため それを利用してキャラクターを変更する事が出来るのだ vfplxx.arcに依存しないために起こる現象だ
uPl01ShebaNormal.arc = シェバ BSAA←---------------------------------今回レベッカに変更
uPl01ShebaArmorA.arc = シェバ BSAA + アーマー(耐衝撃)←-----------他キャラに変更可能
uPl01ShebaArmorB.arc =
シェバ BSAA + アーマー(防弾)←-------------他キャラに変更可能
uPl01ShebaArmorF.arc = シェバ BSAA + アーマー(防弾+耐衝撃)←-----他キャラに変更可能
しかし今回はエラーの切り離しが出来る様にしたいためvfpl01.arcを編集する方向で作業を進めている
他にevf0103.modの目をレベッカの目を隠す様にほんの少し前に出して目だけでも動くようにする方法もある これならレベッカの目が表示状態でも見えていなければ表示されていないと同じだ
3DSMAXでRE5 (unoffical)-v0-31e.msスクリプトを起動しevf0103.modとレベッカのpl1d00.modを読み込む
[メッシュを編集]モディファイアを追加 evfシェバの目をほんの少し前へ移動する
編集した目のメッシュのみを選択 画面を右クリックし[選択以外を非表示]を選択
スクリプトを起動して設Export Mod をクリックしevf0103.modを選択
evf0103.mod.NewMODが生成される
これをRE5TriStripツールにドラッグ&ドロップ pl0100.modが生成 evf0103.modにリネームし.arcファイルに圧縮する
Export Mod時スキンモディファイアの上にモディファイアが追加されていると下図の様なメッセージが表示されるが はい(Y) をクリック これはスキンのうえにメッシュを編集をつけたためだ ちなみに必ず「メッシュ」でなければならない [ポリゴンを編集]等のモディファイアを追加してしまった場合使わなくてもとりあえずその上に[メッシュを編集]をつけておく事が必要だ しかしさらにその上に[スキン]モディファイアがあれば下図は表示されない また「今後このメッセージを表示しない」をチェックしてしまうと間違いに気が付く機会を失ってしまうと考える
また一回編集された.modファイルはもう3DSMAXで読み込む事は出来ない 書き出したいメッシュが多数ある場合はそれらをあらかじめレイヤーに入れレイヤーを選択するだけでよい様にしておくとエクスポート時の選択に便利だ
瞳の色もレベッカに合わす必要がある evf0100_05_BM.texを編集だ
目が動くだけで大分表情が出る それだけではなくこの目パーツにシェーダーが当然とは言え対応しているため目がハッキリと見える 一手間で効果は上々だ
カットシーン専用頭部モデルを作る
カットシーン専用頭部モデルのファイルを消すのではなく 作る事により表情を再現する方向で作業を行ってみる
まずシェバのカットシーン専用モデルevf0100.modを3DSMAXのスクリプトで読み込む
v0.27 まではカットシーン.modファイルのインポートに問題があるとの事だったがバージョンが現時点でv0.31までアップした事により大分機能が向上した様だ 実はこのバージョンまでレベッカのスプレーを消す事が出来なかったのだ
evf0100.modを読み込んでみたところやはりスクリプトが対応しきれていない部分があるのか頭部モデルが変な形に分割されてしまっている
通常バイオハザード等で使われる頭部のモデルは別れていても顔・後頭部・喉の3つぐらいまでである 一つのメッシュに付随するボーン・ウェイトの多さが対応を難しくしているのだろう だがウェイトはしっかり再現されている ここがバージョンアップの福音だ
続いてレベッカの顔も読み込む uPl07RebeccaNormal\pawn\pl\pl1d\model\pl1d00.mod
レベッカの頭部は同ゲームのモデルのせいかほぼシェバの位置と同じだ ボーンの多い顔の場合位置が合っていないとスキンラップが意味をなさない上に 位置を合わすためにはボディ側の身長もいじらねばならんのでこれは嬉しい
というわけでそのまま眉毛・口腔内などのパーツを位置合わせをしながら必要に応じて形状を合わせてゆくのだが レベッカの口腔内パーツはカットシーンで使用するには問題があるようだ
レベッカの口腔内パーツは舌と一体化している というより口腔内の底部を盛り上げて舌としているのだ
一方シェバの口腔内パーツでは舌は別メッシュで頂点数もかなりのものだ 大きさを比べてもかなり違う これではレベッカの物ではカットシーンにおいて表現がかなり変わってしまうだろう
しかもシェバの歯は裏側のパーツまである レベッカの板ポリの歯とは作りの差が歴然である これがカットシーン用とそうではない物の違いだ
シェバの口腔内パーツをレベッカの顔に合わせて調整する レベッカのモデルからこれらのパーツをそのままリプライス出来ればこの手間はかからないが カットシーンに耐えうるパーツということでこの選択をせざるを得ない
顔に口腔内側パーツを合わせるために頂点を選択しスナップを使用して唇の内側端に結び付ける だが現状既にスキンがついているため頂点を移動しても戻されてしまうので 事前にスキンモディファイアの上にモディファイアリストから[メッシュを編集]を追加して頂点移動を反映される様にする
モディファイアリストからスキンラップを選択しレベッカの顔にシェバのスキンをコピーする [追加]をクリックしシェバのバラバラな顔メッシュを全て選択 後はとりあえず[影響距離]0.001と[すべてのポイントにウェイト]にチェックだけ気をつけてみる スキンに変換をクリックするとスキンモディファイアが追加される
スキンをつけた後には確認が必要だ 特に口元は閉じた状態では頂点が重なっているためコピーしたボーン・ウェイトが唇の上下で入違っている事が多く口を開いたときに中が埋まってしまう状態になるのが定石だ アニメーション機能を使い口を開いて調整が必要となる その際は唇の内側端に結び付けた口腔内側パーツの頂点からウェイトをコピーすると確実だ これはシェバの元パーツだからだ
口を開くと埋まっている
頂点に正しいボーン・ウェイトをアサインし口を開けてゆく
ここで入れ替えたパーツのメッシュ名が問題になる 現在バイオハザード5のMODにおいてはメッシュ・テクスチャの総数を増やすという事は出来ない 今回はキャラクターの入れ替えを行っているので元キャラが使っているメッシュ名をそのまま使い まさに入れ替えるわけだ そしてそのメッシュは固有のテクスチャを持っている 例えばシェバの顔メッシュの一つであるMesh_030はpl0100_00Face_xM.texがアサインされる レベッカのメッシュMesh_043 テクスチャpl1d_01Face_xM.texをそれらにリネームしてその顔パーツがあったスロットを使うイメージだ しかしシェバの顔がバラバラなのでメッシュ名をどれにしたらいいか迷うところだ こういう場合一番頂点数が多いかもしくはそのモデルで一番重要そうな部分を担っている物を選択するのが定石と考えMesh_030をチョイスしてみた
表示させたくない物すべてLODx0に変更しそれらと編集したものを選択
画面を右クリックし[選択以外を非表示]を選択 線だけの物は非表示にして触らずにおく
スクリプトを起動して設定はデフォルトのままExport Mod をクリックしevf0100.modを選択
evf0100.mod.NewMODが生成される
これをRE5TriStripツールにドラッグ&ドロップ pl0100.modが生成される
pl0100.mod→evf0100.modにリネームしevfpl01\pawn\pl\pl01\modelにコピー
これを.arcファイルに圧縮する
vfpl01フォルダをpc-re5.batにドラッグ&ドロップし圧縮
vfpl01.arcが編集されたものに上書きされる
vfpl01.arcをnativePC_MT\Image\Archive\eventフォルダにコピー
ゲームを開始して確認だ
残念ながらエクスポートは成功していたのにもかかわらずゲームは落ちてしまうという結果だった そこでいくつか他の顔パーツのメッシュ名で変更を試したが結果は同じである やはり頭部モデルが変な形に分割されていたのは.modファイル↔スクリプト間のやり取りにまだ問題があるようだ それにより頭部が細かく分割されメッシュ名が正確ではないものになっていたと考えられる MODではこういう事はよくあることなので気にせず作業を進める
もしかしてスクリプトがまたアップデートするような事があれば上手くいく時が来るかもしれないという希望を持ちながら方針を変え顔スロットは諦め他パーツのスロットに入れ替えを試みることにする
顔以外の他パーツは睫毛・口腔内側・歯・舌・ヘッドセットだ 歯は上下と裏表がある 歯の裏側が無くてもゲーム内で表示されたとき歯の裏側が見えたとき歯が透ける程度(ポリや法線の向きの裏側・テクスチャを貼った面の裏は表示されない)なので試しにこれと入れ替えてみる
この際歯の4つのメッシュに対応するテクスチャはevf0100_01_xM.texなのだが歯の裏側メッシュを顔に使うということはpl0100_00Face_xM.texをリネームしてvf0100_01_xM.texに入れ替えることになる しかし他の歯のメッシュのテクスチャはどうするのか そんな時便利なのがメッシュ名のマテリアルIDを変更する事だ これによりアサインするテクスチャを変更できる
この場合 メッシュ名は Mesh_018_00_LODx255_MatIDx1_Groupx5_DisplayModex5
MatIDx1をMatIDx8に変更することでpl0100_00Face_BM.texにアサイン出来るのだ
しかしゲームを開始して確認すると顔がチラつきが酷くとてもカットシーンでの使用に耐えない
他パーツに入れ替えた場合この様に表示がおかしくなる問題を起こすことがある 特に銃器やアクセサリ テカりのある服等は肌と違う表示の仕方をゲーム側のレンダリングプログラムがコントロールしている場合が多くある シェーダーによる問題もそうだ モデルデータやバンプ・ノーマルマップ等テクスチャの編集ではいじれない部分なのである その上意外なパーツが非表示にされてしまう場合もある 例えば脚部のメッシュ名を使うと銃器を構えた時表示されないのだ 無駄な負担をさけゲームの動作を軽くする工夫の一つである
こういった事はよくある事と割り切り 懲りずに次はヘッドセットと入れ替えを試みてみる ヘッドセットが無くなるのは一見残念な気もするが ボディをいじる時に何かのメッシュにアタッチしてしまうか何かすればいいだろう 顔メッシュをMesh_005にリネーム ヘッドセットはボディのイクイップメントとテクスチャを共有しているためMatIDx8に変更する
すると上手く表示させる事が出来た だがそこで首の付け根が浮いてしまっている事に気付いた
これはスキンのコピー元であるシェバの頭部モデルに比べてレベッカのモデルが下まであり過ぎたのである evf0100.modには肩・腕が無いのでこの辺のウェイトがついていないのは当たり前といえる
そこでチョーカーの部分でメッシュを分割し下部分を後々ボディ側に追加する事にした
編集した結果の動作については概ね良好である しかし残念ながらまだ解決すべき問題がある あちこちに光がすけたり黒ずんだりしている所があるのだ こういった現象が起こる要因は 面が裏返っている・法線の向きが崩れている・頂点や面が重なっている・面が三角形ではない等の原因が考えられるが それら修正しても改善されない場合がある Scriptがmodファイルを書き出す時になんらかの不具合が起ている模様だ こういった場合一旦このメッシュを書き出し他の3DCGソフトで.obj形式のファイルへ変換し再度3DSMAXに読み込み編集するといった荒業で書き出しの不具合を回避出来る事がある
この件はスクリプトを最初に作成したmaliwei777氏のマニュアルでも触れられている
3DSMAXで.とりあえず.3ds形式のファイルとして書き出したメッシュを前述のNoesisで開く それをobj形式としてエクスポート 3DSMAXでその.objメッシュを読み込みスキンラップモディファイアで元の顔メッシュのスキンをコピー 元の顔メッシュをスキンモディファイアでスキン情報を保存しその.envファイルを新しい顔メッシュの方にロード 名前で一致でOKをクリック これで先程修正したウェイト情報もそのまま移行出来る
直ったようだ ニッコリ
ボディの移植
まだこれで終わりではない 上画のボディはカットシーンの確認のため暫定的に顔パーツを削除した物なのだ つまりゲームプレイ時には顔が消えた状態になる カットシーンにおいても場面によってはボディ側の頭部を利用するので顔無しだ それに伴い髪のevf0101.modも編集する必要がある
レベッカのボディではカットシーン時に頭部を表示・非表示の切り替えが出来ないためカットシーンに対応しているデフォルトの操作キャラであるシェバのボディに付随するボーン・ウェイトに移植する必要がある
ARCtoolのpc-re5.batにuPl01ShebaNormal.arcとuPl07RebeccaNormal.arcをドラッグ&ドロップして解凍
3DSMAXでRE5 (unoffical)-v0-31e.msスクリプトを起動しImport Mod をクリック uPl01ShebaNormal\pawn\pl\pl01\model\pl0100.modを読み込む
次に読み込んだ物を全てレイヤーに入れもう一つレイヤーを作りそこにuPl07RebeccaNormal\pawn\pl\pl1d\model\pl1d00.modを読み込む 何故そうするかというとボーンの名前が数字なため一緒くたになると訳が分からない状態になってしまうのを避けるためだ 読み込むのに結構時間がかかるのでしばらくほっておく
読み込んだ物を見るとシェバとレベッカのボーンが形状もナンバリングもほぼ同じだ
レベッカ シェバ
これはと思いレベッカの顔をスキンコピーもせずシェバのメッシュ名にリネームしてpl0100.modにエクスポートしただけでそのまま表示させる事が出来た
しかもカットシーンで顔が非表示になっていることも確認できた ほぼ同じボーンを持つレベッカ本人のボディ使用時には出来なかったのにだ
これはこの.modファイルにメッシュ・ボーン・ウェイトの他に個別の識別情報があることを示唆している 逆に識別情報があるからこそ普通であればスキンをコピーするなりしてコピー元のボーンと結び付けないとプログラムにそれと認識されないのではと考えたが それが単にリネームしただけで出来たので驚きだ ボーンも147あるので全部調べた訳ではないが顔のボーンにはかなり後半のボーンも含まれているのでやはり同じ物と考えて良さそうだ 思えば当初このゲームが発売された時にレベッカはDLCであった 既存のデータを流用して製作されていてもおかしくはない これで顔の位置や身長が同じだった事の説明がつく
しかしそこでそのメッシュをどのメッシュ番号に振るかで場合によっては芳しくない状態になる事がある
しかし少し動くと顔から黒い線が現れる または顔が一部崩れる
こういった現象がおきる原因は 頂点にウェイトがアサインされていない・UVマップの範囲外に頂点がある・孤立した頂点がある 等普通は考えられるがこの場合そうではない メッシュ名つまり受け取り側のスロットとのマッチングがよくないのだ レベッカ顔Mesh_082→シェバ顔Mesh_082とお互いの顔同志で入れ替えても上手く表示出来ない そこでシェバの顔意外で顔に近いパーツは唇である事から唇Mesh_081にリネームすると正常に表示する事が出来た カットシーン顔の場合と同じ対処方だ
メッシュパーツをひとつずつリネームして入れ替えていく
こういったMODの際は各メッシュとテクスチャを1つにまとめるのが定石である 部位と場面によって表示・非表示の問題もあるからだ だがせっかくスキンがそのまま使える事もあってなるべくメッシュをまとめずに各々入れ替える手法を取る事にする 有用なメッシュ数が40個近くあることとレベッカとシェバではパーツの分割が違う事そして上記の様な表示の異常やカットシーン・ゲームプレイ時には思わぬ部位が表示されない等の問題もあって完成にかなり時間を要してしまった
お次は髪パーツだが
evfpl01.arc内にあるカットシーン用髪モデルevf0101.modのシェバ用髪メッシュをレベッカの物と入替えたが上手く表示させる事が出来なかった 髪の透過率がおかしく毛が透け過ぎたり白っぽくなってしまってせっかくのカットシーンが台無しである そこでレベッカの元モデルであるuPl07RebeccaNormal.arc内のpl1d00.mod
から余計なメッシュを消した物をevf0101.modにリネームして使ったところキレイに表示する事が出来た 我ながら大胆な作戦である
●LODの話
LODはLOD1・LOD2・LOD252とそれぞれに顔・手・足など各パーツがある それらは近距離・中距離・遠距離で使い分けられ描画表示の負担軽減を担っている
LOD1・頂点数2119 LOD2・頂点数1338 LOD252・頂点数894
遠くにあるものはそれ程細密にする必要がないので遠距離になるほどポリ・頂点数を減らしマシンの負担を軽減しているのだ
プレイヤーから見たLOD表示を切替えるタイミングの距離 首のないレベッカの位置が切り替わりポイントだ
LOD2
LOD252
こういったキャラクター入れ替えの際に各々のLODに頂点数を変えたキャラクターのメッシュを一々入れ替えなくともLOD1に入れたメッシュ名をコピーしLOD255にする事で他のLOD描画時にもそれが表示される様には出来る バイオ5はそもそもそんなに重い動作のゲームでもないのでPCの負担をそれほど考慮する必要も無いであろう
動作の最終確認 ボディ側の頭部はカットシーンで非表示にする事が出来ている
S.T.A.R.Sの二人に このセリフ
最初からクリスとレベッカがジルを探すストーリーでも良かった様な気がしなくもない だが黒人女性の新キャラクターというのも歓迎したい 女性の登場人物が増えるのは嬉しいことである
●Chapter1-1について
実はまだこれで終わりという訳ではない ゲーム本編序盤ではクリスとシェバが出会うシーンで二人ともまだ装備を持っていない ここでは本来のコスチュームとは違うモデルが使われているのだ シェバの場合uPl01ShebaPlain.arcである これはBSAA以外のコスチュームでもChapter1-1ではこれが表示される
装備前
装備後
これは上記のキャラクターの入れ替えの項で行った様に シェバBSAAをレベッカに入れ替えたファイルをChapter1-1で使えるように 先程改造したuPl01ShebaNormal.arc内の各ファイルを
uPl01ShebaPlain.arc内のファイルと置き換える作業が必要だ
uPl01ShebaNormal\pawn\pl\pl01\model\ pl0100.modを
uPl01ShebaPlain\pawn\pl\pl0d\modelへpl0d00.modにリネームしてコピー
uPl01ShebaNormal\pawn\pl\pl01\face\ face.lmtを
uPl01ShebaPlain\pawn\pl\pl01\face\ face.lmtにリネームしてコピー
uPl01ShebaNormal\pawn\pl\pl01フォルダをuPl01ShebaPlain\pawn\plにコピー
.arcファイルに固め直す
uPl01ShebaPlainフォルダをpc-re5.batにドラッグ&ドロップし圧縮
uPl01ShebaPlain.arcをResident
Evil 5\nativePC_MT\Image\Archivelフォルダにコピー
次の問題はカットシーンである evfpl~.arcにChapter1-1で使われている頭部モデルが無い
実は舞台のモデル等が収められているev100_02.arcとev115_00.arcにそのカットシーン用頭部が内包されているのだ
VIEWERS /CUT SCENES で言うところの「人々が姿を消す」と「肉屋の男(前半)」だ
これらをレベッカに入れ替えたシェバBSAAのevfpl01.arc からテクスチャと共に移植しよう
シェバ BSAAのカットシーン用頭部であるevfpl01.arc の
evf0100.mod(顔)・evf0101.mod(髪)・evf0103.mod(目)を
ev100_02\pawn\pl\pl01\modelにあるevf0100.mod(顔)・evf0101.mod(髪)・evf0103.mod(目)にそれぞれリネームしてコピー
evfpl01\pawn\pl\pl01フォルダをev100_02\pawn\plにコピー
目がアップになるシーンではev100_02\pawn\evm\evm0100\model\evm0100.modが使われている
頭部のモデルだ
evfpl01.arc の evf0100.modをリネームしてコピー
元のevf0100.mod
arcファイルに固め直す
ev100_02フォルダをpc-re5.batにドラッグ&ドロップし圧縮
ev100_02.arcをResident
Evil 5\nativePC_MT\Image\Archivelフォルダにコピー
同じ作業をev100_02.arc→ev115_00.arcに読み替えて行う ちなみにev115_00.arcにevmは無い
●アーマーについて
アーマーには耐衝撃と防弾があり 更に耐衝撃+防弾のそれぞれにモデルデータが用意されている
これはBSAAコスチューム以外を選択した場合には表示されない つまりBSAAコスチュームを変更する際にはこれら3つのarcファイルも編集する必要があるのだ
先程のuPl01ShebaPlain.arcで行った様に改造済みのuPl01ShebaNormal.arc内の各ファイルをアーマーの各.arcに移植する
アーマーの.arcファイルは上記のリストの項でも書いた以下のファイルだ
uPl01ShebaArmorA.arc = シェバ BSAA + アーマー(耐衝撃)
uPl01ShebaArmorB.arc =
シェバ BSAA + アーマー(防弾)
uPl01ShebaArmorF.arc = シェバ BSAA + アーマー(防弾+耐衝撃)
各々ARC toolで展開し uPl01ShebaNormal.arcの編集で行った様に必要なファイルを入れ替える作業が必要なのだ
だがどうせ入れ替えるならそれらを利用していっそのこと着替えてしまう手もある そこでアーマー使用時arcファイルが切替わるのに乗じてバイオ0内のコスチュームに変わるようにしてみた
軽装になっているのに防御力は上がるというおかしな状態だがとりあえず動作の方は良好だ
●メニュー画面について
コスチューム セレクトやマーセナリーズの画面もシェバBSAAからレベッカS.T.A.R.Sに替えてみたいものだ
それらのファイルの場所は Steam\steamapps\common\Resident Evil 5\nativePC_MT\Image\Archive
Menu2Resource.arc = コスチューム セレクト
Menu2Resource\id\jpn\menu\tm113_360_NOMIP_BM.tex シェバ とクリス
MerceResource.arc = マーセナリーズ
MerceResource\id\jpn\versus\ versus_23_360_NOMIP_BM.tex versus_06_360_NOMIP_BM.tex versus_32_360_NOMIP_BM.tex(モノクロ) versus_20_360_NOMIP_BM.tex
Merce2Resource.arc = マーセナリーズ リユニオン
Merce2Resource\id\jpn\merce_dc\versus_24_360_NOMIP_BM.tex レベッカS.T.A.R.S versus_10_360_NOMIP_BM.tex versus_36_360_NOMIP_BM.tex(モノクロ)
ARCtoolで目的の.arcファイルを解凍しシェバBSAAの画像をレベッカの物に差し替えればいいわけだ
ここでもNoesis 4が大活躍だ texファイルを一々解凍せずともそのまま読み込む事が出来るので多数あるファイルから目的のファイルを探すのにとても便利なのだ
Menu2Resource.arc をpc-re5.batにドラッグ&ドロップ Menu2Resource\id\jpn\menu\tm113_360_NOMIP_BM.texをpc-re5.batにドラッグ&ドロップ
生成されたtm113_360_NOMIP_BM.ddsを.ddsファイルを扱える画像編集ソフトで開きシェバBSAAの画像をレベッカの物に差し替える
編集したテクスチャ名はtm113_360_NOMIP_BM.ddsそのまま 出力形式は元と同じくDXT5 Generate mipmaps
としてエクスポート
pc-re5.batにtm113_360_NOMIP_BM.ddsをドラッグ ptm113_360_NOMIP_BM.texをMenu2Resource\id\jpn\menuにコピー
Menu2Resourceフォルダをpc-re5.batにドラッグ&ドロップし圧縮
Menu2Resource.arcが編集されたものに上書きされる
Menu2Resource.arcをResident
Evil 5\nativePC_MT\Image\Archivelにコピー
ゲームのコスチューム セレクトでシェバBSAAを確認 Sheva Alomarの文字はシェバの他のコスチュームの事もあるのでそのままにしておこう
マーセナリーズでのシェバBSAAはリユニオンのレベッカS.T.A.R.Sの画像と入れ替える
Merce2Resource.arcを解凍し
Merce2Resource\id\jpn\merce_dcにある
versus_24_360_NOMIP_BM.tex
versus_10_360_NOMIP_BM.tex
versus_36_360_NOMIP_BM.texを
MerceResource.arcを解凍したMerceResource\id\jpn\versusへ
versus_24_360_NOMIP_BM.tex→versus_20_360_NOMIP_BM
versus_10_360_NOMIP_BM.tex→versus_06_360_NOMIP_BM.tex
versus_36_360_NOMIP_BM.tex→versus_32_360_NOMIP_BM.texにリネームしてコピー
MerceResourceフォルダをリパック
Resident Evil
5\nativePC_MT\Image\Archivelにコピー
ゲームを起動してマーセナリーズで確認
Sheva AlomarとBSAAの文字はシェバの他のコスチュームとクリスBSAAでも利用されているので そのままにせざるを得ない