情報下さったUhllica様に感謝です!
プレイヤキャラの頭部は、基本的にNPCから独立してます。モンタージュ的なパーツの組み合わせでキャラメイクするプレイヤキャラに対し、NPCは事前に完成済の顔”FaceGenData”を使う為です。共有部分(後頭部や目等のテクスチャ)もありますが、独立化の意味が薄かったり、キャラメイクで変更できるので、実質的に独立状態と言える訳です。
けれども、MOD環境次第ではNPCがFaceGenDataを使わず、プレイヤキャラのように顔をモンタージュ作成してしまい、結果として頭部が共用化されることがあるようです。
詳細はこちらにて。
f4mod.hatenablog.com
体型を独立化した環境では面倒ですね。顔や後頭部のメッシュ共用はともかく、テクスチャ共用化は独立の趣旨に反します。
そこで今回は、プレイヤキャラの顔と後頭部のテクスチャを、NPCから完全に分離します。体型独立化同様、プレイヤキャラ専用で新設します。これならNPCに使われる心配がありません。
- メッシュをわざわざ分離するメリットが薄い
- 顔メッシュを独立化するとキャラメイクに支障が出る
といった理由の為。
顔メッシュのファイルパスを動かすと、キャラメイクに不具合でるようで(表情はOK)。モーフファイル(.tri)のファイルパス以外に、何か設定あるんですかね。
はじめに
『preset』のつく単語が多いので、定義を明確にしておきます。勝手に命名してるのもあるので、ローカル用語として解釈してもらえれば、と。- presetスロット:キャラメイク時に読み込める、FACE01-15のキャラデータ
- preset用NPC:上記01-15の元となるNPC(ゲーム内には出てこない)
- 顔パーツ用preset:キャラメイク時に選択できる、目、鼻、口の各パーツ
- Morph Preset:FO4Editでの名称。『顔パーツ用preset』の設定情報
頭部独立化の構造検討
プラグイン上で頭部を構成する要素に、Head PartとTexture Setの2つがあります。RaceやNPCで設定される他、Head Part内に追加設定される等、色々な所で紐付けされてます。HeadPart
頭部を構成する各パーツ設定です。SSは上から顔、目、口、後頭部、髪、首断面。male用なら髭もあったり。
中でメッシュやモーフが紐付けされてます。他に付随するHead Partや、Texture Setが括られてることも。
”Valid Races”は、このHead Partを使える種族の設定。今回の話とは関係無いので、また別の所で。
Texture Set
名前の通り、頭部のテクスチャ設定。
テクスチャのファイルパスが設定されてます。
プレイヤキャラの顔を分離するには、これらを専用化する必要があります。SSはHuman種族設定の物でしたが、個別のNPCにも設定項目有ります。なのでプレイヤキャラ(00000007
)に独自のHead PartとTexture Setを設定すればOKに思えるのですが・・・。
残念ながらうまくいきません(汗)
原因は、プレイヤキャラに対するHead PartとTexture Setの適用方法で、以下の制約があります。
- キャラメイク時に選択したpresetスロット次第で、プレイヤキャラのHead PartとTexture Setが決定
- 一度決めたHead PartとTexture Setは、セーブデータに依存
微妙に厄介ですね。
よってこの条件下でプレイヤキャラの頭部を独立化させるには、
専用Head PartとTexture Setを使用したpreset用NPCを経由させる
ことになりそうです。ちょっと面倒ですが・・・。
頭部独立化用MODの構造
頭部だけに限定した、独立化MODを作成しました。顔と後頭部のHead Part及びTexture Setを専用化し、preset用NPCに適用。これを使えば独立化します。あまり項目無いですが、以下詳細。
Texture Set
顔用。ディフューズ、ノーマル、スペキュラのファイルパスを独立化。
こっちはCBBEの後頭部用。
Head Part
後頭部Head Part。CBBEでなければ不要かもです。
FemaleHeadHumanRearTEMPをコピペして、Texture Setをここに設定(preset用NPCに直接設定できない為)。”Uses Body Texture”のflag解除を忘れずに。
顔のHead Partも一応分離しましたが、中身はFemaleHeadHumanのまま変更してないので省略。メッシュの移動は可能ですが、前述の通りキャラメイクで支障でるかもなので。
NPC
preset用NPCの2番を変更しました。長いので差分表示にて。
作成したHead Part2つと、顔のTexture Setをここに設定。独自種族を使う場合は、ここにRaceも設定。
キャラメイクによる頭部独立化
このプラグインを有効化して、キャラメイクを試します。独立化したテクスチャ(ディフューズ)は、顔を緑一色、後頭部を真っ白にしました。うまく切り替われば一目瞭然。独立化前のモンス・・・もといプレイヤキャラ。
presetスロット2番をロード。微妙にうまくいってないですね。
顔自体のテクスチャは独立化したので、下地は緑になってます。後頭部もOK。しかし顔パーツ用preset(キャラメイク時に選択する鼻や口等)に付随するテクスチャが、独立化できてません。
いくつか対処方法があります。
(方法1)マスクパターンを変更
おつり貰う可能性ありますが、一番簡単な方法から。
顔パーツ用preset依存の追加テクスチャを無効化します。以下の7枚のマスク用テクスチャを、黒単色(アルファ無しBC1)のテクスチャと差替え。
Data └ Textures └ Actors └ Character └ Character Assets └ TintMasks ├ CheekMask.dds ├ EarsMask.dds ├ EyesMask.dds ├ ForeheadMask.dds ├ MouthMask.dds ├ NeckMask.dds └ NoseMask.dds
完全に独立化!
ただし、
- プラグインで変更されたバニラNPC
- MOD追加されたNPC
これらの顔が、多少想定と異なる場合があるかもです(上記条件のNPCの追加テクスチャが無効化される為)。例えば目元のシワが薄くなった等。化粧は対象外です。テクスチャ無しの紫になることは無いと思います。
(方法2)プレイヤキャラ専用の顔パーツ用presetを新設
顔単体としては一番大変ですが(顔のロードも手間掛かる)、NPCとは完全に分離可能。
プレイヤキャラ専用の顔パーツ用presetを新設して、独立化します。頬、耳、鼻、額、目、口、喉の7部位に、1個づつ用意します(7個作る)。
Human RaceのMorph Dataを変更します。
preset名称、パーツ形状(ここではPresetFemale2と同じに設定)、Texture Setを設定。前述の7部位それぞれに設定します。
プレイヤキャラ用に7部位を各1個だけ作った為、キャラメイクで顔のパーツを変更する度、これを再設定する必要があります。全部作るとドえらい量になるので・・・。
ちなみにTexture SetはCKから設定できなかったので、FO4Editで設定しました。Head PartみたいにForm Listでvalid管理されてる訳では無いようですが・・・なんでだろう。
FO4Editで見ると、Morph Presetとして7個追加。IndexはCKで自動付与(つまりこの作業でCK必須)。
あとはこれを、preset用NPCに反映。このNPCで独立化が必要なのは4項目(頬、目、口、鼻)。
注意点として、Morph Keysで設定された各パーツに対して、同じ番号のMorph Values(キャラメイクでの変更)が応答してます。つまり、順番がズレると顔の形が変わります。
新設した顔パーツ用presetを選べば、独立化完了!
他を使うと、独立状態じゃなくなります。
注意点は、Race項目を変更する為、致命的な競合起こしやすいです。必ず確認して互換パッチを作成(もしくはこのプラグインで吸収)してください。
(方法3)種族を独立化
独自種族を使ってるなら、Human Raceとは何の関係も無い為、RaceのTexture Setを変更するだけでOK。
末尾2番の顔パーツ用preset(例えば『Full 2』の口とか)なら、こんなんで独立化します。
種族を分離するまでが大変ですけど、運用はこれが一番楽だと思います(僕はこれでやってます)。
作成済の顔データの独立化
CBBE環境でなければ苦労しないかもですが。キャラメイク時のpresetスロット2番を選択した後で、作成済の顔をロードすると・・・顔に関しては前の章のノリで対処できますが、問題は後頭部。肌色に戻っちゃいました。
Head Partがセーブデータ依存な為、独立前に巻き戻ってます。顔のテクスチャは、Head Partでなくpreset用NPCに直接設定してる為、適用されているようです(なのでCBBEでなければ苦労しないかも)。
しかし後頭部はHead PartにTexture Setを括るしか手が無いので、このままでは既に作成済の顔データを独立化できません。
どうしますかぬ・・・結局の所、preset用NPCを経由するしか手が無いので、
preset用NPCに、ロードしたい顔を移植する
しか無いと思います、多分。
顔のロードで独立化前のテクスチャが乗るのは、方法2で独立化した時だけの筈です。Race項目に新設したプレイヤキャラ用のMorph(FO4EditだとMorph Presets下のMPPM)を、ロード対象の顔に合わせて変更してください。もしくは、これからやる方法でpreset用NPCへ移植でも。
それと、顔黒バグ修正をするRusty Face Fix環境下では、スクリプトでHead Partを差し替える為、後頭部の独立化はできません。
Face Ripperでpreset用NPCに顔を移植
キャラメイクした顔を数値化する必要があるので、Face Ripperを使いました。これでセーブデータ上のプレイヤキャラの顔を、presetスロット2番に相当するpreset用NPCへ移植します。使い方詳細はMODのDescriptionにて。
「UniquePlayerHead.esp」に移植すると、新規プラグイン「UniquePlayerHead18B5F6.esp」が自動作成されます。末尾の数字は移植対象であるpreset用NPCのForm ID。
頭部独立化プラグインに顔情報を上書き
生成されたプラグインは最終的に捨てるので、元のプラグインへ必要なレコードをコピーします。最低限、モーフ関連だけでOKです。SSでは化粧もコピーしてますが、キャラメイクでやり直すのも可。
TextureSetを上書きすると、独立状態が解除されるので注意。作業の意味が無くなってしまいます。
方法1、3で独立化した場合
顔のモーフや化粧等をコピー。SSでは忘れてますが、Texture LightingやWeightもコピーしとくと安心。
方法2で独立化した場合
方法1,3とほぼ同じく、顔のモーフや化粧等をコピー。ただしMorph Keysはプレイヤキャラ用に独立させた為、足りない物だけをコピー(目、口、頬等はすでに有る)。
Face Ripperで出力した方に合わせて、Morph Keysをソート。
ロードした顔に合わせて、Raceに追加したPlayer専用のMorph Presetを変更。
額、首、頬は『DefaultFaceType0』しか無い為、変更不要。設定は巻末のおまけが役に立つかも?
方法1、2、3共通
スキマが出来るといけないので、一応体もコピーしました(平気かもですが)。
Head Partもコピー。同じ部位をダブらせないよう注意。目や眉等、キャラメイクで選択し直すなら放置でもOKです。独立化したHead Partを上書きしないように!
髪はPonytail Hairstylesを使ってた為、マスター指定を増やしたくなかったのでコピーしませんでした(キャラメイクで選択し直し)。
あとはFace Ripperで生成した方のプラグインを削除して終了。このロードオーダーで間違って有効化した日には、競合して全部潰されます。
- Face Ripperで顔移植したesp作成
- 上記espに、元のespからHead PartとTexture Setを移植
でもOKです。こちらの方が手間としては楽だと思います。但しFace Ripperで作成されたespは、マスター指定に失敗してることがあったので、その場合はエラー箇所をマニュアルで修正してください(Form IDの上位2桁が間違い)。
キャラメイクで顔移植の動作確認
改めてpresetスロット2番を選択し、髪を戻しました。独立化できてるようです。
独立フォルダにバニラテクスチャをコピー。独立化前と同じに見えます。うまくいってるみたいですね。
ちょっと(大分?)手間ですけど、昔の顔でもNPCから完全に独立化できました!
これにて作業終了!
(おまけ)Morph Presetの対応表(Female)
キャラメイク時の顔パーツ用preset名称と、対応するMorphの早見表。日本語名称は解らないので英語のみです。すいません男キャラ用は無いです。Eyes
Preset | Morph |
Rested | DefaultFaceType0 |
Tired | EyesFeature1 |
Prominent | EyesFeature2 |
Wide | EyesFeature3 |
Worried | EyesFeature4 |
Piercing | EyesFeature5 |
Strained | EyesFeature6 |
Shrewd | EyesFeature7 |
Narrow | EyesFeature8 |
Alert | EyesFeature9 |
Suspicious | EyesFeature10 |
Forehead
DefaultFaceType0
のみ
Nose
Preset | Morph |
Prominent | DefaultFaceType0 |
Roman | NoseFeature1 |
Chiseled | NoseFeature2 |
Pretty | NoseFeature3 |
Long | NoseFeature4 |
Large | NoseFeature5 |
Ears
Preset | Morph |
Average | DefaultFaceType0 |
Mismatched | EarsFeature1 |
Lobeless | EarsFeature2 |
Wide | EarsFeature3 |
Small | EarsFeature4 |
Malformed | EarsFeature5 |
Cheeks
DefaultFaceType0
のみ
Mouth
Preset | Morph |
Average | DefaultFaceType0 |
Prominent | LipFeature1 |
Smirk | LipFeature2 |
Downturned | LipFeature3 |
Thin | LipFeature4 |
Pout | LipFeature5 |
Long Pout | LipFeature6 |
Thick | LipFeature7 |
Full | LipFeature8 |
Full Pout | LipFeature9 |
Pursed | LipFeature10 |
Neck
DefaultFaceType0
のみ