Fallout箱庭DIY

「箱庭DIY」Fallout分室

【Fallout4】プレイヤキャラ(PC)の頭部をNPCから独立化

スポンサーリンク


キャラクタ

※(20180804追記)以前載せてた方法が再現不能だったので(当時の僕の環境問題か、ゲームのバージョン問題かは不明)、内容の改定を行いました。大分長くなってしまいましたが(汗)
情報下さった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 PartTexture Setの2つがあります。RaceやNPCで設定される他、Head Part内に追加設定される等、色々な所で紐付けされてます。

HeadPart

頭部を構成する各パーツ設定です。SSは上から顔、目、口、後頭部、髪、首断面。male用なら髭もあったり。
HeadPart

中でメッシュやモーフが紐付けされてます。他に付随するHead Partや、Texture Setが括られてることも。
HeadPartの中身
”Valid Races”は、このHead Partを使える種族の設定。今回の話とは関係無いので、また別の所で。

Texture Set

名前の通り、頭部のテクスチャ設定。
TextureSet

テクスチャのファイルパスが設定されてます。
TextureSetの中身

プレイヤキャラの顔を分離するには、これらを専用化する必要があります。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

顔用。ディフューズ、ノーマル、スペキュラのファイルパスを独立化。
顔のTextureSet

こっちはCBBEの後頭部用。
後頭部TextureSet

Head Part

後頭部Head Part。CBBEでなければ不要かもです。
FemaleHeadHumanRearTEMPをコピペして、Texture Setをここに設定(preset用NPCに直接設定できない為)。”Uses Body Texture”のflag解除を忘れずに
後頭部HeadPart

顔のHead Partも一応分離しましたが、中身はFemaleHeadHumanのまま変更してないので省略。メッシュの移動は可能ですが、前述の通りキャラメイクで支障でるかもなので。

NPC

preset用NPCの2番を変更しました。長いので差分表示にて。
preset用NPCの変更
作成した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 RaceMorph Dataを変更します。
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必須)。
Morph Dataの追加完了


あとはこれを、preset用NPCに反映。このNPCで独立化が必要なのは4項目(頬、目、口、鼻)。
PresetNPCのMorphKeys設定
注意点として、Morph Keysで設定された各パーツに対して、同じ番号のMorph Values(キャラメイクでの変更)が応答してます。つまり、順番がズレると顔の形が変わります

新設した顔パーツ用presetを選べば、独立化完了!
追加テクスチャの独立化

他を使うと、独立状態じゃなくなります。
追加テクスチャの共用
注意点は、Race項目を変更する為、致命的な競合起こしやすいです。必ず確認して互換パッチを作成(もしくはこのプラグインで吸収)してください。

(方法3)種族を独立化

独自種族を使ってるなら、Human Raceとは何の関係も無い為、RaceのTexture Setを変更するだけでOK。
末尾2番の顔パーツ用preset(例えば『Full 2』の口とか)なら、こんなんで独立化します。
独自種族の追加テクスチャ独立化
種族を分離するまでが大変ですけど、運用はこれが一番楽だと思います(僕はこれでやってます)。


作成済の顔データの独立化

CBBE環境でなければ苦労しないかもですが。キャラメイク時のpresetスロット2番を選択した後で、作成済の顔をロードすると・・・
f:id:Kutsumiya:20180804080859j:plain
顔に関しては前の章のノリで対処できますが、問題は後頭部。肌色に戻っちゃいました
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にて。
FaceRipperで顔移植

「UniquePlayerHead.esp」に移植すると、新規プラグイン「UniquePlayerHead18B5F6.esp」が自動作成されます。末尾の数字は移植対象であるpreset用NPCのForm ID。

頭部独立化プラグインに顔情報を上書き

生成されたプラグインは最終的に捨てるので、元のプラグインへ必要なレコードをコピーします。最低限、モーフ関連だけでOKです。SSでは化粧もコピーしてますが、キャラメイクでやり直すのも可。
TextureSetを上書きすると、独立状態が解除されるので注意。作業の意味が無くなってしまいます。

方法1、3で独立化した場合

顔のモーフや化粧等をコピー。SSでは忘れてますが、Texture LightingやWeightもコピーしとくと安心。
Morphの移植

方法2で独立化した場合

方法1,3とほぼ同じく、顔のモーフや化粧等をコピー。ただしMorph Keysはプレイヤキャラ用に独立させた為、足りない物だけをコピー(目、口、頬等はすでに有る)。
Morphの移植2

Face Ripperで出力した方に合わせて、Morph Keysをソート。
MorphKeysのソート

ロードした顔に合わせて、Raceに追加したPlayer専用のMorph Presetを変更。
MorphPresetの変更
額、首、頬は『DefaultFaceType0』しか無い為、変更不要。設定は巻末のおまけが役に立つかも?

方法1、2、3共通

スキマが出来るといけないので、一応体もコピーしました(平気かもですが)。
Morphの移植2

Head Partもコピー。同じ部位をダブらせないよう注意。目や眉等、キャラメイクで選択し直すなら放置でもOKです。独立化したHead Partを上書きしないように!
HeadPartの移植
髪はPonytail Hairstylesを使ってた為、マスター指定を増やしたくなかったのでコピーしませんでした(キャラメイクで選択し直し)。

あとはFace Ripperで生成した方のプラグインを削除して終了。このロードオーダーで間違って有効化した日には、競合して全部潰されます

マスター指定の増加を気にしないなら、

  1. Face Ripperで顔移植したesp作成
  2. 上記espに、元のespからHead PartとTexture Setを移植

でもOKです。こちらの方が手間としては楽だと思います。但しFace Ripperで作成されたespは、マスター指定に失敗してることがあったので、その場合はエラー箇所をマニュアルで修正してください(Form IDの上位2桁が間違い)。


キャラメイクで顔移植の動作確認

改めてpresetスロット2番を選択し、髪を戻しました。独立化できてるようです。
移植後のpreset2をロード

独立フォルダにバニラテクスチャをコピー。独立化前と同じに見えます。うまくいってるみたいですね。
顔の移植成功

ちょっと(大分?)手間ですけど、昔の顔でも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

のみ

 

Copyright © 2015 Fallout Hakoniwa DIY All rights reserved .

S.kutsumiya@gmail.com